diff --git a/.vs/LogViewer/v15/.suo b/.vs/LogViewer/v15/.suo new file mode 100644 index 0000000..1dda6eb Binary files /dev/null and b/.vs/LogViewer/v15/.suo differ diff --git a/.vs/LogViewerForLog4Net/v15/.suo b/.vs/LogViewerForLog4Net/v15/.suo new file mode 100644 index 0000000..00976ad Binary files /dev/null and b/.vs/LogViewerForLog4Net/v15/.suo differ diff --git a/.vs/ProjectSettings.json b/.vs/ProjectSettings.json new file mode 100644 index 0000000..f8b4888 --- /dev/null +++ b/.vs/ProjectSettings.json @@ -0,0 +1,3 @@ +{ + "CurrentProjectSetting": null +} \ No newline at end of file diff --git a/.vs/slnx.sqlite b/.vs/slnx.sqlite new file mode 100644 index 0000000..83c0123 Binary files /dev/null and b/.vs/slnx.sqlite differ diff --git a/About.xaml b/About.xaml index 5b854a8..12e0dee 100644 --- a/About.xaml +++ b/About.xaml @@ -4,80 +4,79 @@ xmlns:ee="http://schemas.microsoft.com/expression/2010/effects" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" x:Class="LogViewer.About" - Title="About" Height="706" Width="400" - Background="{DynamicResource WindowBackgroundBrush}" + Title="About" Height="706" Width="440" Loaded="window_Loaded" > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - - - + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Window1.xaml.cs b/MainWindow.xaml.cs similarity index 82% rename from Window1.xaml.cs rename to MainWindow.xaml.cs index 1f028e1..21266b4 100644 --- a/Window1.xaml.cs +++ b/MainWindow.xaml.cs @@ -1,1098 +1,1094 @@ -#region Header - -#region Project -/* - * Project : LogViewer - * Description : Viewer for Log4Net XML logs (see About box for log4Net configuration). - * Version : 2.7 - * Modified on : 1.0 15-3-2010 - * 2.1 May 2010 OD - * 2.6 26-jun-2010 OD - add quick filter on symbols, cancel filter on filter zoom/text symbol - * 2.7 --Jul-2010 OD - save window size, split position. Reset split. - * 2.x -- Open Source Project on CodePlex - * - * - * Copyrights : (c) 2010 Olivier Dahan for the enhanced version - www.e-naxos.com - * (c) 2009 Ken C. Len for original version - * - * LogViewer is a free software distributed on CodePlex : http://yourlog4netviewer.codeplex.com/ under the Microsoft Reciprocal License (Ms-RL) - * - */ -#endregion - -#region Microsoft Reciprocal License (Ms-RL) -/* - * Microsoft Reciprocal License (Ms-RL) - * This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software. - * 1. Definitions - * The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning here as under U.S. copyright law. - * A "contribution" is the original software, or any additions or changes to the software. - * A "contributor" is any person that distributes its contribution under this license. - * "Licensed patents" are a contributor's patent claims that read directly on its contribution. - * 2. Grant of Rights - * (A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create. - * (B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software. - * 3. Conditions and Limitations - * (A) Reciprocal Grants- For any file you distribute that contains code from the software (in source code or binary format), you must provide recipients the source code to that file along with a copy of this license, which license will govern that file. You may license other files that are entirely your own work and do not contain code from the software under any terms you choose. - * (B) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks. - * (C) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically. - * (D) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software. - * (E) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license. - * (F) The software is licensed "as-is." You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement. - * - */ -#endregion - - -#endregion - -#region History - -// 2010-26-03 OD Some light corrections -/* 06.01.2012 JB adding Identity/NDC reading, displaying, filtering support. - * replaced IsNullOrWhiteSpace -> IsNullOrEmpty in doMenuFilter since logFilter.Trim() is called, thus there will never be WhiteSpace. - * added multi-logentry-select to concatenate multiple messages into the message textbox. */ - - -#endregion - -#region usings -using System; -using System.Collections.Generic; -using System.Globalization; -using System.Linq; -using System.Threading; -using System.Windows; -using System.Windows.Controls; -using System.Windows.Controls.Primitives; -using System.Windows.Data; -using System.Windows.Documents; -using System.Windows.Input; -using System.IO; -using System.Xml; -using System.Drawing; -using System.Windows.Threading; -using System.ComponentModel; -using System.Windows.Interop; -using System.Reflection; -using WPF.Themes; -using log4net; -using log4net.Config; -using System.Text; - -#endregion - - -namespace LogViewer -{ - /// - /// Interaction logic for Window1.xaml - /// - public partial class Window1 : INotifyPropertyChanged - { - - - private string fileName = string.Empty; - private static readonly ILog log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); - /// - /// Gets or sets the name of the file. - /// - /// The name of the file. - public string FileName - { - get { return fileName; } - set - { - fileName = value; - RecentFileList.InsertFile(value); - notifyPropertyChanged("FileName"); - } - } - - private List entries = new List(); - /// - /// Gets or sets the entries. - /// - /// The entries. - public List Entries - { - get { return entries; } - set - { - entries = value; - notifyPropertyChanged("Entries"); - } - } - - /// - /// Initializes a new instance of the class. - /// Main Window. - /// - public Window1() - { - //Enabling Log4Net logging - XmlConfigurator.Configure(); - if (log.IsInfoEnabled) log.Info("Application [Log4Viewer] Start"); -#if DEBUG // OD - this info can be interesting when debugging a log coming from someone else. - log.Debug("Application running in Debug mode"); -#endif - log.Info("initializing windows components"); - InitializeComponent(); - Loaded += window1_Loaded; - log.Info("Setting default width to " + Properties.Settings.Default.AppWidth); - Width = Properties.Settings.Default.AppWidth; - log.Info("Setting default height to " + Properties.Settings.Default.AppHeight); - Height = Properties.Settings.Default.AppHeight; - log.Info("Setting default Grid Height to " + Properties.Settings.Default.Split); - MainGrid.RowDefinitions[0].Height = new GridLength(Properties.Settings.Default.Split); - - } - - private void window1_Loaded(object sender, RoutedEventArgs e) - { - log.Info("Setting the UI Culture to fr-FR"); - Thread.CurrentThread.CurrentUICulture = new CultureInfo("fr-FR"); - //log.Info("Setting Max Width to " + SystemParameters.PrimaryScreenWidth); - //MaxWidth = SystemParameters.PrimaryScreenWidth; - log.Info("Initializing event handler for ListView control"); - listView1.AddHandler(ButtonBase.ClickEvent, new RoutedEventHandler(listView1_HeaderClicked)); - log.Info("Setting the RecentFileList to" + Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData))); - RecentFileList.UseXmlPersister(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "YourLog4NetViewer")); - //RecentFileList.UseXmlPersister(Path.Combine(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location), "EnaxosLogViewer.filehistory.xml")); - log.Info("Initializing the RecentFiles menu click"); - RecentFileList.MenuClick += (s, ee) => openFile(ee.FilePath); - log.Info("Initializing Error Bitmap"); - imageError.Source = Imaging.CreateBitmapSourceFromHIcon(SystemIcons.Error.Handle, Int32Rect.Empty, null); - log.Info("Initializing Info Bitmap"); - imageInfo.Source = Imaging.CreateBitmapSourceFromHIcon(SystemIcons.Information.Handle, Int32Rect.Empty, null); - log.Info("Initializing Warn Bitmap"); - imageWarn.Source = Imaging.CreateBitmapSourceFromHIcon(SystemIcons.Warning.Handle, Int32Rect.Empty, null); - log.Info("Initializing Debug Bitmap"); - imageDebug.Source = Imaging.CreateBitmapSourceFromHIcon(SystemIcons.Question.Handle, Int32Rect.Empty, null); - Title = string.Format(Properties.Resources.WindowTitle + (!string.IsNullOrWhiteSpace(FileName) ? " - " + FileName : string.Empty), Assembly.GetExecutingAssembly().GetName().Version); - log.Info("Setting the title as " + Title); - log.Info("Applying ExpressionDark Theme"); - this.ApplyTheme("ExpressionDark"); - log.Info("Setting the GridView widths for each column"); - foreach (var gvc in GridView1.Columns) - { - gvc.Width = gvc.ActualWidth; - gvc.Width = Double.NaN; - } - mergedFiles.ForEach(mergedFile => RecentFileList.InsertFile(mergedFile)); - } - - /// - /// Clears this instance. - /// - private void clear() - { - log.Info("Clearing all the text controls"); - textBoxLevel.Text = string.Empty; - textBoxTimeStamp.Text = string.Empty; - textBoxMachineName.Text = string.Empty; - textBoxThread.Text = string.Empty; - textBoxItem.Text = string.Empty; - textBoxHostName.Text = string.Empty; - textBoxUserName.Text = string.Empty; - textBoxApp.Text = string.Empty; - textBoxClass.Text = string.Empty; - textBoxMethod.Text = string.Empty; - textBoxLine.Text = string.Empty; - textBoxfile.Text = string.Empty; - textBoxMessage.Text = string.Empty; - textBoxThrowable.Text = string.Empty; - textBoxLog.Text = string.Empty; - - textBoxIdentity.Text = string.Empty; - textBoxNDC.Text = string.Empty; - } - - /// - /// Opens the file. - /// - /// Name of the file. - private void openFile(string logFileName) - { - log.Info("Clearing Merged Files"); - mergedFiles.Clear(); - log.Info("Loading file " + logFileName); - loadFile(logFileName); - } - - private readonly List mergedFiles = new List(); - - /// - /// Loads the file. - /// - public void loadFile(string logFileName, bool withMerge = false) - { - if (!withMerge) - { - log.Info("Clearing entries to load single log file"); - entries.Clear(); - log.Info("Notifying Entries property as changed"); - notifyPropertyChanged("Entries"); - log.Info("Resetting the ListView item source to nothing"); - listView1.ItemsSource = null; - FileName = logFileName; - } - else - { - log.Info("Adding the log files that need to be merged to mergedFile object"); - if (mergedFiles.Count == 0) mergedFiles.Add(FileName); - log.Info("If the same file is being added then return immediately"); - if (mergedFiles.Contains(logFileName)) return; - log.Info("If not add the file to the merged list"); - mergedFiles.Add(logFileName); - } - - log.Info("Clearing the log filter"); - logFilter.Clear(); - log.Info("Turning off the IsFiltered property of the FilterIndicator"); - FilterIndicator.IsFiltered = false; - - var dt = new DateTime(1970, 1, 1, 0, 0, 0, 0); - var iIndex = 1; - if (withMerge) iIndex = entries.Count + 1; - - clear(); - - try - { - log.Info("Initializing FileStream objet to open the log file"); - var oFileStream = new FileStream(logFileName, FileMode.OpenOrCreate, FileAccess.Read, FileShare.ReadWrite); - log.Info("Initializing a Stream Reader"); - var oStreamReader = new StreamReader(oFileStream); - log.Info("Read all the contents in the log file to a StreamReader"); - var sBuffer = string.Format("{0}", oStreamReader.ReadToEnd()); - log.Info("Closing StreamReader and FileStream object"); - oStreamReader.Close(); - oFileStream.Close(); - - #region Read File Buffer - //////////////////////////////////////////////////////////////////////////////// - log.Info("Reading File"); - var oStringReader = new StringReader(sBuffer); - var oXmlTextReader = new XmlTextReader(oStringReader) { Namespaces = false }; - log.Info("Start reading the log file"); - while (oXmlTextReader.Read()) - { - if ((oXmlTextReader.NodeType != XmlNodeType.Element) || (oXmlTextReader.Name != "log4j:event")) - continue; - var logentry = new LogEntry { Item = iIndex }; - -// ReSharper disable StringLiteralsWordIsNotInDictionary - var dSeconds = Convert.ToDouble(oXmlTextReader.GetAttribute("timestamp")); -// ReSharper restore StringLiteralsWordIsNotInDictionary - logentry.TimeStamp = dt.AddMilliseconds(dSeconds).ToLocalTime(); - logentry.Thread = oXmlTextReader.GetAttribute("thread"); - logentry.Logger = oXmlTextReader.GetAttribute("logger"); - logentry.LogFile = logFileName; - - #region get level - //////////////////////////////////////////////////////////////////////////////// - logentry.Level = oXmlTextReader.GetAttribute("level"); - switch (logentry.Level) - { - case "ERROR": - { - logentry.Image = LogEntry.Images(LogImageType.Error); - break; - } - case "INFO": - { - logentry.Image = LogEntry.Images(LogImageType.Info); - break; - } - case "DEBUG": - { - logentry.Image = LogEntry.Images(LogImageType.Debug); - break; - } - case "WARN": - { - logentry.Image = LogEntry.Images(LogImageType.Warn); - break; - } - case "FATAL": - { - logentry.Image = LogEntry.Images(LogImageType.Fatal); - break; - } - default: - { - logentry.Image = LogEntry.Images(LogImageType.Custom); - break; - } - } - //////////////////////////////////////////////////////////////////////////////// - #endregion - - #region read xml - //////////////////////////////////////////////////////////////////////////////// - while (oXmlTextReader.Read()) - { - var breakLoop = false; - switch (oXmlTextReader.Name) - { - case "log4j:event": - breakLoop = true; - break; - default: - switch (oXmlTextReader.Name) - { - case ("log4j:message"): - { - logentry.Message = oXmlTextReader.ReadString(); - break; - } - case ("log4j:data"): - { - switch (oXmlTextReader.GetAttribute("name")) - { - case ("log4jmachinename"): - { - logentry.MachineName = oXmlTextReader.GetAttribute("value"); - break; - } - case ("log4net:HostName"): - { - logentry.HostName = oXmlTextReader.GetAttribute("value"); - break; - } - case ("log4net:UserName"): - { - logentry.UserName = oXmlTextReader.GetAttribute("value"); - break; - } - case ("log4net:Identity"): - { - logentry.Identity = oXmlTextReader.GetAttribute("value"); - break; - } - case ("NDC"): - { - logentry.NDC = oXmlTextReader.GetAttribute("value"); - break; - } - case ("log4japp"): - { - logentry.App = oXmlTextReader.GetAttribute("value"); - break; - } - } - break; - } -// ReSharper disable StringLiteralsWordIsNotInDictionary - case ("log4j:throwable"): -// ReSharper restore StringLiteralsWordIsNotInDictionary - { - logentry.Throwable = oXmlTextReader.ReadString(); - break; - } - case ("log4j:locationInfo"): - { - logentry.Class = oXmlTextReader.GetAttribute("class"); - logentry.Method = oXmlTextReader.GetAttribute("method"); - logentry.File = oXmlTextReader.GetAttribute("file"); - logentry.Line = oXmlTextReader.GetAttribute("line"); - break; - } - } - break; - } - if (breakLoop) break; - } - //////////////////////////////////////////////////////////////////////////////// - #endregion - - entries.Add(logentry); - iIndex++; - } - notifyPropertyChanged("Entries"); - log.Info("Completing of Log xml reading"); - //////////////////////////////////////////////////////////////////////////////// - #endregion - } - catch (Exception ex) - { - MessageBox.Show(ex.ToString()); - } - - #region Show Counts - //////////////////////////////////////////////////////////////////////////////// - log.Info("Calculating the number of ERROR in the log file"); - var errorCount = - ( - from entry in Entries - where entry.Level == "ERROR" - select entry - ).Count(); - - if (errorCount > 0) - { - labelErrorCount.Text = string.Format("{0:#,#} ", errorCount); - labelErrorCount.Visibility = Visibility.Visible; - imageError.Visibility = Visibility.Visible; - } - else - { - labelErrorCount.Visibility = Visibility.Hidden; - imageError.Visibility = Visibility.Hidden; - } - log.Info("ERROR count is " + errorCount); - log.Info("Calculating the number of INFO in the log file"); - var infoCount = - ( - from entry in Entries - where entry.Level == "INFO" - select entry - ).Count(); - - if (infoCount > 0) - { - labelInfoCount.Text = string.Format("{0:#,#} ", infoCount); - labelInfoCount.Visibility = Visibility.Visible; - imageInfo.Visibility = Visibility.Visible; - } - else - { - labelInfoCount.Visibility = Visibility.Hidden; - imageInfo.Visibility = Visibility.Hidden; - } - log.Info("INFO count is " + infoCount); - log.Info("Calculating the number of WARN in the log file"); - var warnCount = - ( - from entry in Entries - where entry.Level == "WARN" - select entry - ).Count(); - - if (warnCount > 0) - { - labelWarnCount.Text = string.Format("{0:#,#} ", warnCount); - labelWarnCount.Visibility = Visibility.Visible; - imageWarn.Visibility = Visibility.Visible; - } - else - { - labelWarnCount.Visibility = Visibility.Hidden; - imageWarn.Visibility = Visibility.Hidden; - } - log.Info("WARN count is " + warnCount); - log.Info("Calculating the number of DEBUG in the log file"); - var debugCount = - ( - from entry in Entries - where entry.Level == "DEBUG" - select entry - ).Count(); - - if (debugCount > 0) - { - labelDebugCount.Text = string.Format("{0:#,#} ", debugCount); - labelDebugCount.Visibility = Visibility.Visible; - imageDebug.Visibility = Visibility.Visible; - } - else - { - imageDebug.Visibility = Visibility.Hidden; - labelDebugCount.Visibility = Visibility.Hidden; - } - log.Info("DEBUG count is " + debugCount); - tbFiltered.Text = Entries.Count().ToString(); - FilterIndicator.IsFiltered = false; - - //////////////////////////////////////////////////////////////////////////////// - #endregion - log.Info("Initializing ListView to show the log entries"); - listView1.ItemsSource = null; - log.Info("Loading ListView with Log Entries"); - listView1.ItemsSource = (from e in entries orderby e.TimeStamp select e).ToList(); - log.Info("Clearing Sort Adorner"); - clearSortAdorner(); - - if (!withMerge) - { - textboxFileName.Text = logFileName; - Title = string.Format(Properties.Resources.WindowTitle + " - " + logFileName, Assembly.GetExecutingAssembly().GetName().Version); - log.Info("Setting the title as " + Title); - return; - } - - var s = ""; - foreach (var sm in mergedFiles) - { - if (s != "") s += "; "; - s += Path.GetFileName(sm); - } - - textboxFileName.Text = s; - Title = string.Format(Properties.Resources.WindowTitle + " - " + s, Assembly.GetExecutingAssembly().GetName().Version); - log.Info("Setting the title as " + Title); - } - - #region ListView Events - //////////////////////////////////////////////////////////////////////////////// - private void listView1_SelectionChanged(object sender, SelectionChangedEventArgs e) - { - log.Info("Inside ListView selection changed and clearing the text controls"); - clear(); - log.Info("Getting the current Log Entry"); - - if (listView1.SelectedItems.Count == 1) - { - log.Info("Show the selected log entry on the UI"); - - var logentry = listView1.SelectedItem as LogEntry; - - image1.Source = logentry.Image; - textBoxLevel.Text = logentry.Level; - textBoxTimeStamp.Text = - logentry.TimeStamp.ToString(Properties.Resources.DisplayDayFormat + " " + CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern + " " + - Properties.Resources.DisplayTimeFormat); - textBoxMachineName.Text = logentry.MachineName; - textBoxThread.Text = logentry.Thread; - textBoxItem.Text = logentry.Item.ToString(); - textBoxHostName.Text = logentry.HostName; - textBoxUserName.Text = logentry.UserName; - textBoxApp.Text = logentry.App; - textBoxClass.Text = logentry.Class; - textBoxMethod.Text = logentry.Method; - textBoxLine.Text = logentry.Line; - textBoxLog.Text = logentry.LogFile; - textBoxMessage.Text = logentry.Message; - textBoxThrowable.Text = logentry.Throwable; - textBoxfile.Text = logentry.File; - textBoxLogger.Text = logentry.Logger; - - textBoxIdentity.Text = logentry.Identity; - textBoxNDC.Text = logentry.NDC; - } - else if (listView1.SelectedItems.Count > 1) - { - log.Info("Show the selected log entries on the UI"); - - foreach (LogEntry logEntry in listView1.SelectedItems) - { - var msgToAppend = string.Format( - new StringBuilder() - .AppendLine("----------------- Entry #: {0} -------------------") - .AppendLine("{1}").AppendLine().ToString() - , logEntry.Item - , logEntry.Message); - - textBoxMessage.Text += msgToAppend; - textBoxThrowable.Text += logEntry.Throwable; - } - } - } - - private ListSortDirection direction = ListSortDirection.Descending; - private GridViewColumnHeader curSortCol; - private SortAdorner curAdorner; - - - /// - /// Handles the HeaderClicked event of the ListView1 control. - /// - /// The source of the event. - /// The instance containing the event data. - private void listView1_HeaderClicked(object sender, RoutedEventArgs e) - { - log.Info("Handles the HeaderClicked event of the ListView control"); - var header = e.OriginalSource as GridViewColumnHeader; - - if (header == null) - return; - - var source = e.Source as ListView; - if (source == null) return; - var dataView = CollectionViewSource.GetDefaultView(source.ItemsSource); - if (dataView == null) return; - log.Info("Clearing all Sort Descriptions"); - dataView.SortDescriptions.Clear(); - log.Info("Determining the Sort direction"); - direction = direction == ListSortDirection.Ascending ? ListSortDirection.Descending : ListSortDirection.Ascending; - if (header != null && header.Content != null) - { - if (header.Content.ToString() != "") - { - var description = new SortDescription(header.Content.ToString(), direction); - log.Info("Adding sort description from header content"); - dataView.SortDescriptions.Add(description); - } - } - log.Info("Refreshing the data view"); - dataView.Refresh(); - log.Info("Clearing the Sort Adorner"); - clearSortAdorner(); - curSortCol = header; - curAdorner = new SortAdorner(curSortCol, direction); - if (curSortCol != null) AdornerLayer.GetAdornerLayer(curSortCol).Add(curAdorner); - } - - private void clearSortAdorner() - { - if (curSortCol != null) - { - log.Info("Getting current column and remove the existing sort adorner"); - AdornerLayer.GetAdornerLayer(curSortCol).Remove(curAdorner); - } - } - - //////////////////////////////////////////////////////////////////////////////// - #endregion - - #region DragDrop - //////////////////////////////////////////////////////////////////////////////// - private void listView1_Drop(object sender, DragEventArgs e) - { - if (e.Data.GetDataPresent(DataFormats.FileDrop)) - { - try - { - log.Info("Getting file drop data"); - var a = (Array)e.Data.GetData(DataFormats.FileDrop); - log.Info("Getting the Keyboard modifiers for validation"); - var b = (Keyboard.Modifiers == ModifierKeys.Alt) || (a.Length > 1); - log.Info("Checking if drag drop has data"); - if (a != null) - { - log.Info("Iterating through the array of drag drop data"); - foreach (var file in a) - { - var f = file.ToString(); // a.GetValue(0).ToString(); - var bb = b; - Dispatcher.BeginInvoke( - DispatcherPriority.Background, - (Action)(() => loadFile(f, bb))); - } - } - } - catch (Exception ex) - { - log.Error("Error in Drag Drop", ex); - MessageBox.Show("Error in Drag Drop: " + ex.Message); - } - } - } - - //////////////////////////////////////////////////////////////////////////////// - #endregion - - #region Menu Events - //////////////////////////////////////////////////////////////////////////////// - private void doMenuFileOpen() - { - log.Info("Initializing the open file dialog object"); - var oOpenFileDialog = new System.Windows.Forms.OpenFileDialog - { - Filter = Properties.Resources.XmlOpenFilter, - DefaultExt = "xml", - Multiselect = true, - Title = Properties.Resources.OpenDialogTitle - }; - if (oOpenFileDialog.ShowDialog() != System.Windows.Forms.DialogResult.OK) return; - FileName = oOpenFileDialog.FileName; - log.Info("FileName is " + FileName); - for (var i = 0; i < oOpenFileDialog.FileNames.Length; i++) - { - if (log.IsDebugEnabled) - { - log.Info("Loading file " + oOpenFileDialog.FileNames[i]); - } - loadFile(oOpenFileDialog.FileNames[i], i > 0); - } - } - - private void mergeFile_Click(object sender, RoutedEventArgs e) - { - log.Info("Initializing the open file dialog for filer merge click event"); - var oOpenFileDialog = new System.Windows.Forms.OpenFileDialog - { - Filter = Properties.Resources.XmlOpenFilter, - DefaultExt = "xml", - Multiselect = true, - Title = Properties.Resources.MergeOpenDialog - }; - if (oOpenFileDialog.ShowDialog() != System.Windows.Forms.DialogResult.OK) return; - foreach (var t in oOpenFileDialog.FileNames) - { - if (log.IsDebugEnabled) - { - log.Info("Loading file " + t); - loadFile(t, true); - } - } - } - - private void doMenuRefresh() - { - if (string.IsNullOrWhiteSpace(FileName)) - { - log.Info("Unable to refresh the empty source"); - MessageBox.Show(Properties.Resources.CantRefreshEmptySource); - return; - } - if (mergedFiles.Count > 0) - { - log.Info("There is no refresh when multiple files are open"); - MessageBox.Show(Properties.Resources.NoRefreshOnMultipleSource); - return; - } - log.Info("Loading file " + FileName); - loadFile(FileName); - listView1.SelectedIndex = listView1.Items.Count - 1; - if (listView1.Items.Count > 4) - { - listView1.SelectedIndex -= 3; - } - listView1.ScrollIntoView(listView1.SelectedItem); - var lvi = listView1.ItemContainerGenerator.ContainerFromIndex(listView1.SelectedIndex) as ListViewItem; - if (lvi == null) return; - lvi.BringIntoView(); - lvi.Focus(); - FilterIndicator.IsFiltered = false; - tbFiltered.Text = Entries.Count().ToString(); - } - - private static void doMenuAbout() - { - log.Info("Initializing about screen"); - var about = new About(); - log.Info("Displaying/Showing about screen"); - about.ShowDialog(); - } - - - private LogFilter logFilter = new LogFilter(); - - private void doMenuFilter() - { - log.Info("Cloning the log filter"); - var tempFilter = logFilter.Clone(); - var filter = new Filter(Entries, tempFilter) { Owner = this }; - log.Info("Showing the filter dialog"); - - filter.ShowDialog(); - - if (filter.DialogResult != true) - return; - - log.Info("Cloning the log filter again after loading new filters"); - logFilter = tempFilter.Clone(); - logFilter.TrimAll(); - - log.Info("Initializing the query object"); - var query = (from e in Entries select e); - - if (!string.IsNullOrEmpty(logFilter.App)) - query = query.Where(e => e.App.ToUpperInvariant().Contains(logFilter.App.ToUpperInvariant())); - if (!string.IsNullOrEmpty(logFilter.Level)) query = query.Where(e => e.Level == logFilter.Level); - if (!string.IsNullOrEmpty(logFilter.Thread)) query = query.Where(e => e.Thread == logFilter.Thread); - if (!string.IsNullOrEmpty(logFilter.Message)) - query = query.Where(e => e.Message.ToUpperInvariant().Contains(logFilter.Message.ToUpperInvariant())); - if (!string.IsNullOrEmpty(logFilter.MachineName)) - query = query.Where(e => e.MachineName.ToUpperInvariant().Contains(logFilter.MachineName.ToUpperInvariant())); - if (!string.IsNullOrEmpty(logFilter.UserName)) - query = query.Where(e => e.UserName.ToUpperInvariant().Contains(logFilter.UserName.ToUpperInvariant())); - if (!string.IsNullOrEmpty(logFilter.HostName)) - query = query.Where(e => e.HostName.ToUpperInvariant().Contains(logFilter.HostName.ToUpperInvariant())); - if (!string.IsNullOrEmpty(logFilter.Throwable)) - query = query.Where(e => e.Throwable.ToUpperInvariant().Contains(logFilter.Throwable.ToUpperInvariant())); - if (!string.IsNullOrEmpty(logFilter.Class)) - query = query.Where(e => e.Class.ToUpperInvariant().Contains(logFilter.Class.ToUpperInvariant())); - if (!string.IsNullOrEmpty(logFilter.Method)) - query = query.Where(e => e.Method.ToUpperInvariant().Contains(logFilter.Method.ToUpperInvariant())); - if (!string.IsNullOrEmpty(logFilter.File)) - query = query.Where(e => e.File.ToUpperInvariant().Contains(logFilter.File.ToUpperInvariant())); - if (!string.IsNullOrEmpty(logFilter.LogName)) - query = query.Where(e => e.LogFile.ToUpperInvariant().Contains(logFilter.LogName.ToUpperInvariant())); - if (!string.IsNullOrEmpty(logFilter.Identity)) - query = query.Where(e => e.Identity.ToUpperInvariant().Contains(logFilter.Identity.ToUpperInvariant())); - if (!string.IsNullOrEmpty(logFilter.NDC)) - query = query.Where(e => e.NDC.ToUpperInvariant().Contains(logFilter.NDC.ToUpperInvariant())); - if (!string.IsNullOrEmpty(logFilter.Logger)) - query = query.Where(e => e.Logger.ToUpperInvariant().Contains(logFilter.Logger.ToUpperInvariant())); - - // TODO: shouldn't we be showing 0 results if the filter matched 0 results? - var c = query.Count(); - log.Info("Received queries " + query.Count()); - - FilterIndicator.IsFiltered = query.Any() && (c != Entries.Count()); - - logFilter.IsFiltered = FilterIndicator.IsFiltered; - log.Info("Log Filter status " + logFilter.IsFiltered); - - LogFilter.FilteredEntries = FilterIndicator.IsFiltered ? query.ToList() : Entries; - listView1.ItemsSource = logFilter.IsFiltered ? LogFilter.FilteredEntries : Entries; - tbFiltered.Text = FilterIndicator.IsFiltered ? c + "/" + Entries.Count() : Entries.Count().ToString(); - } - - private void cancelFilter() - { - log.Info("Clearing Log Filter"); - logFilter.Clear(); - FilterIndicator.IsFiltered = false; - LogFilter.FilteredEntries = Entries; - listView1.ItemsSource = entries; - tbFiltered.Text = entries.Count().ToString(); - } - - private void filterIndicator_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) - { - if (!FilterIndicator.IsFiltered) return; - cancelFilter(); - } - - private enum MessageLevel { Error, Warning, Debug, Info } - - private void quickFilter(MessageLevel level) - { - string s; - log.Info("Using quick filter for " + level); - switch (level) - { - case MessageLevel.Error: - s = "ERROR"; - break; - case MessageLevel.Warning: - s = "WARN"; - break; - case MessageLevel.Debug: - s = "DEBUG"; - break; - case MessageLevel.Info: - s = "INFO"; - break; - default: - throw new ArgumentOutOfRangeException("level"); - } - logFilter.Clear(); - logFilter.Level = s; - logFilter.TrimAll(); - - log.Info("Initializing the query objet for " + level); - var query = (from e in Entries select e); - if (!string.IsNullOrWhiteSpace(logFilter.Level)) query = query.Where(e => e.Level == logFilter.Level); - - var c = query.Count(); - FilterIndicator.IsFiltered = c > 0 && (c != Entries.Count()); - logFilter.IsFiltered = FilterIndicator.IsFiltered; - LogFilter.FilteredEntries = FilterIndicator.IsFiltered ? query.ToList() : Entries; - listView1.ItemsSource = logFilter.IsFiltered ? LogFilter.FilteredEntries : Entries; - tbFiltered.Text = FilterIndicator.IsFiltered ? c + "/" + Entries.Count() : Entries.Count().ToString(); - - } - - private void imageError_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) - { - log.Info("Enabling Quick filter for ERROR message level"); - quickFilter(MessageLevel.Error); - } - - private void imageInfo_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) - { - log.Info("Enabling Quick filter for INFO message level"); - quickFilter(MessageLevel.Info); - } - - private void imageWarn_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) - { - log.Info("Enabling Quick filter for WARN message level"); - quickFilter(MessageLevel.Warning); - } - - private void imageDebug_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) - { - log.Info("Enabling Quick filter for DEBUG message level"); - quickFilter(MessageLevel.Debug); - } - - private int currentIndex; - private void find(int loopDirection) - { - if (textBoxFind.Text.Length <= 0) return; - log.Info("Finding in Loop Direction " + loopDirection); - if (loopDirection == 0) - { - for (var i = currentIndex + 1; i < listView1.Items.Count; i++) - { - var item = (LogEntry)listView1.Items[i]; - if (!item.Message.ToUpper().Contains(textBoxFind.Text.ToUpper())) continue; - listView1.SelectedIndex = i; - listView1.ScrollIntoView(listView1.SelectedItem); - var lvi = listView1.ItemContainerGenerator.ContainerFromIndex(i) as ListViewItem; - if (lvi != null) - { - lvi.BringIntoView(); - lvi.Focus(); - } - currentIndex = i; - System.Media.SystemSounds.Beep.Play(); - return; - } - } - else - { - for (var i = currentIndex - 1; i > 0 && i < listView1.Items.Count; i--) - { - var item = (LogEntry)listView1.Items[i]; - if (!item.Message.ToUpper().Contains(textBoxFind.Text.ToUpper())) continue; - listView1.SelectedIndex = i; - listView1.ScrollIntoView(listView1.SelectedItem); - var lvi = listView1.ItemContainerGenerator.ContainerFromIndex(i) as ListViewItem; - if (lvi != null) - { - lvi.BringIntoView(); - lvi.Focus(); - } - currentIndex = i; - System.Media.SystemSounds.Beep.Play(); - return; - } - } - System.Media.SystemSounds.Asterisk.Play(); - } - - private void buttonFindNext_Click(object sender, RoutedEventArgs e) - { - log.Info("Triggering find next"); - find(0); - } - - private void buttonFindPrevious_Click(object sender, RoutedEventArgs e) - { - log.Info("Triggering find previous"); - find(1); - } - - private void textBoxFind_KeyDown(object sender, KeyEventArgs e) - { - if (e.Key != Key.Enter) return; - if (textBoxFind.Text.Length > 0) - { - find(0); - } - } - - private void textBoxFind_PreviewKeyDown(object sender, KeyEventArgs e) - { - if (e.Key == Key.Enter) - { - e.Handled = true; - find(0); - } - } - - //////////////////////////////////////////////////////////////////////////////// - #endregion - - - - /// - /// Gets a value indicating whether this instance can merge. - /// - /// true if this instance can merge; otherwise, false. - public bool CanMerge - { - get { return entries != null && entries.Count() > 0; } - } - - /// - /// Occurs when a property value changes. - /// - public event PropertyChangedEventHandler PropertyChanged; - public void notifyPropertyChanged(string property) - { - if (property == "Entries") notifyPropertyChanged("CanMerge"); - if (PropertyChanged == null) return; - var p = PropertyChanged; - p(this, new PropertyChangedEventArgs(property)); - } - - private void label6b_MouseDoubleClick(object sender, MouseButtonEventArgs e) - { - LogEntry.JustFileName = !LogEntry.JustFileName; - log.Info("log entry file name on label6b mouse double click " + LogEntry.JustFileName); - listView1_SelectionChanged(this, null); - } - - #region commands - - private void openCanExecute(object sender, CanExecuteRoutedEventArgs e) - { - e.CanExecute = true; - } - - private void openExecuted(object sender, ExecutedRoutedEventArgs e) - { - log.Info("Executing menu file open"); - doMenuFileOpen(); - } - - private void exitCanExecute(object sender, CanExecuteRoutedEventArgs e) - { - e.CanExecute = true; - } - - private void exitExecuted(object sender, ExecutedRoutedEventArgs e) - { - Close(); - } - - private void refreshCanExecute(object sender, CanExecuteRoutedEventArgs e) - { - e.CanExecute = !(string.IsNullOrWhiteSpace(FileName) || (mergedFiles.Count > 0)); - log.Info("Can Refresh execute " + e.CanExecute); - } - - private void refreshExecuted(object sender, ExecutedRoutedEventArgs e) - { - log.Info("Execute menu refresh"); - doMenuRefresh(); - } - - private void filterCanExexute(object sender, CanExecuteRoutedEventArgs e) - { - e.CanExecute = !string.IsNullOrWhiteSpace(FileName) || mergedFiles.Count > 0; - log.Info("Can filter execute " + e.CanExecute); - } - - private void filterExecuted(object sender, ExecutedRoutedEventArgs e) - { - log.Info("Do menu filter"); - doMenuFilter(); - } - - private void aboutCanExecute(object sender, CanExecuteRoutedEventArgs e) - { - e.CanExecute = true; - } - - private void aboutExecuted(object sender, ExecutedRoutedEventArgs e) - { - log.Info("Executing about menu"); - doMenuAbout(); - } - #endregion - - private void window_Closed(object sender, EventArgs e) - { - log.Info("Saving default application width,height,split to open next time"); - Properties.Settings.Default.AppWidth = Width; - Properties.Settings.Default.AppHeight = Height; - Properties.Settings.Default.Split = MainGrid.RowDefinitions[0].Height.Value; - Properties.Settings.Default.Save(); - } - - private void resetSeparator_Click(object sender, RoutedEventArgs e) - { - log.Info("Defining the height when reset reset separator is clicked"); - MainGrid.RowDefinitions[0].Height = new GridLength(ActualHeight / 3); - } - } -} +#region Header + +#region Project +/* + * Project : LogViewer + * Description : Viewer for Log4Net XML logs (see About box for log4Net configuration). + * Version : 2.7 + * Modified on : 1.0 15-3-2010 + * 2.1 May 2010 OD + * 2.6 26-jun-2010 OD - add quick filter on symbols, cancel filter on filter zoom/text symbol + * 2.7 --Jul-2010 OD - save window size, split position. Reset split. + * 2.x -- Open Source Project on CodePlex + * + * + * Copyrights : (c) 2010 Olivier Dahan for the enhanced version - www.e-naxos.com + * (c) 2009 Ken C. Len for original version + * + * LogViewer is a free software distributed on CodePlex : http://yourlog4netviewer.codeplex.com/ under the Microsoft Reciprocal License (Ms-RL) + * + */ +#endregion + +#region Microsoft Reciprocal License (Ms-RL) +/* + * Microsoft Reciprocal License (Ms-RL) + * This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software. + * 1. Definitions + * The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning here as under U.S. copyright law. + * A "contribution" is the original software, or any additions or changes to the software. + * A "contributor" is any person that distributes its contribution under this license. + * "Licensed patents" are a contributor's patent claims that read directly on its contribution. + * 2. Grant of Rights + * (A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create. + * (B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software. + * 3. Conditions and Limitations + * (A) Reciprocal Grants- For any file you distribute that contains code from the software (in source code or binary format), you must provide recipients the source code to that file along with a copy of this license, which license will govern that file. You may license other files that are entirely your own work and do not contain code from the software under any terms you choose. + * (B) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks. + * (C) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically. + * (D) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software. + * (E) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license. + * (F) The software is licensed "as-is." You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement. + * + */ +#endregion + + +#endregion + +#region History + +// 2010-26-03 OD Some light corrections +/* 06.01.2012 JB adding Identity/NDC reading, displaying, filtering support. + * replaced IsNullOrWhiteSpace -> IsNullOrEmpty in doMenuFilter since logFilter.Trim() is called, thus there will never be WhiteSpace. + * added multi-logentry-select to concatenate multiple messages into the message textbox. */ + + +#endregion + +#region usings +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Threading; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Controls.Primitives; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.IO; +using System.Xml; +using System.Drawing; +using System.Windows.Threading; +using System.ComponentModel; +using System.Windows.Interop; +using System.Reflection; +using log4net; +using log4net.Config; +using System.Text; + +#endregion + + +namespace LogViewer +{ + /// + /// Interaction logic for MainWindow.xaml + /// + public partial class MainWindow : INotifyPropertyChanged + { + + + private string _fileName = string.Empty; + private static readonly ILog Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); + /// + /// Gets or sets the name of the file. + /// + /// The name of the file. + public string FileName + { + get => _fileName; + set + { + _fileName = value; + RecentFileList.InsertFile(value); + notifyPropertyChanged(nameof(FileName)); + } + } + + private List _entries = new List(); + /// + /// Gets or sets the entries. + /// + /// The entries. + public List Entries + { + get => _entries; +/* + set + { + _entries = value; + notifyPropertyChanged(nameof(Entries)); + } +*/ + } + + /// + /// Initializes a new instance of the class. + /// Main Window. + /// + public MainWindow() + { + //Enabling Log4Net logging + XmlConfigurator.Configure(); + if (Log.IsInfoEnabled) Log.Info("Application [Log4Viewer] Start"); +#if DEBUG // OD - this info can be interesting when debugging a log coming from someone else. + Log.Debug("Application running in Debug mode"); +#endif + Log.Info("initializing windows components"); + InitializeComponent(); + Loaded += window1_Loaded; + Log.Info("Setting default width to " + Properties.Settings.Default.AppWidth); + Width = Properties.Settings.Default.AppWidth; + Log.Info("Setting default height to " + Properties.Settings.Default.AppHeight); + Height = Properties.Settings.Default.AppHeight; + Log.Info("Setting default Grid Height to " + Properties.Settings.Default.Split); + MainGrid.RowDefinitions[0].Height = new GridLength(Properties.Settings.Default.Split); + + } + + private void window1_Loaded(object sender, RoutedEventArgs e) + { + Log.Info("Setting the UI Culture to fr-FR"); + Thread.CurrentThread.CurrentUICulture = new CultureInfo("fr-FR"); + //log.Info("Setting Max Width to " + SystemParameters.PrimaryScreenWidth); + //MaxWidth = SystemParameters.PrimaryScreenWidth; + Log.Info("Initializing event handler for ListView control"); + listView1.AddHandler(ButtonBase.ClickEvent, new RoutedEventHandler(listView1_HeaderClicked)); + Log.Info("Setting the RecentFileList to" + Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData))); + RecentFileList.UseXmlPersister(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "YourLog4NetViewer")); + //RecentFileList.UseXmlPersister(Path.Combine(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location), "EnaxosLogViewer.filehistory.xml")); + Log.Info("Initializing the RecentFiles menu click"); + RecentFileList.MenuClick += (s, ee) => openFile(ee.FilePath); + Log.Info("Initializing Error Bitmap"); + imageError.Source = Imaging.CreateBitmapSourceFromHIcon(SystemIcons.Error.Handle, Int32Rect.Empty, null); + Log.Info("Initializing Info Bitmap"); + imageInfo.Source = Imaging.CreateBitmapSourceFromHIcon(SystemIcons.Information.Handle, Int32Rect.Empty, null); + Log.Info("Initializing Warn Bitmap"); + imageWarn.Source = Imaging.CreateBitmapSourceFromHIcon(SystemIcons.Warning.Handle, Int32Rect.Empty, null); + Log.Info("Initializing Debug Bitmap"); + imageDebug.Source = Imaging.CreateBitmapSourceFromHIcon(SystemIcons.Question.Handle, Int32Rect.Empty, null); + Title = string.Format(Properties.Resources.WindowTitle + (!string.IsNullOrWhiteSpace(FileName) ? " - " + FileName : string.Empty), Assembly.GetExecutingAssembly().GetName().Version); + Log.Info("Setting the title as " + Title); + Log.Info("Setting the GridView widths for each column"); + foreach (var gvc in GridView1.Columns) + { + gvc.Width = gvc.ActualWidth; + gvc.Width = Double.NaN; + } + _mergedFiles.ForEach(mergedFile => RecentFileList.InsertFile(mergedFile)); + } + + /// + /// Clears this instance. + /// + private void clear() + { + Log.Info("Clearing all the text controls"); + textBoxLevel.Text = string.Empty; + textBoxTimeStamp.Text = string.Empty; + textBoxMachineName.Text = string.Empty; + textBoxThread.Text = string.Empty; + textBoxItem.Text = string.Empty; + textBoxHostName.Text = string.Empty; + textBoxUserName.Text = string.Empty; + textBoxApp.Text = string.Empty; + textBoxClass.Text = string.Empty; + textBoxMethod.Text = string.Empty; + textBoxLine.Text = string.Empty; + textBoxfile.Text = string.Empty; + textBoxMessage.Text = string.Empty; + textBoxThrowable.Text = string.Empty; + textBoxLog.Text = string.Empty; + + textBoxIdentity.Text = string.Empty; + textBoxNDC.Text = string.Empty; + } + + /// + /// Opens the file. + /// + /// Name of the file. + private void openFile(string logFileName) + { + Log.Info("Clearing Merged Files"); + _mergedFiles.Clear(); + Log.Info("Loading file " + logFileName); + loadFile(logFileName); + } + + private readonly List _mergedFiles = new List(); + + /// + /// Loads the file. + /// + public void loadFile(string logFileName, bool withMerge = false) + { + if (!withMerge) + { + Log.Info("Clearing entries to load single log file"); + _entries.Clear(); + Log.Info("Notifying Entries property as changed"); + notifyPropertyChanged("Entries"); + Log.Info("Resetting the ListView item source to nothing"); + listView1.ItemsSource = null; + FileName = logFileName; + } + else + { + Log.Info("Adding the log files that need to be merged to mergedFile object"); + if (_mergedFiles.Count == 0) _mergedFiles.Add(FileName); + Log.Info("If the same file is being added then return immediately"); + if (_mergedFiles.Contains(logFileName)) return; + Log.Info("If not add the file to the merged list"); + _mergedFiles.Add(logFileName); + } + + Log.Info("Clearing the log filter"); + logFilter.Clear(); + Log.Info("Turning off the IsFiltered property of the FilterIndicator"); + FilterIndicator.IsFiltered = false; + + var dt = new DateTime(1970, 1, 1, 0, 0, 0, 0); + var iIndex = 1; + if (withMerge) iIndex = _entries.Count + 1; + + clear(); + + try + { + Log.Info("Initializing FileStream objet to open the log file"); + var oFileStream = new FileStream(logFileName, FileMode.OpenOrCreate, FileAccess.Read, FileShare.ReadWrite); + Log.Info("Initializing a Stream Reader"); + var oStreamReader = new StreamReader(oFileStream); + Log.Info("Read all the contents in the log file to a StreamReader"); + var sBuffer = string.Format("{0}", oStreamReader.ReadToEnd()); + Log.Info("Closing StreamReader and FileStream object"); + oStreamReader.Close(); + oFileStream.Close(); + + #region Read File Buffer + //////////////////////////////////////////////////////////////////////////////// + Log.Info("Reading File"); + var oStringReader = new StringReader(sBuffer); + var oXmlTextReader = new XmlTextReader(oStringReader) { Namespaces = false }; + Log.Info("Start reading the log file"); + while (oXmlTextReader.Read()) + { + if ((oXmlTextReader.NodeType != XmlNodeType.Element) || (oXmlTextReader.Name != "log4j:event")) + continue; + var logentry = new LogEntry { Item = iIndex }; + +// ReSharper disable StringLiteralsWordIsNotInDictionary + var dSeconds = Convert.ToDouble(oXmlTextReader.GetAttribute("timestamp")); +// ReSharper restore StringLiteralsWordIsNotInDictionary + logentry.TimeStamp = dt.AddMilliseconds(dSeconds).ToLocalTime(); + logentry.Thread = oXmlTextReader.GetAttribute("thread"); + logentry.Logger = oXmlTextReader.GetAttribute("logger"); + logentry.LogFile = logFileName; + + #region get level + //////////////////////////////////////////////////////////////////////////////// + logentry.Level = oXmlTextReader.GetAttribute("level"); + switch (logentry.Level) + { + case "ERROR": + { + logentry.Image = LogEntry.Images(LogImageType.Error); + break; + } + case "INFO": + { + logentry.Image = LogEntry.Images(LogImageType.Info); + break; + } + case "DEBUG": + { + logentry.Image = LogEntry.Images(LogImageType.Debug); + break; + } + case "WARN": + { + logentry.Image = LogEntry.Images(LogImageType.Warn); + break; + } + case "FATAL": + { + logentry.Image = LogEntry.Images(LogImageType.Fatal); + break; + } + default: + { + logentry.Image = LogEntry.Images(LogImageType.Custom); + break; + } + } + //////////////////////////////////////////////////////////////////////////////// + #endregion + + #region read xml + //////////////////////////////////////////////////////////////////////////////// + while (oXmlTextReader.Read()) + { + var breakLoop = false; + switch (oXmlTextReader.Name) + { + case "log4j:event": + breakLoop = true; + break; + default: + switch (oXmlTextReader.Name) + { + case ("log4j:message"): + { + logentry.Message = oXmlTextReader.ReadString(); + break; + } + case ("log4j:data"): + { + switch (oXmlTextReader.GetAttribute("name")) + { + case ("log4jmachinename"): + { + logentry.MachineName = oXmlTextReader.GetAttribute("value"); + break; + } + case ("log4net:HostName"): + { + logentry.HostName = oXmlTextReader.GetAttribute("value"); + break; + } + case ("log4net:UserName"): + { + logentry.UserName = oXmlTextReader.GetAttribute("value"); + break; + } + case ("log4net:Identity"): + { + logentry.Identity = oXmlTextReader.GetAttribute("value"); + break; + } + case ("NDC"): + { + logentry.Ndc = oXmlTextReader.GetAttribute("value"); + break; + } + case ("log4japp"): + { + logentry.App = oXmlTextReader.GetAttribute("value"); + break; + } + } + break; + } +// ReSharper disable StringLiteralsWordIsNotInDictionary + case ("log4j:throwable"): +// ReSharper restore StringLiteralsWordIsNotInDictionary + { + logentry.Throwable = oXmlTextReader.ReadString(); + break; + } + case ("log4j:locationInfo"): + { + logentry.Class = oXmlTextReader.GetAttribute("class"); + logentry.Method = oXmlTextReader.GetAttribute("method"); + logentry.File = oXmlTextReader.GetAttribute("file"); + logentry.Line = oXmlTextReader.GetAttribute("line"); + break; + } + } + break; + } + if (breakLoop) break; + } + //////////////////////////////////////////////////////////////////////////////// + #endregion + + _entries.Add(logentry); + iIndex++; + } + notifyPropertyChanged("Entries"); + Log.Info("Completing of Log xml reading"); + //////////////////////////////////////////////////////////////////////////////// + #endregion + } + catch (Exception ex) + { + MessageBox.Show(ex.ToString()); + } + + #region Show Counts + //////////////////////////////////////////////////////////////////////////////// + Log.Info("Calculating the number of ERROR in the log file"); + var errorCount = + ( + from entry in Entries + where entry.Level == "ERROR" + select entry + ).Count(); + + if (errorCount > 0) + { + labelErrorCount.Text = string.Format("{0:#,#} ", errorCount); + labelErrorCount.Visibility = Visibility.Visible; + imageError.Visibility = Visibility.Visible; + } + else + { + labelErrorCount.Visibility = Visibility.Hidden; + imageError.Visibility = Visibility.Hidden; + } + Log.Info("ERROR count is " + errorCount); + Log.Info("Calculating the number of INFO in the log file"); + var infoCount = + ( + from entry in Entries + where entry.Level == "INFO" + select entry + ).Count(); + + if (infoCount > 0) + { + labelInfoCount.Text = string.Format("{0:#,#} ", infoCount); + labelInfoCount.Visibility = Visibility.Visible; + imageInfo.Visibility = Visibility.Visible; + } + else + { + labelInfoCount.Visibility = Visibility.Hidden; + imageInfo.Visibility = Visibility.Hidden; + } + Log.Info("INFO count is " + infoCount); + Log.Info("Calculating the number of WARN in the log file"); + var warnCount = + ( + from entry in Entries + where entry.Level == "WARN" + select entry + ).Count(); + + if (warnCount > 0) + { + labelWarnCount.Text = string.Format("{0:#,#} ", warnCount); + labelWarnCount.Visibility = Visibility.Visible; + imageWarn.Visibility = Visibility.Visible; + } + else + { + labelWarnCount.Visibility = Visibility.Hidden; + imageWarn.Visibility = Visibility.Hidden; + } + Log.Info("WARN count is " + warnCount); + Log.Info("Calculating the number of DEBUG in the log file"); + var debugCount = + ( + from entry in Entries + where entry.Level == "DEBUG" + select entry + ).Count(); + + if (debugCount > 0) + { + labelDebugCount.Text = string.Format("{0:#,#} ", debugCount); + labelDebugCount.Visibility = Visibility.Visible; + imageDebug.Visibility = Visibility.Visible; + } + else + { + imageDebug.Visibility = Visibility.Hidden; + labelDebugCount.Visibility = Visibility.Hidden; + } + Log.Info("DEBUG count is " + debugCount); + tbFiltered.Text = Entries.Count().ToString(); + FilterIndicator.IsFiltered = false; + + //////////////////////////////////////////////////////////////////////////////// + #endregion + Log.Info("Initializing ListView to show the log entries"); + listView1.ItemsSource = null; + Log.Info("Loading ListView with Log Entries"); + listView1.ItemsSource = (from e in _entries orderby e.TimeStamp select e).ToList(); + Log.Info("Clearing Sort Adorner"); + clearSortAdorner(); + + if (!withMerge) + { + textboxFileName.Text = logFileName; + Title = string.Format(Properties.Resources.WindowTitle + " - " + logFileName, Assembly.GetExecutingAssembly().GetName().Version); + Log.Info("Setting the title as " + Title); + return; + } + + var s = ""; + foreach (var sm in _mergedFiles) + { + if (s != "") s += "; "; + s += Path.GetFileName(sm); + } + + textboxFileName.Text = s; + Title = string.Format(Properties.Resources.WindowTitle + " - " + s, Assembly.GetExecutingAssembly().GetName().Version); + Log.Info("Setting the title as " + Title); + } + + #region ListView Events + //////////////////////////////////////////////////////////////////////////////// + private void listView1_SelectionChanged(object sender, SelectionChangedEventArgs e) + { + Log.Info("Inside ListView selection changed and clearing the text controls"); + clear(); + Log.Info("Getting the current Log Entry"); + + if (listView1.SelectedItems.Count == 1) + { + Log.Info("Show the selected log entry on the UI"); + + var logentry = listView1.SelectedItem as LogEntry; + + image1.Source = logentry.Image; + textBoxLevel.Text = logentry.Level; + textBoxTimeStamp.Text = + logentry.TimeStamp.ToString(Properties.Resources.DisplayDayFormat + " " + CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern + " " + + Properties.Resources.DisplayTimeFormat); + textBoxMachineName.Text = logentry.MachineName; + textBoxThread.Text = logentry.Thread; + textBoxItem.Text = logentry.Item.ToString(); + textBoxHostName.Text = logentry.HostName; + textBoxUserName.Text = logentry.UserName; + textBoxApp.Text = logentry.App; + textBoxClass.Text = logentry.Class; + textBoxMethod.Text = logentry.Method; + textBoxLine.Text = logentry.Line; + textBoxLog.Text = logentry.LogFile; + textBoxMessage.Text = logentry.Message; + textBoxThrowable.Text = logentry.Throwable; + textBoxfile.Text = logentry.File; + textBoxLogger.Text = logentry.Logger; + + textBoxIdentity.Text = logentry.Identity; + textBoxNDC.Text = logentry.Ndc; + } + else if (listView1.SelectedItems.Count > 1) + { + Log.Info("Show the selected log entries on the UI"); + + foreach (LogEntry logEntry in listView1.SelectedItems) + { + var msgToAppend = string.Format( + new StringBuilder() + .AppendLine("----------------- Entry #: {0} -------------------") + .AppendLine("{1}").AppendLine().ToString() + , logEntry.Item + , logEntry.Message); + + textBoxMessage.Text += msgToAppend; + textBoxThrowable.Text += logEntry.Throwable; + } + } + } + + private ListSortDirection direction = ListSortDirection.Descending; + private GridViewColumnHeader curSortCol; + private SortAdorner curAdorner; + + + /// + /// Handles the HeaderClicked event of the ListView1 control. + /// + /// The source of the event. + /// The instance containing the event data. + private void listView1_HeaderClicked(object sender, RoutedEventArgs e) + { + Log.Info("Handles the HeaderClicked event of the ListView control"); + var header = e.OriginalSource as GridViewColumnHeader; + + if (header == null) + return; + + var source = e.Source as ListView; + if (source == null) return; + var dataView = CollectionViewSource.GetDefaultView(source.ItemsSource); + if (dataView == null) return; + Log.Info("Clearing all Sort Descriptions"); + dataView.SortDescriptions.Clear(); + Log.Info("Determining the Sort direction"); + direction = direction == ListSortDirection.Ascending ? ListSortDirection.Descending : ListSortDirection.Ascending; + if (header != null && header.Content != null) + { + if (header.Content.ToString() != "") + { + var description = new SortDescription(header.Content.ToString(), direction); + Log.Info("Adding sort description from header content"); + dataView.SortDescriptions.Add(description); + } + } + Log.Info("Refreshing the data view"); + dataView.Refresh(); + Log.Info("Clearing the Sort Adorner"); + clearSortAdorner(); + curSortCol = header; + curAdorner = new SortAdorner(curSortCol, direction); + if (curSortCol != null) AdornerLayer.GetAdornerLayer(curSortCol).Add(curAdorner); + } + + private void clearSortAdorner() + { + if (curSortCol != null) + { + Log.Info("Getting current column and remove the existing sort adorner"); + AdornerLayer.GetAdornerLayer(curSortCol).Remove(curAdorner); + } + } + + //////////////////////////////////////////////////////////////////////////////// + #endregion + + #region DragDrop + //////////////////////////////////////////////////////////////////////////////// + private void listView1_Drop(object sender, DragEventArgs e) + { + if (e.Data.GetDataPresent(DataFormats.FileDrop)) + { + try + { + Log.Info("Getting file drop data"); + var a = (Array)e.Data.GetData(DataFormats.FileDrop); + Log.Info("Getting the Keyboard modifiers for validation"); + var b = (Keyboard.Modifiers == ModifierKeys.Alt) || (a.Length > 1); + Log.Info("Checking if drag drop has data"); + if (a != null) + { + Log.Info("Iterating through the array of drag drop data"); + foreach (var file in a) + { + var f = file.ToString(); // a.GetValue(0).ToString(); + var bb = b; + Dispatcher.BeginInvoke( + DispatcherPriority.Background, + (Action)(() => loadFile(f, bb))); + } + } + } + catch (Exception ex) + { + Log.Error("Error in Drag Drop", ex); + MessageBox.Show("Error in Drag Drop: " + ex.Message); + } + } + } + + //////////////////////////////////////////////////////////////////////////////// + #endregion + + #region Menu Events + //////////////////////////////////////////////////////////////////////////////// + private void doMenuFileOpen() + { + Log.Info("Initializing the open file dialog object"); + var oOpenFileDialog = new System.Windows.Forms.OpenFileDialog + { + Filter = Properties.Resources.XmlOpenFilter, + DefaultExt = "xml", + Multiselect = true, + Title = Properties.Resources.OpenDialogTitle + }; + if (oOpenFileDialog.ShowDialog() != System.Windows.Forms.DialogResult.OK) return; + FileName = oOpenFileDialog.FileName; + Log.Info("FileName is " + FileName); + for (var i = 0; i < oOpenFileDialog.FileNames.Length; i++) + { + if (Log.IsDebugEnabled) + { + Log.Info("Loading file " + oOpenFileDialog.FileNames[i]); + } + loadFile(oOpenFileDialog.FileNames[i], i > 0); + } + } + + private void mergeFile_Click(object sender, RoutedEventArgs e) + { + Log.Info("Initializing the open file dialog for filer merge click event"); + var oOpenFileDialog = new System.Windows.Forms.OpenFileDialog + { + Filter = Properties.Resources.XmlOpenFilter, + DefaultExt = "xml", + Multiselect = true, + Title = Properties.Resources.MergeOpenDialog + }; + if (oOpenFileDialog.ShowDialog() != System.Windows.Forms.DialogResult.OK) return; + foreach (var t in oOpenFileDialog.FileNames) + { + if (Log.IsDebugEnabled) + { + Log.Info("Loading file " + t); + loadFile(t, true); + } + } + } + + private void doMenuRefresh() + { + if (string.IsNullOrWhiteSpace(FileName)) + { + Log.Info("Unable to refresh the empty source"); + MessageBox.Show(Properties.Resources.CantRefreshEmptySource); + return; + } + if (_mergedFiles.Count > 0) + { + Log.Info("There is no refresh when multiple files are open"); + MessageBox.Show(Properties.Resources.NoRefreshOnMultipleSource); + return; + } + Log.Info("Loading file " + FileName); + loadFile(FileName); + listView1.SelectedIndex = listView1.Items.Count - 1; + if (listView1.Items.Count > 4) + { + listView1.SelectedIndex -= 3; + } + listView1.ScrollIntoView(listView1.SelectedItem); + var lvi = listView1.ItemContainerGenerator.ContainerFromIndex(listView1.SelectedIndex) as ListViewItem; + if (lvi == null) return; + lvi.BringIntoView(); + lvi.Focus(); + FilterIndicator.IsFiltered = false; + tbFiltered.Text = Entries.Count().ToString(); + } + + private static void doMenuAbout() + { + Log.Info("Initializing about screen"); + var about = new About(); + Log.Info("Displaying/Showing about screen"); + about.ShowDialog(); + } + + + private LogFilter logFilter = new LogFilter(); + + private void doMenuFilter() + { + Log.Info("Cloning the log filter"); + var tempFilter = logFilter.Clone(); + var filter = new Filter(Entries, tempFilter) { Owner = this }; + Log.Info("Showing the filter dialog"); + + filter.ShowDialog(); + + if (filter.DialogResult != true) + return; + + Log.Info("Cloning the log filter again after loading new filters"); + logFilter = tempFilter.Clone(); + logFilter.TrimAll(); + + Log.Info("Initializing the query object"); + var query = (from e in Entries select e); + + if (!string.IsNullOrEmpty(logFilter.App)) + query = query.Where(e => e.App.ToUpperInvariant().Contains(logFilter.App.ToUpperInvariant())); + if (!string.IsNullOrEmpty(logFilter.Level)) query = query.Where(e => e.Level == logFilter.Level); + if (!string.IsNullOrEmpty(logFilter.Thread)) query = query.Where(e => e.Thread == logFilter.Thread); + if (!string.IsNullOrEmpty(logFilter.Message)) + query = query.Where(e => e.Message.ToUpperInvariant().Contains(logFilter.Message.ToUpperInvariant())); + if (!string.IsNullOrEmpty(logFilter.MachineName)) + query = query.Where(e => e.MachineName.ToUpperInvariant().Contains(logFilter.MachineName.ToUpperInvariant())); + if (!string.IsNullOrEmpty(logFilter.UserName)) + query = query.Where(e => e.UserName.ToUpperInvariant().Contains(logFilter.UserName.ToUpperInvariant())); + if (!string.IsNullOrEmpty(logFilter.HostName)) + query = query.Where(e => e.HostName.ToUpperInvariant().Contains(logFilter.HostName.ToUpperInvariant())); + if (!string.IsNullOrEmpty(logFilter.Throwable)) + query = query.Where(e => e.Throwable.ToUpperInvariant().Contains(logFilter.Throwable.ToUpperInvariant())); + if (!string.IsNullOrEmpty(logFilter.Class)) + query = query.Where(e => e.Class.ToUpperInvariant().Contains(logFilter.Class.ToUpperInvariant())); + if (!string.IsNullOrEmpty(logFilter.Method)) + query = query.Where(e => e.Method.ToUpperInvariant().Contains(logFilter.Method.ToUpperInvariant())); + if (!string.IsNullOrEmpty(logFilter.File)) + query = query.Where(e => e.File.ToUpperInvariant().Contains(logFilter.File.ToUpperInvariant())); + if (!string.IsNullOrEmpty(logFilter.LogName)) + query = query.Where(e => e.LogFile.ToUpperInvariant().Contains(logFilter.LogName.ToUpperInvariant())); + if (!string.IsNullOrEmpty(logFilter.Identity)) + query = query.Where(e => e.Identity.ToUpperInvariant().Contains(logFilter.Identity.ToUpperInvariant())); + if (!string.IsNullOrEmpty(logFilter.Ndc)) + query = query.Where(e => e.Ndc.ToUpperInvariant().Contains(logFilter.Ndc.ToUpperInvariant())); + if (!string.IsNullOrEmpty(logFilter.Logger)) + query = query.Where(e => e.Logger.ToUpperInvariant().Contains(logFilter.Logger.ToUpperInvariant())); + + // TODO: shouldn't we be showing 0 results if the filter matched 0 results? + var c = query.Count(); + Log.Info("Received queries " + query.Count()); + + FilterIndicator.IsFiltered = query.Any() && (c != Entries.Count()); + + logFilter.IsFiltered = FilterIndicator.IsFiltered; + Log.Info("Log Filter status " + logFilter.IsFiltered); + + LogFilter.FilteredEntries = FilterIndicator.IsFiltered ? query.ToList() : Entries; + listView1.ItemsSource = logFilter.IsFiltered ? LogFilter.FilteredEntries : Entries; + tbFiltered.Text = FilterIndicator.IsFiltered ? c + "/" + Entries.Count() : Entries.Count().ToString(); + } + + private void cancelFilter() + { + Log.Info("Clearing Log Filter"); + logFilter.Clear(); + FilterIndicator.IsFiltered = false; + LogFilter.FilteredEntries = Entries; + listView1.ItemsSource = _entries; + tbFiltered.Text = _entries.Count().ToString(); + } + + private void filterIndicator_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) + { + if (!FilterIndicator.IsFiltered) return; + cancelFilter(); + } + + private enum MessageLevel { Error, Warning, Debug, Info } + + private void quickFilter(MessageLevel level) + { + string s; + Log.Info("Using quick filter for " + level); + switch (level) + { + case MessageLevel.Error: + s = "ERROR"; + break; + case MessageLevel.Warning: + s = "WARN"; + break; + case MessageLevel.Debug: + s = "DEBUG"; + break; + case MessageLevel.Info: + s = "INFO"; + break; + default: + throw new ArgumentOutOfRangeException("level"); + } + logFilter.Clear(); + logFilter.Level = s; + logFilter.TrimAll(); + + Log.Info("Initializing the query objet for " + level); + var query = (from e in Entries select e); + if (!string.IsNullOrWhiteSpace(logFilter.Level)) query = query.Where(e => e.Level == logFilter.Level); + + var c = query.Count(); + FilterIndicator.IsFiltered = c > 0 && (c != Entries.Count()); + logFilter.IsFiltered = FilterIndicator.IsFiltered; + LogFilter.FilteredEntries = FilterIndicator.IsFiltered ? query.ToList() : Entries; + listView1.ItemsSource = logFilter.IsFiltered ? LogFilter.FilteredEntries : Entries; + tbFiltered.Text = FilterIndicator.IsFiltered ? c + "/" + Entries.Count() : Entries.Count().ToString(); + + } + + private void imageError_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) + { + Log.Info("Enabling Quick filter for ERROR message level"); + quickFilter(MessageLevel.Error); + } + + private void imageInfo_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) + { + Log.Info("Enabling Quick filter for INFO message level"); + quickFilter(MessageLevel.Info); + } + + private void imageWarn_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) + { + Log.Info("Enabling Quick filter for WARN message level"); + quickFilter(MessageLevel.Warning); + } + + private void imageDebug_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) + { + Log.Info("Enabling Quick filter for DEBUG message level"); + quickFilter(MessageLevel.Debug); + } + + private int currentIndex; + private void find(int loopDirection) + { + if (textBoxFind.Text.Length <= 0) return; + Log.Info("Finding in Loop Direction " + loopDirection); + if (loopDirection == 0) + { + for (var i = currentIndex + 1; i < listView1.Items.Count; i++) + { + var item = (LogEntry)listView1.Items[i]; + if (!item.Message.ToUpper().Contains(textBoxFind.Text.ToUpper())) continue; + listView1.SelectedIndex = i; + listView1.ScrollIntoView(listView1.SelectedItem); + var lvi = listView1.ItemContainerGenerator.ContainerFromIndex(i) as ListViewItem; + if (lvi != null) + { + lvi.BringIntoView(); + lvi.Focus(); + } + currentIndex = i; + System.Media.SystemSounds.Beep.Play(); + return; + } + } + else + { + for (var i = currentIndex - 1; i > 0 && i < listView1.Items.Count; i--) + { + var item = (LogEntry)listView1.Items[i]; + if (!item.Message.ToUpper().Contains(textBoxFind.Text.ToUpper())) continue; + listView1.SelectedIndex = i; + listView1.ScrollIntoView(listView1.SelectedItem); + var lvi = listView1.ItemContainerGenerator.ContainerFromIndex(i) as ListViewItem; + if (lvi != null) + { + lvi.BringIntoView(); + lvi.Focus(); + } + currentIndex = i; + System.Media.SystemSounds.Beep.Play(); + return; + } + } + System.Media.SystemSounds.Asterisk.Play(); + } + + private void buttonFindNext_Click(object sender, RoutedEventArgs e) + { + Log.Info("Triggering find next"); + find(0); + } + + private void buttonFindPrevious_Click(object sender, RoutedEventArgs e) + { + Log.Info("Triggering find previous"); + find(1); + } + + private void textBoxFind_KeyDown(object sender, KeyEventArgs e) + { + if (e.Key != Key.Enter) return; + if (textBoxFind.Text.Length > 0) + { + find(0); + } + } + + private void textBoxFind_PreviewKeyDown(object sender, KeyEventArgs e) + { + if (e.Key == Key.Enter) + { + e.Handled = true; + find(0); + } + } + + //////////////////////////////////////////////////////////////////////////////// + #endregion + + + + /// + /// Gets a value indicating whether this instance can merge. + /// + /// true if this instance can merge; otherwise, false. + public bool CanMerge => _entries != null && _entries.Any(); + + /// + /// Occurs when a property value changes. + /// + public event PropertyChangedEventHandler PropertyChanged; + public void notifyPropertyChanged(string property) + { + if (property == "Entries") notifyPropertyChanged("CanMerge"); + if (PropertyChanged == null) return; + var p = PropertyChanged; + p(this, new PropertyChangedEventArgs(property)); + } + + private void label6b_MouseDoubleClick(object sender, MouseButtonEventArgs e) + { + LogEntry.JustFileName = !LogEntry.JustFileName; + Log.Info("log entry file name on label6b mouse double click " + LogEntry.JustFileName); + listView1_SelectionChanged(this, null); + } + + #region commands + + private void openCanExecute(object sender, CanExecuteRoutedEventArgs e) + { + e.CanExecute = true; + } + + private void openExecuted(object sender, ExecutedRoutedEventArgs e) + { + Log.Info("Executing menu file open"); + doMenuFileOpen(); + } + + private void exitCanExecute(object sender, CanExecuteRoutedEventArgs e) + { + e.CanExecute = true; + } + + private void exitExecuted(object sender, ExecutedRoutedEventArgs e) + { + Close(); + } + + private void refreshCanExecute(object sender, CanExecuteRoutedEventArgs e) + { + e.CanExecute = !(string.IsNullOrWhiteSpace(FileName) || (_mergedFiles.Count > 0)); + Log.Info("Can Refresh execute " + e.CanExecute); + } + + private void refreshExecuted(object sender, ExecutedRoutedEventArgs e) + { + Log.Info("Execute menu refresh"); + doMenuRefresh(); + } + + private void filterCanExexute(object sender, CanExecuteRoutedEventArgs e) + { + e.CanExecute = !string.IsNullOrWhiteSpace(FileName) || _mergedFiles.Count > 0; + Log.Info("Can filter execute " + e.CanExecute); + } + + private void filterExecuted(object sender, ExecutedRoutedEventArgs e) + { + Log.Info("Do menu filter"); + doMenuFilter(); + } + + private void aboutCanExecute(object sender, CanExecuteRoutedEventArgs e) + { + e.CanExecute = true; + } + + private void aboutExecuted(object sender, ExecutedRoutedEventArgs e) + { + Log.Info("Executing about menu"); + doMenuAbout(); + } + #endregion + + private void window_Closed(object sender, EventArgs e) + { + Log.Info("Saving default application width,height,split to open next time"); + Properties.Settings.Default.AppWidth = Width; + Properties.Settings.Default.AppHeight = Height; + Properties.Settings.Default.Split = MainGrid.RowDefinitions[0].Height.Value; + Properties.Settings.Default.Save(); + } + + private void resetSeparator_Click(object sender, RoutedEventArgs e) + { + Log.Info("Defining the height when reset reset separator is clicked"); + MainGrid.RowDefinitions[0].Height = new GridLength(ActualHeight / 3); + } + } +} diff --git a/ObjectCopier.cs b/ObjectCopier.cs index 1a5092e..2b9847f 100644 --- a/ObjectCopier.cs +++ b/ObjectCopier.cs @@ -69,7 +69,7 @@ public static class ObjectCopier /// Perform a deep Copy of the object. /// /// The copied object. - private static readonly ILog log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); + private static readonly ILog Log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); /// /// Clones the specified source. @@ -83,22 +83,22 @@ public static T Clone(this T source) if (!typeof(T).IsSerializable) { const string s = "Type must be serializable"; - log.Error(s); - throw new ArgumentException(s, "source"); + Log.Error(s); + throw new ArgumentException(s, nameof(source)); } // Don't serialize a null object, simply return the default for that object - log.Info("Don't serialize a null object, simply return the default for that object "); + Log.Info("Don't serialize a null object, simply return the default for that object "); if (ReferenceEquals(source, null)) { return default(T); } - log.Info("Initializing IFormatter object based on BinaryFormatter"); + Log.Info("Initializing IFormatter object based on BinaryFormatter"); IFormatter formatter = new BinaryFormatter(); - log.Info("Initializing Memory Stream"); + Log.Info("Initializing Memory Stream"); Stream stream = new MemoryStream(); - log.Info("Using the stream object to format the serialized data"); + Log.Info("Using the stream object to format the serialized data"); using (stream) { formatter.Serialize(stream, source); diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs index e88a477..7d937d7 100644 --- a/Properties/AssemblyInfo.cs +++ b/Properties/AssemblyInfo.cs @@ -6,13 +6,13 @@ // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. -[assembly: AssemblyTitle("LogViewer")] +[assembly: AssemblyTitle("Log4Net Viewer For Windows Store")] [assembly: AssemblyDescription("Log4Net XML Log Viewer")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("E-Naxos")] [assembly: AssemblyProduct("LogViewer")] [assembly: AssemblyCopyright("Original code Ken C. Len / Enhanced Version Olivier Dahan")] -[assembly: AssemblyTrademark("http://yourlog4netviewer.codeplex.com/")] +[assembly: AssemblyTrademark("https://github.com/odahan/LogViewerForLog4Net")] [assembly: AssemblyCulture("")] // Setting ComVisible to false makes the types in this assembly not visible @@ -50,6 +50,8 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("2.7.5.0")] -[assembly: AssemblyFileVersion("2.7.5.0")] +[assembly: AssemblyVersion("3.0.0.0")] +[assembly: AssemblyFileVersion("3.0.0.0")] [assembly: NeutralResourcesLanguageAttribute("en-US")] +[assembly: Guid("C237D3F9-67E5-4D8D-9056-A9248F66558B")] + diff --git a/Properties/Resources.Designer.cs b/Properties/Resources.Designer.cs index dd8721c..0df4a23 100644 --- a/Properties/Resources.Designer.cs +++ b/Properties/Resources.Designer.cs @@ -1,10 +1,10 @@ //------------------------------------------------------------------------------ // -// This code was generated by a tool. -// Runtime Version:4.0.30319.18047 +// Ce code a été généré par un outil. +// Version du runtime :4.0.30319.42000 // -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. +// Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si +// le code est régénéré. // //------------------------------------------------------------------------------ @@ -13,12 +13,12 @@ namespace LogViewer.Properties { /// - /// A strongly-typed resource class, for looking up localized strings, etc. + /// Une classe de ressource fortement typée destinée, entre autres, à la consultation des chaînes localisées. /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. + // Cette classe a été générée automatiquement par la classe StronglyTypedResourceBuilder + // à l'aide d'un outil, tel que ResGen ou Visual Studio. + // Pour ajouter ou supprimer un membre, modifiez votre fichier .ResX, puis réexécutez ResGen + // avec l'option /str ou régénérez votre projet VS. [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] @@ -33,7 +33,7 @@ internal Resources() { } /// - /// Returns the cached ResourceManager instance used by this class. + /// Retourne l'instance ResourceManager mise en cache utilisée par cette classe. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] internal static global::System.Resources.ResourceManager ResourceManager { @@ -47,8 +47,8 @@ internal Resources() { } /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. + /// Remplace la propriété CurrentUICulture du thread actuel pour toutes + /// les recherches de ressources à l'aide de cette classe de ressource fortement typée. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] internal static global::System.Globalization.CultureInfo Culture { @@ -61,7 +61,7 @@ internal Resources() { } /// - /// Looks up a localized string similar to Can't refresh an empty view.... + /// Recherche une chaîne localisée semblable à Can't refresh an empty view.... /// internal static string CantRefreshEmptySource { get { @@ -70,7 +70,7 @@ internal static string CantRefreshEmptySource { } /// - /// Looks up a localized string similar to ddd dd/MM/yyyy HH:mm:ss.fff. + /// Recherche une chaîne localisée semblable à ddd dd/MM/yyyy HH:mm:ss.fff. /// internal static string DisplayDatetimeFormat { get { @@ -79,7 +79,7 @@ internal static string DisplayDatetimeFormat { } /// - /// Looks up a localized string similar to ddd. + /// Recherche une chaîne localisée semblable à ddd. /// internal static string DisplayDayFormat { get { @@ -88,7 +88,7 @@ internal static string DisplayDayFormat { } /// - /// Looks up a localized string similar to HH:mm:ss.fff. + /// Recherche une chaîne localisée semblable à HH:mm:ss.fff. /// internal static string DisplayTimeFormat { get { @@ -97,7 +97,7 @@ internal static string DisplayTimeFormat { } /// - /// Looks up a localized string similar to Merge one or more Log4Net Xml Log files. + /// Recherche une chaîne localisée semblable à Merge one or more Log4Net Xml Log files. /// internal static string MergeOpenDialog { get { @@ -106,7 +106,7 @@ internal static string MergeOpenDialog { } /// - /// Looks up a localized string similar to Refresh is not working on merged files.. + /// Recherche une chaîne localisée semblable à Refresh is not working on merged files.. /// internal static string NoRefreshOnMultipleSource { get { @@ -115,7 +115,7 @@ internal static string NoRefreshOnMultipleSource { } /// - /// Looks up a localized string similar to Open one or more Log4Net Xml Log files. + /// Recherche une chaîne localisée semblable à Open one or more Log4Net Xml Log files. /// internal static string OpenDialogTitle { get { @@ -124,7 +124,7 @@ internal static string OpenDialogTitle { } /// - /// Looks up a localized string similar to Log4Net XML LogViewer v.{0}. + /// Recherche une chaîne localisée semblable à Log4Net XML LogViewer v.{0}. /// internal static string WindowTitle { get { @@ -133,7 +133,7 @@ internal static string WindowTitle { } /// - /// Looks up a localized string similar to Xml log (*.xml*)|*.xml*. + /// Recherche une chaîne localisée semblable à Xml log (*.xml*)|*.xml*. /// internal static string XmlOpenFilter { get { diff --git a/Properties/Settings.Designer.cs b/Properties/Settings.Designer.cs index dc44ad7..2ba09d1 100644 --- a/Properties/Settings.Designer.cs +++ b/Properties/Settings.Designer.cs @@ -1,10 +1,10 @@ //------------------------------------------------------------------------------ // -// This code was generated by a tool. -// Runtime Version:4.0.30319.18047 +// Ce code a été généré par un outil. +// Version du runtime :4.0.30319.42000 // -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. +// Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si +// le code est régénéré. // //------------------------------------------------------------------------------ @@ -12,7 +12,7 @@ namespace LogViewer.Properties { [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.1.0.0")] internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); diff --git a/RecentFileList.cs b/RecentFileList.cs index 7445fba..5f47037 100644 --- a/RecentFileList.cs +++ b/RecentFileList.cs @@ -80,7 +80,7 @@ private interface IPersist void RemoveFile(string filepath, int max); } - private static readonly ILog log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); + private static readonly ILog Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private IPersist persister { get; set; } @@ -153,15 +153,15 @@ private interface IPersist /// public event EventHandler MenuClick; - Separator separator; - private List recentFiles; + Separator _separator; + private List _recentFiles; /// /// Initializes a new instance of the class. /// public RecentFileList() { - log.Info("Initializing the registry persister"); + Log.Info("Initializing the registry persister"); persister = new RegistryPersister(); MaxNumberOfFiles = 9; @@ -174,11 +174,11 @@ public RecentFileList() private void hookFileMenu() { - log.Info("Hooking up the file menu"); + Log.Info("Hooking up the file menu"); var parent = Parent as MenuItem; if (parent == null) { - log.Error("Parent must be a menuItem"); + Log.Error("Parent must be a menuItem"); throw new ApplicationException("Parent must be a MenuItem"); } @@ -190,7 +190,8 @@ private void hookFileMenu() FileMenu.SubmenuOpened += fileMenu_SubmenuOpened; } - private List theRecentFiles { get { return persister.RecentFiles(MaxNumberOfFiles); } } + private List TheRecentFiles => persister.RecentFiles(MaxNumberOfFiles); + /// /// Removes the file. /// @@ -203,46 +204,46 @@ private void hookFileMenu() /// The file path. public void InsertFile(string filePath) { persister.InsertFile(filePath, MaxNumberOfFiles); } - void fileMenu_SubmenuOpened(object sender, RoutedEventArgs e) + private void fileMenu_SubmenuOpened(object sender, RoutedEventArgs e) { setMenuItems(); } void setMenuItems() { - log.Info("Removing Menu Items"); + Log.Info("Removing Menu Items"); removeMenuItems(); - log.Info("Loading Recent files"); + Log.Info("Loading Recent files"); loadRecentFiles(); - log.Info("Inserting Menu items"); + Log.Info("Inserting Menu items"); insertMenuItems(); } void removeMenuItems() { - log.Info("Removing the menu separators"); - if (separator != null) FileMenu.Items.Remove(separator); + Log.Info("Removing the menu separators"); + if (_separator != null) FileMenu.Items.Remove(_separator); - if (recentFiles != null) + if (_recentFiles != null) { - log.Info("Removing recent files from the menu items"); - foreach (var r in recentFiles.Where(r => r.MenuItem != null)) + Log.Info("Removing recent files from the menu items"); + foreach (var r in _recentFiles.Where(r => r.MenuItem != null)) { FileMenu.Items.Remove(r.MenuItem); } } - separator = null; - recentFiles = null; + _separator = null; + _recentFiles = null; } void insertMenuItems() { - if (recentFiles == null) return; - if (recentFiles.Count == 0) return; + if (_recentFiles == null) return; + if (_recentFiles.Count == 0) return; var iMenuItem = FileMenu.Items.IndexOf(this); - log.Info("Loading recent files as menu items"); - foreach (var r in recentFiles) + Log.Info("Loading recent files as menu items"); + foreach (var r in _recentFiles) { var header = getMenuItemText(r.Number + 1, r.Filepath, r.DisplayPath); @@ -252,8 +253,8 @@ void insertMenuItems() FileMenu.Items.Insert(++iMenuItem, r.MenuItem); } - separator = new Separator(); - FileMenu.Items.Insert(++iMenuItem, separator); + _separator = new Separator(); + FileMenu.Items.Insert(++iMenuItem, _separator); } string getMenuItemText(int index, string filepath, string displaypath) @@ -262,10 +263,10 @@ string getMenuItemText(int index, string filepath, string displaypath) if (delegateGetMenuItemText != null) return delegateGetMenuItemText(index, filepath); var format = (index < 10 ? MenuItemFormatOneToNine : MenuItemFormatTenPlus); - log.Info("Format is " + format); + Log.Info("Format is " + format); var shortPath = shortenPathname(displaypath, MaxPathLength); - log.Info("The short path is " + shortPath); - return String.Format(format, index, filepath, shortPath); + Log.Info("The short path is " + shortPath); + return string.Format(format, index, filepath, shortPath); } // This method is taken from Joe Woodbury's article at: http://www.codeproject.com/KB/cs/mrutoolstripmenu.aspx @@ -287,11 +288,10 @@ string getMenuItemText(int index, string filepath, string displaypath) /// private static string shortenPathname(string pathName, int maxLength) { - log.Info("Checking current pathname is less than the max length allowed"); - log.Info("Path name is " + pathName); - if (pathName.Length <= maxLength) - return pathName; - //TODO: check if path is null + Log.Info("Checking current pathname is less than the max length allowed"); + Log.Info("Path name is " + pathName); + if (string.IsNullOrWhiteSpace(pathName)) return null; + if (pathName.Length <= maxLength) return pathName; var root = Path.GetPathRoot(pathName); if (root.Length > 3) root += Path.DirectorySeparatorChar; @@ -299,7 +299,7 @@ private static string shortenPathname(string pathName, int maxLength) var elements = pathName.Substring(root.Length).Split(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar); var filenameIndex = elements.GetLength(0) - 1; - log.Info("File name index is " + filenameIndex); + Log.Info("File name index is " + filenameIndex); if (elements.GetLength(0) == 1) // pathname is just a root and filename { if (elements[0].Length > 5) // long enough to shorten @@ -316,7 +316,7 @@ private static string shortenPathname(string pathName, int maxLength) { root += "...\\"; - int len = elements[filenameIndex].Length; + var len = elements[filenameIndex].Length; if (len < 6) return root + elements[filenameIndex]; @@ -373,7 +373,7 @@ private static string shortenPathname(string pathName, int maxLength) root += "...\\"; - for (int i = end; i < filenameIndex; i++) + for (var i = end; i < filenameIndex; i++) { root += elements[i] + '\\'; } @@ -385,13 +385,13 @@ private static string shortenPathname(string pathName, int maxLength) private void loadRecentFiles() { - recentFiles = loadRecentFilesCore(); + _recentFiles = loadRecentFilesCore(); } private List loadRecentFilesCore() { - var list = theRecentFiles; + var list = TheRecentFiles; var files = new List(list.Count); @@ -404,18 +404,12 @@ private List loadRecentFilesCore() private class RecentFile { public readonly int Number; - public readonly string Filepath = ""; + public readonly string Filepath = string.Empty; public MenuItem MenuItem; - public string DisplayPath - { - get - { - return Path.Combine( - Path.GetDirectoryName(Filepath), - Path.GetFileNameWithoutExtension(Filepath)); - } - } + public string DisplayPath => string.IsNullOrWhiteSpace(Filepath)? string.Empty : Path.Combine( + Path.GetDirectoryName(Filepath), + Path.GetFileNameWithoutExtension(Filepath)); public RecentFile(int number, string filepath) { @@ -460,29 +454,26 @@ protected virtual void OnMenuClick(MenuItem menuItem) { var filepath = getFilepath(menuItem); - if (String.IsNullOrEmpty(filepath)) return; + if (string.IsNullOrEmpty(filepath)) return; - var dMenuClick = MenuClick; - if (dMenuClick != null) dMenuClick(menuItem, new MenuClickEventArgs(filepath)); + MenuClick?.Invoke(menuItem, new MenuClickEventArgs(filepath)); } private string getFilepath(MenuItem menuItem) { - foreach (var r in recentFiles.Where(r => r.MenuItem == menuItem)) + foreach (var r in _recentFiles.Where(r => r.MenuItem == menuItem)) { return r.Filepath; } - return String.Empty; + return string.Empty; } //----------------------------------------------------------------------------------------- static class ApplicationAttributes { - static readonly Assembly assembly; - - static readonly AssemblyTitleAttribute title; + private static readonly AssemblyTitleAttribute title; static readonly AssemblyCompanyAttribute company; static readonly AssemblyCopyrightAttribute copyright; static readonly AssemblyProductAttribute product; @@ -499,13 +490,13 @@ static ApplicationAttributes() { try { - Title = String.Empty; - CompanyName = String.Empty; - Copyright = String.Empty; - ProductName = String.Empty; - Version = String.Empty; + Title = string.Empty; + CompanyName = string.Empty; + Copyright = string.Empty; + ProductName = string.Empty; + Version = string.Empty; - assembly = Assembly.GetEntryAssembly(); + var assembly = Assembly.GetEntryAssembly(); if (assembly != null) { @@ -590,14 +581,13 @@ public void InsertFile(string filepath, int max) var sThis = key(i); var sNext = key(i + 1); - if (k == null) continue; - var oThis = k.GetValue(sThis); + var oThis = k?.GetValue(sThis); if (oThis == null) continue; k.SetValue(sNext, oThis); } - if (k != null) k.SetValue(key(0), filepath); + k?.SetValue(key(0), filepath); } public void RemoveFile(string theFilePath, int max) @@ -730,7 +720,7 @@ public SmartStream(Stream stream) public void Dispose() { - if (isStreamOwned && Stream != null) Stream.Dispose(); + if (isStreamOwned) Stream?.Dispose(); Stream = null; } @@ -815,7 +805,7 @@ private List load(int max) } finally { - if (x != null) x.Close(); + x?.Close(); } } return list; @@ -870,7 +860,7 @@ private void save(IEnumerable list, int max) } finally { - if (x != null) x.Close(); + x?.Close(); } } } diff --git a/SortAdorner.cs b/SortAdorner.cs index 6637736..8c330ab 100644 --- a/SortAdorner.cs +++ b/SortAdorner.cs @@ -66,10 +66,10 @@ namespace LogViewer /// public class SortAdorner : Adorner { - private readonly static Geometry ascGeometry = + private static readonly Geometry AscGeometry = Geometry.Parse("M 0,0 L 10,0 L 5,5 Z"); - private readonly static Geometry descGeometry = + private static readonly Geometry DescGeometry = Geometry.Parse("M 0,5 L 10,5 L 5,0 Z"); /// @@ -107,7 +107,7 @@ protected override void OnRender(DrawingContext drawingContext) drawingContext.DrawGeometry(Brushes.Red, null, // ReSharper restore AssignNullToNotNullAttribute Direction == ListSortDirection.Ascending ? - ascGeometry : descGeometry); + AscGeometry : DescGeometry); drawingContext.Pop(); } diff --git a/app.config b/app.config index 5bc21cc..fa4d809 100644 --- a/app.config +++ b/app.config @@ -1,30 +1,29 @@ - -
+ +
-
+
- - - - - - + + + + + + - + - - + + - + 800 diff --git a/bin/Debug/LogViewer.exe b/bin/Debug/LogViewer.exe new file mode 100644 index 0000000..7b73be9 Binary files /dev/null and b/bin/Debug/LogViewer.exe differ diff --git a/bin/Debug/LogViewer.exe.config b/bin/Debug/LogViewer.exe.config new file mode 100644 index 0000000..8269f7d --- /dev/null +++ b/bin/Debug/LogViewer.exe.config @@ -0,0 +1,39 @@ + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + 800 + + + 600 + + + 150 + + + + diff --git a/bin/Debug/LogViewer.pdb b/bin/Debug/LogViewer.pdb new file mode 100644 index 0000000..1f073b3 Binary files /dev/null and b/bin/Debug/LogViewer.pdb differ diff --git a/bin/Debug/LogViewerlog.xml b/bin/Debug/LogViewerlog.xml new file mode 100644 index 0000000..cc8bdc1 --- /dev/null +++ b/bin/Debug/LogViewerlog.xml @@ -0,0 +1,3501 @@ +Application [Log4Viewer] Start +Application running in Debug mode +initializing windows components +Initializing the registry persister +Can Refresh execute False +Can filter execute False +Setting default width to 800 +Setting default height to 600 +Setting default Grid Height to 150 +Setting the UI Culture to fr-FR +Initializing event handler for ListView control +Setting the RecentFileList toC:\Users\odaha\AppData\Local +Initializing the RecentFiles menu click +Initializing Error Bitmap +Initializing Info Bitmap +Initializing Warn Bitmap +Initializing Debug Bitmap +Setting the title as Log4Net XML LogViewer v.2.7.5.0 +Applying ExpressionDark Theme +Setting the GridView widths for each column +Hooking up the file menu +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Executing about menu +Initializing about screen +Displaying/Showing about screen +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Saving default application width,height,split to open next time +Application [Log4Viewer] Start +Application running in Debug mode +initializing windows components +Initializing the registry persister +Can Refresh execute False +Can filter execute False +Setting default width to 800 +Setting default height to 600 +Setting default Grid Height to 150 +Setting the UI Culture to fr-FR +Initializing event handler for ListView control +Setting the RecentFileList toC:\Users\odaha\AppData\Local +Initializing the RecentFiles menu click +Initializing Error Bitmap +Initializing Info Bitmap +Initializing Warn Bitmap +Initializing Debug Bitmap +Setting the title as Log4Net XML LogViewer v.3.0.0.0 +Applying ExpressionDark Theme +Setting the GridView widths for each column +Hooking up the file menu +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Executing about menu +Initializing about screen +Displaying/Showing about screen +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Saving default application width,height,split to open next time +Application [Log4Viewer] Start +Application running in Debug mode +initializing windows components +Initializing the registry persister +Can Refresh execute False +Can filter execute False +Setting default width to 800 +Setting default height to 600 +Setting default Grid Height to 150 +Setting the UI Culture to fr-FR +Initializing event handler for ListView control +Setting the RecentFileList toC:\Users\odaha\AppData\Local +Initializing the RecentFiles menu click +Initializing Error Bitmap +Initializing Info Bitmap +Initializing Warn Bitmap +Initializing Debug Bitmap +Setting the title as Log4Net XML LogViewer v.3.0.0.0 +Applying ExpressionDark Theme +Setting the GridView widths for each column +Hooking up the file menu +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Executing about menu +Initializing about screen +Displaying/Showing about screen +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Saving default application width,height,split to open next time +Application [Log4Viewer] Start +Application running in Debug mode +initializing windows components +Initializing the registry persister +Can Refresh execute False +Can filter execute False +Setting default width to 800 +Setting default height to 600 +Setting default Grid Height to 150 +Setting the UI Culture to fr-FR +Initializing event handler for ListView control +Setting the RecentFileList toC:\Users\odaha\AppData\Local +Initializing the RecentFiles menu click +Initializing Error Bitmap +Initializing Info Bitmap +Initializing Warn Bitmap +Initializing Debug Bitmap +Setting the title as Log4Net XML LogViewer v.3.0.0.0 +Applying ExpressionDark Theme +Setting the GridView widths for each column +Hooking up the file menu +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Executing about menu +Initializing about screen +Displaying/Showing about screen +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Saving default application width,height,split to open next time +Application [Log4Viewer] Start +Application running in Debug mode +initializing windows components +Initializing the registry persister +Can Refresh execute False +Can filter execute False +Setting default width to 800 +Setting default height to 600 +Setting default Grid Height to 150 +Setting the UI Culture to fr-FR +Initializing event handler for ListView control +Setting the RecentFileList toC:\Users\odaha\AppData\Local +Initializing the RecentFiles menu click +Initializing Error Bitmap +Initializing Info Bitmap +Initializing Warn Bitmap +Initializing Debug Bitmap +Setting the title as Log4Net XML LogViewer v.3.0.0.0 +Applying ExpressionDark Theme +Setting the GridView widths for each column +Hooking up the file menu +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Executing about menu +Initializing about screen +Displaying/Showing about screen +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Saving default application width,height,split to open next time +Application [Log4Viewer] Start +Application running in Debug mode +initializing windows components +Initializing the registry persister +Can Refresh execute False +Can filter execute False +Setting default width to 800 +Setting default height to 600 +Setting default Grid Height to 150 +Setting the UI Culture to fr-FR +Initializing event handler for ListView control +Setting the RecentFileList toC:\Users\odaha\AppData\Local +Initializing the RecentFiles menu click +Initializing Error Bitmap +Initializing Info Bitmap +Initializing Warn Bitmap +Initializing Debug Bitmap +Setting the title as Log4Net XML LogViewer v.3.0.0.0 +Setting the GridView widths for each column +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Getting file drop data +Getting the Keyboard modifiers for validation +Checking if drag drop has data +Iterating through the array of drag drop data +Clearing entries to load single log file +Notifying Entries property as changed +Resetting the ListView item source to nothing +Clearing the log filter +Turning off the IsFiltered property of the FilterIndicator +Clearing all the text controls +Initializing FileStream objet to open the log file +Initializing a Stream Reader +Read all the contents in the log file to a StreamReader +Closing StreamReader and FileStream object +Reading File +Start reading the log file +Completing of Log xml reading +Calculating the number of ERROR in the log file +ERROR count is 0 +Calculating the number of INFO in the log file +INFO count is 245 +Calculating the number of WARN in the log file +WARN count is 0 +Calculating the number of DEBUG in the log file +DEBUG count is 6 +Initializing ListView to show the log entries +Loading ListView with Log Entries +Clearing Sort Adorner +Setting the title as Log4Net XML LogViewer v.3.0.0.0 - D:\EnCours\LogViewerForLog4Net\bin\Debug\LogViewerlog.xml +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Handles the HeaderClicked event of the ListView control +Clearing all Sort Descriptions +Determining the Sort direction +Adding sort description from header content +Refreshing the data view +Clearing the Sort Adorner +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Handles the HeaderClicked event of the ListView control +Clearing all Sort Descriptions +Determining the Sort direction +Adding sort description from header content +Refreshing the data view +Clearing the Sort Adorner +Getting current column and remove the existing sort adorner +Can Refresh execute True +Can filter execute True +Handles the HeaderClicked event of the ListView control +Clearing all Sort Descriptions +Determining the Sort direction +Adding sort description from header content +Refreshing the data view +Clearing the Sort Adorner +Getting current column and remove the existing sort adorner +Can Refresh execute True +Can filter execute True +Handles the HeaderClicked event of the ListView control +Clearing all Sort Descriptions +Determining the Sort direction +Adding sort description from header content +Refreshing the data view +Clearing the Sort Adorner +Getting current column and remove the existing sort adorner +Can Refresh execute True +Can filter execute True +Handles the HeaderClicked event of the ListView control +Clearing all Sort Descriptions +Determining the Sort direction +Adding sort description from header content +Refreshing the data view +Clearing the Sort Adorner +Getting current column and remove the existing sort adorner +Can Refresh execute True +Can filter execute True +Handles the HeaderClicked event of the ListView control +Clearing all Sort Descriptions +Determining the Sort direction +Adding sort description from header content +Refreshing the data view +Clearing the Sort Adorner +Getting current column and remove the existing sort adorner +Can Refresh execute True +Can filter execute True +Handles the HeaderClicked event of the ListView control +Clearing all Sort Descriptions +Determining the Sort direction +Adding sort description from header content +Refreshing the data view +Clearing the Sort Adorner +Getting current column and remove the existing sort adorner +Can Refresh execute True +Can filter execute True +Handles the HeaderClicked event of the ListView control +Clearing all Sort Descriptions +Determining the Sort direction +Adding sort description from header content +Refreshing the data view +Clearing the Sort Adorner +Getting current column and remove the existing sort adorner +Can Refresh execute True +Can filter execute True +Handles the HeaderClicked event of the ListView control +Clearing all Sort Descriptions +Determining the Sort direction +Adding sort description from header content +Refreshing the data view +Clearing the Sort Adorner +Getting current column and remove the existing sort adorner +Can Refresh execute True +Can filter execute True +Handles the HeaderClicked event of the ListView control +Clearing all Sort Descriptions +Determining the Sort direction +Adding sort description from header content +Refreshing the data view +Clearing the Sort Adorner +Getting current column and remove the existing sort adorner +Can Refresh execute True +Can filter execute True +Handles the HeaderClicked event of the ListView control +Clearing all Sort Descriptions +Determining the Sort direction +Adding sort description from header content +Refreshing the data view +Clearing the Sort Adorner +Getting current column and remove the existing sort adorner +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Handles the HeaderClicked event of the ListView control +Clearing all Sort Descriptions +Determining the Sort direction +Adding sort description from header content +Refreshing the data view +Clearing the Sort Adorner +Getting current column and remove the existing sort adorner +Can Refresh execute True +Can filter execute True +Handles the HeaderClicked event of the ListView control +Clearing all Sort Descriptions +Determining the Sort direction +Adding sort description from header content +Refreshing the data view +Clearing the Sort Adorner +Getting current column and remove the existing sort adorner +Can Refresh execute True +Can filter execute True +Handles the HeaderClicked event of the ListView control +Clearing all Sort Descriptions +Determining the Sort direction +Adding sort description from header content +Refreshing the data view +Clearing the Sort Adorner +Getting current column and remove the existing sort adorner +Can Refresh execute True +Can filter execute True +Handles the HeaderClicked event of the ListView control +Clearing all Sort Descriptions +Determining the Sort direction +Adding sort description from header content +Refreshing the data view +Clearing the Sort Adorner +Getting current column and remove the existing sort adorner +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Executing about menu +Initializing about screen +Displaying/Showing about screen +Application [Log4Viewer] Start +Application running in Debug mode +initializing windows components +Initializing the registry persister +Can Refresh execute False +Can filter execute False +Setting default width to 800 +Setting default height to 600 +Setting default Grid Height to 150 +Setting the UI Culture to fr-FR +Initializing event handler for ListView control +Setting the RecentFileList toC:\Users\odaha\AppData\Local +Initializing the RecentFiles menu click +Initializing Error Bitmap +Initializing Info Bitmap +Initializing Warn Bitmap +Initializing Debug Bitmap +Setting the title as Log4Net XML LogViewer v.3.0.0.0 +Setting the GridView widths for each column +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Executing about menu +Initializing about screen +Displaying/Showing about screen +Application [Log4Viewer] Start +Application running in Debug mode +initializing windows components +Initializing the registry persister +Can Refresh execute False +Can filter execute False +Setting default width to 800 +Setting default height to 600 +Setting default Grid Height to 150 +Setting the UI Culture to fr-FR +Initializing event handler for ListView control +Setting the RecentFileList toC:\Users\odaha\AppData\Local +Initializing the RecentFiles menu click +Initializing Error Bitmap +Initializing Info Bitmap +Initializing Warn Bitmap +Initializing Debug Bitmap +Setting the title as Log4Net XML LogViewer v.3.0.0.0 +Setting the GridView widths for each column +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Executing about menu +Initializing about screen +Displaying/Showing about screen +Application [Log4Viewer] Start +Application running in Debug mode +initializing windows components +Initializing the registry persister +Can Refresh execute False +Can filter execute False +Setting default width to 800 +Setting default height to 600 +Setting default Grid Height to 150 +Setting the UI Culture to fr-FR +Initializing event handler for ListView control +Setting the RecentFileList toC:\Users\odaha\AppData\Local +Initializing the RecentFiles menu click +Initializing Error Bitmap +Initializing Info Bitmap +Initializing Warn Bitmap +Initializing Debug Bitmap +Setting the title as Log4Net XML LogViewer v.3.0.0.0 +Setting the GridView widths for each column +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Executing about menu +Initializing about screen +Displaying/Showing about screen +Application [Log4Viewer] Start +Application running in Debug mode +initializing windows components +Initializing the registry persister +Can Refresh execute False +Can filter execute False +Setting default width to 800 +Setting default height to 600 +Setting default Grid Height to 150 +Setting the UI Culture to fr-FR +Initializing event handler for ListView control +Setting the RecentFileList toC:\Users\odaha\AppData\Local +Initializing the RecentFiles menu click +Initializing Error Bitmap +Initializing Info Bitmap +Initializing Warn Bitmap +Initializing Debug Bitmap +Setting the title as Log4Net XML LogViewer v.3.0.0.0 +Setting the GridView widths for each column +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Executing about menu +Initializing about screen +Displaying/Showing about screen +Application [Log4Viewer] Start +Application running in Debug mode +initializing windows components +Initializing the registry persister +Can Refresh execute False +Can filter execute False +Setting default width to 800 +Setting default height to 600 +Setting default Grid Height to 150 +Setting the UI Culture to fr-FR +Initializing event handler for ListView control +Setting the RecentFileList toC:\Users\odaha\AppData\Local +Initializing the RecentFiles menu click +Initializing Error Bitmap +Initializing Info Bitmap +Initializing Warn Bitmap +Initializing Debug Bitmap +Setting the title as Log4Net XML LogViewer v.3.0.0.0 +Setting the GridView widths for each column +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Executing about menu +Initializing about screen +Displaying/Showing about screen +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Saving default application width,height,split to open next time +Application [Log4Viewer] Start +Application running in Debug mode +initializing windows components +Initializing the registry persister +Can Refresh execute False +Can filter execute False +Setting default width to 800 +Setting default height to 600 +Setting default Grid Height to 150 +Setting the UI Culture to fr-FR +Initializing event handler for ListView control +Setting the RecentFileList toC:\Users\odaha\AppData\Local +Initializing the RecentFiles menu click +Initializing Error Bitmap +Initializing Info Bitmap +Initializing Warn Bitmap +Initializing Debug Bitmap +Setting the title as Log4Net XML LogViewer v.3.0.0.0 +Setting the GridView widths for each column +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Executing about menu +Initializing about screen +Displaying/Showing about screen +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Saving default application width,height,split to open next time +Application [Log4Viewer] Start +Application running in Debug mode +initializing windows components +Initializing the registry persister +Can Refresh execute False +Can filter execute False +Setting default width to 800 +Setting default height to 600 +Setting default Grid Height to 150 +Setting the UI Culture to fr-FR +Initializing event handler for ListView control +Setting the RecentFileList toC:\Users\odaha\AppData\Local +Initializing the RecentFiles menu click +Initializing Error Bitmap +Initializing Info Bitmap +Initializing Warn Bitmap +Initializing Debug Bitmap +Setting the title as Log4Net XML LogViewer v.3.0.0.0 +Setting the GridView widths for each column +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Executing about menu +Initializing about screen +Displaying/Showing about screen +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Saving default application width,height,split to open next time +Application [Log4Viewer] Start +Application running in Debug mode +initializing windows components +Initializing the registry persister +Can Refresh execute False +Can filter execute False +Setting default width to 800 +Setting default height to 600 +Setting default Grid Height to 150 +Setting the UI Culture to fr-FR +Initializing event handler for ListView control +Setting the RecentFileList toC:\Users\odaha\AppData\Local +Initializing the RecentFiles menu click +Initializing Error Bitmap +Initializing Info Bitmap +Initializing Warn Bitmap +Initializing Debug Bitmap +Setting the title as Log4Net XML LogViewer v.3.0.0.0 +Setting the GridView widths for each column +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Executing about menu +Initializing about screen +Displaying/Showing about screen +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Executing about menu +Initializing about screen +Displaying/Showing about screen +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Removing Menu Items +Removing the menu separators +Loading Recent files +Inserting Menu items +Loading recent files as menu items +Format is _{0}: {2} +Checking current pathname is less than the max length allowed +Path name is D:\EnCours\LogViewerForLog4Net\bin\Debug\LogViewerlog +File name index is 4 +The short path is D:\EnCours\...\bin\Debug\LogViewerlog +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Clearing Merged Files +Loading file D:\EnCours\LogViewerForLog4Net\bin\Debug\LogViewerlog.xml +Clearing entries to load single log file +Notifying Entries property as changed +Resetting the ListView item source to nothing +Clearing the log filter +Turning off the IsFiltered property of the FilterIndicator +Clearing all the text controls +Initializing FileStream objet to open the log file +Initializing a Stream Reader +Read all the contents in the log file to a StreamReader +Closing StreamReader and FileStream object +Reading File +Start reading the log file +Completing of Log xml reading +Calculating the number of ERROR in the log file +ERROR count is 0 +Calculating the number of INFO in the log file +INFO count is 874 +Calculating the number of WARN in the log file +WARN count is 0 +Calculating the number of DEBUG in the log file +DEBUG count is 14 +Initializing ListView to show the log entries +Loading ListView with Log Entries +Clearing Sort Adorner +Setting the title as Log4Net XML LogViewer v.3.0.0.0 - D:\EnCours\LogViewerForLog4Net\bin\Debug\LogViewerlog.xml +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Saving default application width,height,split to open next time +Application [Log4Viewer] Start +Application running in Debug mode +initializing windows components +Initializing the registry persister +Can Refresh execute False +Can filter execute False +Setting default width to 800 +Setting default height to 600 +Setting default Grid Height to 490 +Setting the UI Culture to fr-FR +Initializing event handler for ListView control +Setting the RecentFileList toC:\Users\odaha\AppData\Local +Initializing the RecentFiles menu click +Initializing Error Bitmap +Initializing Info Bitmap +Initializing Warn Bitmap +Initializing Debug Bitmap +Setting the title as Log4Net XML LogViewer v.3.0.0.0 +Setting the GridView widths for each column +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Removing Menu Items +Removing the menu separators +Loading Recent files +Inserting Menu items +Loading recent files as menu items +Format is _{0}: {2} +Checking current pathname is less than the max length allowed +Path name is D:\EnCours\LogViewerForLog4Net\bin\Debug\LogViewerlog +File name index is 4 +The short path is D:\EnCours\...\bin\Debug\LogViewerlog +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Clearing Merged Files +Loading file D:\EnCours\LogViewerForLog4Net\bin\Debug\LogViewerlog.xml +Clearing entries to load single log file +Notifying Entries property as changed +Resetting the ListView item source to nothing +Clearing the log filter +Turning off the IsFiltered property of the FilterIndicator +Clearing all the text controls +Initializing FileStream objet to open the log file +Initializing a Stream Reader +Read all the contents in the log file to a StreamReader +Closing StreamReader and FileStream object +Reading File +Start reading the log file +Completing of Log xml reading +Calculating the number of ERROR in the log file +ERROR count is 0 +Calculating the number of INFO in the log file +INFO count is 953 +Calculating the number of WARN in the log file +WARN count is 0 +Calculating the number of DEBUG in the log file +DEBUG count is 15 +Initializing ListView to show the log entries +Loading ListView with Log Entries +Clearing Sort Adorner +Setting the title as Log4Net XML LogViewer v.3.0.0.0 - D:\EnCours\LogViewerForLog4Net\bin\Debug\LogViewerlog.xml +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Finding in Loop Direction 0 +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Triggering find next +Finding in Loop Direction 0 +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Triggering find next +Finding in Loop Direction 0 +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Triggering find next +Finding in Loop Direction 0 +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Triggering find next +Finding in Loop Direction 0 +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Triggering find previous +Finding in Loop Direction 1 +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Triggering find previous +Finding in Loop Direction 1 +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Triggering find previous +Finding in Loop Direction 1 +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Triggering find previous +Finding in Loop Direction 1 +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Triggering find previous +Finding in Loop Direction 1 +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Triggering find previous +Finding in Loop Direction 1 +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Enabling Quick filter for DEBUG message level +Using quick filter for Debug +Initializing the query objet for Debug +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Can Refresh execute True +Can filter execute True +Enabling Quick filter for DEBUG message level +Using quick filter for Debug +Initializing the query objet for Debug +Can Refresh execute True +Can filter execute True +Enabling Quick filter for INFO message level +Using quick filter for Info +Initializing the query objet for Info +Can Refresh execute True +Can filter execute True +Clearing Log Filter +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Enabling Quick filter for DEBUG message level +Using quick filter for Debug +Initializing the query objet for Debug +Can Refresh execute True +Can filter execute True +Enabling Quick filter for INFO message level +Using quick filter for Info +Initializing the query objet for Info +Can Refresh execute True +Can filter execute True +Enabling Quick filter for DEBUG message level +Using quick filter for Debug +Initializing the query objet for Debug +Can Refresh execute True +Can filter execute True +Enabling Quick filter for INFO message level +Using quick filter for Info +Initializing the query objet for Info +Can Refresh execute True +Can filter execute True +Enabling Quick filter for DEBUG message level +Using quick filter for Debug +Initializing the query objet for Debug +Can Refresh execute True +Can filter execute True +Clearing Log Filter +Can Refresh execute True +Can filter execute True +Can filter execute True +Can filter execute True +Do menu filter +Cloning the log filter +Don't serialize a null object, simply return the default for that object +Initializing IFormatter object based on BinaryFormatter +Initializing Memory Stream +Using the stream object to format the serialized data +Showing the filter dialog +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Cloning the log filter again after loading new filters +Don't serialize a null object, simply return the default for that object +Initializing IFormatter object based on BinaryFormatter +Initializing Memory Stream +Using the stream object to format the serialized data +Initializing the query object +Received queries 15 +Log Filter status True +Can Refresh execute True +Can filter execute True +Clearing Log Filter +Can Refresh execute True +Can filter execute True +Can filter execute True +Can filter execute True +Do menu filter +Cloning the log filter +Don't serialize a null object, simply return the default for that object +Initializing IFormatter object based on BinaryFormatter +Initializing Memory Stream +Using the stream object to format the serialized data +Showing the filter dialog +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Saving default application width,height,split to open next time +Application [Log4Viewer] Start +Application running in Debug mode +initializing windows components +Initializing the registry persister +Can Refresh execute False +Can filter execute False +Setting default width to 1440 +Setting default height to 846 +Setting default Grid Height to 490 +Setting the UI Culture to fr-FR +Initializing event handler for ListView control +Setting the RecentFileList toC:\Users\odaha\AppData\Local +Initializing the RecentFiles menu click +Initializing Error Bitmap +Initializing Info Bitmap +Initializing Warn Bitmap +Initializing Debug Bitmap +Setting the title as Log4Net XML LogViewer v.3.0.0.0 +Setting the GridView widths for each column +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Removing Menu Items +Removing the menu separators +Loading Recent files +Inserting Menu items +Loading recent files as menu items +Format is _{0}: {2} +Checking current pathname is less than the max length allowed +Path name is D:\EnCours\LogViewerForLog4Net\bin\Debug\LogViewerlog +File name index is 4 +The short path is D:\EnCours\...\bin\Debug\LogViewerlog +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Clearing Merged Files +Loading file D:\EnCours\LogViewerForLog4Net\bin\Debug\LogViewerlog.xml +Clearing entries to load single log file +Notifying Entries property as changed +Resetting the ListView item source to nothing +Clearing the log filter +Turning off the IsFiltered property of the FilterIndicator +Clearing all the text controls +Initializing FileStream objet to open the log file +Initializing a Stream Reader +Read all the contents in the log file to a StreamReader +Closing StreamReader and FileStream object +Reading File +Start reading the log file +Completing of Log xml reading +Calculating the number of ERROR in the log file +ERROR count is 0 +Calculating the number of INFO in the log file +INFO count is 1405 +Calculating the number of WARN in the log file +WARN count is 0 +Calculating the number of DEBUG in the log file +DEBUG count is 16 +Initializing ListView to show the log entries +Loading ListView with Log Entries +Clearing Sort Adorner +Setting the title as Log4Net XML LogViewer v.3.0.0.0 - D:\EnCours\LogViewerForLog4Net\bin\Debug\LogViewerlog.xml +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Executing about menu +Initializing about screen +Displaying/Showing about screen +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can filter execute True +Can filter execute True +Do menu filter +Cloning the log filter +Don't serialize a null object, simply return the default for that object +Initializing IFormatter object based on BinaryFormatter +Initializing Memory Stream +Using the stream object to format the serialized data +Showing the filter dialog +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Cloning the log filter again after loading new filters +Don't serialize a null object, simply return the default for that object +Initializing IFormatter object based on BinaryFormatter +Initializing Memory Stream +Using the stream object to format the serialized data +Initializing the query object +Received queries 12 +Log Filter status True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Clearing Log Filter +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can Refresh execute True +Execute menu refresh +Loading file D:\EnCours\LogViewerForLog4Net\bin\Debug\LogViewerlog.xml +Clearing entries to load single log file +Notifying Entries property as changed +Resetting the ListView item source to nothing +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Clearing the log filter +Turning off the IsFiltered property of the FilterIndicator +Clearing all the text controls +Initializing FileStream objet to open the log file +Initializing a Stream Reader +Read all the contents in the log file to a StreamReader +Closing StreamReader and FileStream object +Reading File +Start reading the log file +Completing of Log xml reading +Calculating the number of ERROR in the log file +ERROR count is 0 +Calculating the number of INFO in the log file +INFO count is 1765 +Calculating the number of WARN in the log file +WARN count is 0 +Calculating the number of DEBUG in the log file +DEBUG count is 16 +Initializing ListView to show the log entries +Loading ListView with Log Entries +Clearing Sort Adorner +Setting the title as Log4Net XML LogViewer v.3.0.0.0 - D:\EnCours\LogViewerForLog4Net\bin\Debug\LogViewerlog.xml +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can Refresh execute True +Execute menu refresh +Loading file D:\EnCours\LogViewerForLog4Net\bin\Debug\LogViewerlog.xml +Clearing entries to load single log file +Notifying Entries property as changed +Resetting the ListView item source to nothing +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Clearing the log filter +Turning off the IsFiltered property of the FilterIndicator +Clearing all the text controls +Initializing FileStream objet to open the log file +Initializing a Stream Reader +Read all the contents in the log file to a StreamReader +Closing StreamReader and FileStream object +Reading File +Start reading the log file +Completing of Log xml reading +Calculating the number of ERROR in the log file +ERROR count is 0 +Calculating the number of INFO in the log file +INFO count is 1811 +Calculating the number of WARN in the log file +WARN count is 0 +Calculating the number of DEBUG in the log file +DEBUG count is 16 +Initializing ListView to show the log entries +Loading ListView with Log Entries +Clearing Sort Adorner +Setting the title as Log4Net XML LogViewer v.3.0.0.0 - D:\EnCours\LogViewerForLog4Net\bin\Debug\LogViewerlog.xml +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can filter execute True +Can filter execute True +Do menu filter +Cloning the log filter +Don't serialize a null object, simply return the default for that object +Initializing IFormatter object based on BinaryFormatter +Initializing Memory Stream +Using the stream object to format the serialized data +Showing the filter dialog +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Cloning the log filter again after loading new filters +Don't serialize a null object, simply return the default for that object +Initializing IFormatter object based on BinaryFormatter +Initializing Memory Stream +Using the stream object to format the serialized data +Initializing the query object +Received queries 16 +Log Filter status True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Can Refresh execute True +Can filter execute True +Clearing Log Filter +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Saving default application width,height,split to open next time +Application [Log4Viewer] Start +Application running in Debug mode +initializing windows components +Initializing the registry persister +Can Refresh execute False +Can filter execute False +Setting default width to 1425 +Setting default height to 846 +Setting default Grid Height to 490 +Setting the UI Culture to fr-FR +Initializing event handler for ListView control +Setting the RecentFileList toC:\Users\odaha\AppData\Local +Initializing the RecentFiles menu click +Initializing Error Bitmap +Initializing Info Bitmap +Initializing Warn Bitmap +Initializing Debug Bitmap +Setting the title as Log4Net XML LogViewer v.3.0.0.0 +Setting the GridView widths for each column +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Executing menu file open +Initializing the open file dialog object +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Removing Menu Items +Removing the menu separators +Loading Recent files +Inserting Menu items +Loading recent files as menu items +Format is _{0}: {2} +Checking current pathname is less than the max length allowed +Path name is D:\EnCours\LogViewerForLog4Net\bin\Debug\LogViewerlog +File name index is 4 +The short path is D:\EnCours\...\bin\Debug\LogViewerlog +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Clearing Merged Files +Loading file D:\EnCours\LogViewerForLog4Net\bin\Debug\LogViewerlog.xml +Clearing entries to load single log file +Notifying Entries property as changed +Resetting the ListView item source to nothing +Clearing the log filter +Turning off the IsFiltered property of the FilterIndicator +Clearing all the text controls +Initializing FileStream objet to open the log file +Initializing a Stream Reader +Read all the contents in the log file to a StreamReader +Closing StreamReader and FileStream object +Reading File +Start reading the log file +Completing of Log xml reading +Calculating the number of ERROR in the log file +ERROR count is 0 +Calculating the number of INFO in the log file +INFO count is 2020 +Calculating the number of WARN in the log file +WARN count is 0 +Calculating the number of DEBUG in the log file +DEBUG count is 17 +Initializing ListView to show the log entries +Loading ListView with Log Entries +Clearing Sort Adorner +Setting the title as Log4Net XML LogViewer v.3.0.0.0 - D:\EnCours\LogViewerForLog4Net\bin\Debug\LogViewerlog.xml +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Saving default application width,height,split to open next time +Application [Log4Viewer] Start +Application running in Debug mode +initializing windows components +Initializing the registry persister +Can Refresh execute False +Can filter execute False +Setting default width to 1425 +Setting default height to 846 +Setting default Grid Height to 473 +Setting the UI Culture to fr-FR +Initializing event handler for ListView control +Setting the RecentFileList toC:\Users\odaha\AppData\Local +Initializing the RecentFiles menu click +Initializing Error Bitmap +Initializing Info Bitmap +Initializing Warn Bitmap +Initializing Debug Bitmap +Setting the title as Log4Net XML LogViewer v.3.0.0.0 +Setting the GridView widths for each column +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Removing Menu Items +Removing the menu separators +Loading Recent files +Inserting Menu items +Loading recent files as menu items +Format is _{0}: {2} +Checking current pathname is less than the max length allowed +Path name is D:\EnCours\LogViewerForLog4Net\bin\Debug\LogViewerlog +File name index is 4 +The short path is D:\EnCours\...\bin\Debug\LogViewerlog +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Clearing Merged Files +Loading file D:\EnCours\LogViewerForLog4Net\bin\Debug\LogViewerlog.xml +Clearing entries to load single log file +Notifying Entries property as changed +Resetting the ListView item source to nothing +Clearing the log filter +Turning off the IsFiltered property of the FilterIndicator +Clearing all the text controls +Initializing FileStream objet to open the log file +Initializing a Stream Reader +Read all the contents in the log file to a StreamReader +Closing StreamReader and FileStream object +Reading File +Start reading the log file +Completing of Log xml reading +Calculating the number of ERROR in the log file +ERROR count is 0 +Calculating the number of INFO in the log file +INFO count is 2159 +Calculating the number of WARN in the log file +WARN count is 0 +Calculating the number of DEBUG in the log file +DEBUG count is 18 +Initializing ListView to show the log entries +Loading ListView with Log Entries +Clearing Sort Adorner +Setting the title as Log4Net XML LogViewer v.3.0.0.0 - D:\EnCours\LogViewerForLog4Net\bin\Debug\LogViewerlog.xml +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Saving default application width,height,split to open next time +Application [Log4Viewer] Start +Application running in Debug mode +initializing windows components +Initializing the registry persister +Can Refresh execute False +Can filter execute False +Setting default width to 1425 +Setting default height to 846 +Setting default Grid Height to 473 +Setting the UI Culture to fr-FR +Initializing event handler for ListView control +Setting the RecentFileList toC:\Users\odaha\AppData\Local +Initializing the RecentFiles menu click +Initializing Error Bitmap +Initializing Info Bitmap +Initializing Warn Bitmap +Initializing Debug Bitmap +Setting the title as Log4Net XML LogViewer v.3.0.0.0 +Setting the GridView widths for each column +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Removing Menu Items +Removing the menu separators +Loading Recent files +Inserting Menu items +Loading recent files as menu items +Format is _{0}: {2} +Checking current pathname is less than the max length allowed +Path name is D:\EnCours\LogViewerForLog4Net\bin\Debug\LogViewerlog +File name index is 4 +The short path is D:\EnCours\...\bin\Debug\LogViewerlog +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Clearing Merged Files +Loading file D:\EnCours\LogViewerForLog4Net\bin\Debug\LogViewerlog.xml +Clearing entries to load single log file +Notifying Entries property as changed +Resetting the ListView item source to nothing +Clearing the log filter +Turning off the IsFiltered property of the FilterIndicator +Clearing all the text controls +Initializing FileStream objet to open the log file +Initializing a Stream Reader +Read all the contents in the log file to a StreamReader +Closing StreamReader and FileStream object +Reading File +Start reading the log file +Completing of Log xml reading +Calculating the number of ERROR in the log file +ERROR count is 0 +Calculating the number of INFO in the log file +INFO count is 2276 +Calculating the number of WARN in the log file +WARN count is 0 +Calculating the number of DEBUG in the log file +DEBUG count is 19 +Initializing ListView to show the log entries +Loading ListView with Log Entries +Clearing Sort Adorner +Setting the title as Log4Net XML LogViewer v.3.0.0.0 - D:\EnCours\LogViewerForLog4Net\bin\Debug\LogViewerlog.xml +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Saving default application width,height,split to open next time +Application [Log4Viewer] Start +Application running in Debug mode +initializing windows components +Initializing the registry persister +Can Refresh execute False +Can filter execute False +Setting default width to 1425 +Setting default height to 846 +Setting default Grid Height to 473 +Setting the UI Culture to fr-FR +Initializing event handler for ListView control +Setting the RecentFileList toC:\Users\odaha\AppData\Local +Initializing the RecentFiles menu click +Initializing Error Bitmap +Initializing Info Bitmap +Initializing Warn Bitmap +Initializing Debug Bitmap +Setting the title as Log4Net XML LogViewer v.3.0.0.0 +Setting the GridView widths for each column +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Removing Menu Items +Removing the menu separators +Loading Recent files +Inserting Menu items +Loading recent files as menu items +Format is _{0}: {2} +Checking current pathname is less than the max length allowed +Path name is D:\EnCours\LogViewerForLog4Net\bin\Debug\LogViewerlog +File name index is 4 +The short path is D:\EnCours\...\bin\Debug\LogViewerlog +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Clearing Merged Files +Loading file D:\EnCours\LogViewerForLog4Net\bin\Debug\LogViewerlog.xml +Clearing entries to load single log file +Notifying Entries property as changed +Resetting the ListView item source to nothing +Clearing the log filter +Turning off the IsFiltered property of the FilterIndicator +Clearing all the text controls +Initializing FileStream objet to open the log file +Initializing a Stream Reader +Read all the contents in the log file to a StreamReader +Closing StreamReader and FileStream object +Reading File +Start reading the log file +Completing of Log xml reading +Calculating the number of ERROR in the log file +ERROR count is 0 +Calculating the number of INFO in the log file +INFO count is 2363 +Calculating the number of WARN in the log file +WARN count is 0 +Calculating the number of DEBUG in the log file +DEBUG count is 20 +Initializing ListView to show the log entries +Loading ListView with Log Entries +Clearing Sort Adorner +Setting the title as Log4Net XML LogViewer v.3.0.0.0 - D:\EnCours\LogViewerForLog4Net\bin\Debug\LogViewerlog.xml +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Saving default application width,height,split to open next time +Application [Log4Viewer] Start +Application running in Debug mode +initializing windows components +Initializing the registry persister +Can Refresh execute False +Can filter execute False +Setting default width to 1425 +Setting default height to 846 +Setting default Grid Height to 473 +Setting the UI Culture to fr-FR +Initializing event handler for ListView control +Setting the RecentFileList toC:\Users\odaha\AppData\Local +Initializing the RecentFiles menu click +Initializing Error Bitmap +Initializing Info Bitmap +Initializing Warn Bitmap +Initializing Debug Bitmap +Setting the title as Log4Net XML LogViewer v.3.0.0.0 +Setting the GridView widths for each column +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Removing Menu Items +Removing the menu separators +Loading Recent files +Inserting Menu items +Loading recent files as menu items +Format is _{0}: {2} +Checking current pathname is less than the max length allowed +Path name is D:\EnCours\LogViewerForLog4Net\bin\Debug\LogViewerlog +File name index is 4 +The short path is D:\EnCours\...\bin\Debug\LogViewerlog +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Clearing Merged Files +Loading file D:\EnCours\LogViewerForLog4Net\bin\Debug\LogViewerlog.xml +Clearing entries to load single log file +Notifying Entries property as changed +Resetting the ListView item source to nothing +Clearing the log filter +Turning off the IsFiltered property of the FilterIndicator +Clearing all the text controls +Initializing FileStream objet to open the log file +Initializing a Stream Reader +Read all the contents in the log file to a StreamReader +Closing StreamReader and FileStream object +Reading File +Start reading the log file +Completing of Log xml reading +Calculating the number of ERROR in the log file +ERROR count is 0 +Calculating the number of INFO in the log file +INFO count is 2462 +Calculating the number of WARN in the log file +WARN count is 0 +Calculating the number of DEBUG in the log file +DEBUG count is 21 +Initializing ListView to show the log entries +Loading ListView with Log Entries +Clearing Sort Adorner +Setting the title as Log4Net XML LogViewer v.3.0.0.0 - D:\EnCours\LogViewerForLog4Net\bin\Debug\LogViewerlog.xml +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Saving default application width,height,split to open next time +Application [Log4Viewer] Start +Application running in Debug mode +initializing windows components +Initializing the registry persister +Can Refresh execute False +Can filter execute False +Setting default width to 1425 +Setting default height to 846 +Setting default Grid Height to 473 +Setting the UI Culture to fr-FR +Initializing event handler for ListView control +Setting the RecentFileList toC:\Users\odaha\AppData\Local +Initializing the RecentFiles menu click +Initializing Error Bitmap +Initializing Info Bitmap +Initializing Warn Bitmap +Initializing Debug Bitmap +Setting the title as Log4Net XML LogViewer v.3.0.0.0 +Setting the GridView widths for each column +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Removing Menu Items +Removing the menu separators +Loading Recent files +Inserting Menu items +Loading recent files as menu items +Format is _{0}: {2} +Checking current pathname is less than the max length allowed +Path name is D:\EnCours\LogViewerForLog4Net\bin\Debug\LogViewerlog +File name index is 4 +The short path is D:\EnCours\...\bin\Debug\LogViewerlog +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Clearing Merged Files +Loading file D:\EnCours\LogViewerForLog4Net\bin\Debug\LogViewerlog.xml +Clearing entries to load single log file +Notifying Entries property as changed +Resetting the ListView item source to nothing +Clearing the log filter +Turning off the IsFiltered property of the FilterIndicator +Clearing all the text controls +Initializing FileStream objet to open the log file +Initializing a Stream Reader +Read all the contents in the log file to a StreamReader +Closing StreamReader and FileStream object +Reading File +Start reading the log file +Completing of Log xml reading +Calculating the number of ERROR in the log file +ERROR count is 0 +Calculating the number of INFO in the log file +INFO count is 2583 +Calculating the number of WARN in the log file +WARN count is 0 +Calculating the number of DEBUG in the log file +DEBUG count is 22 +Initializing ListView to show the log entries +Loading ListView with Log Entries +Clearing Sort Adorner +Setting the title as Log4Net XML LogViewer v.3.0.0.0 - D:\EnCours\LogViewerForLog4Net\bin\Debug\LogViewerlog.xml +Can Refresh execute True +Can filter execute True +Saving default application width,height,split to open next time +Application [Log4Viewer] Start +Application running in Debug mode +initializing windows components +Initializing the registry persister +Can Refresh execute False +Can filter execute False +Setting default width to 1425 +Setting default height to 846 +Setting default Grid Height to 473 +Setting the UI Culture to fr-FR +Initializing event handler for ListView control +Setting the RecentFileList toC:\Users\odaha\AppData\Local +Initializing the RecentFiles menu click +Initializing Error Bitmap +Initializing Info Bitmap +Initializing Warn Bitmap +Initializing Debug Bitmap +Setting the title as Log4Net XML LogViewer v.3.0.0.0 +Setting the GridView widths for each column +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Removing Menu Items +Removing the menu separators +Loading Recent files +Inserting Menu items +Loading recent files as menu items +Format is _{0}: {2} +Checking current pathname is less than the max length allowed +Path name is D:\EnCours\LogViewerForLog4Net\bin\Debug\LogViewerlog +File name index is 4 +The short path is D:\EnCours\...\bin\Debug\LogViewerlog +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Clearing Merged Files +Loading file D:\EnCours\LogViewerForLog4Net\bin\Debug\LogViewerlog.xml +Clearing entries to load single log file +Notifying Entries property as changed +Resetting the ListView item source to nothing +Clearing the log filter +Turning off the IsFiltered property of the FilterIndicator +Clearing all the text controls +Initializing FileStream objet to open the log file +Initializing a Stream Reader +Read all the contents in the log file to a StreamReader +Closing StreamReader and FileStream object +Reading File +Start reading the log file +Completing of Log xml reading +Calculating the number of ERROR in the log file +ERROR count is 1 +Calculating the number of INFO in the log file +INFO count is 2658 +Calculating the number of WARN in the log file +WARN count is 1 +Calculating the number of DEBUG in the log file +DEBUG count is 23 +Initializing ListView to show the log entries +Loading ListView with Log Entries +Clearing Sort Adorner +Setting the title as Log4Net XML LogViewer v.3.0.0.0 - D:\EnCours\LogViewerForLog4Net\bin\Debug\LogViewerlog.xml +Can Refresh execute True +Can filter execute True +Saving default application width,height,split to open next time +Application [Log4Viewer] Start +Application running in Debug mode +initializing windows components +Initializing the registry persister +Can Refresh execute False +Can filter execute False +Setting default width to 1425 +Setting default height to 846 +Setting default Grid Height to 473 +Setting the UI Culture to fr-FR +Initializing event handler for ListView control +Setting the RecentFileList toC:\Users\odaha\AppData\Local +Initializing the RecentFiles menu click +Initializing Error Bitmap +Initializing Info Bitmap +Initializing Warn Bitmap +Initializing Debug Bitmap +Setting the title as Log4Net XML LogViewer v.3.0.0.0 +Setting the GridView widths for each column +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Saving default application width,height,split to open next time +Application [Log4Viewer] Start +Application running in Debug mode +initializing windows components +Initializing the registry persister +Can Refresh execute False +Can filter execute False +Setting default width to 1425 +Setting default height to 846 +Setting default Grid Height to 473 +Setting the UI Culture to fr-FR +Initializing event handler for ListView control +Setting the RecentFileList toC:\Users\odaha\AppData\Local +Initializing the RecentFiles menu click +Initializing Error Bitmap +Initializing Info Bitmap +Initializing Warn Bitmap +Initializing Debug Bitmap +Setting the title as Log4Net XML LogViewer v.3.0.0.0 +Setting the GridView widths for each column +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Saving default application width,height,split to open next time +Application [Log4Viewer] Start +Application running in Debug mode +initializing windows components +Initializing the registry persister +Can Refresh execute False +Can filter execute False +Setting default width to 1425 +Setting default height to 846 +Setting default Grid Height to 473 +Setting the UI Culture to fr-FR +Initializing event handler for ListView control +Setting the RecentFileList toC:\Users\odaha\AppData\Local +Initializing the RecentFiles menu click +Initializing Error Bitmap +Initializing Info Bitmap +Initializing Warn Bitmap +Initializing Debug Bitmap +Setting the title as Log4Net XML LogViewer v.3.0.0.0 +Setting the GridView widths for each column +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Removing Menu Items +Removing the menu separators +Loading Recent files +Inserting Menu items +Loading recent files as menu items +Format is _{0}: {2} +Checking current pathname is less than the max length allowed +Path name is D:\EnCours\LogViewerForLog4Net\bin\Debug\LogViewerlog +File name index is 4 +The short path is D:\EnCours\...\bin\Debug\LogViewerlog +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Clearing Merged Files +Loading file D:\EnCours\LogViewerForLog4Net\bin\Debug\LogViewerlog.xml +Clearing entries to load single log file +Notifying Entries property as changed +Resetting the ListView item source to nothing +Clearing the log filter +Turning off the IsFiltered property of the FilterIndicator +Clearing all the text controls +Initializing FileStream objet to open the log file +Initializing a Stream Reader +Read all the contents in the log file to a StreamReader +Closing StreamReader and FileStream object +Reading File +Start reading the log file +Completing of Log xml reading +Calculating the number of ERROR in the log file +ERROR count is 1 +Calculating the number of INFO in the log file +INFO count is 2796 +Calculating the number of WARN in the log file +WARN count is 1 +Calculating the number of DEBUG in the log file +DEBUG count is 26 +Initializing ListView to show the log entries +Loading ListView with Log Entries +Clearing Sort Adorner +Setting the title as Log4Net XML LogViewer v.3.0.0.0 - D:\EnCours\LogViewerForLog4Net\bin\Debug\LogViewerlog.xml +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Saving default application width,height,split to open next time +Application [Log4Viewer] Start +Application running in Debug mode +initializing windows components +Initializing the registry persister +Can Refresh execute False +Can filter execute False +Setting default width to 1425 +Setting default height to 846 +Setting default Grid Height to 473 +Setting the UI Culture to fr-FR +Initializing event handler for ListView control +Setting the RecentFileList toC:\Users\odaha\AppData\Local +Initializing the RecentFiles menu click +Initializing Error Bitmap +Initializing Info Bitmap +Initializing Warn Bitmap +Initializing Debug Bitmap +Setting the title as Log4Net XML LogViewer v.3.0.0.0 +Setting the GridView widths for each column +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Removing Menu Items +Removing the menu separators +Loading Recent files +Inserting Menu items +Loading recent files as menu items +Format is _{0}: {2} +Checking current pathname is less than the max length allowed +Path name is D:\EnCours\LogViewerForLog4Net\bin\Debug\LogViewerlog +File name index is 4 +The short path is D:\EnCours\...\bin\Debug\LogViewerlog +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Clearing Merged Files +Loading file D:\EnCours\LogViewerForLog4Net\bin\Debug\LogViewerlog.xml +Clearing entries to load single log file +Notifying Entries property as changed +Resetting the ListView item source to nothing +Clearing the log filter +Turning off the IsFiltered property of the FilterIndicator +Clearing all the text controls +Initializing FileStream objet to open the log file +Initializing a Stream Reader +Read all the contents in the log file to a StreamReader +Closing StreamReader and FileStream object +Reading File +Start reading the log file +Completing of Log xml reading +Calculating the number of ERROR in the log file +ERROR count is 1 +Calculating the number of INFO in the log file +INFO count is 3005 +Calculating the number of WARN in the log file +WARN count is 1 +Calculating the number of DEBUG in the log file +DEBUG count is 27 +Initializing ListView to show the log entries +Loading ListView with Log Entries +Clearing Sort Adorner +Setting the title as Log4Net XML LogViewer v.3.0.0.0 - D:\EnCours\LogViewerForLog4Net\bin\Debug\LogViewerlog.xml +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Saving default application width,height,split to open next time +Application [Log4Viewer] Start +Application running in Debug mode +initializing windows components +Initializing the registry persister +Can Refresh execute False +Can filter execute False +Setting default width to 1425 +Setting default height to 846 +Setting default Grid Height to 473 +Setting the UI Culture to fr-FR +Initializing event handler for ListView control +Setting the RecentFileList toC:\Users\odaha\AppData\Local +Initializing the RecentFiles menu click +Initializing Error Bitmap +Initializing Info Bitmap +Initializing Warn Bitmap +Initializing Debug Bitmap +Setting the title as Log4Net XML LogViewer v.3.0.0.0 +Setting the GridView widths for each column +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Removing Menu Items +Removing the menu separators +Loading Recent files +Inserting Menu items +Loading recent files as menu items +Format is _{0}: {2} +Checking current pathname is less than the max length allowed +Path name is D:\EnCours\LogViewerForLog4Net\bin\Debug\LogViewerlog +File name index is 4 +The short path is D:\EnCours\...\bin\Debug\LogViewerlog +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Clearing Merged Files +Loading file D:\EnCours\LogViewerForLog4Net\bin\Debug\LogViewerlog.xml +Clearing entries to load single log file +Notifying Entries property as changed +Resetting the ListView item source to nothing +Clearing the log filter +Turning off the IsFiltered property of the FilterIndicator +Clearing all the text controls +Initializing FileStream objet to open the log file +Initializing a Stream Reader +Read all the contents in the log file to a StreamReader +Closing StreamReader and FileStream object +Reading File +Start reading the log file +Completing of Log xml reading +Calculating the number of ERROR in the log file +ERROR count is 1 +Calculating the number of INFO in the log file +INFO count is 3102 +Calculating the number of WARN in the log file +WARN count is 1 +Calculating the number of DEBUG in the log file +DEBUG count is 28 +Initializing ListView to show the log entries +Loading ListView with Log Entries +Clearing Sort Adorner +Setting the title as Log4Net XML LogViewer v.3.0.0.0 - D:\EnCours\LogViewerForLog4Net\bin\Debug\LogViewerlog.xml +Unhandled ExceptionSystem.Exception: Test exception + LogViewer.MainWindow.openFile(String logFileName) dans D:\EnCours\LogViewerForLog4Net\MainWindow.xaml.cs:ligne 220 + LogViewer.MainWindow.<window1_Loaded>b__9_0(Object s, MenuClickEventArgs ee) dans D:\EnCours\LogViewerForLog4Net\MainWindow.xaml.cs:ligne 164 + LogViewer.RecentFileList.OnMenuClick(MenuItem menuItem) dans D:\EnCours\LogViewerForLog4Net\RecentFileList.cs:ligne 459 + LogViewer.RecentFileList.menuItem_Click(Object sender, EventArgs e) dans D:\EnCours\LogViewerForLog4Net\RecentFileList.cs:ligne 446 + System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised) + System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args) + System.Windows.Controls.MenuItem.InvokeClickAfterRender(Object arg) + System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) + System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler) +Can Refresh execute True +Can filter execute True +Application [Log4Viewer] Start +Application running in Debug mode +initializing windows components +Initializing the registry persister +Can Refresh execute False +Can filter execute False +Setting default width to 1425 +Setting default height to 846 +Setting default Grid Height to 473 +Setting the UI Culture to fr-FR +Initializing event handler for ListView control +Setting the RecentFileList toC:\Users\odaha\AppData\Local +Initializing the RecentFiles menu click +Initializing Error Bitmap +Initializing Info Bitmap +Initializing Warn Bitmap +Initializing Debug Bitmap +Setting the title as Log4Net XML LogViewer v.3.0.0.0 +Setting the GridView widths for each column +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Removing Menu Items +Removing the menu separators +Loading Recent files +Inserting Menu items +Loading recent files as menu items +Format is _{0}: {2} +Checking current pathname is less than the max length allowed +Path name is D:\EnCours\LogViewerForLog4Net\bin\Debug\LogViewerlog +File name index is 4 +The short path is D:\EnCours\...\bin\Debug\LogViewerlog +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Clearing Merged Files +Loading file D:\EnCours\LogViewerForLog4Net\bin\Debug\LogViewerlog.xml +Clearing entries to load single log file +Notifying Entries property as changed +Resetting the ListView item source to nothing +Clearing the log filter +Turning off the IsFiltered property of the FilterIndicator +Clearing all the text controls +Initializing FileStream objet to open the log file +Initializing a Stream Reader +Read all the contents in the log file to a StreamReader +Closing StreamReader and FileStream object +Reading File +Start reading the log file +Completing of Log xml reading +Calculating the number of ERROR in the log file +ERROR count is 2 +Calculating the number of INFO in the log file +INFO count is 3186 +Calculating the number of WARN in the log file +WARN count is 1 +Calculating the number of DEBUG in the log file +DEBUG count is 29 +Initializing ListView to show the log entries +Loading ListView with Log Entries +Clearing Sort Adorner +Setting the title as Log4Net XML LogViewer v.3.0.0.0 - D:\EnCours\LogViewerForLog4Net\bin\Debug\LogViewerlog.xml +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Enabling Quick filter for ERROR message level +Using quick filter for Error +Initializing the query objet for Error +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Enabling Quick filter for WARN message level +Using quick filter for Warning +Initializing the query objet for Warning +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Enabling Quick filter for DEBUG message level +Using quick filter for Debug +Initializing the query objet for Debug +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Enabling Quick filter for INFO message level +Using quick filter for Info +Initializing the query objet for Info +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Enabling Quick filter for DEBUG message level +Using quick filter for Debug +Initializing the query objet for Debug +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Enabling Quick filter for ERROR message level +Using quick filter for Error +Initializing the query objet for Error +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Clearing Log Filter +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Handles the HeaderClicked event of the ListView control +Clearing all Sort Descriptions +Determining the Sort direction +Adding sort description from header content +Refreshing the data view +Clearing the Sort Adorner +Can Refresh execute True +Can filter execute True +Handles the HeaderClicked event of the ListView control +Clearing all Sort Descriptions +Determining the Sort direction +Adding sort description from header content +Refreshing the data view +Clearing the Sort Adorner +Getting current column and remove the existing sort adorner +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Handles the HeaderClicked event of the ListView control +Clearing all Sort Descriptions +Determining the Sort direction +Adding sort description from header content +Refreshing the data view +Clearing the Sort Adorner +Getting current column and remove the existing sort adorner +Can Refresh execute True +Can filter execute True +Enabling Quick filter for ERROR message level +Using quick filter for Error +Initializing the query objet for Error +Can Refresh execute True +Can filter execute True +Clearing Log Filter +Can Refresh execute True +Can filter execute True +Handles the HeaderClicked event of the ListView control +Clearing all Sort Descriptions +Determining the Sort direction +Adding sort description from header content +Refreshing the data view +Clearing the Sort Adorner +Getting current column and remove the existing sort adorner +Can Refresh execute True +Can filter execute True +Saving default application width,height,split to open next time diff --git a/bin/Debug/Microsoft.Expression.Effects.dll b/bin/Debug/Microsoft.Expression.Effects.dll new file mode 100644 index 0000000..c2b722f Binary files /dev/null and b/bin/Debug/Microsoft.Expression.Effects.dll differ diff --git a/bin/Debug/Microsoft.Expression.Effects.xml b/bin/Debug/Microsoft.Expression.Effects.xml new file mode 100644 index 0000000..ba0b390 --- /dev/null +++ b/bin/Debug/Microsoft.Expression.Effects.xml @@ -0,0 +1,1056 @@ + + + + Microsoft.Expression.Effects + + + + + Determine the orientation of the blinds. + + + + + Transition shader that simulates blinds opening when transitioning + from one visual to another. + + + + + Gets or sets the orientation of the blinds. + + + + + Gets or sets the number of blinds. + + + + + Gets or sets the Amplitude variable within the shader. + + + + + Creates an instance of the shader. + + + + + Makes a deep copy of the BlindsTransitionEffect effect. + + A clone of the current instance of the BlindsTransitionEffect effect. + + + + Gets or sets the orientation of the blinds. + + + + + Gets or sets the number of blinds to display. + + + + + Gets or sets the orientation of the blinds. + + + + + Effect that implements a bloom illumination of a visual. + + + + + The explicit input for this pixel shader. + + + + + + This property is mapped to the BloomIntensity variable within the pixel shader. + + + + + This property is mapped to the BaseIntensity variable within the pixel shader. + + + + + This property is mapped to the BloomSaturation variable within the pixel shader. + + + + + This property is mapped to the BaseSaturation variable within the pixel shader. + + + + + This property is mapped to the BloomIntensity variable within the pixel shader. + + + + + This property is mapped to the BloomSaturation variable within the pixel shader. + + + + + This property is mapped to the BaseSaturation variable within the pixel shader. + + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Gets or sets the minimum intensity that will be used for the bloom. + + + + + Gets or sets the base intensity. + + + + + Gets or sets the bloom intensity. + + + + + Gets or sets the base saturation. + + + + + Gets or sets the bloom saturation. + + + + + Gets or sets the Input shader sampler. + + + + + Gets or sets the Base/BloomIntensity variable within the shader. + + + + + Gets or sets the BaseBloomSaturation variable within the shader. + + + + + Transition effect that reveals two visuals through a growing/shrinking circle. + + + + + Dependency property which modifies the feather amount variable within the pixel shader. + + + + + Dependency property which modifies the circle movement. + + + + + Dependency property which modifies the reverseShader variable within the pixel shader. + + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Makes a deep copy of the CircleRevealTransitionEffect effect. + + A clone of the current instance of the CircleRevealTransitionEffect effect. + + + + Gets or sets the FuzzyAmount variable within the shader. + + + + + Gets or sets playing the circle reveal backward. + + + + + Gets or sets playing the circle reveal backward into the shader. + + + + + Transition effect that transitions two visuals using a cloud + texture as the sampler threshold. + + + + + Defines a transition shader effect that uses an image as a sampler threshold + for interpolating pixel value between two visuals. + + + + + Defines a transition shader effect that provides a random value, + allowing the effect to provide variance each time the effect is run. + + + + + Dependency property which modifies the RandomSeed variable within the pixel shader. + + + + + Updates the shader's variables to the default values. + + + + + Gets or sets the RandomSeed variable within the shader. + + + + + Dependency property which modifies the CloudImage variable within the pixel shader. + + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Gets or sets the CloudImage variable within the shader used for sampling. + + + + + Creates an instance of the shader. + + + + + Makes a deep copy of the CloudRevealTransitionEffect effect. + + A clone of the current instance of the CloudRevealTransitionEffect effect. + + + + Effect that modifies the color tone of a visual using + two colors as the sampling. + + + + + The explicit input for this pixel shader. + + + + + This property is mapped to the Desaturation variable within the pixel shader. + + + + + This property is mapped to the Tone variable within the pixel shader. + + + + + This property is mapped to the LightColor variable within the pixel shader. + + + + + This property is mapped to the DarkColor variable within the pixel shader. + + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Gets or sets the Desaturation variable within the shader. + + + + + Gets or sets the Tone variable within the shader. + + + + + Gets or sets the LightColor variable within the shader. + + + + + Gets or sets the DarkColor variable within the shader. + + + + + Gets or sets the Input shader sampler. + + + + + Effect that simulates an embossed look for the visual. + + + + + The explicit input for this pixel shader. + + + + + This property is mapped to the Amount variable within the pixel shader. + + + + + This property is mapped to the Height variable within the pixel shader. + + + + + This property is mapped to the Color variable within the pixel shader. + + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Gets or sets the Amount variable within the shader. + + + + + Gets or sets the Height variable within the shader. + + + + + Gets or sets the Color variable within the shader. + + + + + Gets or sets the Input shader sampler. + + + + + Transition effect that gradually transitions from one visual to another. + + + + + Creates an instance of the shader. + + + + + Makes a deep copy of the FadeTransitionEffect effect. + + A clone of the current instance of the FadeTransitionEffect effect. + + + + Effect that simulates a magnifying lens. + + + + + Gets or sets the InnerRadius variable within the shader. + + + + + Gets or sets the OuterRadius variable within the shader. + + + + + Gets or sets the center variable within the shader. + + + + + Gets or sets the amount variable within the shader. + + + + + Gets or sets the Input used in the shader. + + + + + The transform used for this shader. + + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Gets or sets the InnerRadius variable within the shader. + + + + + Gets or sets the OuterRadius variable within the shader. + + + + + Gets or sets the Center variable within the shader. + + + + + Gets or sets the ShrinkFactor. + The higher the shrink factor the "smaller" the content inside the ellipse will appear. + + + + + Gets the EffectMapping. + + + + + Gets or sets the Input shader sampler. + + + + + The GeneralTransform corresponding to the Magnify effect. + + + + + Attempt to transform a point based on the effect. + + The point to transform. + The result if available. + Return true if successful. + + + + The effect instance. + + + + + If the transform is an inverse. + + + + + The transform specific to this Effect. + + + + + Creates a new instance. + + The source effect. + + + + This particular effect keeps axis-aligned lines axis-aligned, so the transformation of the Rect is just + transformation of its corner points. + + The input Rect. + The output Rect. + + + + For the inverse of the shader, we need to find Pin which is the Pixel Ouput, given Pout the texture input (is the reverse of the shader) + However, the shader algorithm is dependant on the radius of the pixel output from the center, which is a variable that we don't + have when computing the inverse. We need to perform bisection in order to converge using the equation below + PHatout = PHat_in*Scalar where + PHatout = Pout - Pcenter + pHatin = Pin -Pcenter + + Scalar is dependent on the radius of Pin (which we don't have). + + + + + Given a pixel output (Pin) find the texture input (Pout). + + + + + Creats a new instance. + + A new instance of this. + + + + Determines if a point is within an ellipse. + + The test point. + The center point of the ellipse. + The radius of the ellipse. + Return true if successful. + + + + Gets the inverse transform. + + + + + Effect that turns a visual into a monochrome color. + + + + + Gets or sets the Color variable within the shader. + + + + + Gets or sets the Input of the shader. + + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Gets or sets the Color variable within the shader. + + + + + Gets or sets the Input used in the shader. + + + + + Effect that pixelates a visual. + + + + + The explicit input for this pixel shader. + + + + + This property is mapped to the Pixelation variable within the pixel shader. + + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Gets or sets the amount of pixelation inside the shader. + + + + + Gets or sets the Input shader sampler. + + + + + Transition effect that increases or decreases pixelation between two visuals. + + + + + Creates an instance of the shader. + + + + + Makes a deep copy of the PixelateTransitionEffect effect. + + A clone of the current instance of the PixelateTransitionEffect effect. + + + + Transition effect that performs a radial blur of the current visual as the new visual is introduced. + + + + + Creates an instance of the shader. + + + + + Makes a deep copy of the RadialBlurTransitionEffect effect. + + A clone of the current instance of the RadialBlurTransitionEffect effect. + + + + Effect that simulates water ripples on the visual. + + + + + Gets or sets the Center variable within the shader. + + + + + Gets or sets the Amplitude variable within the shader. + + + + + Gets or sets the Frequency variable within the shader. + + + + + Gets or sets the Phase variable within the shader. + + + + + Gets or sets the Input brush used in the shader. + + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Gets or sets the Center variable within the shader. + + + + + Gets or sets the Amplitude variable within the shader. + + + + + Gets or sets the Frequency variable within the shader. + + + + + Gets or sets the Phase variable within the shader. + + + + + Gets or sets the Input shader sampler. + + + + + Transition effect that simulates water ripple during transition. + + + + + Creates an instance of the shader. + + + + + Makes a deep copy of the RippleTransitionEffect effect. + + A clone of the current instance of the RippleTransitionEffect effect. + + + + Effect that makes a visual crisper and sharper. + + + + + The explicit input for this pixel shader. + + + + + This property is mapped to the Amount variable within the pixel shader. + + + + + This property is mapped to the Width variable within the pixel shader. + + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Gets or sets the Amount variable within the shader. + + + + + Gets or sets the Height variable within the shader. + + + + + Gets or sets the Input shader sampler. + + + + + Defines the slide orientation. + + + + + Transition effect that slides the current visual away, revealing the new visual. + + + + + Dependency property that modifies the SlideAmount variable within the pixel shader. + + + + + Dependency property that modifies the SlideAmount variable within the pixel shader. + + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Makes a deep copy of the SlideInTransitionEffect effect. + + A clone of the current instance of the SlideInTransitionEffect effect. + + + + Gets or sets the SlideAmount variable within the shader. + + + + + Gets or sets the SlideAmount variable within the shader. + + + + + Transition effect that swirls the current visual while introducing the new visual. + + + + + Dependency property that modifies the TwistAmount variable within the pixel shader. + + + + + Dependency property that modifies the number of cells where pixels will be twisted. + + + + + Creates an instance and sets the shader's twist variable to the specified values. + + Level of swirl twist. + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Makes a deep copy of the SmoothSwirlGridTransitionEffect effect. + + A clone of the current instance of the SmoothSwirlGridTransitionEffect effect. + + + + Gets or sets the TwistAmount variable within the shader. + + + + + Gets or sets the CellCount variable within the shader. + + + + + Effect that swirls the current visual. + + + + + The explicit input for this pixel shader. + + + + + This property is mapped to the Center variable within the pixel shader. + + + + + This property is mapped to the TwistAmount variable within the pixel shader. + + + + + This property is mapped to the AngleFrequency variable within the pixel shader. + + + + + The transform used when this Effect is applied. + + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Gets or sets the Center variable within the shader. + + + + + Gets or sets the TwistAmount variable within the shader. + + + + + Gets or sets the AngleFrequency variable within the shader. + This property is not exposed. + + + + + Gets or sets the Input shader sampler. + + + + + Gets the GeneralTransform for this effect. + + + + + Used for transforming input and tree transformations. + + + + + The instance of the Effect. + + + + + The inverse of the transform. + + + + + The inverse of this GeneralTransform. + + + + + Creates an instance of this class. + + The effect itself. + + + + For this operation, the bounds is the bounding box of the four transformed points. + Need to transform each of them, and then circumscribe. This is true for both the + forward and the inverse. + + The input Rect. + The transformed Rect. + + + + Attempt to transform inPoint with the Swirl effect. + + The input point. + The output point after transformed using the Swirl effect. + Returns true but throws if false. + + + + Returns a new instance of this. + + A new instance. + + + + Gets a clone of the inverse of the current transform. + + + + + Transition effect that waves the current visual while introducing the new visual. + + + + + Dependency property that modifies the Magnitude variable within the pixel shader. + + + + + Dependency property that modifies the Phase variable within the pixel shader. + + + + + Dependency property that modifies the Frequency variable within the pixel shader. + + + + + Creates an instance of the shader. + + + + + Makes a deep copy of the WaveTransitionEffect effect. + + A clone of the current instance of the WaveTransitionEffect effect. + + + + Gets or sets the magnitude of the wave. + + + + + Gets or sets the phase of the wave. + + + + + Gets or sets the magnitude of the wave. + + + + + Define the wipe direction. + + + + + Transition effect that wipes the current visual while introducing the new visual. + + + + + Dependency property that modifies the WipeDirection variable within the pixel shader. + + + + + Dependency property that modifies the FeatherAmount variable within the pixel shader. + + + + + Dependency property that modifies the LineOrigin variable within the pixel shader. + + + + + Dependency property that modifies the LineNormal variable within the pixel shader. + + + + + Dependency property that modifies the LineOffset variable within the pixel shader. + + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Makes a deep copy of the WipeTransitionEffect effect. + + A clone of the current instance of the WipeTransitionEffect effect. + + + + Gets or sets the direction of the wipe. + + + + + Gets or sets the FeatherAmount variable within the shader. + + + + + Gets or sets the LineOrigin variable within the shader. + + + + + Gets or sets the LineNormal variable within the shader. + + + + + Gets or sets the LineOffset variable within the shader. + + + + diff --git a/bin/Debug/Microsoft.Expression.Interactions.dll b/bin/Debug/Microsoft.Expression.Interactions.dll new file mode 100644 index 0000000..979c965 Binary files /dev/null and b/bin/Debug/Microsoft.Expression.Interactions.dll differ diff --git a/bin/Debug/Microsoft.Expression.Interactions.xml b/bin/Debug/Microsoft.Expression.Interactions.xml new file mode 100644 index 0000000..59fce87 --- /dev/null +++ b/bin/Debug/Microsoft.Expression.Interactions.xml @@ -0,0 +1,1295 @@ + + + + Microsoft.Expression.Interactions + + + + + A basic implementation of ICommand that wraps a method that takes no parameters or a method that takes one parameter. + + + + + Initializes a new instance of the class. + + The action. + Use this constructor to provide an action that ignores the ICommand parameter. + + + + Initializes a new instance of the class. + + An action that takes an object parameter. + Use this constructor to provide an action that uses the object parameter passed by the Execute method. + + + + Defines the method that determines whether the command can execute in its current state. + + Data used by the command. If the command does not require data to be passed, then this object can be set to null. + + Always returns true. + + + + + Defines the method to be called when the command is invoked. + + Data used by the command. If the command does not require data to be passed, then this object can be set to null. + + + + Occurs when changes occur that affect whether the command should execute. Will not be fired by ActionCommand. + + + + + Calls a method on a specified object when invoked. + + + + + Invokes the action. + + The parameter of the action. If the action does not require a parameter, the parameter may be set to a null reference. + + + + Called after the action is attached to an AssociatedObject. + + Override this to hook up functionality to the AssociatedObject. + + + + Called when the action is getting detached from its AssociatedObject, but before it has actually occurred. + + Override this to unhook functionality from the AssociatedObject. + + + + The object that exposes the method of interest. This is a dependency property. + + + + + The name of the method to invoke. This is a dependency property. + + + + + An action that will change a specified property to a specified value when invoked. + + + + + Initializes a new instance of the class. + + + + + Invokes the action. + + The parameter of the action. If the action does not require a parameter, then the parameter may be set to a null reference. + A property with could not be found on the Target. + Could not set to the value specified by . + + + + Gets or sets the name of the property to change. This is a dependency property. + + The name of the property to change. + + + + Gets or sets the value to set. This is a dependency property. + + The value to set. + + + + Gets or sets the duration of the animation that will occur when the ChangePropertyAction is invoked. This is a dependency property. + If the duration is unset, no animation will be applied. + + + + + Increment by Value if true; otherwise, set the value directly. If the property cannot be incremented, it will instead try to set the value directly. + + + + + Represents one ternary condition. + + + + + Method that evaluates the condition. Note that this method can throw ArgumentException if the operator is + incompatible with the type. For instance, operators LessThan, LessThanOrEqual, GreaterThan, and GreaterThanOrEqual + require both operators to implement IComparable. + + Returns true if the condition has been met; otherwise, returns false. + + + + Ensure that any binding on DP operands are up-to-date. + + + + + Gets or sets the left operand. + + + + + Gets or sets the right operand. + + + + + Gets or sets the comparison operator. + + + + + Enumeration of different comparison operators. + + + + + This method evaluates operands. + + Left operand from the LeftOperand property. + Operator from Operator property. + Right operand from the RightOperand property. + Returns true if the condition is met; otherwise, returns false. + + + + Evaluates both operands that implement the IComparable interface. + + Left operand from the LeftOperand property. + Operator from Operator property. + Right operand from the RightOperand property. + Returns true if the condition is met; otherwise, returns false. + + + + Forward chaining. + + + + + Represents a conditional expression that is set on a ConditionBehavior.Condition property. + Contains a list of conditions that gets evaluated in order to return true or false for ICondition.Evaluate(). + + + + + An interface that a given object must implement in order to be + set on a ConditionBehavior.Condition property. + + + + + Initializes a new instance of the class. + + + + + Goes through the Conditions collection and evalutes each condition based on + ForwardChaining property. + + Returns true if conditions are met; otherwise, returns false. + + + + Gets or sets forward chaining for the conditions. + If forward chaining is set to ForwardChaining.And, all conditions must be met. + If forward chaining is set to ForwardChaining.Or, only one condition must be met. + + + + + Return the Condition collections. + + + + + A behavior that attaches to a trigger and controls the conditions + to fire the actions. + + + + + + Initializes a new instance of the class. + + + + + The event handler that is listening to the preview invoke event that is fired by + the trigger. Setting PreviewInvokeEventArgs.Cancelling to True will + cancel the invocation. + + The trigger base object. + An object of type PreviewInvokeEventArgs where e.Cancelling can be set to True. + + + + Gets or sets the IConditon object on behavior. + + The name of the condition to change. + + + + Helper class for managing binding expressions on dependency objects. + + + + + Ensure that all DP on an action with binding expressions are + up to date. DataTrigger fires during data binding phase. Since + actions are children of the trigger, any bindings on the action + may not be up-to-date. This routine is called before the action + is invoked in order to guarantee that all bindings are up-to-date + with the most current data. + + + + + Ensures that all binding expression on actions are up to date + + + + + This helper function ensures that, if a dependency property on a dependency object + has a binding expression, the binding expression is up-to-date. + + + + + + + Toggles between two states based on a conditional statement. + + + + + Called after the behavior is attached to an AssociatedObject. + + Override this to hook up functionality to the AssociatedObject. + + + + A helper function to take the place of FrameworkElement.IsLoaded, as this property isn't available in Silverlight. + + The element of interest. + Returns true if the element has been loaded; otherwise, returns false. + + + + Gets or sets the binding that produces the property value of the data object. This is a dependency property. + + + + + Gets or sets the value to be compared with the property value of the data object. This is a dependency property. + + + + + Gets or sets the name of the visual state to transition to when the condition is met. This is a dependency property. + + + + + Gets or sets the name of the visual state to transition to when the condition is not met. This is a dependency property. + + + + + Trigger designed to be bound to a data store property. Fires when the property changes. + + + + + Represents a trigger that performs actions when the bound data have changed. + + UA_REVIEW:chabiss + + + + Called when the binding property has changed. + UA_REVIEW:chabiss + + argument. + + + + Called after the trigger is attached to an AssociatedObject. + UA_REVIEW:chabiss + + + + + Called when the trigger is being detached from its AssociatedObject, but before it has actually occurred. + UA_REVIEW:chabiss + + + + + A binding object that the trigger will listen to, and that causes the trigger to fire when it changes. + + UA_REVIEW:chabiss + + + + Represents a trigger that performs actions when the bound data meets a specified condition. + + + + + Called when the binding property has changed. + UA_REVIEW:chabiss + + argument. + + + + Gets or sets the value to be compared with the property value of the data object. This is a dependency property. + + + + + Gets or sets the type of comparison to be performed between the specified values. This is a dependency property. + + + + + ExtendedVisualStateManager is a custom VisualStateManager that can smooth out the animation of layout properties. + With this custom VisualStateManager, states can include changes to properties like Grid.Column, can change element heights to or from Auto, and so on. + These changes will be smoothed out over time using the GeneratedDuration and GeneratedEasingFunction of the appropriate transition. + See the "VisualStateManager overrides" region below for a general description of the algorithm. + + + + + A VisualStateGroup that can use FluidLayout or not. + + + + + Visibility is shadowed by a custom attached property at runtime. + + + + + A VisualStateGroup keeps a list of these original values in an attached property. + + + + + For every state, the layout-specific properties get extracted and then are attached to the state. These properties are removed from the state itself. + + + + + Remember the current state. + + + + + The TransitionEffect to use when the state changes. + + + + + The TransitionEffectStoryboard in use during the state change. + + + + + The cached background in use during the state change. + + + + + The cached background in use during the state change. + + + + + The cached background in use during the state change. + + + + + This is the set of elements that are currently in motion. + + + + + This is the storyboard that is animating the transition. + + + + + This list contains all the known layout properties. + + + + + Stop the animation and replace the layout changes that were made to support that animation. + + + + + Locate the transition that VisualStateManager will use to animate the change, so that the layout animation can match the duration and easing. + + The group in which the transition is taking place. + The state that you are coming from. + The state you are going to. + The transition + + + + Remove all layout-affecting properties from the Storyboard for the state and cache them in an attached property. + + The state you are moving to. + A Storyboard containing the layout properties in that state. + + + + The set of target elements is the set of all elements that might have moved in a layout transition. This set is the closure of: + - Elements with layout properties animated in the state. + - Siblings of elements in the set. + - Parents of elements in the set. + + Subsequent code will check these rectangles both before and after the layout change. + + The control whose layout is changing state. + The storyboard containing the layout changes. + Any previous values from previous state navigations that might be reverted. + The set of elements currently in motion, if there is a state change transition ongoing. + The full set of elements whose layout may have changed. + + + + Gets a set of rectangles for all the elements in the target list. + + The set of elements to consider. + The set of elements currently in motion. + A Dictionary mapping elements to their Rects. + + + + Get the layout rectangle of an element, by getting the layout slot and then computing which portion of the slot is being used. + + The element whose layout Rect will be retrieved. + The layout Rect of that element. + + + + Get the opacities of elements at the time of the state change, instead of visibilities, because the state change may be in process and the current value is the most important. + + The control whose state is changing. + The storyboard with the layout properties. + The set of original values. + + + + + Go through the layout Storyboard and set all the properties by using SetValue to enable calling UpdateLayout without + ticking the timeline, which would cause a render. + All values that are overwritten will be stored in the collection of OriginalValueRecords so that they can be replaced later. + + The control whose state is changing. + The Storyboard holding the layout properties. + The store of original values. + + + + Take all the elements that will be moving as a result of the layout animation, and wrap them in Canvas panels so that + they do not affect their sibling elements. + + The set of elements that will be moving. + + + + Take all the elements that have been moving as a result of the layout animation, and unwrap them from their Canvas panels. + + The set of elements that have been moving. + + + + Copy the layout properties from the source element to the target element, clearing them from the source. + + The source of the layout properties. + The destination of the layout properties. + + + + Create the actual Storyboard that will be used to animate the transition. Use all previously calculated results. + + The duration of the animation. + The easing function to be used in the animation. + The set of elements that will be moving. + The old opacities of the elements whose visibility properties are changing. + The Storyboard. + + + + OriginalValueRecord remembers the original value of a property that was changed in a state. + + + + + This enumerated type indicates whether a FluidMoveBehavior applies to the element to which it is attached, or to the children of that element. + "Self" is useful when there is a single element that should behave in a special manner; "Children" is useful when the same behavior should apply to all + children of a WrapPanel or to the ItemsHost panel of an ItemsControl. + + + + + This enumerated type indicates whether an element is identified by itself, or by its DataContext. + DataContext identification allows movement from one data-driven location to another. + + + + + Dependency property for the scope of the behavior. See FluidMoveScope for more details. + + + + + Dependency property for the active state of the behavior. + + + + + Dependency property that provides the ability to use the element as its own tag, or the binding on the element. + + + + + Dependency property for the extra path to add to the binding when UsaBindingAsTag is true. + + + + + Identity tag used to detect element motion between containers. + + + + + Indicates whether the behavior applies just to this element, or to all children of the element (if the element is a Panel). + + + + + Indicates whether the behavior is currently active. + + + + + Indicates whether to use the element as its own tag, or to use the binding on the element as the tag. + + + + + Extra path to add to the binding when TagType is specified. + + + + + Private structure that stores all relevant data pertaining to a tagged item. + + + + + Behavior that watches an element (or a set of elements) for layout changes, and moves the element smoothly to the new position when needed. + This behavior does not animate the size or visibility of an element; it only animates the offset of that element within its parent container. + + + + + Dependency property for the duration of the move. + + + + + Dependency property for the tag type to use just before the object is loaded. + + + + + Dependency property for the extra path to add to the binding when UsaBindingAsTag is true. + + + + + Identity tag used to detect element motion between containers. + + + + + Dependency property for the FloatAbove flag. + + + + + Dependency property for the EasingFunction to use for the horizontal component of the move. + + + + + Dependency property for the EasingFunction to use for the vertical component of the move. + + + + + Remember the popup/adorner being used, in case of element motion between containers when FloatAbove is true. + + + + + Opacity cache used when floating a Popup. + + + + + Marks the animation transform. + + + + + The duration of the move. + + + + + Spawning point for this item. + + + + + Extra path to add to the binding when TagType is specified. + + + + + Flag that says whether elements are allowed to float above their containers (in a Popup or Adorner) when changing containers. + + + + + EasingFunction to use for the horizontal component of the move. + + + + + EasingFunction to use for the vertical component of the move. + + + + + Simple helper class to allow any UIElements to be used as an Adorner. + + + + + An action that will transition a FrameworkElement to a specified VisualState when invoked. + + + If the TargetName property is set, this action will attempt to change the state of the targeted element. If not, it walks + the element tree in an attempt to locate an alternative target that defines states. ControlTemplate and UserControl are + two common possibilities. + + + + + Called when the target changes. If the TargetName property isn't set, this action has custom behavior. + + + + Could not locate an appropriate FrameworkElement with states. + + + + This method is called when some criteria is met and the action is invoked. + + + Could not change the target to the specified StateName. + + + + Determines whether or not to use a VisualTransition to transition between states. + + + + + The name of the VisualState. + + + + + A Trigger that is triggered by a keyboard event. If the target Key and Modifiers are detected, it fires. + + + + + The key that must be pressed for the trigger to fire. + + + + + The modifiers that must be active for the trigger to fire (the default is no modifiers pressed). + + + + + If true, the Trigger only listens to its trigger Source object, which means that element must have focus for the trigger to fire. + If false, the Trigger listens at the root, so any unhandled KeyDown/Up messages will be caught. + + + + + Determines whether or not to listen to the KeyDown or KeyUp event. + + + + + An action that will launch a process to open a file or Uri. For files, this action will launch the default program + for the given file extension. A Uri will open in a web browser. + + + + + This method is called when some criteria is met and the action is invoked. + + + + + + The file or Uri to open. + + + + + Repositions the attached element in response to mouse drag gestures on the element. + + + + + Dependency property for the X position of the dragged element, relative to the left of the root element. + + + + + Dependency property for the Y position of the dragged element, relative to the top of the root element. + + + + + Dependency property for the ConstrainToParentBounds property. If true, the dragged element will be constrained to stay within the bounds of its parent container. + + + + + Attempts to update the position of the associated element to the specified coordinates. + + The desired position of the element in root coordinates. + + + + Applies a relative position translation to the associated element. + + The X component of the desired translation in root coordinates. + The Y component of the desired translation in root coordinates. + + + + Applies the given translation to the RenderTransform of the associated element. + + The X component of the translation in parent coordinates. + The Y component of the translation in parent coordinates. + + + + Does a recursive deep copy of the specified transform. + + The transform to clone. + A deep copy of the specified transform, or null if the specified transform is null. + Thrown if the type of the Transform is not recognized. + + + + Updates the X and Y properties based on the current rendered position of the associated element. + + + + + Check if one Rect is contained by another. + + The containing Rect. + The contained Rect. + True if rect1 contains rect2; otherwise, False. + + + + Transforms as vector. + + The transform. + The X component of the vector. + The Y component of the vector. + A point containing the values of X and Y transformed by transform as a vector. + + + + Gets the transform offset. + + The transform. + The offset of the transform. + + + + Called after the behavior is attached to an AssociatedObject. + + Override this to hook up functionality to the AssociatedObject. + + + + Called when the behavior is getting detached from its AssociatedObject, but before it has actually occurred. + + Override this to unhook functionality from the AssociatedObject. + + + + Occurs when a drag gesture is initiated. + + + + + Occurs when a drag gesture update is processed. + + + + + Occurs when a drag gesture is finished. + + + + + Gets or sets the X position of the dragged element, relative to the left of the root element. This is a dependency property. + + + + + Gets or sets the Y position of the dragged element, relative to the top of the root element. This is a dependency property. + + + + + Gets or sets a value indicating whether the dragged element is constrained to stay within the bounds of its parent container. This is a dependency property. + + + True if the dragged element should be constrained to its parents bounds; otherwise, False. + + + + + Gets the on-screen position of the associated element in root coordinates. + + The on-screen position of the associated element in root coordinates. + + + + Gets the element bounds in element coordinates. + + The element bounds in element coordinates. + + + + Gets the parent element of the associated object. + + The parent element of the associated object. + + + + Gets the root element of the scene in which the associated object is located. + + The root element of the scene in which the associated object is located. + + + + Gets and sets the RenderTransform of the associated element. + + + + + An action that will play a sound to completion. + + + This action is intended for use with short sound effects that don't need to be stopped or controlled. If you're trying + to create a music player or game, it may not meet your needs. + + + + + Initializes a new instance of the class. + + + + + When the action is invoked, this method is used to customize the dynamically created MediaElement. + + + This method may be useful for Action authors who wish to extend PlaySoundAction. If you want to control the + MediaElement Balance property, you could inherit from PlaySoundAction and override this method. + + + + + + This method is called when some criteria are met and the action should be invoked. + + + Each invocation of the Action plays a new sound. Although the implementation is subject-to-change, the caller should + anticipate that this will create a new MediaElement that will be cleaned up when the sound completes or if the media + fails to play. + + + + + + A Uri defining the location of the sound file. This is used to set the source property of the MediaElement. This is a dependency property. + + + The sound can be any file format supported by MediaElement. In the case of a video, it will play only the + audio portion. + + + + + Control the volume of the sound. This is used to set the Volume property of the MediaElement. This is a dependency property. + + + + + An action that will remove the targeted element from the tree when invoked. + + + This action may fail. The action understands how to remove elements from common parents but not from custom collections or direct manipulation + of the visual tree. + + + + + An action that will change the value of a property from a data store object. + This class is identical to ChangePropertyAction. The only difference is that the data store picker is loaded + for this action. + + + + + An abstract class that provides the ability to target a Storyboard. + + + For action authors, this class provides a standard way to target a Storyboard. Design tools may choose to provide a + special editing experience for classes that inherit from this action, thereby improving the designer experience. + + + + + This method is called when the Storyboard property is changed. + + + + + + The targeted Storyboard. This is a dependency property. + + + + + An action that will change the state of a targeted storyboard when invoked. + + + + + This method is called when some criteria is met and the action should be invoked. This method will attempt to + change the targeted storyboard in a way defined by the ControlStoryboardOption. + + + + + + An abstract class that provides the ability to target a Storyboard. + + + For Trigger authors, this class provides a standard way to target a Storyboard. Design tools may choose to provide a + special editing experience for classes that inherit from this trigger, thereby improving the designer experience. + + + + + This method is called when the Storyboard property is changed. + + + + + The targeted Storyboard. This is a dependency property. + + + + + A trigger that listens for the completion of a Storyboard. + + + + + Initializes a new instance of the class. + + + + + A trigger that is triggered by a specified event occurring on its source and fires after a delay when that event is fired. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the number of milliseconds to wait between ticks. This is a dependency property. + + + + + Gets or sets the total number of ticks to be fired before the trigger is finished. This is a dependency property. + + + + + Defines a transition effect shader that transitions from one visual to another visual + using an interpolated value between 0 and 1. + + + + + Brush-valued properties that turn into sampler-properties in the shader. + Represents the image present in the final state of the transition. + + + + + Brush-valued properties that turn into sampler-properties in the shader. + Represents the image present in the initial state of the transition. + + + + + A Dependency property as the backing store for Progress. + Also used to represent the state of a transition from start to finish (range between 0 and 1). + + + + + Creates a modifiable clone (deep copy) of the using its current values. + + + + + Makes a deep copy of the transition effect. Implements CloneCurrentValue in Silverlight. + + A clone of current instance of transition effect. + + + + Updates the shader's variables to the default values. + + + + + Gets or sets the Input variable within the shader. + + + + + Gets or sets the OldImage variable within the shader. + + + + + Gets or sets the Progress variable within the shader. + + + + + Allows the user to use common touch gestures to translate, zoom, and rotate the attached object. + + + + + Called after the behavior is attached to an AssociatedObject. + + Override this to hook up functionality to the AssociatedObject. + + + + Called when the behavior is getting detached from its AssociatedObject, but before it has actually occurred. + + Override this to unhook functionality from the AssociatedObject. + + + + Gets or sets a value specifying which zooming and translation variants to support. + + + + + Gets or sets a number describing the rate at which the translation will decrease. + + + + + Gets or sets a number describing the rate at which the rotation will decrease. + + + + + Gets or sets the value indicating whether the zoom and translate position of the attached object is limited by the bounds of the parent object. + + + + + Gets or sets a number indicating the minimum zoom value allowed. + + + + + Gets or sets a number indicating the maximum zoom value allowed. + + + + + This class provides various platform agnostic standard operations for working with VisualStateManager. + + + + + Transitions the control between two states. + + The element to transition between states. + The state to transition to. + True to use a System.Windows.VisualTransition to transition between states; otherwise, false. + True if the control successfully transitioned to the new state; otherwise, false. + Control is null. + StateName is null. + + + + Gets the value of the VisualStateManager.VisualStateGroups attached property. + + The element from which to get the VisualStateManager.VisualStateGroups. + + + + + Find the nearest parent which contains visual states. + + The element from which to find the nearest stateful control. + The nearest stateful control if True; else null. + True if a parent contains visual states; else False. + + + + 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 Could not find method named '{0}' on object of type '{1}' that matches the expected signature.. + + + + + Looks up a localized string similar to More than one potential addition operator was found on type '{0}'.. + + + + + Looks up a localized string similar to Cannot animate a property change on a type '{0}' Target. Property changes can only be animated on types derived from DependencyObject.. + + + + + Looks up a localized string similar to Cannot find a property named "{0}" on type "{1}".. + + + + + Looks up a localized string similar to The Increment property cannot be set to True if the Duration property is set.. + + + + + Looks up a localized string similar to The '{0}' property cannot be incremented because its value cannot be read.. + + + + + Looks up a localized string similar to Cannot assign value of type "{0}" to property "{1}" of type "{2}". The "{1}" property can be assigned only values of type "{2}".. + + + + + Looks up a localized string similar to Property "{0}" defined by type "{1}" does not expose a set method and therefore cannot be modified.. + + + + + Looks up a localized string similar to Cannot find state named '{0}' on type '{1}'. Ensure that the state exists and that it can be accessed from this context.. + + + + + Looks up a localized string similar to Target {0} does not define any VisualStateGroups. . + + + + + Looks up a localized string similar to LeftOperand of type "{0}" cannot be used with operator "{1}".. + + + + + Looks up a localized string similar to LeftOperand of type "{1}" and RightOperand of type "{0}" cannot be used with operator "{2}".. + + + + + Looks up a localized string similar to RightOperand of type "{0}" cannot be used with operator "{1}".. + + + + + Looks up a localized string similar to The target of the RemoveElementAction is not supported.. + + + + diff --git a/bin/Debug/System.Windows.Interactivity.dll b/bin/Debug/System.Windows.Interactivity.dll new file mode 100644 index 0000000..0419e95 Binary files /dev/null and b/bin/Debug/System.Windows.Interactivity.dll differ diff --git a/bin/Debug/System.Windows.Interactivity.xml b/bin/Debug/System.Windows.Interactivity.xml new file mode 100644 index 0000000..10cdad6 --- /dev/null +++ b/bin/Debug/System.Windows.Interactivity.xml @@ -0,0 +1,1072 @@ + + + + System.Windows.Interactivity + + + + + Represents a collection of IAttachedObject with a shared AssociatedObject and provides change notifications to its contents when that AssociatedObject changes. + + + + + An interface for an object that can be attached to another object. + + + + + Attaches to the specified object. + + The object to attach to. + + + + Detaches this instance from its associated object. + + + + + Gets the associated object. + + The associated object. + Represents the object the instance is attached to. + + + + Initializes a new instance of the class. + + Internal, because this should not be inherited outside this assembly. + + + + Called immediately after the collection is attached to an AssociatedObject. + + + + + Called when the collection is being detached from its AssociatedObject, but before it has actually occurred. + + + + + Called when a new item is added to the collection. + + The new item. + + + + Called when an item is removed from the collection. + + The removed item. + + + Cannot add the instance to a collection more than once. + + + + Attaches to the specified object. + + The object to attach to. + The IAttachedObject is already attached to a different object. + + + + Detaches this instance from its associated object. + + + + + The object on which the collection is hosted. + + + + + Gets the associated object. + + The associated object. + + + + Encapsulates state information and zero or more ICommands into an attachable object. + + The type the can be attached to. + + Behavior is the base class for providing attachable state and commands to an object. + The types the Behavior can be attached to can be controlled by the generic parameter. + Override OnAttached() and OnDetaching() methods to hook and unhook any necessary handlers + from the AssociatedObject. + + + + + Encapsulates state information and zero or more ICommands into an attachable object. + + This is an infrastructure class. Behavior authors should derive from Behavior<T> instead of from this class. + + + + Called after the behavior is attached to an AssociatedObject. + + Override this to hook up functionality to the AssociatedObject. + + + + Called when the behavior is being detached from its AssociatedObject, but before it has actually occurred. + + Override this to unhook functionality from the AssociatedObject. + + + + Attaches to the specified object. + + The object to attach to. + The Behavior is already hosted on a different element. + dependencyObject does not satisfy the Behavior type constraint. + + + + Detaches this instance from its associated object. + + + + + The type to which this behavior can be attached. + + + + + Gets the object to which this behavior is attached. + + + + + Gets the associated object. + + The associated object. + + + + Initializes a new instance of the class. + + + + + Gets the object to which this is attached. + + + + + Represents a collection of behaviors with a shared AssociatedObject and provides change notifications to its contents when that AssociatedObject changes. + + + + + Initializes a new instance of the class. + + Internal, because this should not be inherited outside this assembly. + + + + Called immediately after the collection is attached to an AssociatedObject. + + + + + Called when the collection is being detached from its AssociatedObject, but before it has actually occurred. + + + + + Called when a new item is added to the collection. + + The new item. + + + + Called when an item is removed from the collection. + + The removed item. + + + + Creates a new instance of the BehaviorCollection. + + The new instance. + + + + Enumerates possible values for reusable property value editors. + + + + + Uses the element picker, if supported, to edit this property at design time. + + + + + Uses the storyboard picker, if supported, to edit this property at design time. + + + + + Uses the state picker, if supported, to edit this property at design time. + + + + + Uses the element-binding picker, if supported, to edit this property at design time. + + + + + Uses the property-binding picker, if supported, to edit this property at design time. + + + + + Associates the given editor type with the property on which the CustomPropertyValueEditor is applied. + + Use this attribute to get improved design-time editing for properties that denote element (by name), storyboards, or states (by name). + + + + Initializes a new instance of the class. + + The custom property value editor. + + + + Gets or sets the custom property value editor. + + The custom property value editor. + + + + Provides design tools information about what to instantiate for a given action or command. + + + + + Initializes a new instance of the class. + + The type this attribute applies to. + The type of to instantiate. + A single argument for the specified . + is not derived from TriggerBase. + This constructor is useful if the specifed has a single argument. The + resulting code will be CLS compliant. + + + + Initializes a new instance of the class. + + The type this attribute applies to. + The type of to instantiate. + The constructor arguments for the specified . + is not derived from TriggerBase. + + + + Instantiates this instance. + + The specified by the DefaultTriggerAttribute. + + + + Gets the type that this DefaultTriggerAttribute applies to. + + The type this DefaultTriggerAttribute applies to. + + + + Gets the type of the to instantiate. + + The type of the to instantiate. + + + + Gets the parameters to pass to the constructor. + + The parameters to pass to the constructor. + + + + This method will use the VisualTreeHelper.GetParent method to do a depth first walk up + the visual tree and return all ancestors of the specified object, including the object itself. + + The object in the visual tree to find ancestors of. + Returns itself an all ancestors in the visual tree. + + + + EventObserver is designed to help manage event handlers by detatching when disposed. Creating this object will also attach in the constructor. + + + + + Creates an instance of EventObserver and attaches to the supplied event on the supplied target. Call dispose to detach. + + The event to attach and detach from. + The target object the event is defined on. Null if the method is static. + The delegate to attach to the event. + + + + Detaches the handler from the event. + + + + + A trigger that listens for a specified event on its source and fires when that event is fired. + + + + + Represents a trigger that can listen to an element other than its AssociatedObject. + + The type that this trigger can be associated with. + + EventTriggerBase extends TriggerBase to add knowledge of another object than the one it is attached to. + This allows a user to attach a Trigger/Action pair to one element and invoke the Action in response to a + change in another object somewhere else. Override OnSourceChanged to hook or unhook handlers on the source + element, and OnAttached/OnDetaching for the associated element. The type of the Source element can be + constrained by the generic type parameter. If you need control over the type of the + AssociatedObject, set a TypeConstraintAttribute on your derived type. + + + + + Represents a trigger that can listen to an object other than its AssociatedObject. + + This is an infrastructure class. Trigger authors should derive from EventTriggerBase<T> instead of this class. + + + + Represents an object that can invoke Actions conditionally. + + This is an infrastructure class. Trigger authors should derive from Trigger<T> instead of this class. + + + + Invoke all actions associated with this trigger. + + Derived classes should call this to fire the trigger. + + + + Called after the trigger is attached to an AssociatedObject. + + + + + Called when the trigger is being detached from its AssociatedObject, but before it has actually occurred. + + + + + Creates a new instance of the TriggerBase derived class. + + The new instance. + + + + Attaches to the specified object. + + The object to attach to. + Cannot host the same trigger on more than one object at a time. + dependencyObject does not satisfy the trigger type constraint. + + + + Detaches this instance from its associated object. + + + + + Gets the object to which the trigger is attached. + + The associated object. + + + + Gets the type constraint of the associated object. + + The associated object type constraint. + + + + Gets the actions associated with this trigger. + + The actions associated with this trigger. + + + + Event handler for registering to PreviewInvoke. + + + + + Gets the associated object. + + The associated object. + + + + Specifies the name of the Event this EventTriggerBase is listening for. + + + + + + Called when the event associated with this EventTriggerBase is fired. By default, this will invoke all actions on the trigger. + + The instance containing the event data. + Override this to provide more granular control over when actions associated with this trigger will be invoked. + + + + Called when the source changes. + + The old source. + The new source. + This function should be overridden in derived classes to hook functionality to and unhook functionality from the changing source objects. + + + + Called after the trigger is attached to an AssociatedObject. + + + + + Called when the trigger is being detached from its AssociatedObject, but before it has actually occurred. + + + + Could not find eventName on the Target. + + + + Gets the type constraint of the associated object. + + The associated object type constraint. + Define a TypeConstraintAttribute on a derived type to constrain the types it may be attached to. + + + + Gets the source type constraint. + + The source type constraint. + + + + Gets or sets the target object. If TargetObject is not set, the target will look for the object specified by TargetName. If an element referred to by TargetName cannot be found, the target will default to the AssociatedObject. This is a dependency property. + + The target object. + + + + Gets or sets the name of the element this EventTriggerBase listens for as a source. If the name is not set or cannot be resolved, the AssociatedObject will be used. This is a dependency property. + + The name of the source element. + + + + Gets the resolved source. If is not set or cannot be resolved, defaults to AssociatedObject. + + The resolved source object. + In general, this property should be used in place of AssociatedObject in derived classes. + The element pointed to by does not satisify the type constraint. + + + + Initializes a new instance of the class. + + + + + Called when the source property changes. + + Override this to hook functionality to and unhook functionality from the specified source, rather than the AssociatedObject. + The old source. + The new source. + + + + Gets the resolved source. If is not set or cannot be resolved, defaults to AssociatedObject. + + The resolved source object. + In general, this property should be used in place of AssociatedObject in derived classes. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the event. + + + + Gets or sets the name of the event to listen for. This is a dependency property. + + The name of the event. + + + + Static class that owns the Triggers and Behaviors attached properties. Handles propagation of AssociatedObject change notifications. + + + + + This property is used as the internal backing store for the public Triggers attached property. + + + This property is not exposed publicly. This forces clients to use the GetTriggers and SetTriggers methods to access the + collection, ensuring the collection exists and is set before it is used. + + + + + This property is used as the internal backing store for the public Behaviors attached property. + + + This property is not exposed publicly. This forces clients to use the GetBehaviors and SetBehaviors methods to access the + collection, ensuring the collection exists and is set before it is used. + + + + + Gets the TriggerCollection containing the triggers associated with the specified object. + + The object from which to retrieve the triggers. + A TriggerCollection containing the triggers associated with the specified object. + + + + Gets the associated with a specified object. + + The object from which to retrieve the . + A containing the behaviors associated with the specified object. + + + Cannot host the same BehaviorCollection on more than one object at a time. + + + Cannot host the same TriggerCollection on more than one object at a time. + + + + A helper function to take the place of FrameworkElement.IsLoaded, as this property is not available in Silverlight. + + The element of interest. + True if the element has been loaded; otherwise, False. + + + + Gets or sets a value indicating whether to run as if in design mode. + + + True if [should run in design mode]; otherwise, False. + + Not to be used outside unit tests. + + + + Executes a specified ICommand when invoked. + + + + + Represents an attachable object that encapsulates a unit of functionality. + + The type to which this action can be attached. + + + + Represents an attachable object that encapsulates a unit of functionality. + + This is an infrastructure class. Action authors should derive from TriggerAction<T> instead of this class. + + + + Attempts to invoke the action. + + The parameter to the action. If the action does not require a parameter, the parameter may be set to a null reference. + + + + Invokes the action. + + The parameter to the action. If the action does not require a parameter, the parameter may be set to a null reference. + + + + Called after the action is attached to an AssociatedObject. + + + + + Called when the action is being detached from its AssociatedObject, but before it has actually occurred. + + + + + When implemented in a derived class, creates a new instance of the derived class. + + The new instance. + + + + Attaches to the specified object. + + The object to attach to. + Cannot host the same TriggerAction on more than one object at a time. + dependencyObject does not satisfy the TriggerAction type constraint. + + + + Detaches this instance from its associated object. + + + + + Gets or sets a value indicating whether this action will run when invoked. This is a dependency property. + + + True if this action will be run when invoked; otherwise, False. + + + + + Gets the object to which this action is attached. + + The associated object. + + + + Gets the associated object type constraint. + + The associated object type constraint. + + + + Gets or sets a value indicating whether this instance is attached. + + True if this instance is attached; otherwise, False. + + + + Gets the associated object. + + The associated object. + + + + Initializes a new instance of the class. + + + + + Gets the object to which this is attached. + + The associated object. + + + + Gets the associated object type constraint. + + The associated object type constraint. + + + + Invokes the action. + + The parameter to the action. If the action does not require a parameter, the parameter may be set to a null reference. + + + + Gets or sets the name of the command this action should invoke. + + The name of the command this action should invoke. + This property will be superseded by the Command property if both are set. + + + + Gets or sets the command this action should invoke. This is a dependency property. + + The command to execute. + This property will take precedence over the CommandName property if both are set. + + + + Gets or sets the command parameter. This is a dependency property. + + The command parameter. + This is the value passed to ICommand.CanExecute and ICommand.Execute. + + + + Provides data about which objects were affected when resolving a name change. + + + + + Helper class to handle the logic of resolving a TargetName into a Target element + based on the context provided by a host element. + + + + + Attempts to update the resolved object from the name within the context of the namescope reference element. + + The old resolved object. + + Resets the existing target and attempts to resolve the current TargetName from the + context of the current Host. If it cannot resolve from the context of the Host, it will + continue up the visual tree until it resolves. If it has not resolved it when it reaches + the root, it will set the Target to null and write a warning message to Debug output. + + + + + Occurs when the resolved element has changed. + + + + + Gets or sets the name of the element to attempt to resolve. + + The name to attempt to resolve. + + + + The resolved object. Will return the reference element if TargetName is null or empty, or if a resolve has not been attempted. + + + + + Gets or sets the reference element from which to perform the name resolution. + + The reference element. + + + + Gets or sets a value indicating whether the reference element load is pending. + + + True if [pending reference element load]; otherwise, False. + + + If the Host has not been loaded, the name will not be resolved. + In that case, delay the resolution and track that fact with this property. + + + + + Represents an action that can be targeted to affect an object other than its AssociatedObject. + + The type constraint on the target. + + TargetedTriggerAction extends TriggerAction to add knowledge of another element than the one it is attached to. + This allows a user to invoke the action on an element other than the one it is attached to in response to a + trigger firing. Override OnTargetChanged to hook or unhook handlers on the target element, and OnAttached/OnDetaching + for the associated element. The type of the Target element can be constrained by the generic type parameter. If + you need control over the type of the AssociatedObject, set a TypeConstraintAttribute on your derived type. + + + + + Represents an action that can be targeted to affect an object other than its AssociatedObject. + + This is an infrastructure class. Action authors should derive from TargetedTriggerAction<T> instead of this class. + + + + Called when the target changes. + + The old target. + The new target. + This function should be overriden in derived classes to hook and unhook functionality from the changing source objects. + + + + Called after the action is attached to an AssociatedObject. + + + + + Called when the action is being detached from its AssociatedObject, but before it has actually occurred. + + + + + Gets or sets the target object. If TargetObject is not set, the target will look for the object specified by TargetName. If an element referred to by TargetName cannot be found, the target will default to the AssociatedObject. This is a dependency property. + + The target object. + + + + Gets or sets the name of the object this action targets. If Target is set, this property is ignored. If Target is not set and TargetName is not set or cannot be resolved, the target will default to the AssociatedObject. This is a dependency property. + + The name of the target object. + + + + Gets the target object. If TargetObject is set, returns TargetObject. Else, if TargetName is not set or cannot be resolved, defaults to the AssociatedObject. + + The target object. + In general, this property should be used in place of AssociatedObject in derived classes. + The Target element does not satisfy the type constraint. + + + + Gets the associated object type constraint. + + The associated object type constraint. + Define a TypeConstraintAttribute on a derived type to constrain the types it may be attached to. + + + + Gets the target type constraint. + + The target type constraint. + + + + Initializes a new instance of the class. + + + + + Called when the target property changes. + + Override this to hook and unhook functionality on the specified Target, rather than the AssociatedObject. + The old target. + The new target. + + + + Gets the target object. If TargetName is not set or cannot be resolved, defaults to the AssociatedObject. + + The target. + In general, this property should be used in place of AssociatedObject in derived classes. + + + + Represents a collection of actions with a shared AssociatedObject and provides change notifications to its contents when that AssociatedObject changes. + + + + + Initializes a new instance of the class. + + Internal, because this should not be inherited outside this assembly. + + + + Called immediately after the collection is attached to an AssociatedObject. + + + + + Called when the collection is being detached from its AssociatedObject, but before it has actually occurred. + + + + + Called when a new item is added to the collection. + + The new item. + + + + Called when an item is removed from the collection. + + The removed item. + + + + Creates a new instance of the TriggerActionCollection. + + The new instance. + + + + Represents an object that can invoke actions conditionally. + + The type to which this trigger can be attached. + + TriggerBase is the base class for controlling actions. Override OnAttached() and + OnDetaching() to hook and unhook handlers on the AssociatedObject. You may + constrain the types that a derived TriggerBase may be attached to by specifying + the generic parameter. Call InvokeActions() to fire all Actions associated with + this TriggerBase. + + + + + Initializes a new instance of the class. + + + + + Gets the object to which the trigger is attached. + + The associated object. + + + + Gets the type constraint of the associated object. + + The associated object type constraint. + + + + Argument passed to PreviewInvoke event. Assigning Cancelling to True will cancel the invoking of the trigger. + + This is an infrastructure class. Behavior attached to a trigger base object can add its behavior as a listener to TriggerBase.PreviewInvoke. + + + + Represents a collection of triggers with a shared AssociatedObject and provides change notifications to its contents when that AssociatedObject changes. + + + + + Initializes a new instance of the class. + + Internal, because this should not be inherited outside this assembly. + + + + Called immediately after the collection is attached to an AssociatedObject. + + + + + Called when the collection is being detached from its AssociatedObject, but before it has actually occurred. + + + + + Called when a new item is added to the collection. + + The new item. + + + + Called when an item is removed from the collection. + + The removed item. + + + + Creates a new instance of the . + + The new instance. + + + + Specifies type constraints on the AssociatedObject of TargetedTriggerAction and EventTriggerBase. + + + + + Initializes a new instance of the class. + + The constraint type. + + + + Gets the constraint type. + + The constraint type. + + + + 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 Cannot set the same BehaviorCollection on multiple objects.. + + + + + Looks up a localized string similar to An instance of a Behavior cannot be attached to more than one object at a time.. + + + + + Looks up a localized string similar to Cannot host an instance of a TriggerAction in multiple TriggerCollections simultaneously. Remove it from one TriggerCollection before adding it to another.. + + + + + Looks up a localized string similar to Cannot set the same TriggerCollection on multiple objects.. + + + + + Looks up a localized string similar to An instance of a trigger cannot be attached to more than one object at a time.. + + + + + Looks up a localized string similar to The command "{0}" does not exist or is not publicly exposed on {1}.. + + + + + Looks up a localized string similar to "{0}" is not a valid type for the TriggerType parameter. Make sure "{0}" derives from TriggerBase.. + + + + + Looks up a localized string similar to Cannot add the same instance of "{0}" to a "{1}" more than once.. + + + + + Looks up a localized string similar to The event "{0}" on type "{1}" has an incompatible signature. Make sure the event is public and satisfies the EventHandler delegate.. + + + + + Looks up a localized string similar to Cannot find an event named "{0}" on type "{1}".. + + + + + Looks up a localized string similar to An object of type "{0}" cannot have a {3} property of type "{1}". Instances of type "{0}" can have only a {3} property of type "{2}".. + + + + + Looks up a localized string similar to Cannot attach type "{0}" to type "{1}". Instances of type "{0}" can only be attached to objects of type "{2}".. + + + + + Looks up a localized string similar to Unable to resolve TargetName "{0}".. + + + + diff --git a/bin/Debug/de/Microsoft.Expression.Interactions.resources.dll b/bin/Debug/de/Microsoft.Expression.Interactions.resources.dll new file mode 100644 index 0000000..ec30f52 Binary files /dev/null and b/bin/Debug/de/Microsoft.Expression.Interactions.resources.dll differ diff --git a/bin/Debug/de/System.Windows.Interactivity.resources.dll b/bin/Debug/de/System.Windows.Interactivity.resources.dll new file mode 100644 index 0000000..6fd40e9 Binary files /dev/null and b/bin/Debug/de/System.Windows.Interactivity.resources.dll differ diff --git a/bin/Debug/en/Microsoft.Expression.Interactions.resources.dll b/bin/Debug/en/Microsoft.Expression.Interactions.resources.dll new file mode 100644 index 0000000..0eca265 Binary files /dev/null and b/bin/Debug/en/Microsoft.Expression.Interactions.resources.dll differ diff --git a/bin/Debug/en/System.Windows.Interactivity.resources.dll b/bin/Debug/en/System.Windows.Interactivity.resources.dll new file mode 100644 index 0000000..a9aac8e Binary files /dev/null and b/bin/Debug/en/System.Windows.Interactivity.resources.dll differ diff --git a/bin/Debug/es/Microsoft.Expression.Interactions.resources.dll b/bin/Debug/es/Microsoft.Expression.Interactions.resources.dll new file mode 100644 index 0000000..7b8754c Binary files /dev/null and b/bin/Debug/es/Microsoft.Expression.Interactions.resources.dll differ diff --git a/bin/Debug/es/System.Windows.Interactivity.resources.dll b/bin/Debug/es/System.Windows.Interactivity.resources.dll new file mode 100644 index 0000000..bc65afb Binary files /dev/null and b/bin/Debug/es/System.Windows.Interactivity.resources.dll differ diff --git a/bin/Debug/fr/Microsoft.Expression.Interactions.resources.dll b/bin/Debug/fr/Microsoft.Expression.Interactions.resources.dll new file mode 100644 index 0000000..3540f1e Binary files /dev/null and b/bin/Debug/fr/Microsoft.Expression.Interactions.resources.dll differ diff --git a/bin/Debug/fr/System.Windows.Interactivity.resources.dll b/bin/Debug/fr/System.Windows.Interactivity.resources.dll new file mode 100644 index 0000000..e4b0407 Binary files /dev/null and b/bin/Debug/fr/System.Windows.Interactivity.resources.dll differ diff --git a/bin/Debug/it/Microsoft.Expression.Interactions.resources.dll b/bin/Debug/it/Microsoft.Expression.Interactions.resources.dll new file mode 100644 index 0000000..0fcd653 Binary files /dev/null and b/bin/Debug/it/Microsoft.Expression.Interactions.resources.dll differ diff --git a/bin/Debug/it/System.Windows.Interactivity.resources.dll b/bin/Debug/it/System.Windows.Interactivity.resources.dll new file mode 100644 index 0000000..758cb54 Binary files /dev/null and b/bin/Debug/it/System.Windows.Interactivity.resources.dll differ diff --git a/bin/Debug/ja/Microsoft.Expression.Interactions.resources.dll b/bin/Debug/ja/Microsoft.Expression.Interactions.resources.dll new file mode 100644 index 0000000..7ef3def Binary files /dev/null and b/bin/Debug/ja/Microsoft.Expression.Interactions.resources.dll differ diff --git a/bin/Debug/ja/System.Windows.Interactivity.resources.dll b/bin/Debug/ja/System.Windows.Interactivity.resources.dll new file mode 100644 index 0000000..94edbdc Binary files /dev/null and b/bin/Debug/ja/System.Windows.Interactivity.resources.dll differ diff --git a/bin/Debug/ko/Microsoft.Expression.Interactions.resources.dll b/bin/Debug/ko/Microsoft.Expression.Interactions.resources.dll new file mode 100644 index 0000000..2cf1eeb Binary files /dev/null and b/bin/Debug/ko/Microsoft.Expression.Interactions.resources.dll differ diff --git a/bin/Debug/ko/System.Windows.Interactivity.resources.dll b/bin/Debug/ko/System.Windows.Interactivity.resources.dll new file mode 100644 index 0000000..2fc1694 Binary files /dev/null and b/bin/Debug/ko/System.Windows.Interactivity.resources.dll differ diff --git a/bin/Debug/log4net.dll b/bin/Debug/log4net.dll new file mode 100644 index 0000000..93fb476 Binary files /dev/null and b/bin/Debug/log4net.dll differ diff --git a/bin/Debug/log4net.xml b/bin/Debug/log4net.xml new file mode 100644 index 0000000..df56743 --- /dev/null +++ b/bin/Debug/log4net.xml @@ -0,0 +1,32464 @@ + + + + log4net + + + + + Appender that logs to a database. + + + + appends logging events to a table within a + database. The appender can be configured to specify the connection + string by setting the property. + The connection type (provider) can be specified by setting the + property. For more information on database connection strings for + your specific database see http://www.connectionstrings.com/. + + + Records are written into the database either using a prepared + statement or a stored procedure. The property + is set to (System.Data.CommandType.Text) to specify a prepared statement + or to (System.Data.CommandType.StoredProcedure) to specify a stored + procedure. + + + The prepared statement text or the name of the stored procedure + must be set in the property. + + + The prepared statement or stored procedure can take a number + of parameters. Parameters are added using the + method. This adds a single to the + ordered list of parameters. The + type may be subclassed if required to provide database specific + functionality. The specifies + the parameter name, database type, size, and how the value should + be generated using a . + + + + An example of a SQL Server table that could be logged to: + + CREATE TABLE [dbo].[Log] ( + [ID] [int] IDENTITY (1, 1) NOT NULL , + [Date] [datetime] NOT NULL , + [Thread] [varchar] (255) NOT NULL , + [Level] [varchar] (20) NOT NULL , + [Logger] [varchar] (255) NOT NULL , + [Message] [varchar] (4000) NOT NULL + ) ON [PRIMARY] + + + + An example configuration to log to the above table: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Julian Biddle + Nicko Cadell + Gert Driesen + Lance Nehring + + + + Abstract base class implementation of that + buffers events in a fixed size buffer. + + + + This base class should be used by appenders that need to buffer a + number of events before logging them. For example the + buffers events and then submits the entire contents of the buffer to + the underlying database in one go. + + + Subclasses should override the + method to deliver the buffered events. + + The BufferingAppenderSkeleton maintains a fixed size cyclic + buffer of events. The size of the buffer is set using + the property. + + A is used to inspect + each event as it arrives in the appender. If the + triggers, then the current buffer is sent immediately + (see ). Otherwise the event + is stored in the buffer. For example, an evaluator can be used to + deliver the events immediately when an ERROR event arrives. + + + The buffering appender can be configured in a mode. + By default the appender is NOT lossy. When the buffer is full all + the buffered events are sent with . + If the property is set to true then the + buffer will not be sent when it is full, and new events arriving + in the appender will overwrite the oldest event in the buffer. + In lossy mode the buffer will only be sent when the + triggers. This can be useful behavior when you need to know about + ERROR events but not about events with a lower level, configure an + evaluator that will trigger when an ERROR event arrives, the whole + buffer will be sent which gives a history of events leading up to + the ERROR event. + + + Nicko Cadell + Gert Driesen + + + + Abstract base class implementation of . + + + + This class provides the code for common functionality, such + as support for threshold filtering and support for general filters. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + Implement this interface for your own strategies for printing log statements. + + + + Implementors should consider extending the + class which provides a default implementation of this interface. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Log the logging event in Appender specific way. + + The event to log + + + This method is called to log a message into this appender. + + + + + + Gets or sets the name of this appender. + + The name of the appender. + + The name uniquely identifies the appender. + + + + + Interface for appenders that support bulk logging. + + + + This interface extends the interface to + support bulk logging of objects. Appenders + should only implement this interface if they can bulk log efficiently. + + + Nicko Cadell + + + + Log the array of logging events in Appender specific way. + + The events to log + + + This method is called to log an array of events into this appender. + + + + + + Interface used to delay activate a configured object. + + + + This allows an object to defer activation of its options until all + options have been set. This is required for components which have + related options that remain ambiguous until all are set. + + + If a component implements this interface then the method + must be called by the container after its all the configured properties have been set + and before the component can be used. + + + Nicko Cadell + + + + Activate the options that were previously set with calls to properties. + + + + This allows an object to defer activation of its options until all + options have been set. This is required for components which have + related options that remain ambiguous until all are set. + + + If a component implements this interface then this method must be called + after its properties have been set before the component can be used. + + + + + + Interface that can be implemented by Appenders that buffer logging data and expose a method. + + + + + Flushes any buffered log data. + + + Appenders that implement the method must do so in a thread-safe manner: it can be called concurrently with + the method. + + Typically this is done by locking on the Appender instance, e.g.: + + + + + + The parameter is only relevant for appenders that process logging events asynchronously, + such as . + + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + Default constructor + + + Empty default constructor + + + + + Finalizes this appender by calling the implementation's + method. + + + + If this appender has not been closed then the Finalize method + will call . + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Closes the appender and release resources. + + + + Release any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + This method cannot be overridden by subclasses. This method + delegates the closing of the appender to the + method which must be overridden in the subclass. + + + + + + Performs threshold checks and invokes filters before + delegating actual logging to the subclasses specific + method. + + The event to log. + + + This method cannot be overridden by derived classes. A + derived class should override the method + which is called by this method. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + Calls and checks that + it returns true. + + + + + If all of the above steps succeed then the + will be passed to the abstract method. + + + + + + Performs threshold checks and invokes filters before + delegating actual logging to the subclasses specific + method. + + The array of events to log. + + + This method cannot be overridden by derived classes. A + derived class should override the method + which is called by this method. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + Calls and checks that + it returns true. + + + + + If all of the above steps succeed then the + will be passed to the method. + + + + + + Test if the logging event should we output by this appender + + the event to test + true if the event should be output, false if the event should be ignored + + + This method checks the logging event against the threshold level set + on this appender and also against the filters specified on this + appender. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + + + + + Adds a filter to the end of the filter chain. + + the filter to add to this appender + + + The Filters are organized in a linked list. + + + Setting this property causes the new filter to be pushed onto the + back of the filter chain. + + + + + + Clears the filter list for this appender. + + + + Clears the filter list for this appender. + + + + + + Checks if the message level is below this appender's threshold. + + to test against. + + + If there is no threshold set, then the return value is always true. + + + + true if the meets the + requirements of this appender. + + + + + Is called when the appender is closed. Derived classes should override + this method if resources need to be released. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Subclasses of should implement this method + to perform actual logging. + + The event to append. + + + A subclass must implement this method to perform + logging of the . + + This method will be called by + if all the conditions listed for that method are met. + + + To restrict the logging of events in the appender + override the method. + + + + + + Append a bulk array of logging events. + + the array of logging events + + + This base class implementation calls the + method for each element in the bulk array. + + + A sub class that can better process a bulk array of events should + override this method in addition to . + + + + + + Called before as a precondition. + + + + This method is called by + before the call to the abstract method. + + + This method can be overridden in a subclass to extend the checks + made before the event is passed to the method. + + + A subclass should ensure that they delegate this call to + this base class if it is overridden. + + + true if the call to should proceed. + + + + Renders the to a string. + + The event to render. + The event rendered as a string. + + + Helper method to render a to + a string. This appender must have a + set to render the to + a string. + + If there is exception data in the logging event and + the layout does not process the exception, this method + will append the exception text to the rendered string. + + + Where possible use the alternative version of this method + . + That method streams the rendering onto an existing Writer + which can give better performance if the caller already has + a open and ready for writing. + + + + + + Renders the to a string. + + The event to render. + The TextWriter to write the formatted event to + + + Helper method to render a to + a string. This appender must have a + set to render the to + a string. + + If there is exception data in the logging event and + the layout does not process the exception, this method + will append the exception text to the rendered string. + + + Use this method in preference to + where possible. If, however, the caller needs to render the event + to a string then does + provide an efficient mechanism for doing so. + + + + + + Flushes any buffered log data. + + + This implementation doesn't flush anything and always returns true + + True if all logging events were flushed successfully, else false. + + + + The layout of this appender. + + + See for more information. + + + + + The name of this appender. + + + See for more information. + + + + + The level threshold of this appender. + + + + There is no level threshold filtering by default. + + + See for more information. + + + + + + It is assumed and enforced that errorHandler is never null. + + + + It is assumed and enforced that errorHandler is never null. + + + See for more information. + + + + + + The first filter in the filter chain. + + + + Set to null initially. + + + See for more information. + + + + + + The last filter in the filter chain. + + + See for more information. + + + + + Flag indicating if this appender is closed. + + + See for more information. + + + + + The guard prevents an appender from repeatedly calling its own DoAppend method + + + + + StringWriter used to render events + + + + + The fully qualified type of the AppenderSkeleton class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the threshold of this appender. + + + The threshold of the appender. + + + + All log events with lower level than the threshold level are ignored + by the appender. + + + In configuration files this option is specified by setting the + value of the option to a level + string, such as "DEBUG", "INFO" and so on. + + + + + + Gets or sets the for this appender. + + The of the appender + + + The provides a default + implementation for the property. + + + + + + The filter chain. + + The head of the filter chain filter chain. + + + Returns the head Filter. The Filters are organized in a linked list + and so all Filters on this Appender are available through the result. + + + + + + Gets or sets the for this appender. + + The layout of the appender. + + + See for more information. + + + + + + + Gets or sets the name of this appender. + + The name of the appender. + + + The name uniquely identifies the appender. + + + + + + Tests if this appender requires a to be set. + + + + In the rather exceptional case, where the appender + implementation admits a layout but can also work without it, + then the appender should return true. + + + This default implementation always returns false. + + + + true if the appender requires a layout object, otherwise false. + + + + + The default buffer size. + + + The default size of the cyclic buffer used to store events. + This is set to 512 by default. + + + + + Initializes a new instance of the class. + + + + Protected default constructor to allow subclassing. + + + + + + Initializes a new instance of the class. + + the events passed through this appender must be + fixed by the time that they arrive in the derived class' SendBuffer method. + + + Protected constructor to allow subclassing. + + + The should be set if the subclass + expects the events delivered to be fixed even if the + is set to zero, i.e. when no buffering occurs. + + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Flush the currently buffered events + + + + Flushes any events that have been buffered. + + + If the appender is buffering in mode then the contents + of the buffer will NOT be flushed to the appender. + + + + + + Flush the currently buffered events + + set to true to flush the buffer of lossy events + + + Flushes events that have been buffered. If is + false then events will only be flushed if this buffer is non-lossy mode. + + + If the appender is buffering in mode then the contents + of the buffer will only be flushed if is true. + In this case the contents of the buffer will be tested against the + and if triggering will be output. All other buffered + events will be discarded. + + + If is true then the buffer will always + be emptied by calling this method. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Close this appender instance. + + + + Close this appender instance. If this appender is marked + as not then the remaining events in + the buffer must be sent when the appender is closed. + + + + + + This method is called by the method. + + the event to log + + + Stores the in the cyclic buffer. + + + The buffer will be sent (i.e. passed to the + method) if one of the following conditions is met: + + + + The cyclic buffer is full and this appender is + marked as not lossy (see ) + + + An is set and + it is triggered for the + specified. + + + + Before the event is stored in the buffer it is fixed + (see ) to ensure that + any data referenced by the event will be valid when the buffer + is processed. + + + + + + Sends the contents of the buffer. + + The first logging event. + The buffer containing the events that need to be send. + + + The subclass must override . + + + + + + Sends the events. + + The events that need to be send. + + + The subclass must override this method to process the buffered events. + + + + + + The size of the cyclic buffer used to hold the logging events. + + + Set to by default. + + + + + The cyclic buffer used to store the logging events. + + + + + The triggering event evaluator that causes the buffer to be sent immediately. + + + The object that is used to determine if an event causes the entire + buffer to be sent immediately. This field can be null, which + indicates that event triggering is not to be done. The evaluator + can be set using the property. If this appender + has the ( property) set to + true then an must be set. + + + + + Indicates if the appender should overwrite events in the cyclic buffer + when it becomes full, or if the buffer should be flushed when the + buffer is full. + + + If this field is set to true then an must + be set. + + + + + The triggering event evaluator filters discarded events. + + + The object that is used to determine if an event that is discarded should + really be discarded or if it should be sent to the appenders. + This field can be null, which indicates that all discarded events will + be discarded. + + + + + Value indicating which fields in the event should be fixed + + + By default all fields are fixed + + + + + The events delivered to the subclass must be fixed. + + + + + Gets or sets a value that indicates whether the appender is lossy. + + + true if the appender is lossy, otherwise false. The default is false. + + + + This appender uses a buffer to store logging events before + delivering them. A triggering event causes the whole buffer + to be send to the remote sink. If the buffer overruns before + a triggering event then logging events could be lost. Set + to false to prevent logging events + from being lost. + + If is set to true then an + must be specified. + + + + + Gets or sets the size of the cyclic buffer used to hold the + logging events. + + + The size of the cyclic buffer used to hold the logging events. + + + + The option takes a positive integer + representing the maximum number of logging events to collect in + a cyclic buffer. When the is reached, + oldest events are deleted as new events are added to the + buffer. By default the size of the cyclic buffer is 512 events. + + + If the is set to a value less than + or equal to 1 then no buffering will occur. The logging event + will be delivered synchronously (depending on the + and properties). Otherwise the event will + be buffered. + + + + + + Gets or sets the that causes the + buffer to be sent immediately. + + + The that causes the buffer to be + sent immediately. + + + + The evaluator will be called for each event that is appended to this + appender. If the evaluator triggers then the current buffer will + immediately be sent (see ). + + If is set to true then an + must be specified. + + + + + Gets or sets the value of the to use. + + + The value of the to use. + + + + The evaluator will be called for each event that is discarded from this + appender. If the evaluator triggers then the current buffer will immediately + be sent (see ). + + + + + + Gets or sets a value indicating if only part of the logging event data + should be fixed. + + + true if the appender should only fix part of the logging event + data, otherwise false. The default is false. + + + + Setting this property to true will cause only part of the + event data to be fixed and serialized. This will improve performance. + + + See for more information. + + + + + + Gets or sets a the fields that will be fixed in the event + + + The event fields that will be fixed before the event is buffered + + + + The logging event needs to have certain thread specific values + captured before it can be buffered. See + for details. + + + + + + + Initializes a new instance of the class. + + + Public default constructor to initialize a new instance of this class. + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Override the parent method to close the database + + + + Closes the database command and database connection. + + + + + + Inserts the events into the database. + + The events to insert into the database. + + + Insert all the events specified in the + array into the database. + + + + + + Adds a parameter to the command. + + The parameter to add to the command. + + + Adds a parameter to the ordered list of command parameters. + + + + + + Writes the events to the database using the transaction specified. + + The transaction that the events will be executed under. + The array of events to insert into the database. + + + The transaction argument can be null if the appender has been + configured not to use transactions. See + property for more information. + + + + + + Formats the log message into database statement text. + + The event being logged. + + This method can be overridden by subclasses to provide + more control over the format of the database statement. + + + Text that can be passed to a . + + + + + Creates an instance used to connect to the database. + + + This method is called whenever a new IDbConnection is needed (i.e. when a reconnect is necessary). + + The of the object. + The connectionString output from the ResolveConnectionString method. + An instance with a valid connection string. + + + + Resolves the connection string from the ConnectionString, ConnectionStringName, or AppSettingsKey + property. + + + ConnectiongStringName is only supported on .NET 2.0 and higher. + + Additional information describing the connection string. + A connection string used to connect to the database. + + + + Retrieves the class type of the ADO.NET provider. + + + + Gets the Type of the ADO.NET provider to use to connect to the + database. This method resolves the type specified in the + property. + + + Subclasses can override this method to return a different type + if necessary. + + + The of the ADO.NET provider + + + + Connects to the database. + + + + + Cleanup the existing connection. + + + Calls the IDbConnection's method. + + + + + The list of objects. + + + + The list of objects. + + + + + + The security context to use for privileged calls + + + + + The that will be used + to insert logging events into a database. + + + + + Database connection string. + + + + + The appSettings key from App.Config that contains the connection string. + + + + + The connectionStrings key from App.Config that contains the connection string. + + + + + String type name of the type name. + + + + + The text of the command. + + + + + The command type. + + + + + Indicates whether to use transactions when writing to the database. + + + + + Indicates whether to reconnect when a connection is lost. + + + + + The fully qualified type of the AdoNetAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the database connection string that is used to connect to + the database. + + + The database connection string used to connect to the database. + + + + The connections string is specific to the connection type. + See for more information. + + + Connection string for MS Access via ODBC: + "DSN=MS Access Database;UID=admin;PWD=;SystemDB=C:\data\System.mdw;SafeTransactions = 0;FIL=MS Access;DriverID = 25;DBQ=C:\data\train33.mdb" + + Another connection string for MS Access via ODBC: + "Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\Work\cvs_root\log4net-1.2\access.mdb;UID=;PWD=;" + + Connection string for MS Access via OLE DB: + "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Work\cvs_root\log4net-1.2\access.mdb;User Id=;Password=;" + + + + + The appSettings key from App.Config that contains the connection string. + + + + + The connectionStrings key from App.Config that contains the connection string. + + + This property requires at least .NET 2.0. + + + + + Gets or sets the type name of the connection + that should be created. + + + The type name of the connection. + + + + The type name of the ADO.NET provider to use. + + + The default is to use the OLE DB provider. + + + Use the OLE DB Provider. This is the default value. + System.Data.OleDb.OleDbConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Use the MS SQL Server Provider. + System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Use the ODBC Provider. + Microsoft.Data.Odbc.OdbcConnection,Microsoft.Data.Odbc,version=1.0.3300.0,publicKeyToken=b77a5c561934e089,culture=neutral + This is an optional package that you can download from + http://msdn.microsoft.com/downloads + search for ODBC .NET Data Provider. + + Use the Oracle Provider. + System.Data.OracleClient.OracleConnection, System.Data.OracleClient, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + This is an optional package that you can download from + http://msdn.microsoft.com/downloads + search for .NET Managed Provider for Oracle. + + + + + Gets or sets the command text that is used to insert logging events + into the database. + + + The command text used to insert logging events into the database. + + + + Either the text of the prepared statement or the + name of the stored procedure to execute to write into + the database. + + + The property determines if + this text is a prepared statement or a stored procedure. + + + If this property is not set, the command text is retrieved by invoking + . + + + + + + Gets or sets the command type to execute. + + + The command type to execute. + + + + This value may be either (System.Data.CommandType.Text) to specify + that the is a prepared statement to execute, + or (System.Data.CommandType.StoredProcedure) to specify that the + property is the name of a stored procedure + to execute. + + + The default value is (System.Data.CommandType.Text). + + + + + + Should transactions be used to insert logging events in the database. + + + true if transactions should be used to insert logging events in + the database, otherwise false. The default value is true. + + + + Gets or sets a value that indicates whether transactions should be used + to insert logging events in the database. + + + When set a single transaction will be used to insert the buffered events + into the database. Otherwise each event will be inserted without using + an explicit transaction. + + + + + + Gets or sets the used to call the NetSend method. + + + The used to call the NetSend method. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Should this appender try to reconnect to the database on error. + + + true if the appender should try to reconnect to the database after an + error has occurred, otherwise false. The default value is false, + i.e. not to try to reconnect. + + + + The default behaviour is for the appender not to try to reconnect to the + database if an error occurs. Subsequent logging events are discarded. + + + To force the appender to attempt to reconnect to the database set this + property to true. + + + When the appender attempts to connect to the database there may be a + delay of up to the connection timeout specified in the connection string. + This delay will block the calling application's thread. + Until the connection can be reestablished this potential delay may occur multiple times. + + + + + + Gets or sets the underlying . + + + The underlying . + + + creates a to insert + logging events into a database. Classes deriving from + can use this property to get or set this . Use the + underlying returned from if + you require access beyond that which provides. + + + + + Parameter type used by the . + + + + This class provides the basic database parameter properties + as defined by the interface. + + This type can be subclassed to provide database specific + functionality. The two methods that are called externally are + and . + + + + + + Initializes a new instance of the class. + + + Default constructor for the AdoNetAppenderParameter class. + + + + + Prepare the specified database command object. + + The command to prepare. + + + Prepares the database command object by adding + this parameter to its collection of parameters. + + + + + + Renders the logging event and set the parameter value in the command. + + The command containing the parameter. + The event to be rendered. + + + Renders the logging event using this parameters layout + object. Sets the value of the parameter on the command object. + + + + + + The name of this parameter. + + + + + The database type for this parameter. + + + + + Flag to infer type rather than use the DbType + + + + + The precision for this parameter. + + + + + The scale for this parameter. + + + + + The size for this parameter. + + + + + The to use to render the + logging event into an object for this parameter. + + + + + Gets or sets the name of this parameter. + + + The name of this parameter. + + + + The name of this parameter. The parameter name + must match up to a named parameter to the SQL stored procedure + or prepared statement. + + + + + + Gets or sets the database type for this parameter. + + + The database type for this parameter. + + + + The database type for this parameter. This property should + be set to the database type from the + enumeration. See . + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the type from the value. + + + + + + + Gets or sets the precision for this parameter. + + + The precision for this parameter. + + + + The maximum number of digits used to represent the Value. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the precision from the value. + + + + + + + Gets or sets the scale for this parameter. + + + The scale for this parameter. + + + + The number of decimal places to which Value is resolved. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the scale from the value. + + + + + + + Gets or sets the size for this parameter. + + + The size for this parameter. + + + + The maximum size, in bytes, of the data within the column. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the size from the value. + + + For BLOB data types like VARCHAR(max) it may be impossible to infer the value automatically, use -1 as the size in this case. + + + + + + + Gets or sets the to use to + render the logging event into an object for this + parameter. + + + The used to render the + logging event into an object for this parameter. + + + + The that renders the value for this + parameter. + + + The can be used to adapt + any into a + for use in the property. + + + + + + Appends logging events to the terminal using ANSI color escape sequences. + + + + AnsiColorTerminalAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific level of message to be set. + + + This appender expects the terminal to understand the VT100 control set + in order to interpret the color codes. If the terminal or console does not + understand the control codes the behavior is not defined. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes each message to the System.Console.Out or + System.Console.Error that is set at the time the event is appended. + Therefore it is possible to programmatically redirect the output of this appender + (for example NUnit does this to capture program output). While this is the desired + behavior of this appender it may have security implications in your application. + + + When configuring the ANSI colored terminal appender, a mapping should be + specified to map a logging level to a color. For example: + + + + + + + + + + + + + + + The Level is the standard log4net logging level and ForeColor and BackColor can be any + of the following values: + + Blue + Green + Red + White + Yellow + Purple + Cyan + + These color values cannot be combined together to make new colors. + + + The attributes can be any combination of the following: + + Brightforeground is brighter + Dimforeground is dimmer + Underscoremessage is underlined + Blinkforeground is blinking (does not work on all terminals) + Reverseforeground and background are reversed + Hiddenoutput is hidden + Strikethroughmessage has a line through it + + While any of these attributes may be combined together not all combinations + work well together, for example setting both Bright and Dim attributes makes + no sense. + + + Patrick Wagstrom + Nicko Cadell + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Ansi code to reset terminal + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Add a mapping of level to color + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colours + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + Target is the value of the console output stream. + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + The enum of possible display attributes + + + + The following flags can be combined together to + form the ANSI color attributes. + + + + + + + text is bright + + + + + text is dim + + + + + text is underlined + + + + + text is blinking + + + Not all terminals support this attribute + + + + + text and background colors are reversed + + + + + text is hidden + + + + + text is displayed with a strikethrough + + + + + text color is light + + + + + The enum of possible foreground or background color values for + use with the color mapping method + + + + The output can be in one for the following ANSI colors. + + + + + + + color is black + + + + + color is red + + + + + color is green + + + + + color is yellow + + + + + color is blue + + + + + color is magenta + + + + + color is cyan + + + + + color is white + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + An entry in the + + + + This is an abstract base class for types that are stored in the + object. + + + Nicko Cadell + + + + Default protected constructor + + + + Default protected constructor + + + + + + Initialize any options defined on this entry + + + + Should be overridden by any classes that need to initialise based on their options + + + + + + The level that is the key for this mapping + + + The that is the key for this mapping + + + + Get or set the that is the key for this + mapping subclass. + + + + + + Initialize the options for the object + + + + Combine the and together + and append the attributes. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level + + + + + + The color attributes for the specified level + + + + Required property. + The color attributes for the specified level + + + + + + The combined , and + suitable for setting the ansi terminal color. + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Creates a read-only wrapper for a AppenderCollection instance. + + list to create a readonly wrapper arround + + An AppenderCollection wrapper that is read-only. + + + + + An empty readonly static AppenderCollection + + + + + Initializes a new instance of the AppenderCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the AppenderCollection class + that has the specified initial capacity. + + + The number of elements that the new AppenderCollection is initially capable of storing. + + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified AppenderCollection. + + The AppenderCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Allow subclasses to avoid our default constructors + + + + + + + Copies the entire AppenderCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire AppenderCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Adds a to the end of the AppenderCollection. + + The to be added to the end of the AppenderCollection. + The index at which the value has been added. + + + + Removes all elements from the AppenderCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the AppenderCollection. + + The to check for. + true if is found in the AppenderCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the AppenderCollection. + + The to locate in the AppenderCollection. + + The zero-based index of the first occurrence of + in the entire AppenderCollection, if found; otherwise, -1. + + + + + Inserts an element into the AppenderCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the AppenderCollection. + + The to remove from the AppenderCollection. + + The specified was not found in the AppenderCollection. + + + + + Removes the element at the specified index of the AppenderCollection. + + The zero-based index of the element to remove. + + is less than zero + -or- + is equal to or greater than . + + + + + Returns an enumerator that can iterate through the AppenderCollection. + + An for the entire AppenderCollection. + + + + Adds the elements of another AppenderCollection to the current AppenderCollection. + + The AppenderCollection whose elements should be added to the end of the current AppenderCollection. + The new of the AppenderCollection. + + + + Adds the elements of a array to the current AppenderCollection. + + The array whose elements should be added to the end of the AppenderCollection. + The new of the AppenderCollection. + + + + Adds the elements of a collection to the current AppenderCollection. + + The collection whose elements should be added to the end of the AppenderCollection. + The new of the AppenderCollection. + + + + Sets the capacity to the actual number of elements. + + + + + Return the collection elements as an array + + the array + + + + is less than zero + -or- + is equal to or greater than . + + + + + is less than zero + -or- + is equal to or greater than . + + + + + Gets the number of elements actually contained in the AppenderCollection. + + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + The zero-based index of the element to get or set. + + is less than zero + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false + + + + Gets or sets the number of elements the AppenderCollection can contain. + + + + + Supports type-safe iteration over a . + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + + A value + + + + + Supports simple iteration over a . + + + + + + Initializes a new instance of the Enumerator class. + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + + + + + Appends log events to the ASP.NET system. + + + + + Diagnostic information and tracing messages that you specify are appended to the output + of the page that is sent to the requesting browser. Optionally, you can view this information + from a separate trace viewer (Trace.axd) that displays trace information for every page in a + given application. + + + Trace statements are processed and displayed only when tracing is enabled. You can control + whether tracing is displayed to a page, to the trace viewer, or both. + + + The logging event is passed to the or + method depending on the level of the logging event. + The event's logger name is the default value for the category parameter of the Write/Warn method. + + + Nicko Cadell + Gert Driesen + Ron Grabowski + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Write the logging event to the ASP.NET trace + + the event to log + + + Write the logging event to the ASP.NET trace + HttpContext.Current.Trace + (). + + + + + + Defaults to %logger + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + The category parameter sent to the Trace method. + + + + Defaults to %logger which will use the logger name of the current + as the category parameter. + + + + + + + + Buffers events and then forwards them to attached appenders. + + + + The events are buffered in this appender until conditions are + met to allow the appender to deliver the events to the attached + appenders. See for the + conditions that cause the buffer to be sent. + + The forwarding appender can be used to specify different + thresholds and filters for the same appender at different locations + within the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Interface for attaching appenders to objects. + + + + Interface for attaching, removing and retrieving appenders. + + + Nicko Cadell + Gert Driesen + + + + Attaches an appender. + + The appender to add. + + + Add the specified appender. The implementation may + choose to allow or deny duplicate appenders. + + + + + + Gets an attached appender with the specified name. + + The name of the appender to get. + + The appender with the name specified, or null if no appender with the + specified name is found. + + + + Returns an attached appender with the specified. + If no appender with the specified name is found null will be + returned. + + + + + + Removes all attached appenders. + + + + Removes and closes all attached appenders + + + + + + Removes the specified appender from the list of attached appenders. + + The appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Gets all attached appenders. + + + A collection of attached appenders. + + + + Gets a collection of attached appenders. + If there are no attached appenders the + implementation should return an empty + collection rather than null. + + + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Send the events. + + The events that need to be send. + + + Forwards the events to the attached appenders. + + + + + + Adds an to the list of appenders of this + instance. + + The to add to this appender. + + + If the specified is already in the list of + appenders, then it won't be added again. + + + + + + Looks for the appender with the specified name. + + The name of the appender to lookup. + + The appender with the specified name, or null. + + + + Get the named appender attached to this buffering appender. + + + + + + Removes all previously added appenders from this appender. + + + + This is useful when re-reading configuration information. + + + + + + Removes the specified appender from the list of appenders. + + The appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Implementation of the interface + + + + + Gets the appenders contained in this appender as an + . + + + If no appenders can be found, then an + is returned. + + + A collection of the appenders in this appender. + + + + + Appends logging events to the console. + + + + ColoredConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific type of message to be set. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes directly to the application's attached console + not to the System.Console.Out or System.Console.Error TextWriter. + The System.Console.Out and System.Console.Error streams can be + programmatically redirected (for example NUnit does this to capture program output). + This appender will ignore these redirections because it needs to use Win32 + API calls to colorize the output. To respect these redirections the + must be used. + + + When configuring the colored console appender, mapping should be + specified to map a logging level to a color. For example: + + + + + + + + + + + + + + The Level is the standard log4net logging level and ForeColor and BackColor can be any + combination of the following values: + + Blue + Green + Red + White + Yellow + Purple + Cyan + HighIntensity + + + + Rick Hobbs + Nicko Cadell + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + flag set to true to write to the console error stream + + When is set to true, output is written to + the standard error output stream. Otherwise, output is written to the standard + output stream. + + + + + Add a mapping of level to color - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colors + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + The console output stream writer to write to + + + + This writer is not thread safe. + + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + The enum of possible color values for use with the color mapping method + + + + The following flags can be combined together to + form the colors. + + + + + + + color is blue + + + + + color is green + + + + + color is red + + + + + color is white + + + + + color is yellow + + + + + color is purple + + + + + color is cyan + + + + + color is intensified + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + Initialize the options for the object + + + + Combine the and together. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level. + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level. + + + + + + The combined and suitable for + setting the console color. + + + + + Appends logging events to the console. + + + + ConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes each message to the System.Console.Out or + System.Console.Error that is set at the time the event is appended. + Therefore it is possible to programmatically redirect the output of this appender + (for example NUnit does this to capture program output). While this is the desired + behavior of this appender it may have security implications in your application. + + + Nicko Cadell + Gert Driesen + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + flag set to true to write to the console error stream + + When is set to true, output is written to + the standard error output stream. Otherwise, output is written to the standard + output stream. + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Appends log events to the system. + + + + The application configuration file can be used to control what listeners + are actually used. See the MSDN documentation for the + class for details on configuring the + debug system. + + + Events are written using the + method. The event's logger name is passed as the value for the category name to the Write method. + + + Nicko Cadell + + + + Initializes a new instance of the . + + + + Default constructor. + + + + + + Initializes a new instance of the + with a specified layout. + + The layout to use with this appender. + + + Obsolete constructor. + + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Writes the logging event to the system. + + The event to log. + + + Writes the logging event to the system. + If is true then the + is called. + + + + + + Immediate flush means that the underlying writer or output stream + will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logs events are not actually written to persistent media if and + when the application crashes. + + + The default value is true. + + + + + Defaults to a with %logger as the pattern. + + + + + Gets or sets a value that indicates whether the appender will + flush at the end of each write. + + + The default behavior is to flush at the end of each + write. If the option is set tofalse, then the underlying + stream can defer writing to physical medium to a later time. + + + Avoiding the flush operation at the end of each append results + in a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + + Formats the category parameter sent to the Debug method. + + + + Defaults to a with %logger as the pattern which will use the logger name of the current + as the category parameter. + + + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Writes events to the system event log. + + + + The appender will fail if you try to write using an event source that doesn't exist unless it is running with local administrator privileges. + See also http://logging.apache.org/log4net/release/faq.html#trouble-EventLog + + + The EventID of the event log entry can be + set using the EventID property () + on the . + + + The Category of the event log entry can be + set using the Category property () + on the . + + + There is a limit of 32K characters for an event log message + + + When configuring the EventLogAppender a mapping can be + specified to map a logging level to an event log entry type. For example: + + + <mapping> + <level value="ERROR" /> + <eventLogEntryType value="Error" /> + </mapping> + <mapping> + <level value="DEBUG" /> + <eventLogEntryType value="Information" /> + </mapping> + + + The Level is the standard log4net logging level and eventLogEntryType can be any value + from the enum, i.e.: + + Erroran error event + Warninga warning event + Informationan informational event + + + + Aspi Havewala + Douglas de la Torre + Nicko Cadell + Gert Driesen + Thomas Voss + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initializes a new instance of the class + with the specified . + + The to use with this appender. + + + Obsolete constructor. + + + + + + Add a mapping of level to - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the event log entry type for a level. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Create an event log source + + + Uses different API calls under NET_2_0 + + + + + This method is called by the + method. + + the event to log + + Writes the event to the system event log using the + . + + If the event has an EventID property (see ) + set then this integer will be used as the event log event id. + + + There is a limit of 32K characters for an event log message + + + + + + Get the equivalent for a + + the Level to convert to an EventLogEntryType + The equivalent for a + + Because there are fewer applicable + values to use in logging levels than there are in the + this is a one way mapping. There is + a loss of information during the conversion. + + + + + The log name is the section in the event logs where the messages + are stored. + + + + + Name of the application to use when logging. This appears in the + application column of the event log named by . + + + + + The name of the machine which holds the event log. This is + currently only allowed to be '.' i.e. the current machine. + + + + + Mapping from level object to EventLogEntryType + + + + + The security context to use for privileged calls + + + + + The event ID to use unless one is explicitly specified via the LoggingEvent's properties. + + + + + The event category to use unless one is explicitly specified via the LoggingEvent's properties. + + + + + The fully qualified type of the EventLogAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + The maximum size supported by default. + + + http://msdn.microsoft.com/en-us/library/xzwc042w(v=vs.100).aspx + The 32766 documented max size is two bytes shy of 32K (I'm assuming 32766 + may leave space for a two byte null terminator of #0#0). The 32766 max + length is what the .NET 4.0 source code checks for, but this is WRONG! + Strings with a length > 31839 on Windows Vista or higher can CORRUPT + the event log! See: System.Diagnostics.EventLogInternal.InternalWriteEvent() + for the use of the 32766 max size. + + + + + The maximum size supported by a windows operating system that is vista + or newer. + + + See ReportEvent API: + http://msdn.microsoft.com/en-us/library/aa363679(VS.85).aspx + ReportEvent's lpStrings parameter: + "A pointer to a buffer containing an array of + null-terminated strings that are merged into the message before Event Viewer + displays the string to the user. This parameter must be a valid pointer + (or NULL), even if wNumStrings is zero. Each string is limited to 31,839 characters." + + Going beyond the size of 31839 will (at some point) corrupt the event log on Windows + Vista or higher! It may succeed for a while...but you will eventually run into the + error: "System.ComponentModel.Win32Exception : A device attached to the system is + not functioning", and the event log will then be corrupt (I was able to corrupt + an event log using a length of 31877 on Windows 7). + + The max size for Windows Vista or higher is documented here: + http://msdn.microsoft.com/en-us/library/xzwc042w(v=vs.100).aspx. + Going over this size may succeed a few times but the buffer will overrun and + eventually corrupt the log (based on testing). + + The maxEventMsgSize size is based on the max buffer size of the lpStrings parameter of the ReportEvent API. + The documented max size for EventLog.WriteEntry for Windows Vista and higher is 31839, but I'm leaving room for a + terminator of #0#0, as we cannot see the source of ReportEvent (though we could use an API monitor to examine the + buffer, given enough time). + + + + + The maximum size that the operating system supports for + a event log message. + + + Used to determine the maximum string length that can be written + to the operating system event log and eventually truncate a string + that exceeds the limits. + + + + + This method determines the maximum event log message size allowed for + the current environment. + + + + + + The name of the log where messages will be stored. + + + The string name of the log where messages will be stored. + + + This is the name of the log as it appears in the Event Viewer + tree. The default value is to log into the Application + log, this is where most applications write their events. However + if you need a separate log for your application (or applications) + then you should set the appropriately. + This should not be used to distinguish your event log messages + from those of other applications, the + property should be used to distinguish events. This property should be + used to group together events into a single log. + + + + + + Property used to set the Application name. This appears in the + event logs when logging. + + + The string used to distinguish events from different sources. + + + Sets the event log source property. + + + + + This property is used to return the name of the computer to use + when accessing the event logs. Currently, this is the current + computer, denoted by a dot "." + + + The string name of the machine holding the event log that + will be logged into. + + + This property cannot be changed. It is currently set to '.' + i.e. the local machine. This may be changed in future. + + + + + Gets or sets the used to write to the EventLog. + + + The used to write to the EventLog. + + + + The system security context used to write to the EventLog. + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Gets or sets the EventId to use unless one is explicitly specified via the LoggingEvent's properties. + + + + The EventID of the event log entry will normally be + set using the EventID property () + on the . + This property provides the fallback value which defaults to 0. + + + + + + Gets or sets the Category to use unless one is explicitly specified via the LoggingEvent's properties. + + + + The Category of the event log entry will normally be + set using the Category property () + on the . + This property provides the fallback value which defaults to 0. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and its event log entry type. + + + + + + The for this entry + + + + Required property. + The for this entry + + + + + + Appends logging events to a file. + + + + Logging events are sent to the file specified by + the property. + + + The file can be opened in either append or overwrite mode + by specifying the property. + If the file path is relative it is taken as relative from + the application base directory. The file encoding can be + specified by setting the property. + + + The layout's and + values will be written each time the file is opened and closed + respectively. If the property is + then the file may contain multiple copies of the header and footer. + + + This appender will first try to open the file for writing when + is called. This will typically be during configuration. + If the file cannot be opened for writing the appender will attempt + to open the file again each time a message is logged to the appender. + If the file cannot be opened for writing when a message is logged then + the message will be discarded by this appender. + + + The supports pluggable file locking models via + the property. + The default behavior, implemented by + is to obtain an exclusive write lock on the file until this appender is closed. + The alternative models only hold a + write lock while the appender is writing a logging event () + or synchronize by using a named system wide Mutex (). + + + All locking strategies have issues and you should seriously consider using a different strategy that + avoids having multiple processes logging to the same file. + + + Nicko Cadell + Gert Driesen + Rodrigo B. de Oliveira + Douglas de la Torre + Niall Daley + + + + Sends logging events to a . + + + + An Appender that writes to a . + + + This appender may be used stand alone if initialized with an appropriate + writer, however it is typically used as a base class for an appender that + can open a to write to. + + + Nicko Cadell + Gert Driesen + Douglas de la Torre + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initializes a new instance of the class and + sets the output destination to a new initialized + with the specified . + + The layout to use with this appender. + The to output to. + + + Obsolete constructor. + + + + + + Initializes a new instance of the class and sets + the output destination to the specified . + + The layout to use with this appender + The to output to + + The must have been previously opened. + + + + Obsolete constructor. + + + + + + This method determines if there is a sense in attempting to append. + + + + This method checks if an output target has been set and if a + layout has been set. + + + false if any of the preconditions fail. + + + + This method is called by the + method. + + The event to log. + + + Writes a log statement to the output stream if the output stream exists + and is writable. + + + The format of the output will depend on the appender's layout. + + + + + + This method is called by the + method. + + The array of events to log. + + + This method writes all the bulk logged events to the output writer + before flushing the stream. + + + + + + Close this appender instance. The underlying stream or writer is also closed. + + + Closed appenders cannot be reused. + + + + + Writes the footer and closes the underlying . + + + + Writes the footer and closes the underlying . + + + + + + Closes the underlying . + + + + Closes the underlying . + + + + + + Clears internal references to the underlying + and other variables. + + + + Subclasses can override this method for an alternate closing behavior. + + + + + + Writes a footer as produced by the embedded layout's property. + + + + Writes a footer as produced by the embedded layout's property. + + + + + + Writes a header produced by the embedded layout's property. + + + + Writes a header produced by the embedded layout's property. + + + + + + Called to allow a subclass to lazily initialize the writer + + + + This method is called when an event is logged and the or + have not been set. This allows a subclass to + attempt to initialize the writer multiple times. + + + + + + This is the where logging events + will be written to. + + + + + Immediate flush means that the underlying + or output stream will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logging events are not actually persisted if and when the application + crashes. + + + The default value is true. + + + + + + The fully qualified type of the TextWriterAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Gets or set whether the appender will flush at the end + of each append operation. + + + + The default behavior is to flush at the end of each + append operation. + + + If this option is set to false, then the underlying + stream can defer persisting the logging event to a later + time. + + + + Avoiding the flush operation at the end of each append results in + a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + Sets the where the log output will go. + + + + The specified must be open and writable. + + + The will be closed when the appender + instance is closed. + + + Note: Logging to an unopened will fail. + + + + + + Gets or set the and the underlying + , if any, for this appender. + + + The for this appender. + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Gets or sets the where logging events + will be written to. + + + The where logging events are written. + + + + This is the where logging events + will be written to. + + + + + + Default constructor + + + + Default constructor + + + + + + Construct a new appender using the layout, file and append mode. + + the layout to use with this appender + the full path to the file to write to + flag to indicate if the file should be appended to + + + Obsolete constructor. + + + + + + Construct a new appender using the layout and file specified. + The file will be appended to. + + the layout to use with this appender + the full path to the file to write to + + + Obsolete constructor. + + + + + + Activate the options on the file appender. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + This will cause the file to be opened. + + + + + + Closes any previously opened file and calls the parent's . + + + + Resets the filename and the file stream. + + + + + + Close this appender instance. The underlying stream or writer is also closed. + + + + + Called to initialize the file writer + + + + Will be called for each logged message until the file is + successfully opened. + + + + + + This method is called by the + method. + + The event to log. + + + Writes a log statement to the output stream if the output stream exists + and is writable. + + + The format of the output will depend on the appender's layout. + + + + + + This method is called by the + method. + + The array of events to log. + + + Acquires the output file locks once before writing all the events to + the stream. + + + + + + Writes a footer as produced by the embedded layout's property. + + + + Writes a footer as produced by the embedded layout's property. + + + + + + Writes a header produced by the embedded layout's property. + + + + Writes a header produced by the embedded layout's property. + + + + + + Closes the underlying . + + + + Closes the underlying . + + + + + + Closes the previously opened file. + + + + Writes the to the file and then + closes the file. + + + + + + Sets and opens the file where the log output will go. The specified file must be writable. + + The path to the log file. Must be a fully qualified path. + If true will append to fileName. Otherwise will truncate fileName + + + Calls but guarantees not to throw an exception. + Errors are passed to the . + + + + + + Sets and opens the file where the log output will go. The specified file must be writable. + + The path to the log file. Must be a fully qualified path. + If true will append to fileName. Otherwise will truncate fileName + + + If there was already an opened file, then the previous file + is closed first. + + + This method will ensure that the directory structure + for the specified exists. + + + + + + Sets the quiet writer used for file output + + the file stream that has been opened for writing + + + This implementation of creates a + over the and passes it to the + method. + + + This method can be overridden by sub classes that want to wrap the + in some way, for example to encrypt the output + data using a System.Security.Cryptography.CryptoStream. + + + + + + Sets the quiet writer being used. + + the writer over the file stream that has been opened for writing + + + This method can be overridden by sub classes that want to + wrap the in some way. + + + + + + Convert a path into a fully qualified path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + + + + Flag to indicate if we should append to the file + or overwrite the file. The default is to append. + + + + + The name of the log file. + + + + + The encoding to use for the file stream. + + + + + The security context to use for privileged calls + + + + + The stream to log to. Has added locking semantics + + + + + The locking model to use + + + + + The fully qualified type of the FileAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the path to the file that logging will be written to. + + + The path to the file that logging will be written to. + + + + If the path is relative it is taken as relative from + the application base directory. + + + + + + Gets or sets a flag that indicates whether the file should be + appended to or overwritten. + + + Indicates whether the file should be appended to or overwritten. + + + + If the value is set to false then the file will be overwritten, if + it is set to true then the file will be appended to. + + The default value is true. + + + + + Gets or sets used to write to the file. + + + The used to write to the file. + + + + The default encoding set is + which is the encoding for the system's current ANSI code page. + + + + + + Gets or sets the used to write to the file. + + + The used to write to the file. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Gets or sets the used to handle locking of the file. + + + The used to lock the file. + + + + Gets or sets the used to handle locking of the file. + + + There are three built in locking models, , and . + The first locks the file from the start of logging to the end, the + second locks only for the minimal amount of time when logging each message + and the last synchronizes processes using a named system wide Mutex. + + + The default locking model is the . + + + + + + Write only that uses the + to manage access to an underlying resource. + + + + + True asynchronous writes are not supported, the implementation forces a synchronous write. + + + + + Exception base type for log4net. + + + + This type extends . It + does not add any new functionality but does differentiate the + type of exception being thrown. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + A message to include with the exception. + + + Initializes a new instance of the class with + the specified message. + + + + + + Constructor + + A message to include with the exception. + A nested exception to include. + + + Initializes a new instance of the class + with the specified message and inner exception. + + + + + + Serialization constructor + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Locking model base class + + + + Base class for the locking models available to the derived loggers. + + + + + + Open the output file + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Acquire the lock on the file in preparation for writing to it. + Return a stream pointing to the file. + must be called to release the lock on the output file. + + + + + + Release the lock on the file + + + + Release the lock on the file. No further writes will be made to the + stream until is called again. + + + + + + Helper method that creates a FileStream under CurrentAppender's SecurityContext. + + + + Typically called during OpenFile or AcquireLock. + + + If the directory portion of the does not exist, it is created + via Directory.CreateDirecctory. + + + + + + + + + + Helper method to close under CurrentAppender's SecurityContext. + + + Does not set to null. + + + + + + Gets or sets the for this LockingModel + + + The for this LockingModel + + + + The file appender this locking model is attached to and working on + behalf of. + + + The file appender is used to locate the security context and the error handler to use. + + + The value of this property will be set before is + called. + + + + + + Hold an exclusive lock on the output file + + + + Open the file once for writing and hold it open until is called. + Maintains an exclusive lock on the file during this time. + + + + + + Open the file specified and prepare for logging. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Does nothing. The lock is already taken + + + + + + Release the lock on the file + + + + Does nothing. The lock will be released when the file is closed. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Acquires the file lock for each write + + + + Opens the file once for each / cycle, + thus holding the lock for the minimal amount of time. This method of locking + is considerably slower than but allows + other processes to move/delete the log file whilst logging continues. + + + + + + Prepares to open the file when the first message is logged. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Acquire the lock on the file in preparation for writing to it. + Return a stream pointing to the file. + must be called to release the lock on the output file. + + + + + + Release the lock on the file + + + + Release the lock on the file. No further writes will be made to the + stream until is called again. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Provides cross-process file locking. + + Ron Grabowski + Steve Wranovsky + + + + Open the file specified and prepare for logging. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + - and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Does nothing. The lock is already taken + + + + + + Releases the lock and allows others to acquire a lock. + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + This appender forwards logging events to attached appenders. + + + + The forwarding appender can be used to specify different thresholds + and filters for the same appender at different locations within the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Forward the logging event to the attached appenders + + The event to log. + + + Delivers the logging event to all the attached appenders. + + + + + + Forward the logging events to the attached appenders + + The array of events to log. + + + Delivers the logging events to all the attached appenders. + + + + + + Adds an to the list of appenders of this + instance. + + The to add to this appender. + + + If the specified is already in the list of + appenders, then it won't be added again. + + + + + + Looks for the appender with the specified name. + + The name of the appender to lookup. + + The appender with the specified name, or null. + + + + Get the named appender attached to this appender. + + + + + + Removes all previously added appenders from this appender. + + + + This is useful when re-reading configuration information. + + + + + + Removes the specified appender from the list of appenders. + + The appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Implementation of the interface + + + + + Gets the appenders contained in this appender as an + . + + + If no appenders can be found, then an + is returned. + + + A collection of the appenders in this appender. + + + + + Logs events to a local syslog service. + + + + This appender uses the POSIX libc library functions openlog, syslog, and closelog. + If these functions are not available on the local system then this appender will not work! + + + The functions openlog, syslog, and closelog are specified in SUSv2 and + POSIX 1003.1-2001 standards. These are used to log messages to the local syslog service. + + + This appender talks to a local syslog service. If you need to log to a remote syslog + daemon and you cannot configure your local syslog service to do this you may be + able to use the to log via UDP. + + + Syslog messages must have a facility and and a severity. The severity + is derived from the Level of the logging event. + The facility must be chosen from the set of defined syslog + values. The facilities list is predefined + and cannot be extended. + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + Rob Lyon + Nicko Cadell + + + + Initializes a new instance of the class. + + + This instance of the class is set up to write + to a local syslog service. + + + + + Add a mapping of level to severity + + The mapping to add + + + Adds a to this appender. + + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to a remote syslog daemon. + + + The format of the output will depend on the appender's layout. + + + + + + Close the syslog when the appender is closed + + + + Close the syslog when the appender is closed + + + + + + Translates a log4net level to a syslog severity. + + A log4net level. + A syslog severity. + + + Translates a log4net level to a syslog severity. + + + + + + Generate a syslog priority. + + The syslog facility. + The syslog severity. + A syslog priority. + + + + The facility. The default facility is . + + + + + The message identity + + + + + Marshaled handle to the identity string. We have to hold on to the + string as the openlog and syslog APIs just hold the + pointer to the ident and dereference it for each log message. + + + + + Mapping from level object to syslog severity + + + + + Open connection to system logger. + + + + + Generate a log message. + + + + The libc syslog method takes a format string and a variable argument list similar + to the classic printf function. As this type of vararg list is not supported + by C# we need to specify the arguments explicitly. Here we have specified the + format string with a single message argument. The caller must set the format + string to "%s". + + + + + + Close descriptor used to write to system logger. + + + + + Message identity + + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + + + + Syslog facility + + + Set to one of the values. The list of + facilities is predefined and cannot be extended. The default value + is . + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + syslog severities + + + + The log4net Level maps to a syslog severity using the + method and the + class. The severity is set on . + + + + + + system is unusable + + + + + action must be taken immediately + + + + + critical conditions + + + + + error conditions + + + + + warning conditions + + + + + normal but significant condition + + + + + informational + + + + + debug-level messages + + + + + syslog facilities + + + + The syslog facility defines which subsystem the logging comes from. + This is set on the property. + + + + + + kernel messages + + + + + random user-level messages + + + + + mail system + + + + + system daemons + + + + + security/authorization messages + + + + + messages generated internally by syslogd + + + + + line printer subsystem + + + + + network news subsystem + + + + + UUCP subsystem + + + + + clock (cron/at) daemon + + + + + security/authorization messages (private) + + + + + ftp daemon + + + + + NTP subsystem + + + + + log audit + + + + + log alert + + + + + clock daemon + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + + + The mapped syslog severity for the specified level + + + + Required property. + The mapped syslog severity for the specified level + + + + + + Appends colorful logging events to the console, using the .NET 2 + built-in capabilities. + + + + ManagedColoredConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific type of message to be set. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + When configuring the colored console appender, mappings should be + specified to map logging levels to colors. For example: + + + + + + + + + + + + + + + + + + + + + + The Level is the standard log4net logging level while + ForeColor and BackColor are the values of + enumeration. + + + Based on the ColoredConsoleAppender + + + Rick Hobbs + Nicko Cadell + Pavlos Touboulidis + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Add a mapping of level to color - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colors + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level. + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level. + + + + + + Stores logging events in an array. + + + + The memory appender stores all the logging events + that are appended in an in-memory array. + + + Use the method to get + and clear the current list of events that have been appended. + + + Use the method to get the current + list of events that have been appended. Note there is a + race-condition when calling and + in pairs, you better use in that case. + + + Use the method to clear the + current list of events. Note there is a + race-condition when calling and + in pairs, you better use in that case. + + + Julian Biddle + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Gets the events that have been logged. + + The events that have been logged + + + Gets the events that have been logged. + + + + + + This method is called by the method. + + the event to log + + Stores the in the events list. + + + + + Clear the list of events + + + Clear the list of events + + + + + Gets the events that have been logged and clears the list of events. + + The events that have been logged + + + Gets the events that have been logged and clears the list of events. + + + + + + The list of events that have been appended. + + + + + Value indicating which fields in the event should be fixed + + + By default all fields are fixed + + + + + Gets or sets a value indicating whether only part of the logging event + data should be fixed. + + + true if the appender should only fix part of the logging event + data, otherwise false. The default is false. + + + + Setting this property to true will cause only part of the event + data to be fixed and stored in the appender, hereby improving performance. + + + See for more information. + + + + + + Gets or sets the fields that will be fixed in the event + + + + The logging event needs to have certain thread specific values + captured before it can be buffered. See + for details. + + + + + + Logs entries by sending network messages using the + native function. + + + + You can send messages only to names that are active + on the network. If you send the message to a user name, + that user must be logged on and running the Messenger + service to receive the message. + + + The receiver will get a top most window displaying the + messages one at a time, therefore this appender should + not be used to deliver a high volume of messages. + + + The following table lists some possible uses for this appender : + + + + + Action + Property Value(s) + + + Send a message to a user account on the local machine + + + = <name of the local machine> + + + = <user name> + + + + + Send a message to a user account on a remote machine + + + = <name of the remote machine> + + + = <user name> + + + + + Send a message to a domain user account + + + = <name of a domain controller | uninitialized> + + + = <user name> + + + + + Send a message to all the names in a workgroup or domain + + + = <workgroup name | domain name>* + + + + + Send a message from the local machine to a remote machine + + + = <name of the local machine | uninitialized> + + + = <name of the remote machine> + + + + + + + Note : security restrictions apply for sending + network messages, see + for more information. + + + + + An example configuration section to log information + using this appender from the local machine, named + LOCAL_PC, to machine OPERATOR_PC : + + + + + + + + + + Nicko Cadell + Gert Driesen + + + + The DNS or NetBIOS name of the server on which the function is to execute. + + + + + The sender of the network message. + + + + + The message alias to which the message should be sent. + + + + + The security context to use for privileged calls + + + + + Initializes the appender. + + + The default constructor initializes all fields to their default values. + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The appender will be ignored if no was specified. + + + The required property was not specified. + + + + This method is called by the method. + + The event to log. + + + Sends the event using a network message. + + + + + + Sends a buffer of information to a registered message alias. + + The DNS or NetBIOS name of the server on which the function is to execute. + The message alias to which the message buffer should be sent + The originator of the message. + The message text. + The length, in bytes, of the message text. + + + The following restrictions apply for sending network messages: + + + + + Platform + Requirements + + + Windows NT + + + No special group membership is required to send a network message. + + + Admin, Accounts, Print, or Server Operator group membership is required to + successfully send a network message on a remote server. + + + + + Windows 2000 or later + + + If you send a message on a domain controller that is running Active Directory, + access is allowed or denied based on the access control list (ACL) for the securable + object. The default ACL permits only Domain Admins and Account Operators to send a network message. + + + On a member server or workstation, only Administrators and Server Operators can send a network message. + + + + + + + For more information see Security Requirements for the Network Management Functions. + + + + + If the function succeeds, the return value is zero. + + + + + + Gets or sets the sender of the message. + + + The sender of the message. + + + If this property is not specified, the message is sent from the local computer. + + + + + Gets or sets the message alias to which the message should be sent. + + + The recipient of the message. + + + This property should always be specified in order to send a message. + + + + + Gets or sets the DNS or NetBIOS name of the remote server on which the function is to execute. + + + DNS or NetBIOS name of the remote server on which the function is to execute. + + + + For Windows NT 4.0 and earlier, the string should begin with \\. + + + If this property is not specified, the local computer is used. + + + + + + Gets or sets the used to call the NetSend method. + + + The used to call the NetSend method. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Appends log events to the OutputDebugString system. + + + + OutputDebugStringAppender appends log events to the + OutputDebugString system. + + + The string is passed to the native OutputDebugString + function. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Write the logging event to the output debug string API + + the event to log + + + Write the logging event to the output debug string API + + + + + + Stub for OutputDebugString native method + + the string to output + + + Stub for OutputDebugString native method + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Logs events to a remote syslog daemon. + + + + The BSD syslog protocol is used to remotely log to + a syslog daemon. The syslogd listens for for messages + on UDP port 514. + + + The syslog UDP protocol is not authenticated. Most syslog daemons + do not accept remote log messages because of the security implications. + You may be able to use the LocalSyslogAppender to talk to a local + syslog service. + + + There is an RFC 3164 that claims to document the BSD Syslog Protocol. + This RFC can be seen here: http://www.faqs.org/rfcs/rfc3164.html. + This appender generates what the RFC calls an "Original Device Message", + i.e. does not include the TIMESTAMP or HOSTNAME fields. By observation + this format of message will be accepted by all current syslog daemon + implementations. The daemon will attach the current time and the source + hostname or IP address to any messages received. + + + Syslog messages must have a facility and and a severity. The severity + is derived from the Level of the logging event. + The facility must be chosen from the set of defined syslog + values. The facilities list is predefined + and cannot be extended. + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + Rob Lyon + Nicko Cadell + + + + Sends logging events as connectionless UDP datagrams to a remote host or a + multicast group using an . + + + + UDP guarantees neither that messages arrive, nor that they arrive in the correct order. + + + To view the logging results, a custom application can be developed that listens for logging + events. + + + When decoding events send via this appender remember to use the same encoding + to decode the events as was used to send the events. See the + property to specify the encoding to use. + + + + This example shows how to log receive logging events that are sent + on IP address 244.0.0.1 and port 8080 to the console. The event is + encoded in the packet as a unicode string and it is decoded as such. + + IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0); + UdpClient udpClient; + byte[] buffer; + string loggingEvent; + + try + { + udpClient = new UdpClient(8080); + + while(true) + { + buffer = udpClient.Receive(ref remoteEndPoint); + loggingEvent = System.Text.Encoding.Unicode.GetString(buffer); + Console.WriteLine(loggingEvent); + } + } + catch(Exception e) + { + Console.WriteLine(e.ToString()); + } + + + Dim remoteEndPoint as IPEndPoint + Dim udpClient as UdpClient + Dim buffer as Byte() + Dim loggingEvent as String + + Try + remoteEndPoint = new IPEndPoint(IPAddress.Any, 0) + udpClient = new UdpClient(8080) + + While True + buffer = udpClient.Receive(ByRef remoteEndPoint) + loggingEvent = System.Text.Encoding.Unicode.GetString(buffer) + Console.WriteLine(loggingEvent) + Wend + Catch e As Exception + Console.WriteLine(e.ToString()) + End Try + + + An example configuration section to log information using this appender to the + IP 224.0.0.1 on port 8080: + + + + + + + + + + Gert Driesen + Nicko Cadell + + + + Initializes a new instance of the class. + + + The default constructor initializes all fields to their default values. + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The appender will be ignored if no was specified or + an invalid remote or local TCP port number was specified. + + + The required property was not specified. + The TCP port number assigned to or is less than or greater than . + + + + This method is called by the method. + + The event to log. + + + Sends the event using an UDP datagram. + + + Exceptions are passed to the . + + + + + + Closes the UDP connection and releases all resources associated with + this instance. + + + + Disables the underlying and releases all managed + and unmanaged resources associated with the . + + + + + + Initializes the underlying connection. + + + + The underlying is initialized and binds to the + port number from which you intend to communicate. + + + Exceptions are passed to the . + + + + + + The IP address of the remote host or multicast group to which + the logging event will be sent. + + + + + The TCP port number of the remote host or multicast group to + which the logging event will be sent. + + + + + The cached remote endpoint to which the logging events will be sent. + + + + + The TCP port number from which the will communicate. + + + + + The instance that will be used for sending the + logging events. + + + + + The encoding to use for the packet. + + + + + Gets or sets the IP address of the remote host or multicast group to which + the underlying should sent the logging event. + + + The IP address of the remote host or multicast group to which the logging event + will be sent. + + + + Multicast addresses are identified by IP class D addresses (in the range 224.0.0.0 to + 239.255.255.255). Multicast packets can pass across different networks through routers, so + it is possible to use multicasts in an Internet scenario as long as your network provider + supports multicasting. + + + Hosts that want to receive particular multicast messages must register their interest by joining + the multicast group. Multicast messages are not sent to networks where no host has joined + the multicast group. Class D IP addresses are used for multicast groups, to differentiate + them from normal host addresses, allowing nodes to easily detect if a message is of interest. + + + Static multicast addresses that are needed globally are assigned by IANA. A few examples are listed in the table below: + + + + + IP Address + Description + + + 224.0.0.1 + + + Sends a message to all system on the subnet. + + + + + 224.0.0.2 + + + Sends a message to all routers on the subnet. + + + + + 224.0.0.12 + + + The DHCP server answers messages on the IP address 224.0.0.12, but only on a subnet. + + + + + + + A complete list of actually reserved multicast addresses and their owners in the ranges + defined by RFC 3171 can be found at the IANA web site. + + + The address range 239.0.0.0 to 239.255.255.255 is reserved for administrative scope-relative + addresses. These addresses can be reused with other local groups. Routers are typically + configured with filters to prevent multicast traffic in this range from flowing outside + of the local network. + + + + + + Gets or sets the TCP port number of the remote host or multicast group to which + the underlying should sent the logging event. + + + An integer value in the range to + indicating the TCP port number of the remote host or multicast group to which the logging event + will be sent. + + + The underlying will send messages to this TCP port number + on the remote host or multicast group. + + The value specified is less than or greater than . + + + + Gets or sets the TCP port number from which the underlying will communicate. + + + An integer value in the range to + indicating the TCP port number from which the underlying will communicate. + + + + The underlying will bind to this port for sending messages. + + + Setting the value to 0 (the default) will cause the udp client not to bind to + a local port. + + + The value specified is less than or greater than . + + + + Gets or sets used to write the packets. + + + The used to write the packets. + + + + The used to write the packets. + + + + + + Gets or sets the underlying . + + + The underlying . + + + creates a to send logging events + over a network. Classes deriving from can use this + property to get or set this . Use the underlying + returned from if you require access beyond that which + provides. + + + + + Gets or sets the cached remote endpoint to which the logging events should be sent. + + + The cached remote endpoint to which the logging events will be sent. + + + The method will initialize the remote endpoint + with the values of the and + properties. + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Syslog port 514 + + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + Initializes a new instance of the class. + + + This instance of the class is set up to write + to a remote syslog daemon. + + + + + Add a mapping of level to severity + + The mapping to add + + + Add a mapping to this appender. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to a remote syslog daemon. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to syslog severity mappings set on this appender. + + + + + + Translates a log4net level to a syslog severity. + + A log4net level. + A syslog severity. + + + Translates a log4net level to a syslog severity. + + + + + + Generate a syslog priority. + + The syslog facility. + The syslog severity. + A syslog priority. + + + Generate a syslog priority. + + + + + + The facility. The default facility is . + + + + + The message identity + + + + + Mapping from level object to syslog severity + + + + + Message identity + + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + + + + Syslog facility + + + Set to one of the values. The list of + facilities is predefined and cannot be extended. The default value + is . + + + + + syslog severities + + + + The syslog severities. + + + + + + system is unusable + + + + + action must be taken immediately + + + + + critical conditions + + + + + error conditions + + + + + warning conditions + + + + + normal but significant condition + + + + + informational + + + + + debug-level messages + + + + + syslog facilities + + + + The syslog facilities + + + + + + kernel messages + + + + + random user-level messages + + + + + mail system + + + + + system daemons + + + + + security/authorization messages + + + + + messages generated internally by syslogd + + + + + line printer subsystem + + + + + network news subsystem + + + + + UUCP subsystem + + + + + clock (cron/at) daemon + + + + + security/authorization messages (private) + + + + + ftp daemon + + + + + NTP subsystem + + + + + log audit + + + + + log alert + + + + + clock daemon + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + + + The mapped syslog severity for the specified level + + + + Required property. + The mapped syslog severity for the specified level + + + + + + Delivers logging events to a remote logging sink. + + + + This Appender is designed to deliver events to a remote sink. + That is any object that implements the + interface. It delivers the events using .NET remoting. The + object to deliver events to is specified by setting the + appenders property. + + The RemotingAppender buffers events before sending them. This allows it to + make more efficient use of the remoting infrastructure. + + Once the buffer is full the events are still not sent immediately. + They are scheduled to be sent using a pool thread. The effect is that + the send occurs asynchronously. This is very important for a + number of non obvious reasons. The remoting infrastructure will + flow thread local variables (stored in the ), + if they are marked as , across the + remoting boundary. If the server is not contactable then + the remoting infrastructure will clear the + objects from the . To prevent a logging failure from + having side effects on the calling application the remoting call must be made + from a separate thread to the one used by the application. A + thread is used for this. If no thread is available then + the events will block in the thread pool manager until a thread is available. + + Because the events are sent asynchronously using pool threads it is possible to close + this appender before all the queued events have been sent. + When closing the appender attempts to wait until all the queued events have been sent, but + this will timeout after 30 seconds regardless. + + If this appender is being closed because the + event has fired it may not be possible to send all the queued events. During process + exit the runtime limits the time that a + event handler is allowed to run for. If the runtime terminates the threads before + the queued events have been sent then they will be lost. To ensure that all events + are sent the appender must be closed before the application exits. See + for details on how to shutdown + log4net programmatically. + + + Nicko Cadell + Gert Driesen + Daniel Cazzulino + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Send the contents of the buffer to the remote sink. + + + The events are not sent immediately. They are scheduled to be sent + using a pool thread. The effect is that the send occurs asynchronously. + This is very important for a number of non obvious reasons. The remoting + infrastructure will flow thread local variables (stored in the ), + if they are marked as , across the + remoting boundary. If the server is not contactable then + the remoting infrastructure will clear the + objects from the . To prevent a logging failure from + having side effects on the calling application the remoting call must be made + from a separate thread to the one used by the application. A + thread is used for this. If no thread is available then + the events will block in the thread pool manager until a thread is available. + + The events to send. + + + + Override base class close. + + + + This method waits while there are queued work items. The events are + sent asynchronously using work items. These items + will be sent once a thread pool thread is available to send them, therefore + it is possible to close the appender before all the queued events have been + sent. + + This method attempts to wait until all the queued events have been sent, but this + method will timeout after 30 seconds regardless. + + If the appender is being closed because the + event has fired it may not be possible to send all the queued events. During process + exit the runtime limits the time that a + event handler is allowed to run for. + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + A work item is being queued into the thread pool + + + + + A work item from the thread pool has completed + + + + + Send the contents of the buffer to the remote sink. + + + This method is designed to be used with the . + This method expects to be passed an array of + objects in the state param. + + the logging events to send + + + + The URL of the remote sink. + + + + + The local proxy (.NET remoting) for the remote logging sink. + + + + + The number of queued callbacks currently waiting or executing + + + + + Event used to signal when there are no queued work items + + + This event is set when there are no queued work items. In this + state it is safe to close the appender. + + + + + Gets or sets the URL of the well-known object that will accept + the logging events. + + + The well-known URL of the remote sink. + + + + The URL of the remoting sink that will accept logging events. + The sink must implement the + interface. + + + + + + Interface used to deliver objects to a remote sink. + + + This interface must be implemented by a remoting sink + if the is to be used + to deliver logging events to the sink. + + + + + Delivers logging events to the remote sink + + Array of events to log. + + + Delivers logging events to the remote sink + + + + + + Appender that rolls log files based on size or date or both. + + + + RollingFileAppender can roll log files based on size or date or both + depending on the setting of the property. + When set to the log file will be rolled + once its size exceeds the . + When set to the log file will be rolled + once the date boundary specified in the property + is crossed. + When set to the log file will be + rolled once the date boundary specified in the property + is crossed, but within a date boundary the file will also be rolled + once its size exceeds the . + When set to the log file will be rolled when + the appender is configured. This effectively means that the log file can be + rolled once per program execution. + + + A of few additional optional features have been added: + + Attach date pattern for current log file + Backup number increments for newer files + Infinite number of backups by file size + + + + + + For large or infinite numbers of backup files a + greater than zero is highly recommended, otherwise all the backup files need + to be renamed each time a new backup is created. + + + When Date/Time based rolling is used setting + to will reduce the number of file renamings to few or none. + + + + + + Changing or without clearing + the log file directory of backup files will cause unexpected and unwanted side effects. + + + + + If Date/Time based rolling is enabled this appender will attempt to roll existing files + in the directory without a Date/Time tag based on the last write date of the base log file. + The appender only rolls the log file when a message is logged. If Date/Time based rolling + is enabled then the appender will not roll the log file at the Date/Time boundary but + at the point when the next message is logged after the boundary has been crossed. + + + + The extends the and + has the same behavior when opening the log file. + The appender will first try to open the file for writing when + is called. This will typically be during configuration. + If the file cannot be opened for writing the appender will attempt + to open the file again each time a message is logged to the appender. + If the file cannot be opened for writing when a message is logged then + the message will be discarded by this appender. + + + When rolling a backup file necessitates deleting an older backup file the + file to be deleted is moved to a temporary name before being deleted. + + + + + A maximum number of backup files when rolling on date/time boundaries is not supported. + + + + Nicko Cadell + Gert Driesen + Aspi Havewala + Douglas de la Torre + Edward Smit + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Cleans up all resources used by this appender. + + + + + The fully qualified type of the RollingFileAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Sets the quiet writer being used. + + + This method can be overridden by sub classes. + + the writer to set + + + + Write out a logging event. + + the event to write to file. + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Write out an array of logging events. + + the events to write to file. + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Performs any required rolling before outputting the next event + + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Creates and opens the file for logging. If + is false then the fully qualified name is determined and used. + + the name of the file to open + true to append to existing file + + This method will ensure that the directory structure + for the specified exists. + + + + + Get the current output file name + + the base file name + the output file name + + The output file name is based on the base fileName specified. + If is set then the output + file name is the same as the base file passed in. Otherwise + the output file depends on the date pattern, on the count + direction or both. + + + + + Determines curSizeRollBackups (only within the current roll point) + + + + + Generates a wildcard pattern that can be used to find all files + that are similar to the base file name. + + + + + + + Builds a list of filenames for all files matching the base filename plus a file + pattern. + + + + + + + Initiates a roll over if needed for crossing a date boundary since the last run. + + + + + Initializes based on existing conditions at time of . + + + + Initializes based on existing conditions at time of . + The following is done + + determine curSizeRollBackups (only within the current roll point) + initiates a roll over if needed for crossing a date boundary since the last run. + + + + + + + Does the work of bumping the 'current' file counter higher + to the highest count when an incremental file name is seen. + The highest count is either the first file (when count direction + is greater than 0) or the last file (when count direction less than 0). + In either case, we want to know the highest count that is present. + + + + + + + Attempts to extract a number from the end of the file name that indicates + the number of the times the file has been rolled over. + + + Certain date pattern extensions like yyyyMMdd will be parsed as valid backup indexes. + + + + + + + Takes a list of files and a base file name, and looks for + 'incremented' versions of the base file. Bumps the max + count up to the highest count seen. + + + + + + + Calculates the RollPoint for the datePattern supplied. + + the date pattern to calculate the check period for + The RollPoint that is most accurate for the date pattern supplied + + Essentially the date pattern is examined to determine what the + most suitable roll point is. The roll point chosen is the roll point + with the smallest period that can be detected using the date pattern + supplied. i.e. if the date pattern only outputs the year, month, day + and hour then the smallest roll point that can be detected would be + and hourly roll point as minutes could not be detected. + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Sets initial conditions including date/time roll over information, first check, + scheduledFilename, and calls to initialize + the current number of backups. + + + + + + + + + .1, .2, .3, etc. + + + + + Rollover the file(s) to date/time tagged file(s). + + set to true if the file to be rolled is currently open + + + Rollover the file(s) to date/time tagged file(s). + Resets curSizeRollBackups. + If fileIsOpen is set then the new file is opened (through SafeOpenFile). + + + + + + Renames file to file . + + Name of existing file to roll. + New name for file. + + + Renames file to file . It + also checks for existence of target file and deletes if it does. + + + + + + Test if a file exists at a specified path + + the path to the file + true if the file exists + + + Test if a file exists at a specified path + + + + + + Deletes the specified file if it exists. + + The file to delete. + + + Delete a file if is exists. + The file is first moved to a new filename then deleted. + This allows the file to be removed even when it cannot + be deleted, but it still can be moved. + + + + + + Implements file roll base on file size. + + + + If the maximum number of size based backups is reached + (curSizeRollBackups == maxSizeRollBackups) then the oldest + file is deleted -- its index determined by the sign of countDirection. + If countDirection < 0, then files + {File.1, ..., File.curSizeRollBackups -1} + are renamed to {File.2, ..., + File.curSizeRollBackups}. Moreover, File is + renamed File.1 and closed. + + + A new file is created to receive further log output. + + + If maxSizeRollBackups is equal to zero, then the + File is truncated with no backup files created. + + + If maxSizeRollBackups < 0, then File is + renamed if needed and no files are deleted. + + + + + + Implements file roll. + + the base name to rename + + + If the maximum number of size based backups is reached + (curSizeRollBackups == maxSizeRollBackups) then the oldest + file is deleted -- its index determined by the sign of countDirection. + If countDirection < 0, then files + {File.1, ..., File.curSizeRollBackups -1} + are renamed to {File.2, ..., + File.curSizeRollBackups}. + + + If maxSizeRollBackups is equal to zero, then the + File is truncated with no backup files created. + + + If maxSizeRollBackups < 0, then File is + renamed if needed and no files are deleted. + + + This is called by to rename the files. + + + + + + Get the start time of the next window for the current rollpoint + + the current date + the type of roll point we are working with + the start time for the next roll point an interval after the currentDateTime date + + + Returns the date of the next roll point after the currentDateTime date passed to the method. + + + The basic strategy is to subtract the time parts that are less significant + than the rollpoint from the current time. This should roll the time back to + the start of the time window for the current rollpoint. Then we add 1 window + worth of time and get the start time of the next window for the rollpoint. + + + + + + This object supplies the current date/time. Allows test code to plug in + a method to control this class when testing date/time based rolling. The default + implementation uses the underlying value of DateTime.Now. + + + + + The date pattern. By default, the pattern is set to ".yyyy-MM-dd" + meaning daily rollover. + + + + + The actual formatted filename that is currently being written to + or will be the file transferred to on roll over + (based on staticLogFileName). + + + + + The timestamp when we shall next recompute the filename. + + + + + Holds date of last roll over + + + + + The type of rolling done + + + + + The default maximum file size is 10MB + + + + + There is zero backup files by default + + + + + How many sized based backups have been made so far + + + + + The rolling file count direction. + + + + + The rolling mode used in this appender. + + + + + Cache flag set if we are rolling by date. + + + + + Cache flag set if we are rolling by size. + + + + + Value indicating whether to always log to the same file. + + + + + Value indicating whether to preserve the file name extension when rolling. + + + + + FileName provided in configuration. Used for rolling properly + + + + + A mutex that is used to lock rolling of files. + + + + + The 1st of January 1970 in UTC + + + + + Gets or sets the strategy for determining the current date and time. The default + implementation is to use LocalDateTime which internally calls through to DateTime.Now. + DateTime.UtcNow may be used on frameworks newer than .NET 1.0 by specifying + . + + + An implementation of the interface which returns the current date and time. + + + + Gets or sets the used to return the current date and time. + + + There are two built strategies for determining the current date and time, + + and . + + + The default strategy is . + + + + + + Gets or sets the date pattern to be used for generating file names + when rolling over on date. + + + The date pattern to be used for generating file names when rolling + over on date. + + + + Takes a string in the same format as expected by + . + + + This property determines the rollover schedule when rolling over + on date. + + + + + + Gets or sets the maximum number of backup files that are kept before + the oldest is erased. + + + The maximum number of backup files that are kept before the oldest is + erased. + + + + If set to zero, then there will be no backup files and the log file + will be truncated when it reaches . + + + If a negative number is supplied then no deletions will be made. Note + that this could result in very slow performance as a large number of + files are rolled over unless is used. + + + The maximum applies to each time based group of files and + not the total. + + + + + + Gets or sets the maximum size that the output file is allowed to reach + before being rolled over to backup files. + + + The maximum size in bytes that the output file is allowed to reach before being + rolled over to backup files. + + + + This property is equivalent to except + that it is required for differentiating the setter taking a + argument from the setter taking a + argument. + + + The default maximum file size is 10MB (10*1024*1024). + + + + + + Gets or sets the maximum size that the output file is allowed to reach + before being rolled over to backup files. + + + The maximum size that the output file is allowed to reach before being + rolled over to backup files. + + + + This property allows you to specify the maximum size with the + suffixes "KB", "MB" or "GB" so that the size is interpreted being + expressed respectively in kilobytes, megabytes or gigabytes. + + + For example, the value "10KB" will be interpreted as 10240 bytes. + + + The default maximum file size is 10MB. + + + If you have the option to set the maximum file size programmatically + consider using the property instead as this + allows you to set the size in bytes as a . + + + + + + Gets or sets the rolling file count direction. + + + The rolling file count direction. + + + + Indicates if the current file is the lowest numbered file or the + highest numbered file. + + + By default newer files have lower numbers ( < 0), + i.e. log.1 is most recent, log.5 is the 5th backup, etc... + + + >= 0 does the opposite i.e. + log.1 is the first backup made, log.5 is the 5th backup made, etc. + For infinite backups use >= 0 to reduce + rollover costs. + + The default file count direction is -1. + + + + + Gets or sets the rolling style. + + The rolling style. + + + The default rolling style is . + + + When set to this appender's + property is set to false, otherwise + the appender would append to a single file rather than rolling + the file each time it is opened. + + + + + + Gets or sets a value indicating whether to preserve the file name extension when rolling. + + + true if the file name extension should be preserved. + + + + By default file.log is rolled to file.log.yyyy-MM-dd or file.log.curSizeRollBackup. + However, under Windows the new file name will loose any program associations as the + extension is changed. Optionally file.log can be renamed to file.yyyy-MM-dd.log or + file.curSizeRollBackup.log to maintain any program associations. + + + + + + Gets or sets a value indicating whether to always log to + the same file. + + + true if always should be logged to the same file, otherwise false. + + + + By default file.log is always the current file. Optionally + file.log.yyyy-mm-dd for current formatted datePattern can by the currently + logging file (or file.log.curSizeRollBackup or even + file.log.yyyy-mm-dd.curSizeRollBackup). + + + This will make time based rollovers with a large number of backups + much faster as the appender it won't have to rename all the backups! + + + + + + Style of rolling to use + + + + Style of rolling to use + + + + + + Roll files once per program execution + + + + Roll files once per program execution. + Well really once each time this appender is + configured. + + + Setting this option also sets AppendToFile to + false on the RollingFileAppender, otherwise + this appender would just be a normal file appender. + + + + + + Roll files based only on the size of the file + + + + + Roll files based only on the date + + + + + Roll files based on both the size and date of the file + + + + + The code assumes that the following 'time' constants are in a increasing sequence. + + + + The code assumes that the following 'time' constants are in a increasing sequence. + + + + + + Roll the log not based on the date + + + + + Roll the log for each minute + + + + + Roll the log for each hour + + + + + Roll the log twice a day (midday and midnight) + + + + + Roll the log each day (midnight) + + + + + Roll the log each week + + + + + Roll the log each month + + + + + This interface is used to supply Date/Time information to the . + + + This interface is used to supply Date/Time information to the . + Used primarily to allow test classes to plug themselves in so they can + supply test date/times. + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Default implementation of that returns the current time. + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Implementation of that returns the current time as the coordinated universal time (UTC). + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Send an e-mail when a specific logging event occurs, typically on errors + or fatal errors. + + + + The number of logging events delivered in this e-mail depend on + the value of option. The + keeps only the last + logging events in its + cyclic buffer. This keeps memory requirements at a reasonable level while + still delivering useful application context. + + + Authentication and setting the server Port are only available on the MS .NET 1.1 runtime. + For these features to be enabled you need to ensure that you are using a version of + the log4net assembly that is built against the MS .NET 1.1 framework and that you are + running the your application on the MS .NET 1.1 runtime. On all other platforms only sending + unauthenticated messages to a server listening on port 25 (the default) is supported. + + + Authentication is supported by setting the property to + either or . + If using authentication then the + and properties must also be set. + + + To set the SMTP server port use the property. The default port is 25. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Default constructor + + + + + + Sends the contents of the cyclic buffer as an e-mail message. + + The logging events to send. + + + + Send the email message + + the body text to include in the mail + + + + trims leading and trailing commas or semicolons + + + + + Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses (use semicolon on .NET 1.1 and comma for later versions). + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + + Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses + that will be carbon copied (use semicolon on .NET 1.1 and comma for later versions). + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + + Gets or sets a semicolon-delimited list of recipient e-mail addresses + that will be blind carbon copied. + + + A semicolon-delimited list of e-mail addresses. + + + + A semicolon-delimited list of recipient e-mail addresses. + + + + + + Gets or sets the e-mail address of the sender. + + + The e-mail address of the sender. + + + + The e-mail address of the sender. + + + + + + Gets or sets the subject line of the e-mail message. + + + The subject line of the e-mail message. + + + + The subject line of the e-mail message. + + + + + + Gets or sets the name of the SMTP relay mail server to use to send + the e-mail messages. + + + The name of the e-mail relay server. If SmtpServer is not set, the + name of the local SMTP server is used. + + + + The name of the e-mail relay server. If SmtpServer is not set, the + name of the local SMTP server is used. + + + + + + Obsolete + + + Use the BufferingAppenderSkeleton Fix methods instead + + + + Obsolete property. + + + + + + The mode to use to authentication with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + Valid Authentication mode values are: , + , and . + The default value is . When using + you must specify the + and to use to authenticate. + When using the Windows credentials for the current + thread, if impersonating, or the process will be used to authenticate. + + + + + + The username to use to authenticate with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + A and must be specified when + is set to , + otherwise the username will be ignored. + + + + + + The password to use to authenticate with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + A and must be specified when + is set to , + otherwise the password will be ignored. + + + + + + The port on which the SMTP server is listening + + + Server Port is only available on the MS .NET 1.1 runtime. + + The port on which the SMTP server is listening. The default + port is 25. The Port can only be changed when running on + the MS .NET 1.1 runtime. + + + + + + Gets or sets the priority of the e-mail message + + + One of the values. + + + + Sets the priority of the e-mails generated by this + appender. The default priority is . + + + If you are using this appender to report errors then + you may want to set the priority to . + + + + + + Enable or disable use of SSL when sending e-mail message + + + This is available on MS .NET 2.0 runtime and higher + + + + + Gets or sets the reply-to e-mail address. + + + This is available on MS .NET 2.0 runtime and higher + + + + + Gets or sets the subject encoding to be used. + + + The default encoding is the operating system's current ANSI codepage. + + + + + Gets or sets the body encoding to be used. + + + The default encoding is the operating system's current ANSI codepage. + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Values for the property. + + + + SMTP authentication modes. + + + + + + No authentication + + + + + Basic authentication. + + + Requires a username and password to be supplied + + + + + Integrated authentication + + + Uses the Windows credentials from the current thread or process to authenticate. + + + + + Send an email when a specific logging event occurs, typically on errors + or fatal errors. Rather than sending via smtp it writes a file into the + directory specified by . This allows services such + as the IIS SMTP agent to manage sending the messages. + + + + The configuration for this appender is identical to that of the SMTPAppender, + except that instead of specifying the SMTPAppender.SMTPHost you specify + . + + + The number of logging events delivered in this e-mail depend on + the value of option. The + keeps only the last + logging events in its + cyclic buffer. This keeps memory requirements at a reasonable level while + still delivering useful application context. + + + Niall Daley + Nicko Cadell + + + + Default constructor + + + + Default constructor + + + + + + Sends the contents of the cyclic buffer as an e-mail message. + + The logging events to send. + + + Sends the contents of the cyclic buffer as an e-mail message. + + + + + + Activate the options on this appender. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Convert a path into a fully qualified path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + + + + The security context to use for privileged calls + + + + + Gets or sets a semicolon-delimited list of recipient e-mail addresses. + + + A semicolon-delimited list of e-mail addresses. + + + + A semicolon-delimited list of e-mail addresses. + + + + + + Gets or sets the e-mail address of the sender. + + + The e-mail address of the sender. + + + + The e-mail address of the sender. + + + + + + Gets or sets the subject line of the e-mail message. + + + The subject line of the e-mail message. + + + + The subject line of the e-mail message. + + + + + + Gets or sets the path to write the messages to. + + + + Gets or sets the path to write the messages to. This should be the same + as that used by the agent sending the messages. + + + + + + Gets or sets the file extension for the generated files + + + The file extension for the generated files + + + + The file extension for the generated files + + + + + + Gets or sets the used to write to the pickup directory. + + + The used to write to the pickup directory. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Appender that allows clients to connect via Telnet to receive log messages + + + + The TelnetAppender accepts socket connections and streams logging messages + back to the client. + The output is provided in a telnet-friendly way so that a log can be monitored + over a TCP/IP socket. + This allows simple remote monitoring of application logging. + + + The default is 23 (the telnet port). + + + Keith Long + Nicko Cadell + + + + Default constructor + + + + Default constructor + + + + + + The fully qualified type of the TelnetAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Overrides the parent method to close the socket handler + + + + Closes all the outstanding connections. + + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Create the socket handler and wait for connections + + + + + + Writes the logging event to each connected client. + + The event to log. + + + Writes the logging event to each connected client. + + + + + + Gets or sets the TCP port number on which this will listen for connections. + + + An integer value in the range to + indicating the TCP port number on which this will listen for connections. + + + + The default value is 23 (the telnet port). + + + The value specified is less than + or greater than . + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Helper class to manage connected clients + + + + The SocketHandler class is used to accept connections from + clients. It is threaded so that clients can connect/disconnect + asynchronously. + + + + + + Opens a new server port on + + the local port to listen on for connections + + + Creates a socket handler on the specified local server port. + + + + + + Sends a string message to each of the connected clients + + the text to send + + + Sends a string message to each of the connected clients + + + + + + Add a client to the internal clients list + + client to add + + + + Remove a client from the internal clients list + + client to remove + + + + Callback used to accept a connection on the server socket + + The result of the asynchronous operation + + + On connection adds to the list of connections + if there are two many open connections you will be disconnected + + + + + + Close all network connections + + + + Make sure we close all network connections + + + + + + Test if this handler has active connections + + + true if this handler has active connections + + + + This property will be true while this handler has + active connections, that is at least one connection that + the handler will attempt to send a message to. + + + + + + Class that represents a client connected to this handler + + + + Class that represents a client connected to this handler + + + + + + Create this for the specified + + the client's socket + + + Opens a stream writer on the socket. + + + + + + Write a string to the client + + string to send + + + Write a string to the client + + + + + + Cleanup the clients connection + + + + Close the socket connection. + + + + + + Appends log events to the system. + + + + The application configuration file can be used to control what listeners + are actually used. See the MSDN documentation for the + class for details on configuring the + trace system. + + + Events are written using the System.Diagnostics.Trace.Write(string,string) + method. The event's logger name is the default value for the category parameter + of the Write method. + + + Compact Framework
+ The Compact Framework does not support the + class for any operation except Assert. When using the Compact Framework this + appender will write to the system rather than + the Trace system. This appender will therefore behave like the . +
+
+ Douglas de la Torre + Nicko Cadell + Gert Driesen + Ron Grabowski +
+ + + Initializes a new instance of the . + + + + Default constructor. + + + + + + Initializes a new instance of the + with a specified layout. + + The layout to use with this appender. + + + Obsolete constructor. + + + + + + Writes the logging event to the system. + + The event to log. + + + Writes the logging event to the system. + + + + + + Immediate flush means that the underlying writer or output stream + will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logs events are not actually written to persistent media if and + when the application crashes. + + + The default value is true. + + + + + Defaults to %logger + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Gets or sets a value that indicates whether the appender will + flush at the end of each write. + + + The default behavior is to flush at the end of each + write. If the option is set tofalse, then the underlying + stream can defer writing to physical medium to a later time. + + + Avoiding the flush operation at the end of each append results + in a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + + The category parameter sent to the Trace method. + + + + Defaults to %logger which will use the logger name of the current + as the category parameter. + + + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Assembly level attribute that specifies a domain to alias to this assembly's repository. + + + + AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. + + + An assembly's logger repository is defined by its , + however this can be overridden by an assembly loaded before the target assembly. + + + An assembly can alias another assembly's domain to its repository by + specifying this attribute with the name of the target domain. + + + This attribute can only be specified on the assembly and may be used + as many times as necessary to alias all the required domains. + + + Nicko Cadell + Gert Driesen + + + + Assembly level attribute that specifies a repository to alias to this assembly's repository. + + + + An assembly's logger repository is defined by its , + however this can be overridden by an assembly loaded before the target assembly. + + + An assembly can alias another assembly's repository to its repository by + specifying this attribute with the name of the target repository. + + + This attribute can only be specified on the assembly and may be used + as many times as necessary to alias all the required repositories. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class with + the specified repository to alias to this assembly's repository. + + The repository to alias to this assemby's repository. + + + Initializes a new instance of the class with + the specified repository to alias to this assembly's repository. + + + + + + Gets or sets the repository to alias to this assemby's repository. + + + The repository to alias to this assemby's repository. + + + + The name of the repository to alias to this assemby's repository. + + + + + + Initializes a new instance of the class with + the specified domain to alias to this assembly's repository. + + The domain to alias to this assemby's repository. + + + Obsolete. Use instead of . + + + + + + Use this class to quickly configure a . + + + + Allows very simple programmatic configuration of log4net. + + + Only one appender can be configured using this configurator. + The appender is set at the root of the hierarchy and all logging + events will be delivered to that appender. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + The fully qualified type of the BasicConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Initializes the log4net system with a default configuration. + + + + Initializes the log4net logging system using a + that will write to Console.Out. The log messages are + formatted using the layout object + with the + layout style. + + + + + + Initializes the log4net system using the specified appenders. + + The appenders to use to log all logging events. + + + Initializes the log4net system using the specified appenders. + + + + + + Initializes the log4net system using the specified appender. + + The appender to use to log all logging events. + + + Initializes the log4net system using the specified appender. + + + + + + Initializes the with a default configuration. + + The repository to configure. + + + Initializes the specified repository using a + that will write to Console.Out. The log messages are + formatted using the layout object + with the + layout style. + + + + + + Initializes the using the specified appender. + + The repository to configure. + The appender to use to log all logging events. + + + Initializes the using the specified appender. + + + + + + Initializes the using the specified appenders. + + The repository to configure. + The appenders to use to log all logging events. + + + Initializes the using the specified appender. + + + + + + Base class for all log4net configuration attributes. + + + This is an abstract class that must be extended by + specific configurators. This attribute allows the + configurator to be parameterized by an assembly level + attribute. + + Nicko Cadell + Gert Driesen + + + + Constructor used by subclasses. + + the ordering priority for this configurator + + + The is used to order the configurator + attributes before they are invoked. Higher priority configurators are executed + before lower priority ones. + + + + + + Configures the for the specified assembly. + + The assembly that this attribute was defined on. + The repository to configure. + + + Abstract method implemented by a subclass. When this method is called + the subclass should configure the . + + + + + + Compare this instance to another ConfiguratorAttribute + + the object to compare to + see + + + Compares the priorities of the two instances. + Sorts by priority in descending order. Objects with the same priority are + randomly ordered. + + + + + + Assembly level attribute that specifies the logging domain for the assembly. + + + + DomainAttribute is obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + Assemblies are mapped to logging domains. Each domain has its own + logging repository. This attribute specified on the assembly controls + the configuration of the domain. The property specifies the name + of the domain that this assembly is a part of. The + specifies the type of the repository objects to create for the domain. If + this attribute is not specified and a is not specified + then the assembly will be part of the default shared logging domain. + + + This attribute can only be specified on the assembly and may only be used + once per assembly. + + + Nicko Cadell + Gert Driesen + + + + Assembly level attribute that specifies the logging repository for the assembly. + + + + Assemblies are mapped to logging repository. This attribute specified + on the assembly controls + the configuration of the repository. The property specifies the name + of the repository that this assembly is a part of. The + specifies the type of the object + to create for the assembly. If this attribute is not specified or a + is not specified then the assembly will be part of the default shared logging repository. + + + This attribute can only be specified on the assembly and may only be used + once per assembly. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initialize a new instance of the class + with the name of the repository. + + The name of the repository. + + + Initialize the attribute with the name for the assembly's repository. + + + + + + Gets or sets the name of the logging repository. + + + The string name to use as the name of the repository associated with this + assembly. + + + + This value does not have to be unique. Several assemblies can share the + same repository. They will share the logging configuration of the repository. + + + + + + Gets or sets the type of repository to create for this assembly. + + + The type of repository to create for this assembly. + + + + The type of the repository to create for the assembly. + The type must implement the + interface. + + + This will be the type of repository created when + the repository is created. If multiple assemblies reference the + same repository then the repository is only created once using the + of the first assembly to call into the + repository. + + + + + + Initializes a new instance of the class. + + + + Obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + + + + Initialize a new instance of the class + with the name of the domain. + + The name of the domain. + + + Obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + + + + Use this class to initialize the log4net environment using an Xml tree. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + Configures a using an Xml tree. + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + + + Automatically configures the log4net system based on the + application's configuration settings. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + + + Automatically configures the using settings + stored in the application's configuration file. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + The repository to configure. + + + + Configures log4net using a log4net element + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Loads the log4net configuration from the XML element + supplied as . + + The element to parse. + + + + Configures the using the specified XML + element. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Loads the log4net configuration from the XML element + supplied as . + + The repository to configure. + The element to parse. + + + + Configures log4net using the specified configuration file. + + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures log4net using the specified configuration file. + + A stream to load the XML configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The stream to load the XML configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures log4net using the file specified, monitors the file for changes + and reloads the configuration if a change is detected. + + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the using the file specified, + monitors the file for changes and reloads the configuration if a change + is detected. + + The repository to configure. + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Assembly level attribute to configure the . + + + + AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + Nicko Cadell + Gert Driesen + + + + Assembly level attribute to configure the . + + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + If neither of the or + properties are set the configuration is loaded from the application's .config file. + If set the property takes priority over the + property. The property + specifies a path to a file to load the config from. The path is relative to the + application's base directory; . + The property is used as a postfix to the assembly file name. + The config file must be located in the application's base directory; . + For example in a console application setting the to + config has the same effect as not specifying the or + properties. + + + The property can be set to cause the + to watch the configuration file for changes. + + + + Log4net will only look for assembly level configuration attributes once. + When using the log4net assembly level attributes to control the configuration + of log4net you must ensure that the first call to any of the + methods is made from the assembly with the configuration + attributes. + + + If you cannot guarantee the order in which log4net calls will be made from + different assemblies you must use programmatic configuration instead, i.e. + call the method directly. + + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Default constructor + + + + + + Configures the for the specified assembly. + + The assembly that this attribute was defined on. + The repository to configure. + + + Configure the repository using the . + The specified must extend the + class otherwise the will not be able to + configure it. + + + The does not extend . + + + + Attempt to load configuration from the local file system + + The assembly that this attribute was defined on. + The repository to configure. + + + + Configure the specified repository using a + + The repository to configure. + the FileInfo pointing to the config file + + + + Attempt to load configuration from a URI + + The assembly that this attribute was defined on. + The repository to configure. + + + + The fully qualified type of the XmlConfiguratorAttribute class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the filename of the configuration file. + + + The filename of the configuration file. + + + + If specified, this is the name of the configuration file to use with + the . This file path is relative to the + application base directory (). + + + The takes priority over the . + + + + + + Gets or sets the extension of the configuration file. + + + The extension of the configuration file. + + + + If specified this is the extension for the configuration file. + The path to the config file is built by using the application + base directory (), + the assembly file name and the config file extension. + + + If the is set to MyExt then + possible config file names would be: MyConsoleApp.exe.MyExt or + MyClassLibrary.dll.MyExt. + + + The takes priority over the . + + + + + + Gets or sets a value indicating whether to watch the configuration file. + + + true if the configuration should be watched, false otherwise. + + + + If this flag is specified and set to true then the framework + will watch the configuration file and will reload the config each time + the file is modified. + + + The config file can only be watched if it is loaded from local disk. + In a No-Touch (Smart Client) deployment where the application is downloaded + from a web server the config file may not reside on the local disk + and therefore it may not be able to watch it. + + + Watching configuration is not supported on the SSCLI. + + + + + + Class to register for the log4net section of the configuration file + + + The log4net section of the configuration file needs to have a section + handler registered. This is the section handler used. It simply returns + the XML element that is the root of the section. + + + Example of registering the log4net section handler : + + + +
+ + + log4net configuration XML goes here + + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Parses the configuration section. + + The configuration settings in a corresponding parent configuration section. + The configuration context when called from the ASP.NET configuration system. Otherwise, this parameter is reserved and is a null reference. + The for the log4net section. + The for the log4net section. + + + Returns the containing the configuration data, + + + + + + Assembly level attribute that specifies a plugin to attach to + the repository. + + + + Specifies the type of a plugin to create and attach to the + assembly's repository. The plugin type must implement the + interface. + + + Nicko Cadell + Gert Driesen + + + + Interface used to create plugins. + + + + Interface used to create a plugin. + + + Nicko Cadell + Gert Driesen + + + + Creates the plugin object. + + the new plugin instance + + + Create and return a new plugin instance. + + + + + + Initializes a new instance of the class + with the specified type. + + The type name of plugin to create. + + + Create the attribute with the plugin type specified. + + + Where possible use the constructor that takes a . + + + + + + Initializes a new instance of the class + with the specified type. + + The type of plugin to create. + + + Create the attribute with the plugin type specified. + + + + + + Creates the plugin object defined by this attribute. + + + + Creates the instance of the object as + specified by this attribute. + + + The plugin object. + + + + Returns a representation of the properties of this object. + + + + Overrides base class method to + return a representation of the properties of this object. + + + A representation of the properties of this object + + + + Gets or sets the type for the plugin. + + + The type for the plugin. + + + + The type for the plugin. + + + + + + Gets or sets the type name for the plugin. + + + The type name for the plugin. + + + + The type name for the plugin. + + + Where possible use the property instead. + + + + + + Assembly level attribute to configure the . + + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + Nicko Cadell + + + + Construct provider attribute with type specified + + the type of the provider to use + + + The provider specified must subclass the + class. + + + + + + Configures the SecurityContextProvider + + The assembly that this attribute was defined on. + The repository to configure. + + + Creates a provider instance from the specified. + Sets this as the default security context provider . + + + + + + The fully qualified type of the SecurityContextProviderAttribute class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the type of the provider to use. + + + the type of the provider to use. + + + + The provider specified must subclass the + class. + + + + + + Use this class to initialize the log4net environment using an Xml tree. + + + + Configures a using an Xml tree. + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + + + Automatically configures the using settings + stored in the application's configuration file. + + + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + To use this method to configure log4net you must specify + the section + handler for the log4net configuration section. See the + for an example. + + + The repository to configure. + + + + Automatically configures the log4net system based on the + application's configuration settings. + + + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + To use this method to configure log4net you must specify + the section + handler for the log4net configuration section. See the + for an example. + + + + + + + Configures log4net using a log4net element + + + + Loads the log4net configuration from the XML element + supplied as . + + + The element to parse. + + + + Configures log4net using the specified configuration file. + + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The first element matching <configuration> will be read as the + configuration. If this file is also a .NET .config file then you must specify + a configuration section for the log4net element otherwise .NET will + complain. Set the type for the section handler to , for example: + + +
+ + + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures log4net using the specified configuration URI. + + A URI to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The must support the URI scheme specified. + + + + + + Configures log4net using the specified configuration data stream. + + A stream to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures the using the specified XML + element. + + + Loads the log4net configuration from the XML element + supplied as . + + The repository to configure. + The element to parse. + + + + Configures the using the specified configuration + file. + + The repository to configure. + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The first element matching <configuration> will be read as the + configuration. If this file is also a .NET .config file then you must specify + a configuration section for the log4net element otherwise .NET will + complain. Set the type for the section handler to , for example: + + +
+ + + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures the using the specified configuration + URI. + + The repository to configure. + A URI to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The must support the URI scheme specified. + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The stream to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures log4net using the file specified, monitors the file for changes + and reloads the configuration if a change is detected. + + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the using the file specified, + monitors the file for changes and reloads the configuration if a change + is detected. + + The repository to configure. + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the specified repository using a log4net element. + + The hierarchy to configure. + The element to parse. + + + Loads the log4net configuration from the XML element + supplied as . + + + This method is ultimately called by one of the Configure methods + to load the configuration from an . + + + + + + Maps repository names to ConfigAndWatchHandler instances to allow a particular + ConfigAndWatchHandler to dispose of its FileSystemWatcher when a repository is + reconfigured. + + + + + The fully qualified type of the XmlConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Class used to watch config files. + + + + Uses the to monitor + changes to a specified file. Because multiple change notifications + may be raised when the file is modified, a timer is used to + compress the notifications into a single event. The timer + waits for time before delivering + the event notification. If any further + change notifications arrive while the timer is waiting it + is reset and waits again for to + elapse. + + + + + + The default amount of time to wait after receiving notification + before reloading the config file. + + + + + Holds the FileInfo used to configure the XmlConfigurator + + + + + Holds the repository being configured. + + + + + The timer used to compress the notification events. + + + + + Watches file for changes. This object should be disposed when no longer + needed to free system handles on the watched resources. + + + + + Initializes a new instance of the class to + watch a specified config file used to configure a repository. + + The repository to configure. + The configuration file to watch. + + + Initializes a new instance of the class. + + + + + + Event handler used by . + + The firing the event. + The argument indicates the file that caused the event to be fired. + + + This handler reloads the configuration from the file when the event is fired. + + + + + + Event handler used by . + + The firing the event. + The argument indicates the file that caused the event to be fired. + + + This handler reloads the configuration from the file when the event is fired. + + + + + + Called by the timer when the configuration has been updated. + + null + + + + Release the handles held by the watcher and timer. + + + + + The implementation of the interface suitable + for use with the compact framework + + + + This implementation is a simple + mapping between repository name and + object. + + + The .NET Compact Framework 1.0 does not support retrieving assembly + level attributes therefore unlike the DefaultRepositorySelector + this selector does not examine the calling assembly for attributes. + + + Nicko Cadell + + + + Interface used by the to select the . + + + + The uses a + to specify the policy for selecting the correct + to return to the caller. + + + Nicko Cadell + Gert Driesen + + + + Gets the for the specified assembly. + + The assembly to use to lookup to the + The for the assembly. + + + Gets the for the specified assembly. + + + How the association between and + is made is not defined. The implementation may choose any method for + this association. The results of this method must be repeatable, i.e. + when called again with the same arguments the result must be the + save value. + + + + + + Gets the named . + + The name to use to lookup to the . + The named + + Lookup a named . This is the repository created by + calling . + + + + + Creates a new repository for the assembly specified. + + The assembly to use to create the domain to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the domain + specified such that a call to with the + same assembly specified will return the same repository instance. + + + How the association between and + is made is not defined. The implementation may choose any method for + this association. + + + + + + Creates a new repository with the name specified. + + The name to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the name + specified such that a call to with the + same name will return the same repository instance. + + + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets an array of all currently defined repositories. + + + An array of the instances created by + this . + + + Gets an array of all of the repositories created by this selector. + + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + Create a new repository selector + + the type of the repositories to create, must implement + + + Create an new compact repository selector. + The default type for repositories must be specified, + an appropriate value would be . + + + throw if is null + throw if does not implement + + + + Get the for the specified assembly + + not used + The default + + + The argument is not used. This selector does not create a + separate repository for each assembly. + + + As a named repository is not specified the default repository is + returned. The default repository is named log4net-default-repository. + + + + + + Get the named + + the name of the repository to lookup + The named + + + Get the named . The default + repository is log4net-default-repository. Other repositories + must be created using the . + If the named repository does not exist an exception is thrown. + + + throw if is null + throw if the does not exist + + + + Create a new repository for the assembly specified + + not used + the type of repository to create, must implement + the repository created + + + The argument is not used. This selector does not create a + separate repository for each assembly. + + + If the is null then the + default repository type specified to the constructor is used. + + + As a named repository is not specified the default repository is + returned. The default repository is named log4net-default-repository. + + + + + + Create a new repository for the repository specified + + the repository to associate with the + the type of repository to create, must implement . + If this param is null then the default repository type is used. + the repository created + + + The created will be associated with the repository + specified such that a call to with the + same repository specified will return the same repository instance. + + + If the named repository already exists an exception will be thrown. + + + If is null then the default + repository type specified to the constructor is used. + + + throw if is null + throw if the already exists + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets a list of objects + + an array of all known objects + + + Gets an array of all of the repositories created by this selector. + + + + + + The fully qualified type of the CompactRepositorySelector class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Notify the registered listeners that the repository has been created + + The repository that has been created + + + Raises the LoggerRepositoryCreatedEvent + event. + + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + The default implementation of the interface. + + + + Uses attributes defined on the calling assembly to determine how to + configure the hierarchy for the repository. + + + Nicko Cadell + Gert Driesen + + + + Creates a new repository selector. + + The type of the repositories to create, must implement + + + Create an new repository selector. + The default type for repositories must be specified, + an appropriate value would be . + + + is . + does not implement . + + + + Gets the for the specified assembly. + + The assembly use to lookup the . + + + The type of the created and the repository + to create can be overridden by specifying the + attribute on the . + + + The default values are to use the + implementation of the interface and to use the + as the name of the repository. + + + The created will be automatically configured using + any attributes defined on + the . + + + The for the assembly + is . + + + + Gets the for the specified repository. + + The repository to use to lookup the . + The for the specified repository. + + + Returns the named repository. If is null + a is thrown. If the repository + does not exist a is thrown. + + + Use to create a repository. + + + is . + does not exist. + + + + Create a new repository for the assembly specified + + the assembly to use to create the repository to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The type of the created and + the repository to create can be overridden by specifying the + attribute on the + . The default values are to use the + implementation of the + interface and to use the + as the name of the repository. + + + The created will be automatically + configured using any + attributes defined on the . + + + If a repository for the already exists + that repository will be returned. An error will not be raised and that + repository may be of a different type to that specified in . + Also the attribute on the + assembly may be used to override the repository type specified in + . + + + is . + + + + Creates a new repository for the assembly specified. + + the assembly to use to create the repository to associate with the . + The type of repository to create, must implement . + The name to assign to the created repository + Set to true to read and apply the assembly attributes + The repository created. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The type of the created and + the repository to create can be overridden by specifying the + attribute on the + . The default values are to use the + implementation of the + interface and to use the + as the name of the repository. + + + The created will be automatically + configured using any + attributes defined on the . + + + If a repository for the already exists + that repository will be returned. An error will not be raised and that + repository may be of a different type to that specified in . + Also the attribute on the + assembly may be used to override the repository type specified in + . + + + is . + + + + Creates a new repository for the specified repository. + + The repository to associate with the . + The type of repository to create, must implement . + If this param is then the default repository type is used. + The new repository. + + + The created will be associated with the repository + specified such that a call to with the + same repository specified will return the same repository instance. + + + is . + already exists. + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets a list of objects + + an array of all known objects + + + Gets an array of all of the repositories created by this selector. + + + + + + Aliases a repository to an existing repository. + + The repository to alias. + The repository that the repository is aliased to. + + + The repository specified will be aliased to the repository when created. + The repository must not already exist. + + + When the repository is created it must utilize the same repository type as + the repository it is aliased to, otherwise the aliasing will fail. + + + + is . + -or- + is . + + + + + Notifies the registered listeners that the repository has been created. + + The repository that has been created. + + + Raises the event. + + + + + + Gets the repository name and repository type for the specified assembly. + + The assembly that has a . + in/out param to hold the repository name to use for the assembly, caller should set this to the default value before calling. + in/out param to hold the type of the repository to create for the assembly, caller should set this to the default value before calling. + is . + + + + Configures the repository using information from the assembly. + + The assembly containing + attributes which define the configuration for the repository. + The repository to configure. + + is . + -or- + is . + + + + + Loads the attribute defined plugins on the assembly. + + The assembly that contains the attributes. + The repository to add the plugins to. + + is . + -or- + is . + + + + + Loads the attribute defined aliases on the assembly. + + The assembly that contains the attributes. + The repository to alias to. + + is . + -or- + is . + + + + + The fully qualified type of the DefaultRepositorySelector class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + Defined error codes that can be passed to the method. + + + + Values passed to the method. + + + Nicko Cadell + + + + A general error + + + + + Error while writing output + + + + + Failed to flush file + + + + + Failed to close file + + + + + Unable to open output file + + + + + No layout specified + + + + + Failed to parse address + + + + + An evaluator that triggers on an Exception type + + + + This evaluator will trigger if the type of the Exception + passed to + is equal to a Type in . /// + + + Drew Schaeffer + + + + Test if an triggers an action + + + + Implementations of this interface allow certain appenders to decide + when to perform an appender specific action. + + + The action or behavior triggered is defined by the implementation. + + + Nicko Cadell + + + + Test if this event triggers the action + + The event to check + true if this event triggers the action, otherwise false + + + Return true if this event triggers the action + + + + + + The type that causes the trigger to fire. + + + + + Causes subclasses of to cause the trigger to fire. + + + + + Default ctor to allow dynamic creation through a configurator. + + + + + Constructs an evaluator and initializes to trigger on + + the type that triggers this evaluator. + If true, this evaluator will trigger on subclasses of . + + + + Is this the triggering event? + + The event to check + This method returns true, if the logging event Exception + Type is . + Otherwise it returns false + + + This evaluator will trigger if the Exception Type of the event + passed to + is . + + + + + + The type that triggers this evaluator. + + + + + If true, this evaluator will trigger on subclasses of . + + + + + Appenders may delegate their error handling to an . + + + + Error handling is a particularly tedious to get right because by + definition errors are hard to predict and to reproduce. + + + Nicko Cadell + Gert Driesen + + + + Handles the error and information about the error condition is passed as + a parameter. + + The message associated with the error. + The that was thrown when the error occurred. + The error code associated with the error. + + + Handles the error and information about the error condition is passed as + a parameter. + + + + + + Prints the error message passed as a parameter. + + The message associated with the error. + The that was thrown when the error occurred. + + + See . + + + + + + Prints the error message passed as a parameter. + + The message associated with the error. + + + See . + + + + + + Interface for objects that require fixing. + + + + Interface that indicates that the object requires fixing before it + can be taken outside the context of the appender's + method. + + + When objects that implement this interface are stored + in the context properties maps + and + are fixed + (see ) the + method will be called. + + + Nicko Cadell + + + + Get a portable version of this object + + the portable instance of this object + + + Get a portable instance object that represents the current + state of this object. The portable object can be stored + and logged from any thread with identical results. + + + + + + Interface that all loggers implement + + + + This interface supports logging events and testing if a level + is enabled for logging. + + + These methods will not throw exceptions. Note to implementor, ensure + that the implementation of these methods cannot allow an exception + to be thrown to the caller. + + + Nicko Cadell + Gert Driesen + + + + This generic form is intended to be used by wrappers. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + the exception to log, including its stack trace. Pass null to not log an exception. + + + Generates a logging event for the specified using + the and . + + + + + + This is the most generic printing method that is intended to be used + by wrappers. + + The event being logged. + + + Logs the specified logging event through this logger. + + + + + + Checks if this logger is enabled for a given passed as parameter. + + The level to check. + + true if this logger is enabled for level, otherwise false. + + + + Test if this logger is going to log events of the specified . + + + + + + Gets the name of the logger. + + + The name of the logger. + + + + The name of this logger + + + + + + Gets the where this + Logger instance is attached to. + + + The that this logger belongs to. + + + + Gets the where this + Logger instance is attached to. + + + + + + Base interface for all wrappers + + + + Base interface for all wrappers. + + + All wrappers must implement this interface. + + + Nicko Cadell + + + + Get the implementation behind this wrapper object. + + + The object that in implementing this object. + + + + The object that in implementing this + object. The Logger object may not + be the same object as this object because of logger decorators. + This gets the actual underlying objects that is used to process + the log events. + + + + + + Delegate used to handle logger repository creation event notifications + + The which created the repository. + The event args + that holds the instance that has been created. + + + Delegate used to handle logger repository creation event notifications. + + + + + + Provides data for the event. + + + + A + event is raised every time a is created. + + + + + + The created + + + + + Construct instance using specified + + the that has been created + + + Construct instance using specified + + + + + + The that has been created + + + The that has been created + + + + The that has been created + + + + + + Defines the default set of levels recognized by the system. + + + + Each has an associated . + + + Levels have a numeric that defines the relative + ordering between levels. Two Levels with the same + are deemed to be equivalent. + + + The levels that are recognized by log4net are set for each + and each repository can have different levels defined. The levels are stored + in the on the repository. Levels are + looked up by name from the . + + + When logging at level INFO the actual level used is not but + the value of LoggerRepository.LevelMap["INFO"]. The default value for this is + , but this can be changed by reconfiguring the level map. + + + Each level has a in addition to its . The + is the string that is written into the output log. By default + the display name is the same as the level name, but this can be used to alias levels + or to localize the log output. + + + Some of the predefined levels recognized by the system are: + + + + . + + + . + + + . + + + . + + + . + + + . + + + . + + + + Nicko Cadell + Gert Driesen + + + + Constructor + + Integer value for this level, higher values represent more severe levels. + The string name of this level. + The display name for this level. This may be localized or otherwise different from the name + + + Initializes a new instance of the class with + the specified level name and value. + + + + + + Constructor + + Integer value for this level, higher values represent more severe levels. + The string name of this level. + + + Initializes a new instance of the class with + the specified level name and value. + + + + + + Returns the representation of the current + . + + + A representation of the current . + + + + Returns the level . + + + + + + Compares levels. + + The object to compare against. + true if the objects are equal. + + + Compares the levels of instances, and + defers to base class if the target object is not a + instance. + + + + + + Returns a hash code + + A hash code for the current . + + + Returns a hash code suitable for use in hashing algorithms and data + structures like a hash table. + + + Returns the hash code of the level . + + + + + + Compares this instance to a specified object and returns an + indication of their relative values. + + A instance or to compare with this instance. + + A 32-bit signed integer that indicates the relative order of the + values compared. The return value has these meanings: + + + Value + Meaning + + + Less than zero + This instance is less than . + + + Zero + This instance is equal to . + + + Greater than zero + + This instance is greater than . + -or- + is . + + + + + + + must be an instance of + or ; otherwise, an exception is thrown. + + + is not a . + + + + Returns a value indicating whether a specified + is greater than another specified . + + A + A + + true if is greater than + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is less than another specified . + + A + A + + true if is less than + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is greater than or equal to another specified . + + A + A + + true if is greater than or equal to + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is less than or equal to another specified . + + A + A + + true if is less than or equal to + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether two specified + objects have the same value. + + A or . + A or . + + true if the value of is the same as the + value of ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether two specified + objects have different values. + + A or . + A or . + + true if the value of is different from + the value of ; otherwise, false. + + + + Compares two levels. + + + + + + Compares two specified instances. + + The first to compare. + The second to compare. + + A 32-bit signed integer that indicates the relative order of the + two values compared. The return value has these meanings: + + + Value + Meaning + + + Less than zero + is less than . + + + Zero + is equal to . + + + Greater than zero + is greater than . + + + + + + Compares two levels. + + + + + + The level designates a higher level than all the rest. + + + + + The level designates very severe error events. + System unusable, emergencies. + + + + + The level designates very severe error events. + System unusable, emergencies. + + + + + The level designates very severe error events + that will presumably lead the application to abort. + + + + + The level designates very severe error events. + Take immediate action, alerts. + + + + + The level designates very severe error events. + Critical condition, critical. + + + + + The level designates very severe error events. + + + + + The level designates error events that might + still allow the application to continue running. + + + + + The level designates potentially harmful + situations. + + + + + The level designates informational messages + that highlight the progress of the application at the highest level. + + + + + The level designates informational messages that + highlight the progress of the application at coarse-grained level. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates the lowest level possible. + + + + + Gets the name of this level. + + + The name of this level. + + + + Gets the name of this level. + + + + + + Gets the value of this level. + + + The value of this level. + + + + Gets the value of this level. + + + + + + Gets the display name of this level. + + + The display name of this level. + + + + Gets the display name of this level. + + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Creates a read-only wrapper for a LevelCollection instance. + + list to create a readonly wrapper arround + + A LevelCollection wrapper that is read-only. + + + + + Initializes a new instance of the LevelCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the LevelCollection class + that has the specified initial capacity. + + + The number of elements that the new LevelCollection is initially capable of storing. + + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified LevelCollection. + + The LevelCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Allow subclasses to avoid our default constructors + + + + + + Copies the entire LevelCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire LevelCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Adds a to the end of the LevelCollection. + + The to be added to the end of the LevelCollection. + The index at which the value has been added. + + + + Removes all elements from the LevelCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the LevelCollection. + + The to check for. + true if is found in the LevelCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the LevelCollection. + + The to locate in the LevelCollection. + + The zero-based index of the first occurrence of + in the entire LevelCollection, if found; otherwise, -1. + + + + + Inserts an element into the LevelCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the LevelCollection. + + The to remove from the LevelCollection. + + The specified was not found in the LevelCollection. + + + + + Removes the element at the specified index of the LevelCollection. + + The zero-based index of the element to remove. + + is less than zero + -or- + is equal to or greater than . + + + + + Returns an enumerator that can iterate through the LevelCollection. + + An for the entire LevelCollection. + + + + Adds the elements of another LevelCollection to the current LevelCollection. + + The LevelCollection whose elements should be added to the end of the current LevelCollection. + The new of the LevelCollection. + + + + Adds the elements of a array to the current LevelCollection. + + The array whose elements should be added to the end of the LevelCollection. + The new of the LevelCollection. + + + + Adds the elements of a collection to the current LevelCollection. + + The collection whose elements should be added to the end of the LevelCollection. + The new of the LevelCollection. + + + + Sets the capacity to the actual number of elements. + + + + + is less than zero + -or- + is equal to or greater than . + + + + + is less than zero + -or- + is equal to or greater than . + + + + + Gets the number of elements actually contained in the LevelCollection. + + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + The zero-based index of the element to get or set. + + is less than zero + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false + + + + Gets or sets the number of elements the LevelCollection can contain. + + + + + Supports type-safe iteration over a . + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + A value + + + + + Supports simple iteration over a . + + + + + Initializes a new instance of the Enumerator class. + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + An evaluator that triggers at a threshold level + + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + Nicko Cadell + + + + The threshold for triggering + + + + + Create a new evaluator using the threshold. + + + + Create a new evaluator using the threshold. + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Create a new evaluator using the specified threshold. + + the threshold to trigger at + + + Create a new evaluator using the specified threshold. + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Is this the triggering event? + + The event to check + This method returns true, if the event level + is equal or higher than the . + Otherwise it returns false + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + the threshold to trigger at + + + The that will cause this evaluator to trigger + + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Mapping between string name and Level object + + + + Mapping between string name and object. + This mapping is held separately for each . + The level name is case insensitive. + + + Nicko Cadell + + + + Mapping from level name to Level object. The + level name is case insensitive + + + + + Construct the level map + + + + Construct the level map. + + + + + + Clear the internal maps of all levels + + + + Clear the internal maps of all levels + + + + + + Create a new Level and add it to the map + + the string to display for the Level + the level value to give to the Level + + + Create a new Level and add it to the map + + + + + + + Create a new Level and add it to the map + + the string to display for the Level + the level value to give to the Level + the display name to give to the Level + + + Create a new Level and add it to the map + + + + + + Add a Level to the map + + the Level to add + + + Add a Level to the map + + + + + + Lookup a named level from the map + + the name of the level to lookup is taken from this level. + If the level is not set on the map then this level is added + the level in the map with the name specified + + + Lookup a named level from the map. The name of the level to lookup is taken + from the property of the + argument. + + + If no level with the specified name is found then the + argument is added to the level map + and returned. + + + + + + Lookup a by name + + The name of the Level to lookup + a Level from the map with the name specified + + + Returns the from the + map with the name specified. If the no level is + found then null is returned. + + + + + + Return all possible levels as a list of Level objects. + + all possible levels as a list of Level objects + + + Return all possible levels as a list of Level objects. + + + + + + The internal representation of caller location information. + + + + This class uses the System.Diagnostics.StackTrace class to generate + a call stack. The caller's information is then extracted from this stack. + + + The System.Diagnostics.StackTrace class is not supported on the + .NET Compact Framework 1.0 therefore caller location information is not + available on that framework. + + + The System.Diagnostics.StackTrace class has this to say about Release builds: + + + "StackTrace information will be most informative with Debug build configurations. + By default, Debug builds include debug symbols, while Release builds do not. The + debug symbols contain most of the file, method name, line number, and column + information used in constructing StackFrame and StackTrace objects. StackTrace + might not report as many method calls as expected, due to code transformations + that occur during optimization." + + + This means that in a Release build the caller information may be incomplete or may + not exist at all! Therefore caller location information cannot be relied upon in a Release build. + + + Nicko Cadell + Gert Driesen + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + Constructor + + The declaring type of the method that is + the stack boundary into the logging system for this call. + + + Initializes a new instance of the + class based on the current thread. + + + + + + Constructor + + The fully qualified class name. + The method name. + The file name. + The line number of the method within the file. + + + Initializes a new instance of the + class with the specified data. + + + + + + The fully qualified type of the LocationInfo class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the fully qualified class name of the caller making the logging + request. + + + The fully qualified class name of the caller making the logging + request. + + + + Gets the fully qualified class name of the caller making the logging + request. + + + + + + Gets the file name of the caller. + + + The file name of the caller. + + + + Gets the file name of the caller. + + + + + + Gets the line number of the caller. + + + The line number of the caller. + + + + Gets the line number of the caller. + + + + + + Gets the method name of the caller. + + + The method name of the caller. + + + + Gets the method name of the caller. + + + + + + Gets all available caller information + + + All available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + Gets all available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + + + Gets the stack frames from the stack trace of the caller making the log request + + + + + Static manager that controls the creation of repositories + + + + Static manager that controls the creation of repositories + + + This class is used by the wrapper managers (e.g. ) + to provide access to the objects. + + + This manager also holds the that is used to + lookup and create repositories. The selector can be set either programmatically using + the property, or by setting the log4net.RepositorySelector + AppSetting in the applications config file to the fully qualified type name of the + selector to use. + + + Nicko Cadell + Gert Driesen + + + + Private constructor to prevent instances. Only static methods should be used. + + + + Private constructor to prevent instances. Only static methods should be used. + + + + + + Hook the shutdown event + + + + On the full .NET runtime, the static constructor hooks up the + AppDomain.ProcessExit and AppDomain.DomainUnload> events. + These are used to shutdown the log4net system as the application exits. + + + + + + Register for ProcessExit and DomainUnload events on the AppDomain + + + + This needs to be in a separate method because the events make + a LinkDemand for the ControlAppDomain SecurityPermission. Because + this is a LinkDemand it is demanded at JIT time. Therefore we cannot + catch the exception in the method itself, we have to catch it in the + caller. + + + + + + Return the default instance. + + the repository to lookup in + Return the default instance + + + Gets the for the repository specified + by the argument. + + + + + + Returns the default instance. + + The assembly to use to lookup the repository. + The default instance. + + + + Return the default instance. + + the repository to lookup in + Return the default instance + + + Gets the for the repository specified + by the argument. + + + + + + Returns the default instance. + + The assembly to use to lookup the repository. + The default instance. + + + Returns the default instance. + + + + + + Returns the named logger if it exists. + + The repository to lookup in. + The fully qualified logger name to look for. + + The logger found, or null if the named logger does not exist in the + specified repository. + + + + If the named logger exists (in the specified repository) then it + returns a reference to the logger, otherwise it returns + null. + + + + + + Returns the named logger if it exists. + + The assembly to use to lookup the repository. + The fully qualified logger name to look for. + + The logger found, or null if the named logger does not exist in the + specified assembly's repository. + + + + If the named logger exists (in the specified assembly's repository) then it + returns a reference to the logger, otherwise it returns + null. + + + + + + Returns all the currently defined loggers in the specified repository. + + The repository to lookup in. + All the defined loggers. + + + The root logger is not included in the returned array. + + + + + + Returns all the currently defined loggers in the specified assembly's repository. + + The assembly to use to lookup the repository. + All the defined loggers. + + + The root logger is not included in the returned array. + + + + + + Retrieves or creates a named logger. + + The repository to lookup in. + The name of the logger to retrieve. + The logger with the name specified. + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + + + + Retrieves or creates a named logger. + + The assembly to use to lookup the repository. + The name of the logger to retrieve. + The logger with the name specified. + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + + + + Shorthand for . + + The repository to lookup in. + The of which the fullname will be used as the name of the logger to retrieve. + The logger with the name specified. + + + Gets the logger for the fully qualified name of the type specified. + + + + + + Shorthand for . + + the assembly to use to lookup the repository + The of which the fullname will be used as the name of the logger to retrieve. + The logger with the name specified. + + + Gets the logger for the fully qualified name of the type specified. + + + + + + Shuts down the log4net system. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in all the + default repositories. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + The repository to shutdown. + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository for the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + The assembly to use to lookup the repository. + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository for the repository. The repository is looked up using + the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Resets all values contained in this repository instance to their defaults. + + The repository to reset. + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + + + + Resets all values contained in this repository instance to their defaults. + + The assembly to use to lookup the repository to reset. + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + + + + Creates a repository with the specified name. + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name. + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The name must be unique. Repositories cannot be redefined. + An Exception will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The name must be unique. Repositories cannot be redefined. + An Exception will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository for the specified assembly and repository type. + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + + + + Creates a repository for the specified assembly and repository type. + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + + + + Gets an array of all currently defined repositories. + + An array of all the known objects. + + + Gets an array of all currently defined repositories. + + + + + + Internal method to get pertinent version info. + + A string of version info. + + + + Called when the event fires + + the that is exiting + null + + + Called when the event fires. + + + When the event is triggered the log4net system is . + + + + + + Called when the event fires + + the that is exiting + null + + + Called when the event fires. + + + When the event is triggered the log4net system is . + + + + + + The fully qualified type of the LoggerManager class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Initialize the default repository selector + + + + + Gets or sets the repository selector used by the . + + + The repository selector used by the . + + + + The repository selector () is used by + the to create and select repositories + (). + + + The caller to supplies either a string name + or an assembly (if not supplied the assembly is inferred using + ). + + + This context is used by the selector to lookup a specific repository. + + + For the full .NET Framework, the default repository is DefaultRepositorySelector; + for the .NET Compact Framework CompactRepositorySelector is the default + repository. + + + + + + Implementation of the interface. + + + + This class should be used as the base for all wrapper implementations. + + + Nicko Cadell + Gert Driesen + + + + Constructs a new wrapper for the specified logger. + + The logger to wrap. + + + Constructs a new wrapper for the specified logger. + + + + + + The logger that this object is wrapping + + + + + Gets the implementation behind this wrapper object. + + + The object that this object is implementing. + + + + The Logger object may not be the same object as this object + because of logger decorators. + + + This gets the actual underlying objects that is used to process + the log events. + + + + + + Portable data structure used by + + + + Portable data structure used by + + + Nicko Cadell + + + + The logger name. + + + + The logger name. + + + + + + Level of logging event. + + + + Level of logging event. Level cannot be Serializable + because it is a flyweight. Due to its special serialization it + cannot be declared final either. + + + + + + The application supplied message. + + + + The application supplied message of logging event. + + + + + + The name of thread + + + + The name of thread in which this logging event was generated + + + + + + Gets or sets the local time the event was logged + + + + Prefer using the setter, since local time can be ambiguous. + + + + + + Location information for the caller. + + + + Location information for the caller. + + + + + + String representation of the user + + + + String representation of the user's windows name, + like DOMAIN\username + + + + + + String representation of the identity. + + + + String representation of the current thread's principal identity. + + + + + + The string representation of the exception + + + + The string representation of the exception + + + + + + String representation of the AppDomain. + + + + String representation of the AppDomain. + + + + + + Additional event specific properties + + + + A logger or an appender may attach additional + properties to specific events. These properties + have a string key and an object value. + + + + + + Gets or sets the UTC time the event was logged + + + + The TimeStamp is stored in the UTC time zone. + + + + + + Flags passed to the property + + + + Flags passed to the property + + + Nicko Cadell + + + + Fix the MDC + + + + + Fix the NDC + + + + + Fix the rendered message + + + + + Fix the thread name + + + + + Fix the callers location information + + + CAUTION: Very slow to generate + + + + + Fix the callers windows user name + + + CAUTION: Slow to generate + + + + + Fix the domain friendly name + + + + + Fix the callers principal name + + + CAUTION: May be slow to generate + + + + + Fix the exception text + + + + + Fix the event properties. Active properties must implement in order to be eligible for fixing. + + + + + No fields fixed + + + + + All fields fixed + + + + + Partial fields fixed + + + + This set of partial fields gives good performance. The following fields are fixed: + + + + + + + + + + + + + The internal representation of logging events. + + + + When an affirmative decision is made to log then a + instance is created. This instance + is passed around to the different log4net components. + + + This class is of concern to those wishing to extend log4net. + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + for incurred by calling but it + is essential to maintaining data consistency. + + + Nicko Cadell + Gert Driesen + Douglas de la Torre + Daniel Cazzulino + + + + The key into the Properties map for the host name value. + + + + + The key into the Properties map for the thread identity value. + + + + + The key into the Properties map for the user name value. + + + + + Initializes a new instance of the class + from the supplied parameters. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + The name of the logger of this event. + The level of this event. + The message of this event. + The exception for this event. + + + Except , and , + all fields of LoggingEvent are filled when actually needed. Call + to cache all data locally + to prevent inconsistencies. + + This method is called by the log4net framework + to create a logging event. + + + + + + Initializes a new instance of the class + using specific data. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + Data used to initialize the logging event. + The fields in the struct that have already been fixed. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + The parameter should be used to specify which fields in the + struct have been preset. Fields not specified in the + will be captured from the environment if requested or fixed. + + + + + + Initializes a new instance of the class + using specific data. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + Data used to initialize the logging event. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + This constructor sets this objects flags to , + this assumes that all the data relating to this event is passed in via the + parameter and no other data should be captured from the environment. + + + + + + Initializes a new instance of the class + using specific data. + + Data used to initialize the logging event. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + This constructor sets this objects flags to , + this assumes that all the data relating to this event is passed in via the + parameter and no other data should be captured from the environment. + + + + + + Serialization constructor + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Ensure that the repository is set. + + the value for the repository + + + + Write the rendered message to a TextWriter + + the writer to write the message to + + + Unlike the property this method + does store the message data in the internal cache. Therefore + if called only once this method should be faster than the + property, however if the message is + to be accessed multiple times then the property will be more efficient. + + + + + + Serializes this object into the provided. + + The to populate with data. + The destination for this serialization. + + + The data in this event must be fixed before it can be serialized. + + + The method must be called during the + method call if this event + is to be used outside that method. + + + + + + Gets the portable data for this . + + The for this event. + + + A new can be constructed using a + instance. + + + Does a fix of the data + in the logging event before returning the event data. + + + + + + Gets the portable data for this . + + The set of data to ensure is fixed in the LoggingEventData + The for this event. + + + A new can be constructed using a + instance. + + + + + + Returns this event's exception's rendered using the + . + + + This event's exception's rendered using the . + + + + Obsolete. Use instead. + + + + + + Returns this event's exception's rendered using the + . + + + This event's exception's rendered using the . + + + + Returns this event's exception's rendered using the + . + + + + + + Fix instance fields that hold volatile data. + + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + incurred by calling but it + is essential to maintaining data consistency. + + + Calling is equivalent to + calling passing the parameter + false. + + + See for more + information. + + + + + + Fixes instance fields that hold volatile data. + + Set to true to not fix data that takes a long time to fix. + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + for incurred by calling but it + is essential to maintaining data consistency. + + + The param controls the data that + is fixed. Some of the data that can be fixed takes a long time to + generate, therefore if you do not require those settings to be fixed + they can be ignored by setting the param + to true. This setting will ignore the + and settings. + + + Set to false to ensure that all + settings are fixed. + + + + + + Fix the fields specified by the parameter + + the fields to fix + + + Only fields specified in the will be fixed. + Fields will not be fixed if they have previously been fixed. + It is not possible to 'unfix' a field. + + + + + + Lookup a composite property in this event + + the key for the property to lookup + the value for the property + + + This event has composite properties that combine together properties from + several different contexts in the following order: + + + this events properties + + This event has that can be set. These + properties are specific to this event only. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + + + Get all the composite properties in this event + + the containing all the properties + + + See for details of the composite properties + stored by the event. + + + This method returns a single containing all the + properties defined for this event. + + + + + + The internal logging event data. + + + + + The internal logging event data. + + + + + The internal logging event data. + + + + + The fully qualified Type of the calling + logger class in the stack frame (i.e. the declaring type of the method). + + + + + The application supplied message of logging event. + + + + + The exception that was thrown. + + + This is not serialized. The string representation + is serialized instead. + + + + + The repository that generated the logging event + + + This is not serialized. + + + + + The fix state for this event + + + These flags indicate which fields have been fixed. + Not serialized. + + + + + Indicated that the internal cache is updateable (ie not fixed) + + + This is a seperate flag to m_fixFlags as it allows incrementel fixing and simpler + changes in the caching strategy. + + + + + Gets the time when the current process started. + + + This is the time when this process started. + + + + The TimeStamp is stored internally in UTC and converted to the local time zone for this computer. + + + Tries to get the start time for the current process. + Failing that it returns the time of the first call to + this property. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating and therefore + without the process start time being reset. + + + + + + Gets the UTC time when the current process started. + + + This is the UTC time when this process started. + + + + Tries to get the start time for the current process. + Failing that it returns the time of the first call to + this property. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating and therefore + without the process start time being reset. + + + + + + Gets the of the logging event. + + + The of the logging event. + + + + Gets the of the logging event. + + + + + + Gets the time of the logging event. + + + The time of the logging event. + + + + The TimeStamp is stored in UTC and converted to the local time zone for this computer. + + + + + + Gets UTC the time of the logging event. + + + The UTC time of the logging event. + + + + + Gets the name of the logger that logged the event. + + + The name of the logger that logged the event. + + + + Gets the name of the logger that logged the event. + + + + + + Gets the location information for this logging event. + + + The location information for this logging event. + + + + The collected information is cached for future use. + + + See the class for more information on + supported frameworks and the different behavior in Debug and + Release builds. + + + + + + Gets the message object used to initialize this event. + + + The message object used to initialize this event. + + + + Gets the message object used to initialize this event. + Note that this event may not have a valid message object. + If the event is serialized the message object will not + be transferred. To get the text of the message the + property must be used + not this property. + + + If there is no defined message object for this event then + null will be returned. + + + + + + Gets the exception object used to initialize this event. + + + The exception object used to initialize this event. + + + + Gets the exception object used to initialize this event. + Note that this event may not have a valid exception object. + If the event is serialized the exception object will not + be transferred. To get the text of the exception the + method must be used + not this property. + + + If there is no defined exception object for this event then + null will be returned. + + + + + + The that this event was created in. + + + + The that this event was created in. + + + + + + Gets the message, rendered through the . + + + The message rendered through the . + + + + The collected information is cached for future use. + + + + + + Gets the name of the current thread. + + + The name of the current thread, or the thread ID when + the name is not available. + + + + The collected information is cached for future use. + + + + + + Gets the name of the current user. + + + The name of the current user, or NOT AVAILABLE when the + underlying runtime has no support for retrieving the name of the + current user. + + + + Calls WindowsIdentity.GetCurrent().Name to get the name of + the current windows user. + + + To improve performance, we could cache the string representation of + the name, and reuse that as long as the identity stayed constant. + Once the identity changed, we would need to re-assign and re-render + the string. + + + However, the WindowsIdentity.GetCurrent() call seems to + return different objects every time, so the current implementation + doesn't do this type of caching. + + + Timing for these operations: + + + + Method + Results + + + WindowsIdentity.GetCurrent() + 10000 loops, 00:00:00.2031250 seconds + + + WindowsIdentity.GetCurrent().Name + 10000 loops, 00:00:08.0468750 seconds + + + + This means we could speed things up almost 40 times by caching the + value of the WindowsIdentity.GetCurrent().Name property, since + this takes (8.04-0.20) = 7.84375 seconds. + + + + + + Gets the identity of the current thread principal. + + + The string name of the identity of the current thread principal. + + + + Calls System.Threading.Thread.CurrentPrincipal.Identity.Name to get + the name of the current thread principal. + + + + + + Gets the AppDomain friendly name. + + + The AppDomain friendly name. + + + + Gets the AppDomain friendly name. + + + + + + Additional event specific properties. + + + Additional event specific properties. + + + + A logger or an appender may attach additional + properties to specific events. These properties + have a string key and an object value. + + + This property is for events that have been added directly to + this event. The aggregate properties (which include these + event properties) can be retrieved using + and . + + + Once the properties have been fixed this property + returns the combined cached properties. This ensures that updates to + this property are always reflected in the underlying storage. When + returning the combined properties there may be more keys in the + Dictionary than expected. + + + + + + The fixed fields in this event + + + The set of fields that are fixed in this event + + + + Fields will not be fixed if they have previously been fixed. + It is not possible to 'unfix' a field. + + + + + + Implementation of wrapper interface. + + + + This implementation of the interface + forwards to the held by the base class. + + + This logger has methods to allow the caller to log at the following + levels: + + + + DEBUG + + The and methods log messages + at the DEBUG level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + INFO + + The and methods log messages + at the INFO level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + WARN + + The and methods log messages + at the WARN level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + ERROR + + The and methods log messages + at the ERROR level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + FATAL + + The and methods log messages + at the FATAL level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + + The values for these levels and their semantic meanings can be changed by + configuring the for the repository. + + + Nicko Cadell + Gert Driesen + + + + The ILog interface is use by application to log messages into + the log4net framework. + + + + Use the to obtain logger instances + that implement this interface. The + static method is used to get logger instances. + + + This class contains methods for logging at different levels and also + has properties for determining if those logging levels are + enabled in the current configuration. + + + This interface can be implemented in different ways. This documentation + specifies reasonable behavior that a caller can expect from the actual + implementation, however different implementations reserve the right to + do things differently. + + + Simple example of logging messages + + ILog log = LogManager.GetLogger("application-log"); + + log.Info("Application Start"); + log.Debug("This is a debug message"); + + if (log.IsDebugEnabled) + { + log.Debug("This is another debug message"); + } + + + + + Nicko Cadell + Gert Driesen + + + Log a message object with the level. + + Log a message object with the level. + + The message object to log. + + + This method first checks if this logger is DEBUG + enabled by comparing the level of this logger with the + level. If this logger is + DEBUG enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Logs a message object with the level. + + + + This method first checks if this logger is INFO + enabled by comparing the level of this logger with the + level. If this logger is + INFO enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Logs a message object with the INFO level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Log a message object with the level. + + + + This method first checks if this logger is WARN + enabled by comparing the level of this logger with the + level. If this logger is + WARN enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Logs a message object with the level. + + The message object to log. + + + This method first checks if this logger is ERROR + enabled by comparing the level of this logger with the + level. If this logger is + ERROR enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Log a message object with the level. + + + + This method first checks if this logger is FATAL + enabled by comparing the level of this logger with the + level. If this logger is + FATAL enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + + This function is intended to lessen the computational cost of + disabled log debug statements. + + For some ILog interface log, when you write: + + log.Debug("This is entry number: " + i ); + + + You incur the cost constructing the message, string construction and concatenation in + this case, regardless of whether the message is logged or not. + + + If you are worried about speed (who isn't), then you should write: + + + if (log.IsDebugEnabled) + { + log.Debug("This is entry number: " + i ); + } + + + This way you will not incur the cost of parameter + construction if debugging is disabled for log. On + the other hand, if the log is debug enabled, you + will incur the cost of evaluating whether the logger is debug + enabled twice. Once in and once in + the . This is an insignificant overhead + since evaluating a logger takes about 1% of the time it + takes to actually log. This is the preferred style of logging. + + Alternatively if your logger is available statically then the is debug + enabled state can be stored in a static variable like this: + + + private static readonly bool isDebugEnabled = log.IsDebugEnabled; + + + Then when you come to log you can write: + + + if (isDebugEnabled) + { + log.Debug("This is entry number: " + i ); + } + + + This way the debug enabled state is only queried once + when the class is loaded. Using a private static readonly + variable is the most efficient because it is a run time constant + and can be heavily optimized by the JIT compiler. + + + Of course if you use a static readonly variable to + hold the enabled state of the logger then you cannot + change the enabled state at runtime to vary the logging + that is produced. You have to decide if you need absolute + speed or runtime flexibility. + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Construct a new wrapper for the specified logger. + + The logger to wrap. + + + Construct a new wrapper for the specified logger. + + + + + + Virtual method called when the configuration of the repository changes + + the repository holding the levels + + + Virtual method called when the configuration of the repository changes + + + + + + Logs a message object with the DEBUG level. + + The message object to log. + + + This method first checks if this logger is DEBUG + enabled by comparing the level of this logger with the + DEBUG level. If this logger is + DEBUG enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the DEBUG level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the DEBUG level including + the stack trace of the passed + as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the INFO level. + + The message object to log. + + + This method first checks if this logger is INFO + enabled by comparing the level of this logger with the + INFO level. If this logger is + INFO enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the INFO level. + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the INFO level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the WARN level. + + the message object to log + + + This method first checks if this logger is WARN + enabled by comparing the level of this logger with the + WARN level. If this logger is + WARN enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the WARN level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the WARN level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the ERROR level. + + The message object to log. + + + This method first checks if this logger is ERROR + enabled by comparing the level of this logger with the + ERROR level. If this logger is + ERROR enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the ERROR level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the ERROR level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the FATAL level. + + The message object to log. + + + This method first checks if this logger is FATAL + enabled by comparing the level of this logger with the + FATAL level. If this logger is + FATAL enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the FATAL level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the FATAL level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Event handler for the event + + the repository + Empty + + + + The fully qualified name of this declaring type not the type of any subclass. + + + + + Checks if this logger is enabled for the DEBUG + level. + + + true if this logger is enabled for DEBUG events, + false otherwise. + + + + This function is intended to lessen the computational cost of + disabled log debug statements. + + + For some log Logger object, when you write: + + + log.Debug("This is entry number: " + i ); + + + You incur the cost constructing the message, concatenation in + this case, regardless of whether the message is logged or not. + + + If you are worried about speed, then you should write: + + + if (log.IsDebugEnabled()) + { + log.Debug("This is entry number: " + i ); + } + + + This way you will not incur the cost of parameter + construction if debugging is disabled for log. On + the other hand, if the log is debug enabled, you + will incur the cost of evaluating whether the logger is debug + enabled twice. Once in IsDebugEnabled and once in + the Debug. This is an insignificant overhead + since evaluating a logger takes about 1% of the time it + takes to actually log. + + + + + + Checks if this logger is enabled for the INFO level. + + + true if this logger is enabled for INFO events, + false otherwise. + + + + See for more information and examples + of using this method. + + + + + + + Checks if this logger is enabled for the WARN level. + + + true if this logger is enabled for WARN events, + false otherwise. + + + + See for more information and examples + of using this method. + + + + + + + Checks if this logger is enabled for the ERROR level. + + + true if this logger is enabled for ERROR events, + false otherwise. + + + + See for more information and examples of using this method. + + + + + + + Checks if this logger is enabled for the FATAL level. + + + true if this logger is enabled for FATAL events, + false otherwise. + + + + See for more information and examples of using this method. + + + + + + + provides method information without actually referencing a System.Reflection.MethodBase + as that would require that the containing assembly is loaded. + + + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + constructs a method item for an unknown method. + + + + + constructs a method item from the name of the method. + + + + + + constructs a method item from the name of the method and its parameters. + + + + + + + constructs a method item from a method base by determining the method name and its parameters. + + + + + + The fully qualified type of the StackFrameItem class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the method name of the caller making the logging + request. + + + The method name of the caller making the logging + request. + + + + Gets the method name of the caller making the logging + request. + + + + + + Gets the method parameters of the caller making + the logging request. + + + The method parameters of the caller making + the logging request + + + + Gets the method parameters of the caller making + the logging request. + + + + + + A SecurityContext used by log4net when interacting with protected resources + + + + A SecurityContext used by log4net when interacting with protected resources + for example with operating system services. This can be used to impersonate + a principal that has been granted privileges on the system resources. + + + Nicko Cadell + + + + Impersonate this SecurityContext + + State supplied by the caller + An instance that will + revoke the impersonation of this SecurityContext, or null + + + Impersonate this security context. Further calls on the current + thread should now be made in the security context provided + by this object. When the result + method is called the security + context of the thread should be reverted to the state it was in + before was called. + + + + + + The providers default instances. + + + + A configured component that interacts with potentially protected system + resources uses a to provide the elevated + privileges required. If the object has + been not been explicitly provided to the component then the component + will request one from this . + + + By default the is + an instance of which returns only + objects. This is a reasonable default + where the privileges required are not know by the system. + + + This default behavior can be overridden by subclassing the + and overriding the method to return + the desired objects. The default provider + can be replaced by programmatically setting the value of the + property. + + + An alternative is to use the log4net.Config.SecurityContextProviderAttribute + This attribute can be applied to an assembly in the same way as the + log4net.Config.XmlConfiguratorAttribute". The attribute takes + the type to use as the as an argument. + + + Nicko Cadell + + + + The default provider + + + + + Protected default constructor to allow subclassing + + + + Protected default constructor to allow subclassing + + + + + + Create a SecurityContext for a consumer + + The consumer requesting the SecurityContext + An impersonation context + + + The default implementation is to return a . + + + Subclasses should override this method to provide their own + behavior. + + + + + + Gets or sets the default SecurityContextProvider + + + The default SecurityContextProvider + + + + The default provider is used by configured components that + require a and have not had one + given to them. + + + By default this is an instance of + that returns objects. + + + The default provider can be set programmatically by setting + the value of this property to a sub class of + that has the desired behavior. + + + + + + provides stack frame information without actually referencing a System.Diagnostics.StackFrame + as that would require that the containing assembly is loaded. + + + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + returns a stack frame item from a stack frame. This + + + + + + + The fully qualified type of the StackFrameItem class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the fully qualified class name of the caller making the logging + request. + + + The fully qualified class name of the caller making the logging + request. + + + + Gets the fully qualified class name of the caller making the logging + request. + + + + + + Gets the file name of the caller. + + + The file name of the caller. + + + + Gets the file name of the caller. + + + + + + Gets the line number of the caller. + + + The line number of the caller. + + + + Gets the line number of the caller. + + + + + + Gets the method name of the caller. + + + The method name of the caller. + + + + Gets the method name of the caller. + + + + + + Gets all available caller information + + + All available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + Gets all available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + + + An evaluator that triggers after specified number of seconds. + + + + This evaluator will trigger if the specified time period + has passed since last check. + + + Robert Sevcik + + + + The default time threshold for triggering in seconds. Zero means it won't trigger at all. + + + + + The time threshold for triggering in seconds. Zero means it won't trigger at all. + + + + + The UTC time of last check. This gets updated when the object is created and when the evaluator triggers. + + + + + Create a new evaluator using the time threshold in seconds. + + + + Create a new evaluator using the time threshold in seconds. + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Create a new evaluator using the specified time threshold in seconds. + + + The time threshold in seconds to trigger after. + Zero means it won't trigger at all. + + + + Create a new evaluator using the specified time threshold in seconds. + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Is this the triggering event? + + The event to check + This method returns true, if the specified time period + has passed since last check.. + Otherwise it returns false + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + The time threshold in seconds to trigger after + + + The time threshold in seconds to trigger after. + Zero means it won't trigger at all. + + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Delegate used to handle creation of new wrappers. + + The logger to wrap in a wrapper. + + + Delegate used to handle creation of new wrappers. This delegate + is called from the + method to construct the wrapper for the specified logger. + + + The delegate to use is supplied to the + constructor. + + + + + + Maps between logger objects and wrapper objects. + + + + This class maintains a mapping between objects and + objects. Use the method to + lookup the for the specified . + + + New wrapper instances are created by the + method. The default behavior is for this method to delegate construction + of the wrapper to the delegate supplied + to the constructor. This allows specialization of the behavior without + requiring subclassing of this type. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the + + The handler to use to create the wrapper objects. + + + Initializes a new instance of the class with + the specified handler to create the wrapper objects. + + + + + + Gets the wrapper object for the specified logger. + + The wrapper object for the specified logger + + + If the logger is null then the corresponding wrapper is null. + + + Looks up the wrapper it it has previously been requested and + returns it. If the wrapper has never been requested before then + the virtual method is + called. + + + + + + Creates the wrapper object for the specified logger. + + The logger to wrap in a wrapper. + The wrapper object for the logger. + + + This implementation uses the + passed to the constructor to create the wrapper. This method + can be overridden in a subclass. + + + + + + Called when a monitored repository shutdown event is received. + + The that is shutting down + + + This method is called when a that this + is holding loggers for has signaled its shutdown + event . The default + behavior of this method is to release the references to the loggers + and their wrappers generated for this repository. + + + + + + Event handler for repository shutdown event. + + The sender of the event. + The event args. + + + + Map of logger repositories to hashtables of ILogger to ILoggerWrapper mappings + + + + + The handler to use to create the extension wrapper objects. + + + + + Internal reference to the delegate used to register for repository shutdown events. + + + + + Gets the map of logger repositories. + + + Map of logger repositories. + + + + Gets the hashtable that is keyed on . The + values are hashtables keyed on with the + value being the corresponding . + + + + + + Formats a as "HH:mm:ss,fff". + + + + Formats a in the format "HH:mm:ss,fff" for example, "15:49:37,459". + + + Nicko Cadell + Gert Driesen + + + + Render a as a string. + + + + Interface to abstract the rendering of a + instance into a string. + + + The method is used to render the + date to a text writer. + + + Nicko Cadell + Gert Driesen + + + + Formats the specified date as a string. + + The date to format. + The writer to write to. + + + Format the as a string and write it + to the provided. + + + + + + String constant used to specify AbsoluteTimeDateFormat in layouts. Current value is ABSOLUTE. + + + + + String constant used to specify DateTimeDateFormat in layouts. Current value is DATE. + + + + + String constant used to specify ISO8601DateFormat in layouts. Current value is ISO8601. + + + + + Renders the date into a string. Format is "HH:mm:ss". + + The date to render into a string. + The string builder to write to. + + + Subclasses should override this method to render the date + into a string using a precision up to the second. This method + will be called at most once per second and the result will be + reused if it is needed again during the same second. + + + + + + Renders the date into a string. Format is "HH:mm:ss,fff". + + The date to render into a string. + The writer to write to. + + + Uses the method to generate the + time string up to the seconds and then appends the current + milliseconds. The results from are + cached and is called at most once + per second. + + + Sub classes should override + rather than . + + + + + + Last stored time with precision up to the second. + + + + + Last stored time with precision up to the second, formatted + as a string. + + + + + Last stored time with precision up to the second, formatted + as a string. + + + + + Formats a as "dd MMM yyyy HH:mm:ss,fff" + + + + Formats a in the format + "dd MMM yyyy HH:mm:ss,fff" for example, + "06 Nov 1994 15:49:37,459". + + + Nicko Cadell + Gert Driesen + Angelika Schnagl + + + + Default constructor. + + + + Initializes a new instance of the class. + + + + + + Formats the date without the milliseconds part + + The date to format. + The string builder to write to. + + + Formats a DateTime in the format "dd MMM yyyy HH:mm:ss" + for example, "06 Nov 1994 15:49:37". + + + The base class will append the ",fff" milliseconds section. + This method will only be called at most once per second. + + + + + + The format info for the invariant culture. + + + + + Formats the as "yyyy-MM-dd HH:mm:ss,fff". + + + + Formats the specified as a string: "yyyy-MM-dd HH:mm:ss,fff". + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Formats the date without the milliseconds part + + The date to format. + The string builder to write to. + + + Formats the date specified as a string: "yyyy-MM-dd HH:mm:ss". + + + The base class will append the ",fff" milliseconds section. + This method will only be called at most once per second. + + + + + + Formats the using the method. + + + + Formats the using the method. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The format string. + + + Initializes a new instance of the class + with the specified format string. + + + The format string must be compatible with the options + that can be supplied to . + + + + + + Formats the date using . + + The date to convert to a string. + The writer to write to. + + + Uses the date format string supplied to the constructor to call + the method to format the date. + + + + + + The format string used to format the . + + + + The format string must be compatible with the options + that can be supplied to . + + + + + + This filter drops all . + + + + You can add this filter to the end of a filter chain to + switch from the default "accept all unless instructed otherwise" + filtering behavior to a "deny all unless instructed otherwise" + behavior. + + + Nicko Cadell + Gert Driesen + + + + Subclass this type to implement customized logging event filtering + + + + Users should extend this class to implement customized logging + event filtering. Note that and + , the parent class of all standard + appenders, have built-in filtering rules. It is suggested that you + first use and understand the built-in rules before rushing to write + your own custom filters. + + + This abstract class assumes and also imposes that filters be + organized in a linear chain. The + method of each filter is called sequentially, in the order of their + addition to the chain. + + + The method must return one + of the integer constants , + or . + + + If the value is returned, then the log event is dropped + immediately without consulting with the remaining filters. + + + If the value is returned, then the next filter + in the chain is consulted. If there are no more filters in the + chain, then the log event is logged. Thus, in the presence of no + filters, the default behavior is to log all logging events. + + + If the value is returned, then the log + event is logged without consulting the remaining filters. + + + The philosophy of log4net filters is largely inspired from the + Linux ipchains. + + + Nicko Cadell + Gert Driesen + + + + Implement this interface to provide customized logging event filtering + + + + Users should implement this interface to implement customized logging + event filtering. Note that and + , the parent class of all standard + appenders, have built-in filtering rules. It is suggested that you + first use and understand the built-in rules before rushing to write + your own custom filters. + + + This abstract class assumes and also imposes that filters be + organized in a linear chain. The + method of each filter is called sequentially, in the order of their + addition to the chain. + + + The method must return one + of the integer constants , + or . + + + If the value is returned, then the log event is dropped + immediately without consulting with the remaining filters. + + + If the value is returned, then the next filter + in the chain is consulted. If there are no more filters in the + chain, then the log event is logged. Thus, in the presence of no + filters, the default behavior is to log all logging events. + + + If the value is returned, then the log + event is logged without consulting the remaining filters. + + + The philosophy of log4net filters is largely inspired from the + Linux ipchains. + + + Nicko Cadell + Gert Driesen + + + + Decide if the logging event should be logged through an appender. + + The LoggingEvent to decide upon + The decision of the filter + + + If the decision is , then the event will be + dropped. If the decision is , then the next + filter, if any, will be invoked. If the decision is then + the event will be logged without consulting with other filters in + the chain. + + + + + + Property to get and set the next filter + + + The next filter in the chain + + + + Filters are typically composed into chains. This property allows the next filter in + the chain to be accessed. + + + + + + Points to the next filter in the filter chain. + + + + See for more information. + + + + + + Initialize the filter with the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Typically filter's options become active immediately on set, + however this method must still be called. + + + + + + Decide if the should be logged through an appender. + + The to decide upon + The decision of the filter + + + If the decision is , then the event will be + dropped. If the decision is , then the next + filter, if any, will be invoked. If the decision is then + the event will be logged without consulting with other filters in + the chain. + + + This method is marked abstract and must be implemented + in a subclass. + + + + + + Property to get and set the next filter + + + The next filter in the chain + + + + Filters are typically composed into chains. This property allows the next filter in + the chain to be accessed. + + + + + + Default constructor + + + + + Always returns the integer constant + + the LoggingEvent to filter + Always returns + + + Ignores the event being logged and just returns + . This can be used to change the default filter + chain behavior from to . This filter + should only be used as the last filter in the chain + as any further filters will be ignored! + + + + + + The return result from + + + + The return result from + + + + + + The log event must be dropped immediately without + consulting with the remaining filters, if any, in the chain. + + + + + This filter is neutral with respect to the log event. + The remaining filters, if any, should be consulted for a final decision. + + + + + The log event must be logged immediately without + consulting with the remaining filters, if any, in the chain. + + + + + This is a very simple filter based on matching. + + + + The filter admits two options and + . If there is an exact match between the value + of the option and the of the + , then the method returns in + case the option value is set + to true, if it is false then + is returned. If the does not match then + the result will be . + + + Nicko Cadell + Gert Driesen + + + + flag to indicate if the filter should on a match + + + + + the to match against + + + + + Default constructor + + + + + Tests if the of the logging event matches that of the filter + + the event to filter + see remarks + + + If the of the event matches the level of the + filter then the result of the function depends on the + value of . If it is true then + the function will return , it it is false then it + will return . If the does not match then + the result will be . + + + + + + when matching + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + The that the filter will match + + + + The level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + This is a simple filter based on matching. + + + + The filter admits three options and + that determine the range of priorities that are matched, and + . If there is a match between the range + of priorities and the of the , then the + method returns in case the + option value is set to true, if it is false + then is returned. If there is no match, is returned. + + + Nicko Cadell + Gert Driesen + + + + Flag to indicate the behavior when matching a + + + + + the minimum value to match + + + + + the maximum value to match + + + + + Default constructor + + + + + Check if the event should be logged. + + the logging event to check + see remarks + + + If the of the logging event is outside the range + matched by this filter then + is returned. If the is matched then the value of + is checked. If it is true then + is returned, otherwise + is returned. + + + + + + when matching and + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + Set the minimum matched + + + + The minimum level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + Sets the maximum matched + + + + The maximum level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + Simple filter to match a string in the event's logger name. + + + + The works very similar to the . It admits two + options and . If the + of the starts + with the value of the option, then the + method returns in + case the option value is set to true, + if it is false then is returned. + + + Daniel Cazzulino + + + + Flag to indicate the behavior when we have a match + + + + + The logger name string to substring match against the event + + + + + Default constructor + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The rendered message is matched against the . + If the equals the beginning of + the incoming () + then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + when matching + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + The that the filter will match + + + + This filter will attempt to match this value against logger name in + the following way. The match will be done against the beginning of the + logger name (using ). The match is + case sensitive. If a match is found then + the result depends on the value of . + + + + + + Simple filter to match a keyed string in the + + + + Simple filter to match a keyed string in the + + + As the MDC has been replaced with layered properties the + should be used instead. + + + Nicko Cadell + Gert Driesen + + + + Simple filter to match a string an event property + + + + Simple filter to match a string in the value for a + specific event property + + + Nicko Cadell + + + + Simple filter to match a string in the rendered message + + + + Simple filter to match a string in the rendered message + + + Nicko Cadell + Gert Driesen + + + + Flag to indicate the behavior when we have a match + + + + + The string to substring match against the message + + + + + A string regex to match + + + + + A regex object to match (generated from m_stringRegexToMatch) + + + + + Default constructor + + + + + Initialize and precompile the Regex if required + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The rendered message is matched against the . + If the occurs as a substring within + the message then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + when matching or + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + Sets the static string to match + + + + The string that will be substring matched against + the rendered message. If the message contains this + string then the filter will match. If a match is found then + the result depends on the value of . + + + One of or + must be specified. + + + + + + Sets the regular expression to match + + + + The regular expression pattern that will be matched against + the rendered message. If the message matches this + pattern then the filter will match. If a match is found then + the result depends on the value of . + + + One of or + must be specified. + + + + + + The key to use to lookup the string from the event properties + + + + + Default constructor + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The event property for the is matched against + the . + If the occurs as a substring within + the property value then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + The key to lookup in the event properties and then match against. + + + + The key name to use to lookup in the properties map of the + . The match will be performed against + the value of this property if it exists. + + + + + + Simple filter to match a string in the + + + + Simple filter to match a string in the + + + As the MDC has been replaced with named stacks stored in the + properties collections the should + be used instead. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Sets the to "NDC". + + + + + + Write the event appdomain name to the output + + + + Writes the to the output writer. + + + Daniel Cazzulino + Nicko Cadell + + + + Abstract class that provides the formatting functionality that + derived classes need. + + + Conversion specifiers in a conversion patterns are parsed to + individual PatternConverters. Each of which is responsible for + converting a logging event in a converter specific manner. + + Nicko Cadell + + + + Abstract class that provides the formatting functionality that + derived classes need. + + + + Conversion specifiers in a conversion patterns are parsed to + individual PatternConverters. Each of which is responsible for + converting a logging event in a converter specific manner. + + + Nicko Cadell + Gert Driesen + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + Protected constructor + + + + Initializes a new instance of the class. + + + + + + Evaluate this pattern converter and write the output to a writer. + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the appropriate way. + + + + + + Set the next pattern converter in the chains + + the pattern converter that should follow this converter in the chain + the next converter + + + The PatternConverter can merge with its neighbor during this method (or a sub class). + Therefore the return value may or may not be the value of the argument passed in. + + + + + + Write the pattern converter to the writer with appropriate formatting + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + This method calls to allow the subclass to perform + appropriate conversion of the pattern converter. If formatting options have + been specified via the then this method will + apply those formattings before writing the output. + + + + + + Fast space padding method. + + to which the spaces will be appended. + The number of spaces to be padded. + + + Fast space padding method. + + + + + + The option string to the converter + + + + + Write an dictionary to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the to a writer in the form: + + + {key1=value1, key2=value2, key3=value3} + + + If the specified + is not null then it is used to render the key and value to text, otherwise + the object's ToString method is called. + + + + + + Write an dictionary to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the to a writer in the form: + + + {key1=value1, key2=value2, key3=value3} + + + If the specified + is not null then it is used to render the key and value to text, otherwise + the object's ToString method is called. + + + + + + Write an object to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the Object to a writer. If the specified + is not null then it is used to render the object to text, otherwise + the object's ToString method is called. + + + + + + Get the next pattern converter in the chain + + + the next pattern converter in the chain + + + + Get the next pattern converter in the chain + + + + + + Gets or sets the formatting info for this converter + + + The formatting info for this converter + + + + Gets or sets the formatting info for this converter + + + + + + Gets or sets the option value for this converter + + + The option for this converter + + + + Gets or sets the option value for this converter + + + + + + + + + + + Initializes a new instance of the class. + + + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the correct way. + + that will receive the formatted result. + The on which the pattern converter should be executed. + + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the correct way. + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + + Flag indicating if this converter handles exceptions + + + false if this converter handles exceptions + + + + + Flag indicating if this converter handles the logging event exception + + false if this converter handles the logging event exception + + + If this converter handles the exception object contained within + , then this property should be set to + false. Otherwise, if the layout ignores the exception + object, then the property should be set to true. + + + Set this value to override a this default setting. The default + value is true, this converter does not handle the exception. + + + + + + Write the event appdomain name to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output . + + + + + + Converter for items in the ASP.Net Cache. + + + + Outputs an item from the . + + + Ron Grabowski + + + + Abstract class that provides access to the current HttpContext () that + derived classes need. + + + This class handles the case when HttpContext.Current is null by writing + to the writer. + + Ron Grabowski + + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the correct way. + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + + Write the ASP.Net Cache item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. If no property has been set, all key value pairs from the Cache will + be written to the output. + + + + + + Converter for items in the . + + + + Outputs an item from the . + + + Ron Grabowski + + + + Write the ASP.Net HttpContext item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. + + + + + + Converter for items in the ASP.Net Cache. + + + + Outputs an item from the . + + + Ron Grabowski + + + + Write the ASP.Net Cache item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. + + + + + + Converter for items in the ASP.Net Cache. + + + + Outputs an item from the . + + + Ron Grabowski + + + + Write the ASP.Net Cache item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. If no property has been set, all key value pairs from the Session will + be written to the output. + + + + + + Date pattern converter, uses a to format + the date of a . + + + + Render the to the writer as a string. + + + The value of the determines + the formatting of the date. The following values are allowed: + + + Option value + Output + + + ISO8601 + + Uses the formatter. + Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. + + + + DATE + + Uses the formatter. + Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". + + + + ABSOLUTE + + Uses the formatter. + Formats using the "HH:mm:ss,yyyy" for example, "15:49:37,459". + + + + other + + Any other pattern string uses the formatter. + This formatter passes the pattern string to the + method. + For details on valid patterns see + DateTimeFormatInfo Class. + + + + + + The is in the local time zone and is rendered in that zone. + To output the time in Universal time see . + + + Nicko Cadell + + + + The used to render the date to a string + + + + The used to render the date to a string + + + + + + Initialize the converter pattern based on the property. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Convert the pattern into the rendered message + + that will receive the formatted result. + the event being logged + + + Pass the to the + for it to render it to the writer. + + + The passed is in the local time zone. + + + + + + The fully qualified type of the DatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the exception text to the output + + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + + + If there is no exception then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + Nicko Cadell + + + + Default constructor + + + + + Write the exception text to the output + + that will receive the formatted result. + the event being logged + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + + + If there is no exception or the exception property specified + by the Option value does not exist then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + Recognized values for the Option parameter are: + + + + Message + + + Source + + + StackTrace + + + TargetSite + + + HelpLink + + + + + + + Writes the caller location file name to the output + + + + Writes the value of the for + the event to the output writer. + + + Nicko Cadell + + + + Write the caller location file name to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the for + the to the output . + + + + + + Write the caller location info to the output + + + + Writes the to the output writer. + + + Nicko Cadell + + + + Write the caller location info to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output writer. + + + + + + Writes the event identity to the output + + + + Writes the value of the to + the output writer. + + + Daniel Cazzulino + Nicko Cadell + + + + Writes the event identity to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the + to + the output . + + + + + + Write the event level to the output + + + + Writes the display name of the event + to the writer. + + + Nicko Cadell + + + + Write the event level to the output + + that will receive the formatted result. + the event being logged + + + Writes the of the + to the . + + + + + + Write the caller location line number to the output + + + + Writes the value of the for + the event to the output writer. + + + Nicko Cadell + + + + Write the caller location line number to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the for + the to the output . + + + + + + Converter for logger name + + + + Outputs the of the event. + + + Nicko Cadell + + + + Converter to output and truncate '.' separated strings + + + + This abstract class supports truncating a '.' separated string + to show a specified number of elements from the right hand side. + This is used to truncate class names that are fully qualified. + + + Subclasses should override the method to + return the fully qualified string. + + + Nicko Cadell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Get the fully qualified string data + + the event being logged + the fully qualified name + + + Overridden by subclasses to get the fully qualified name before the + precision is applied to it. + + + Return the fully qualified '.' (dot/period) separated string. + + + + + + Convert the pattern to the rendered message + + that will receive the formatted result. + the event being logged + + Render the to the precision + specified by the property. + + + + + The fully qualified type of the NamedPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the fully qualified name of the logger + + the event being logged + The fully qualified logger name + + + Returns the of the . + + + + + + Writes the event message to the output + + + + Uses the method + to write out the event message. + + + Nicko Cadell + + + + Writes the event message to the output + + that will receive the formatted result. + the event being logged + + + Uses the method + to write out the event message. + + + + + + Write the method name to the output + + + + Writes the caller location to + the output. + + + Nicko Cadell + + + + Write the method name to the output + + that will receive the formatted result. + the event being logged + + + Writes the caller location to + the output. + + + + + + Converter to include event NDC + + + + Outputs the value of the event property named NDC. + + + The should be used instead. + + + Nicko Cadell + + + + Write the event NDC to the output + + that will receive the formatted result. + the event being logged + + + As the thread context stacks are now stored in named event properties + this converter simply looks up the value of the NDC property. + + + The should be used instead. + + + + + + Property pattern converter + + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + Nicko Cadell + + + + Write the property value to the output + + that will receive the formatted result. + the event being logged + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + Converter to output the relative time of the event + + + + Converter to output the time of the event relative to the start of the program. + + + Nicko Cadell + + + + Write the relative time to the output + + that will receive the formatted result. + the event being logged + + + Writes out the relative time of the event in milliseconds. + That is the number of milliseconds between the event + and the . + + + + + + Helper method to get the time difference between two DateTime objects + + start time (in the current local time zone) + end time (in the current local time zone) + the time difference in milliseconds + + + + Write the caller stack frames to the output + + + + Writes the to the output writer, using format: + type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) + + + Adam Davies + + + + Write the caller stack frames to the output + + + + Writes the to the output writer, using format: + type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 + + + Michael Cromwell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the strack frames to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output writer. + + + + + + Returns the Name of the method + + + This method was created, so this class could be used as a base class for StackTraceDetailPatternConverter + string + + + + The fully qualified type of the StackTracePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + The fully qualified type of the StackTraceDetailPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Converter to include event thread name + + + + Writes the to the output. + + + Nicko Cadell + + + + Write the ThreadName to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the . + + + + + + Pattern converter for the class name + + + + Outputs the of the event. + + + Nicko Cadell + + + + Gets the fully qualified name of the class + + the event being logged + The fully qualified type name for the caller location + + + Returns the of the . + + + + + + Converter to include event user name + + Douglas de la Torre + Nicko Cadell + + + + Convert the pattern to the rendered message + + that will receive the formatted result. + the event being logged + + + + Write the TimeStamp to the output + + + + Date pattern converter, uses a to format + the date of a . + + + Uses a to format the + in Universal time. + + + See the for details on the date pattern syntax. + + + + Nicko Cadell + + + + Write the TimeStamp to the output + + that will receive the formatted result. + the event being logged + + + Pass the to the + for it to render it to the writer. + + + The passed is in the local time zone, this is converted + to Universal time before it is rendered. + + + + + + + The fully qualified type of the UtcDatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + A flexible layout configurable with pattern string that re-evaluates on each call. + + + This class is built on and provides all the + features and capabilities of PatternLayout. PatternLayout is a 'static' class + in that its layout is done once at configuration time. This class will recreate + the layout on each reference. + One important difference between PatternLayout and DynamicPatternLayout is the + treatment of the Header and Footer parameters in the configuration. The Header and Footer + parameters for DynamicPatternLayout must be syntactically in the form of a PatternString, + but should not be marked as type log4net.Util.PatternString. Doing so causes the + pattern to be statically converted at configuration time and causes DynamicPatternLayout + to perform the same as PatternLayout. + Please see for complete documentation. + + <layout type="log4net.Layout.DynamicPatternLayout"> + <param name="Header" value="%newline**** Trace Opened Local: %date{yyyy-MM-dd HH:mm:ss.fff} UTC: %utcdate{yyyy-MM-dd HH:mm:ss.fff} ****%newline" /> + <param name="Footer" value="**** Trace Closed %date{yyyy-MM-dd HH:mm:ss.fff} ****%newline" /> + </layout> + + + + + + A flexible layout configurable with pattern string. + + + + The goal of this class is to a + as a string. The results + depend on the conversion pattern. + + + The conversion pattern is closely related to the conversion + pattern of the printf function in C. A conversion pattern is + composed of literal text and format control expressions called + conversion specifiers. + + + You are free to insert any literal text within the conversion + pattern. + + + Each conversion specifier starts with a percent sign (%) and is + followed by optional format modifiers and a conversion + pattern name. The conversion pattern name specifies the type of + data, e.g. logger, level, date, thread name. The format + modifiers control such things as field width, padding, left and + right justification. The following is a simple example. + + + Let the conversion pattern be "%-5level [%thread]: %message%newline" and assume + that the log4net environment was set to use a PatternLayout. Then the + statements + + + ILog log = LogManager.GetLogger(typeof(TestApp)); + log.Debug("Message 1"); + log.Warn("Message 2"); + + would yield the output + + DEBUG [main]: Message 1 + WARN [main]: Message 2 + + + Note that there is no explicit separator between text and + conversion specifiers. The pattern parser knows when it has reached + the end of a conversion specifier when it reads a conversion + character. In the example above the conversion specifier + %-5level means the level of the logging event should be left + justified to a width of five characters. + + + The recognized conversion pattern names are: + + + + Conversion Pattern Name + Effect + + + a + Equivalent to appdomain + + + appdomain + + Used to output the friendly name of the AppDomain where the + logging event was generated. + + + + aspnet-cache + + + Used to output all cache items in the case of %aspnet-cache or just one named item if used as %aspnet-cache{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-context + + + Used to output all context items in the case of %aspnet-context or just one named item if used as %aspnet-context{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-request + + + Used to output all request parameters in the case of %aspnet-request or just one named param if used as %aspnet-request{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-session + + + Used to output all session items in the case of %aspnet-session or just one named item if used as %aspnet-session{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + c + Equivalent to logger + + + C + Equivalent to type + + + class + Equivalent to type + + + d + Equivalent to date + + + date + + + Used to output the date of the logging event in the local time zone. + To output the date in universal time use the %utcdate pattern. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %date{HH:mm:ss,fff} or + %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %date{ISO8601} or %date{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + exception + + + Used to output the exception passed in with the log message. + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + If there is no exception then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + + + F + Equivalent to file + + + file + + + Used to output the file name where the logging request was + issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + identity + + + Used to output the user name for the currently active user + (Principal.Identity.Name). + + + WARNING Generating caller information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + + + l + Equivalent to location + + + L + Equivalent to line + + + location + + + Used to output location information of the caller which generated + the logging event. + + + The location information depends on the CLI implementation but + usually consists of the fully qualified name of the calling + method followed by the callers source the file name and line + number between parentheses. + + + The location information can be very useful. However, its + generation is extremely slow. Its use should be avoided + unless execution speed is not an issue. + + + See the note below on the availability of caller location information. + + + + + level + + + Used to output the level of the logging event. + + + + + line + + + Used to output the line number from where the logging request + was issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + logger + + + Used to output the logger of the logging event. The + logger conversion specifier can be optionally followed by + precision specifier, that is a decimal constant in + brackets. + + + If a precision specifier is given, then only the corresponding + number of right most components of the logger name will be + printed. By default the logger name is printed in full. + + + For example, for the logger name "a.b.c" the pattern + %logger{2} will output "b.c". + + + + + m + Equivalent to message + + + M + Equivalent to method + + + message + + + Used to output the application supplied message associated with + the logging event. + + + + + mdc + + + The MDC (old name for the ThreadContext.Properties) is now part of the + combined event properties. This pattern is supported for compatibility + but is equivalent to property. + + + + + method + + + Used to output the method name where the logging request was + issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + n + Equivalent to newline + + + newline + + + Outputs the platform dependent line separator character or + characters. + + + This conversion pattern offers the same performance as using + non-portable line separator strings such as "\n", or "\r\n". + Thus, it is the preferred way of specifying a line separator. + + + + + ndc + + + Used to output the NDC (nested diagnostic context) associated + with the thread that generated the logging event. + + + + + p + Equivalent to level + + + P + Equivalent to property + + + properties + Equivalent to property + + + property + + + Used to output the an event specific property. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %property{user} would include the value + from the property that is keyed by the string 'user'. Each property value + that is to be included in the log must be specified separately. + Properties are added to events by loggers or appenders. By default + the log4net:HostName property is set to the name of machine on + which the event was originally logged. + + + If no key is specified, e.g. %property then all the keys and their + values are printed in a comma separated list. + + + The properties of an event are combined from a number of different + contexts. These are listed below in the order in which they are searched. + + + + the event properties + + The event has that can be set. These + properties are specific to this event only. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + + r + Equivalent to timestamp + + + stacktrace + + + Used to output the stack trace of the logging event + The stack trace level specifier may be enclosed + between braces. For example, %stacktrace{level}. + If no stack trace level specifier is given then 1 is assumed + + + Output uses the format: + type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 + + + This pattern is not available for Compact Framework assemblies. + + + + + stacktracedetail + + + Used to output the stack trace of the logging event + The stack trace level specifier may be enclosed + between braces. For example, %stacktracedetail{level}. + If no stack trace level specifier is given then 1 is assumed + + + Output uses the format: + type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) + + + This pattern is not available for Compact Framework assemblies. + + + + + t + Equivalent to thread + + + timestamp + + + Used to output the number of milliseconds elapsed since the start + of the application until the creation of the logging event. + + + + + thread + + + Used to output the name of the thread that generated the + logging event. Uses the thread number if no name is available. + + + + + type + + + Used to output the fully qualified type name of the caller + issuing the logging request. This conversion specifier + can be optionally followed by precision specifier, that + is a decimal constant in brackets. + + + If a precision specifier is given, then only the corresponding + number of right most components of the class name will be + printed. By default the class name is output in fully qualified form. + + + For example, for the class name "log4net.Layout.PatternLayout", the + pattern %type{1} will output "PatternLayout". + + + WARNING Generating the caller class information is + slow. Thus, its use should be avoided unless execution speed is + not an issue. + + + See the note below on the availability of caller location information. + + + + + u + Equivalent to identity + + + username + + + Used to output the WindowsIdentity for the currently + active user. + + + WARNING Generating caller WindowsIdentity information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + + + utcdate + + + Used to output the date of the logging event in universal time. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %utcdate{HH:mm:ss,fff} or + %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %utcdate{ISO8601} or %utcdate{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + w + Equivalent to username + + + x + Equivalent to ndc + + + X + Equivalent to mdc + + + % + + + The sequence %% outputs a single percent sign. + + + + + + The single letter patterns are deprecated in favor of the + longer more descriptive pattern names. + + + By default the relevant information is output as is. However, + with the aid of format modifiers it is possible to change the + minimum field width, the maximum field width and justification. + + + The optional format modifier is placed between the percent sign + and the conversion pattern name. + + + The first optional format modifier is the left justification + flag which is just the minus (-) character. Then comes the + optional minimum field width modifier. This is a decimal + constant that represents the minimum number of characters to + output. If the data item requires fewer characters, it is padded on + either the left or the right until the minimum width is + reached. The default is to pad on the left (right justify) but you + can specify right padding with the left justification flag. The + padding character is space. If the data item is larger than the + minimum field width, the field is expanded to accommodate the + data. The value is never truncated. + + + This behavior can be changed using the maximum field + width modifier which is designated by a period followed by a + decimal constant. If the data item is longer than the maximum + field, then the extra characters are removed from the + beginning of the data item and not from the end. For + example, it the maximum field width is eight and the data item is + ten characters long, then the first two characters of the data item + are dropped. This behavior deviates from the printf function in C + where truncation is done from the end. + + + Below are various format modifier examples for the logger + conversion specifier. + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Format modifierleft justifyminimum widthmaximum widthcomment
%20loggerfalse20none + + Left pad with spaces if the logger name is less than 20 + characters long. + +
%-20loggertrue20none + + Right pad with spaces if the logger + name is less than 20 characters long. + +
%.30loggerNAnone30 + + Truncate from the beginning if the logger + name is longer than 30 characters. + +
%20.30loggerfalse2030 + + Left pad with spaces if the logger name is shorter than 20 + characters. However, if logger name is longer than 30 characters, + then truncate from the beginning. + +
%-20.30loggertrue2030 + + Right pad with spaces if the logger name is shorter than 20 + characters. However, if logger name is longer than 30 characters, + then truncate from the beginning. + +
+
+ + Note about caller location information.
+ The following patterns %type %file %line %method %location %class %C %F %L %l %M + all generate caller location information. + Location information uses the System.Diagnostics.StackTrace class to generate + a call stack. The caller's information is then extracted from this stack. +
+ + + The System.Diagnostics.StackTrace class is not supported on the + .NET Compact Framework 1.0 therefore caller location information is not + available on that framework. + + + + + The System.Diagnostics.StackTrace class has this to say about Release builds: + + + "StackTrace information will be most informative with Debug build configurations. + By default, Debug builds include debug symbols, while Release builds do not. The + debug symbols contain most of the file, method name, line number, and column + information used in constructing StackFrame and StackTrace objects. StackTrace + might not report as many method calls as expected, due to code transformations + that occur during optimization." + + + This means that in a Release build the caller information may be incomplete or may + not exist at all! Therefore caller location information cannot be relied upon in a Release build. + + + + Additional pattern converters may be registered with a specific + instance using the method. + +
+ + This is a more detailed pattern. + %timestamp [%thread] %level %logger %ndc - %message%newline + + + A similar pattern except that the relative time is + right padded if less than 6 digits, thread name is right padded if + less than 15 characters and truncated if longer and the logger + name is left padded if shorter than 30 characters and truncated if + longer. + %-6timestamp [%15.15thread] %-5level %30.30logger %ndc - %message%newline + + Nicko Cadell + Gert Driesen + Douglas de la Torre + Daniel Cazzulino +
+ + + Extend this abstract class to create your own log layout format. + + + + This is the base implementation of the + interface. Most layout objects should extend this class. + + + + + + Subclasses must implement the + method. + + + Subclasses should set the in their default + constructor. + + + + Nicko Cadell + Gert Driesen + + + + Interface implemented by layout objects + + + + An object is used to format a + as text. The method is called by an + appender to transform the into a string. + + + The layout can also supply and + text that is appender before any events and after all the events respectively. + + + Nicko Cadell + Gert Driesen + + + + Implement this method to create your own layout format. + + The TextWriter to write the formatted event to + The event to format + + + This method is called by an appender to format + the as text and output to a writer. + + + If the caller does not have a and prefers the + event to be formatted as a then the following + code can be used to format the event into a . + + + StringWriter writer = new StringWriter(); + Layout.Format(writer, loggingEvent); + string formattedEvent = writer.ToString(); + + + + + + The content type output by this layout. + + The content type + + + The content type output by this layout. + + + This is a MIME type e.g. "text/plain". + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + + + + + Flag indicating if this layout handle exceptions + + false if this layout handles exceptions + + + If this layout handles the exception object contained within + , then the layout should return + false. Otherwise, if the layout ignores the exception + object, then the layout should return true. + + + + + + The header text + + + + See for more information. + + + + + + The footer text + + + + See for more information. + + + + + + Flag indicating if this layout handles exceptions + + + + false if this layout handles exceptions + + + + + + Empty default constructor + + + + Empty default constructor + + + + + + Activate component options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + This method must be implemented by the subclass. + + + + + + Implement this method to create your own layout format. + + The TextWriter to write the formatted event to + The event to format + + + This method is called by an appender to format + the as text. + + + + + + Convenience method for easily formatting the logging event into a string variable. + + + + Creates a new StringWriter instance to store the formatted logging event. + + + + + The content type output by this layout. + + The content type is "text/plain" + + + The content type output by this layout. + + + This base class uses the value "text/plain". + To change this value a subclass must override this + property. + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + + + + + Flag indicating if this layout handles exceptions + + false if this layout handles exceptions + + + If this layout handles the exception object contained within + , then the layout should return + false. Otherwise, if the layout ignores the exception + object, then the layout should return true. + + + Set this value to override a this default setting. The default + value is true, this layout does not handle the exception. + + + + + + Default pattern string for log output. + + + + Default pattern string for log output. + Currently set to the string "%message%newline" + which just prints the application supplied message. + + + + + + A detailed conversion pattern + + + + A conversion pattern which includes Time, Thread, Logger, and Nested Context. + Current value is %timestamp [%thread] %level %logger %ndc - %message%newline. + + + + + + Internal map of converter identifiers to converter types. + + + + This static map is overridden by the m_converterRegistry instance map + + + + + + the pattern + + + + + the head of the pattern converter chain + + + + + patterns defined on this PatternLayout only + + + + + Initialize the global registry + + + + Defines the builtin global rules. + + + + + + Constructs a PatternLayout using the DefaultConversionPattern + + + + The default pattern just produces the application supplied message. + + + Note to Inheritors: This constructor calls the virtual method + . If you override this method be + aware that it will be called before your is called constructor. + + + As per the contract the + method must be called after the properties on this object have been + configured. + + + + + + Constructs a PatternLayout using the supplied conversion pattern + + the pattern to use + + + Note to Inheritors: This constructor calls the virtual method + . If you override this method be + aware that it will be called before your is called constructor. + + + When using this constructor the method + need not be called. This may not be the case when using a subclass. + + + + + + Create the pattern parser instance + + the pattern to parse + The that will format the event + + + Creates the used to parse the conversion string. Sets the + global and instance rules on the . + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a formatted string as specified by the conversion pattern. + + the event being logged + The TextWriter to write the formatted event to + + + Parse the using the patter format + specified in the property. + + + + + + Add a converter to this PatternLayout + + the converter info + + + This version of the method is used by the configurator. + Programmatic users should use the alternative method. + + + + + + Add a converter to this PatternLayout + + the name of the conversion pattern for this converter + the type of the converter + + + Add a named pattern converter to this instance. This + converter will be used in the formatting of the event. + This method must be called before . + + + The specified must extend the + type. + + + + + + The pattern formatting string + + + + The ConversionPattern option. This is the string which + controls formatting and consists of a mix of literal content and + conversion specifiers. + + + + + + The header PatternString + + + + + The footer PatternString + + + + + Constructs a DynamicPatternLayout using the DefaultConversionPattern + + + + The default pattern just produces the application supplied message. + + + + + + Constructs a DynamicPatternLayout using the supplied conversion pattern + + the pattern to use + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + The pattern will be formatted on each get operation. + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + The pattern will be formatted on each get operation. + + + + + A Layout that renders only the Exception text from the logging event + + + + A Layout that renders only the Exception text from the logging event. + + + This Layout should only be used with appenders that utilize multiple + layouts (e.g. ). + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Constructs a ExceptionLayout + + + + + + Activate component options + + + + Part of the component activation + framework. + + + This method does nothing as options become effective immediately. + + + + + + Gets the exception text from the logging event + + The TextWriter to write the formatted event to + the event being logged + + + Write the exception string to the . + The exception string is retrieved from . + + + + + + Interface for raw layout objects + + + + Interface used to format a + to an object. + + + This interface should not be confused with the + interface. This interface is used in + only certain specialized situations where a raw object is + required rather than a formatted string. The + is not generally useful than this interface. + + + Nicko Cadell + Gert Driesen + + + + Implement this method to create your own layout format. + + The event to format + returns the formatted event + + + Implement this method to create your own layout format. + + + + + + Adapts any to a + + + + Where an is required this adapter + allows a to be specified. + + + Nicko Cadell + Gert Driesen + + + + The layout to adapt + + + + + Construct a new adapter + + the layout to adapt + + + Create the adapter for the specified . + + + + + + Format the logging event as an object. + + The event to format + returns the formatted event + + + Format the logging event as an object. + + + Uses the object supplied to + the constructor to perform the formatting. + + + + + + Type converter for the interface + + + + Used to convert objects to the interface. + Supports converting from the interface to + the interface using the . + + + Nicko Cadell + Gert Driesen + + + + Interface supported by type converters + + + + This interface supports conversion from arbitrary types + to a single target type. See . + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Test if the can be converted to the + type supported by this converter. + + + + + + Convert the source object to the type supported by this object + + the object to convert + the converted object + + + Converts the to the type supported + by this converter. + + + + + + Can the sourceType be converted to an + + the source to be to be converted + true if the source type can be converted to + + + Test if the can be converted to a + . Only is supported + as the . + + + + + + Convert the value to a object + + the value to convert + the object + + + Convert the object to a + object. If the object + is a then the + is used to adapt between the two interfaces, otherwise an + exception is thrown. + + + + + + Extract the value of a property from the + + + + Extract the value of a property from the + + + Nicko Cadell + + + + Constructs a RawPropertyLayout + + + + + Lookup the property for + + The event to format + returns property value + + + Looks up and returns the object value of the property + named . If there is no property defined + with than name then null will be returned. + + + + + + The name of the value to lookup in the LoggingEvent Properties collection. + + + Value to lookup in the LoggingEvent Properties collection + + + + String name of the property to lookup in the . + + + + + + Extract the date from the + + + + Extract the date from the + + + Nicko Cadell + Gert Driesen + + + + Constructs a RawTimeStampLayout + + + + + Gets the as a . + + The event to format + returns the time stamp + + + Gets the as a . + + + The time stamp is in local time. To format the time stamp + in universal time use . + + + + + + Extract the date from the + + + + Extract the date from the + + + Nicko Cadell + Gert Driesen + + + + Constructs a RawUtcTimeStampLayout + + + + + Gets the as a . + + The event to format + returns the time stamp + + + Gets the as a . + + + The time stamp is in universal time. To format the time stamp + in local time use . + + + + + + A very simple layout + + + + SimpleLayout consists of the level of the log statement, + followed by " - " and then the log message itself. For example, + + DEBUG - Hello world + + + + Nicko Cadell + Gert Driesen + + + + Constructs a SimpleLayout + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a simple formatted output. + + the event being logged + The TextWriter to write the formatted event to + + + Formats the event as the level of the even, + followed by " - " and then the log message itself. The + output is terminated by a newline. + + + + + + Layout that formats the log events as XML elements. + + + + The output of the consists of a series of + log4net:event elements. It does not output a complete well-formed XML + file. The output is designed to be included as an external entity + in a separate file to form a correct XML file. + + + For example, if abc is the name of the file where + the output goes, then a well-formed XML file would + be: + + + <?xml version="1.0" ?> + + <!DOCTYPE log4net:events SYSTEM "log4net-events.dtd" [<!ENTITY data SYSTEM "abc">]> + + <log4net:events version="1.2" xmlns:log4net="http://logging.apache.org/log4net/schemas/log4net-events-1.2> + &data; + </log4net:events> + + + This approach enforces the independence of the + and the appender where it is embedded. + + + The version attribute helps components to correctly + interpret output generated by . The value of + this attribute should be "1.2" for release 1.2 and later. + + + Alternatively the Header and Footer properties can be + configured to output the correct XML header, open tag and close tag. + When setting the Header and Footer properties it is essential + that the underlying data store not be appendable otherwise the data + will become invalid XML. + + + Nicko Cadell + Gert Driesen + + + + Layout that formats the log events as XML elements. + + + + This is an abstract class that must be subclassed by an implementation + to conform to a specific schema. + + + Deriving classes must implement the method. + + + Nicko Cadell + Gert Driesen + + + + Protected constructor to support subclasses + + + + Initializes a new instance of the class + with no location info. + + + + + + Protected constructor to support subclasses + + + + The parameter determines whether + location information will be output by the layout. If + is set to true, then the + file name and line number of the statement at the origin of the log + statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a formatted string. + + The event being logged. + The TextWriter to write the formatted event to + + + Format the and write it to the . + + + This method creates an that writes to the + . The is passed + to the method. Subclasses should override the + method rather than this method. + + + + + + Does the actual writing of the XML. + + The writer to use to output the event to. + The event to write. + + + Subclasses should override this method to format + the as XML. + + + + + + Flag to indicate if location information should be included in + the XML events. + + + + + The string to replace invalid chars with + + + + + Gets a value indicating whether to include location information in + the XML events. + + + true if location information should be included in the XML + events; otherwise, false. + + + + If is set to true, then the file + name and line number of the statement at the origin of the log + statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + The string to replace characters that can not be expressed in XML with. + + + Not all characters may be expressed in XML. This property contains the + string to replace those that can not with. This defaults to a ?. Set it + to the empty string to simply remove offending characters. For more + details on the allowed character ranges see http://www.w3.org/TR/REC-xml/#charsets + Character replacement will occur in the log message, the property names + and the property values. + + + + + + + Gets the content type output by this layout. + + + As this is the XML layout, the value is always "text/xml". + + + + As this is the XML layout, the value is always "text/xml". + + + + + + Constructs an XmlLayout + + + + + Constructs an XmlLayout. + + + + The LocationInfo option takes a boolean value. By + default, it is set to false which means there will be no location + information output by this layout. If the the option is set to + true, then the file name and line number of the statement + at the origin of the log statement will be output. + + + If you are embedding this layout within an SmtpAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Builds a cache of the element names + + + + + + Does the actual writing of the XML. + + The writer to use to output the event to. + The event to write. + + + Override the base class method + to write the to the . + + + + + + The prefix to use for all generated element names + + + + + The prefix to use for all element names + + + + The default prefix is log4net. Set this property + to change the prefix. If the prefix is set to an empty string + then no prefix will be written. + + + + + + Set whether or not to base64 encode the message. + + + + By default the log message will be written as text to the xml + output. This can cause problems when the message contains binary + data. By setting this to true the contents of the message will be + base64 encoded. If this is set then invalid character replacement + (see ) will not be performed + on the log message. + + + + + + Set whether or not to base64 encode the property values. + + + + By default the properties will be written as text to the xml + output. This can cause problems when one or more properties contain + binary data. By setting this to true the values of the properties + will be base64 encoded. If this is set then invalid character replacement + (see ) will not be performed + on the property values. + + + + + + Layout that formats the log events as XML elements compatible with the log4j schema + + + + Formats the log events according to the http://logging.apache.org/log4j schema. + + + Nicko Cadell + + + + The 1st of January 1970 in UTC + + + + + Constructs an XMLLayoutSchemaLog4j + + + + + Constructs an XMLLayoutSchemaLog4j. + + + + The LocationInfo option takes a boolean value. By + default, it is set to false which means there will be no location + information output by this layout. If the the option is set to + true, then the file name and line number of the statement + at the origin of the log statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + Actually do the writing of the xml + + the writer to use + the event to write + + + Generate XML that is compatible with the log4j schema. + + + + + + The version of the log4j schema to use. + + + + Only version 1.2 of the log4j schema is supported. + + + + + + The default object Renderer. + + + + The default renderer supports rendering objects and collections to strings. + + + See the method for details of the output. + + + Nicko Cadell + Gert Driesen + + + + Implement this interface in order to render objects as strings + + + + Certain types require special case conversion to + string form. This conversion is done by an object renderer. + Object renderers implement the + interface. + + + Nicko Cadell + Gert Driesen + + + + Render the object to a string + + The map used to lookup renderers + The object to render + The writer to render to + + + Render the object to a + string. + + + The parameter is + provided to lookup and render other objects. This is + very useful where contains + nested objects of unknown type. The + method can be used to render these objects. + + + + + + Default constructor + + + + Default constructor + + + + + + Render the object to a string + + The map used to lookup renderers + The object to render + The writer to render to + + + Render the object to a string. + + + The parameter is + provided to lookup and render other objects. This is + very useful where contains + nested objects of unknown type. The + method can be used to render these objects. + + + The default renderer supports rendering objects to strings as follows: + + + + Value + Rendered String + + + null + + "(null)" + + + + + + + For a one dimensional array this is the + array type name, an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. + + + For example: int[] {1, 2, 3}. + + + If the array is not one dimensional the + Array.ToString() is returned. + + + + + , & + + + Rendered as an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. + + + For example: {a, b, c}. + + + All collection classes that implement its subclasses, + or generic equivalents all implement the interface. + + + + + + + + Rendered as the key, an equals sign ('='), and the value (using the appropriate + renderer). + + + For example: key=value. + + + + + other + + Object.ToString() + + + + + + + + Render the array argument into a string + + The map used to lookup renderers + the array to render + The writer to render to + + + For a one dimensional array this is the + array type name, an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. For example: + int[] {1, 2, 3}. + + + If the array is not one dimensional the + Array.ToString() is returned. + + + + + + Render the enumerator argument into a string + + The map used to lookup renderers + the enumerator to render + The writer to render to + + + Rendered as an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. For example: + {a, b, c}. + + + + + + Render the DictionaryEntry argument into a string + + The map used to lookup renderers + the DictionaryEntry to render + The writer to render to + + + Render the key, an equals sign ('='), and the value (using the appropriate + renderer). For example: key=value. + + + + + + Map class objects to an . + + + + Maintains a mapping between types that require special + rendering and the that + is used to render them. + + + The method is used to render an + object using the appropriate renderers defined in this map. + + + Nicko Cadell + Gert Driesen + + + + Default Constructor + + + + Default constructor. + + + + + + Render using the appropriate renderer. + + the object to render to a string + the object rendered as a string + + + This is a convenience method used to render an object to a string. + The alternative method + should be used when streaming output to a . + + + + + + Render using the appropriate renderer. + + the object to render to a string + The writer to render to + + + Find the appropriate renderer for the type of the + parameter. This is accomplished by calling the + method. Once a renderer is found, it is + applied on the object and the result is returned + as a . + + + + + + Gets the renderer for the specified object type + + the object to lookup the renderer for + the renderer for + + + Gets the renderer for the specified object type. + + + Syntactic sugar method that calls + with the type of the object parameter. + + + + + + Gets the renderer for the specified type + + the type to lookup the renderer for + the renderer for the specified type + + + Returns the renderer for the specified type. + If no specific renderer has been defined the + will be returned. + + + + + + Internal function to recursively search interfaces + + the type to lookup the renderer for + the renderer for the specified type + + + + Clear the map of renderers + + + + Clear the custom renderers defined by using + . The + cannot be removed. + + + + + + Register an for . + + the type that will be rendered by + the renderer for + + + Register an object renderer for a specific source type. + This renderer will be returned from a call to + specifying the same as an argument. + + + + + + Get the default renderer instance + + the default renderer + + + Get the default renderer + + + + + + Interface implemented by logger repository plugins. + + + + Plugins define additional behavior that can be associated + with a . + The held by the + property is used to store the plugins for a repository. + + + The log4net.Config.PluginAttribute can be used to + attach plugins to repositories created using configuration + attributes. + + + Nicko Cadell + Gert Driesen + + + + Attaches the plugin to the specified . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + This method is called to notify the plugin that + it should stop operating and should detach from + the repository. + + + + + + Gets the name of the plugin. + + + The name of the plugin. + + + + Plugins are stored in the + keyed by name. Each plugin instance attached to a + repository must be a unique name. + + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Creates a read-only wrapper for a PluginCollection instance. + + list to create a readonly wrapper arround + + A PluginCollection wrapper that is read-only. + + + + + Initializes a new instance of the PluginCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the PluginCollection class + that has the specified initial capacity. + + + The number of elements that the new PluginCollection is initially capable of storing. + + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified PluginCollection. + + The PluginCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Allow subclasses to avoid our default constructors + + + + + + + Copies the entire PluginCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire PluginCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Adds a to the end of the PluginCollection. + + The to be added to the end of the PluginCollection. + The index at which the value has been added. + + + + Removes all elements from the PluginCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the PluginCollection. + + The to check for. + true if is found in the PluginCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the PluginCollection. + + The to locate in the PluginCollection. + + The zero-based index of the first occurrence of + in the entire PluginCollection, if found; otherwise, -1. + + + + + Inserts an element into the PluginCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the PluginCollection. + + The to remove from the PluginCollection. + + The specified was not found in the PluginCollection. + + + + + Removes the element at the specified index of the PluginCollection. + + The zero-based index of the element to remove. + + is less than zero. + -or- + is equal to or greater than . + + + + + Returns an enumerator that can iterate through the PluginCollection. + + An for the entire PluginCollection. + + + + Adds the elements of another PluginCollection to the current PluginCollection. + + The PluginCollection whose elements should be added to the end of the current PluginCollection. + The new of the PluginCollection. + + + + Adds the elements of a array to the current PluginCollection. + + The array whose elements should be added to the end of the PluginCollection. + The new of the PluginCollection. + + + + Adds the elements of a collection to the current PluginCollection. + + The collection whose elements should be added to the end of the PluginCollection. + The new of the PluginCollection. + + + + Sets the capacity to the actual number of elements. + + + + + is less than zero. + -or- + is equal to or greater than . + + + + + is less than zero. + -or- + is equal to or greater than . + + + + + Gets the number of elements actually contained in the PluginCollection. + + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + An object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + + The at the specified index. + + The zero-based index of the element to get or set. + + is less than zero. + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false. + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false. + + + + Gets or sets the number of elements the PluginCollection can contain. + + + The number of elements the PluginCollection can contain. + + + + + Supports type-safe iteration over a . + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + + A value + + + + + Supports simple iteration over a . + + + + + + Initializes a new instance of the Enumerator class. + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + The current element in the collection. + + + + + + + + Map of repository plugins. + + + + This class is a name keyed map of the plugins that are + attached to a repository. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The repository that the plugins should be attached to. + + + Initialize a new instance of the class with a + repository that the plugins should be attached to. + + + + + + Adds a to the map. + + The to add to the map. + + + The will be attached to the repository when added. + + + If there already exists a plugin with the same name + attached to the repository then the old plugin will + be and replaced with + the new plugin. + + + + + + Removes a from the map. + + The to remove from the map. + + + Remove a specific plugin from this map. + + + + + + Gets a by name. + + The name of the to lookup. + + The from the map with the name specified, or + null if no plugin is found. + + + + Lookup a plugin by name. If the plugin is not found null + will be returned. + + + + + + Gets all possible plugins as a list of objects. + + All possible plugins as a list of objects. + + + Get a collection of all the plugins defined in this map. + + + + + + Base implementation of + + + + Default abstract implementation of the + interface. This base class can be used by implementors + of the interface. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + the name of the plugin + + Initializes a new Plugin with the specified name. + + + + + Attaches this plugin to a . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + This method is called to notify the plugin that + it should stop operating and should detach from + the repository. + + + + + + The name of this plugin. + + + + + The repository this plugin is attached to. + + + + + Gets or sets the name of the plugin. + + + The name of the plugin. + + + + Plugins are stored in the + keyed by name. Each plugin instance attached to a + repository must be a unique name. + + + The name of the plugin must not change one the + plugin has been attached to a repository. + + + + + + The repository for this plugin + + + The that this plugin is attached to. + + + + Gets or sets the that this plugin is + attached to. + + + + + + Plugin that listens for events from the + + + + This plugin publishes an instance of + on a specified . This listens for logging events delivered from + a remote . + + + When an event is received it is relogged within the attached repository + as if it had been raised locally. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Initializes a new instance of the class. + + + The property must be set. + + + + + + Construct with sink Uri. + + The name to publish the sink under in the remoting infrastructure. + See for more details. + + + Initializes a new instance of the class + with specified name. + + + + + + Attaches this plugin to a . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + When the plugin is shutdown the remote logging + sink is disconnected. + + + + + + The fully qualified type of the RemoteLoggingServerPlugin class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the URI of this sink. + + + The URI of this sink. + + + + This is the name under which the object is marshaled. + + + + + + + Delivers objects to a remote sink. + + + + Internal class used to listen for logging events + and deliver them to the local repository. + + + + + + Constructor + + The repository to log to. + + + Initializes a new instance of the for the + specified . + + + + + + Logs the events to the repository. + + The events to log. + + + The events passed are logged to the + + + + + + Obtains a lifetime service object to control the lifetime + policy for this instance. + + null to indicate that this instance should live forever. + + + Obtains a lifetime service object to control the lifetime + policy for this instance. This object should live forever + therefore this implementation returns null. + + + + + + The underlying that events should + be logged to. + + + + + Default implementation of + + + + This default implementation of the + interface is used to create the default subclass + of the object. + + + Nicko Cadell + Gert Driesen + + + + Interface abstracts creation of instances + + + + This interface is used by the to + create new objects. + + + The method is called + to create a named . + + + Implement this interface to create new subclasses of . + + + Nicko Cadell + Gert Driesen + + + + Create a new instance + + The that will own the . + The name of the . + The instance for the specified name. + + + Create a new instance with the + specified name. + + + Called by the to create + new named instances. + + + If the is null then the root logger + must be returned. + + + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Create a new instance + + The that will own the . + The name of the . + The instance for the specified name. + + + Create a new instance with the + specified name. + + + Called by the to create + new named instances. + + + If the is null then the root logger + must be returned. + + + + + + Default internal subclass of + + + + This subclass has no additional behavior over the + class but does allow instances + to be created. + + + + + + Implementation of used by + + + + Internal class used to provide implementation of + interface. Applications should use to get + logger instances. + + + This is one of the central classes in the log4net implementation. One of the + distinctive features of log4net are hierarchical loggers and their + evaluation. The organizes the + instances into a rooted tree hierarchy. + + + The class is abstract. Only concrete subclasses of + can be created. The + is used to create instances of this type for the . + + + Nicko Cadell + Gert Driesen + Aspi Havewala + Douglas de la Torre + + + + This constructor created a new instance and + sets its name. + + The name of the . + + + This constructor is protected and designed to be used by + a subclass that is not abstract. + + + Loggers are constructed by + objects. See for the default + logger creator. + + + + + + Add to the list of appenders of this + Logger instance. + + An appender to add to this logger + + + Add to the list of appenders of this + Logger instance. + + + If is already in the list of + appenders, then it won't be added again. + + + + + + Look for the appender named as name + + The name of the appender to lookup + The appender with the name specified, or null. + + + Returns the named appender, or null if the appender is not found. + + + + + + Remove all previously added appenders from this Logger instance. + + + + Remove all previously added appenders from this Logger instance. + + + This is useful when re-reading configuration information. + + + + + + Remove the appender passed as parameter form the list of appenders. + + The appender to remove + The appender removed from the list + + + Remove the appender passed as parameter form the list of appenders. + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Remove the appender passed as parameter form the list of appenders. + + The name of the appender to remove + The appender removed from the list + + + Remove the named appender passed as parameter form the list of appenders. + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + This generic form is intended to be used by wrappers. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generate a logging event for the specified using + the and . + + + This method must not throw any exception to the caller. + + + + + + This is the most generic printing method that is intended to be used + by wrappers. + + The event being logged. + + + Logs the specified logging event through this logger. + + + This method must not throw any exception to the caller. + + + + + + Checks if this logger is enabled for a given passed as parameter. + + The level to check. + + true if this logger is enabled for level, otherwise false. + + + + Test if this logger is going to log events of the specified . + + + This method must not throw any exception to the caller. + + + + + + Deliver the to the attached appenders. + + The event to log. + + + Call the appenders in the hierarchy starting at + this. If no appenders could be found, emit a + warning. + + + This method calls all the appenders inherited from the + hierarchy circumventing any evaluation of whether to log or not + to log the particular log request. + + + + + + Closes all attached appenders implementing the interface. + + + + Used to ensure that the appenders are correctly shutdown. + + + + + + This is the most generic printing method. This generic form is intended to be used by wrappers + + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generate a logging event for the specified using + the . + + + + + + Creates a new logging event and logs the event without further checks. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generates a logging event and delivers it to the attached + appenders. + + + + + + Creates a new logging event and logs the event without further checks. + + The event being logged. + + + Delivers the logging event to the attached appenders. + + + + + + The fully qualified type of the Logger class. + + + + + The name of this logger. + + + + + The assigned level of this logger. + + + + The level variable need not be + assigned a value in which case it is inherited + form the hierarchy. + + + + + + The parent of this logger. + + + + The parent of this logger. + All loggers have at least one ancestor which is the root logger. + + + + + + Loggers need to know what Hierarchy they are in. + + + + Loggers need to know what Hierarchy they are in. + The hierarchy that this logger is a member of is stored + here. + + + + + + Helper implementation of the interface + + + + + Flag indicating if child loggers inherit their parents appenders + + + + Additivity is set to true by default, that is children inherit + the appenders of their ancestors by default. If this variable is + set to false then the appenders found in the + ancestors of this logger are not used. However, the children + of this logger will inherit its appenders, unless the children + have their additivity flag set to false too. See + the user manual for more details. + + + + + + Lock to protect AppenderAttachedImpl variable m_appenderAttachedImpl + + + + + Gets or sets the parent logger in the hierarchy. + + + The parent logger in the hierarchy. + + + + Part of the Composite pattern that makes the hierarchy. + The hierarchy is parent linked rather than child linked. + + + + + + Gets or sets a value indicating if child loggers inherit their parent's appenders. + + + true if child loggers inherit their parent's appenders. + + + + Additivity is set to true by default, that is children inherit + the appenders of their ancestors by default. If this variable is + set to false then the appenders found in the + ancestors of this logger are not used. However, the children + of this logger will inherit its appenders, unless the children + have their additivity flag set to false too. See + the user manual for more details. + + + + + + Gets the effective level for this logger. + + The nearest level in the logger hierarchy. + + + Starting from this logger, searches the logger hierarchy for a + non-null level and returns it. Otherwise, returns the level of the + root logger. + + The Logger class is designed so that this method executes as + quickly as possible. + + + + + Gets or sets the where this + Logger instance is attached to. + + The hierarchy that this logger belongs to. + + + This logger must be attached to a single . + + + + + + Gets or sets the assigned , if any, for this Logger. + + + The of this logger. + + + + The assigned can be null. + + + + + + Get the appenders contained in this logger as an + . + + A collection of the appenders in this logger + + + Get the appenders contained in this logger as an + . If no appenders + can be found, then a is returned. + + + + + + Gets the logger name. + + + The name of the logger. + + + + The name of this logger + + + + + + Gets the where this + Logger instance is attached to. + + + The that this logger belongs to. + + + + Gets the where this + Logger instance is attached to. + + + + + + Construct a new Logger + + the name of the logger + + + Initializes a new instance of the class + with the specified name. + + + + + + Delegate used to handle logger creation event notifications. + + The in which the has been created. + The event args that hold the instance that has been created. + + + Delegate used to handle logger creation event notifications. + + + + + + Provides data for the event. + + + + A event is raised every time a + is created. + + + + + + The created + + + + + Constructor + + The that has been created. + + + Initializes a new instance of the event argument + class,with the specified . + + + + + + Gets the that has been created. + + + The that has been created. + + + + The that has been created. + + + + + + Hierarchical organization of loggers + + + + The casual user should not have to deal with this class + directly. + + + This class is specialized in retrieving loggers by name and + also maintaining the logger hierarchy. Implements the + interface. + + + The structure of the logger hierarchy is maintained by the + method. The hierarchy is such that children + link to their parent but parents do not have any references to their + children. Moreover, loggers can be instantiated in any order, in + particular descendant before ancestor. + + + In case a descendant is created before a particular ancestor, + then it creates a provision node for the ancestor and adds itself + to the provision node. Other descendants of the same ancestor add + themselves to the previously created provision node. + + + Nicko Cadell + Gert Driesen + + + + Base implementation of + + + + Default abstract implementation of the interface. + + + Skeleton implementation of the interface. + All types can extend this type. + + + Nicko Cadell + Gert Driesen + + + + Interface implemented by logger repositories. + + + + This interface is implemented by logger repositories. e.g. + . + + + This interface is used by the + to obtain interfaces. + + + Nicko Cadell + Gert Driesen + + + + Check if the named logger exists in the repository. If so return + its reference, otherwise returns null. + + The name of the logger to lookup + The Logger object with the name specified + + + If the names logger exists it is returned, otherwise + null is returned. + + + + + + Returns all the currently defined loggers as an Array. + + All the defined loggers + + + Returns all the currently defined loggers as an Array. + + + + + + Returns a named logger instance + + The name of the logger to retrieve + The logger object with the name specified + + + Returns a named logger instance. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + + + Shutdown the repository + + + Shutting down a repository will safely close and remove + all appenders in all loggers including the root logger. + + + Some appenders need to be closed before the + application exists. Otherwise, pending logging events might be + lost. + + + The method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Reset the repositories configuration to a default state + + + + Reset all values contained in this instance to their + default state. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the through this repository. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Returns all the Appenders that are configured as an Array. + + All the Appenders + + + Returns all the Appenders that are configured as an Array. + + + + + + The name of the repository + + + The name of the repository + + + + The name of the repository. + + + + + + RendererMap accesses the object renderer map for this repository. + + + RendererMap accesses the object renderer map for this repository. + + + + RendererMap accesses the object renderer map for this repository. + + + The RendererMap holds a mapping between types and + objects. + + + + + + The plugin map for this repository. + + + The plugin map for this repository. + + + + The plugin map holds the instances + that have been attached to this repository. + + + + + + Get the level map for the Repository. + + + + Get the level map for the Repository. + + + The level map defines the mappings between + level names and objects in + this repository. + + + + + + The threshold for all events in this repository + + + The threshold for all events in this repository + + + + The threshold for all events in this repository. + + + + + + Flag indicates if this repository has been configured. + + + Flag indicates if this repository has been configured. + + + + Flag indicates if this repository has been configured. + + + + + + Collection of internal messages captured during the most + recent configuration process. + + + + + Event to notify that the repository has been shutdown. + + + Event to notify that the repository has been shutdown. + + + + Event raised when the repository has been shutdown. + + + + + + Event to notify that the repository has had its configuration reset. + + + Event to notify that the repository has had its configuration reset. + + + + Event raised when the repository's configuration has been + reset to default. + + + + + + Event to notify that the repository has had its configuration changed. + + + Event to notify that the repository has had its configuration changed. + + + + Event raised when the repository's configuration has been changed. + + + + + + Repository specific properties + + + Repository specific properties + + + + These properties can be specified on a repository specific basis. + + + + + + Default Constructor + + + + Initializes the repository with default (empty) properties. + + + + + + Construct the repository using specific properties + + the properties to set for this repository + + + Initializes the repository with specified properties. + + + + + + Test if logger exists + + The name of the logger to lookup + The Logger object with the name specified + + + Check if the named logger exists in the repository. If so return + its reference, otherwise returns null. + + + + + + Returns all the currently defined loggers in the repository + + All the defined loggers + + + Returns all the currently defined loggers in the repository as an Array. + + + + + + Return a new logger instance + + The name of the logger to retrieve + The logger object with the name specified + + + Return a new logger instance. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + + + + Shutdown the repository + + + + Shutdown the repository. Can be overridden in a subclass. + This base class implementation notifies the + listeners and all attached plugins of the shutdown event. + + + + + + Reset the repositories configuration to a default state + + + + Reset all values contained in this instance to their + default state. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the logEvent through this repository. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Returns all the Appenders that are configured as an Array. + + All the Appenders + + + Returns all the Appenders that are configured as an Array. + + + + + + The fully qualified type of the LoggerRepositorySkeleton class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Adds an object renderer for a specific class. + + The type that will be rendered by the renderer supplied. + The object renderer used to render the object. + + + Adds an object renderer for a specific class. + + + + + + Notify the registered listeners that the repository is shutting down + + Empty EventArgs + + + Notify any listeners that this repository is shutting down. + + + + + + Notify the registered listeners that the repository has had its configuration reset + + Empty EventArgs + + + Notify any listeners that this repository's configuration has been reset. + + + + + + Notify the registered listeners that the repository has had its configuration changed + + Empty EventArgs + + + Notify any listeners that this repository's configuration has changed. + + + + + + Raise a configuration changed event on this repository + + EventArgs.Empty + + + Applications that programmatically change the configuration of the repository should + raise this event notification to notify listeners. + + + + + + Flushes all configured Appenders that implement . + + The maximum time in milliseconds to wait for logging events from asycnhronous appenders to be flushed, + or to wait indefinitely. + True if all logging events were flushed successfully, else false. + + + + The name of the repository + + + The string name of the repository + + + + The name of this repository. The name is + used to store and lookup the repositories + stored by the . + + + + + + The threshold for all events in this repository + + + The threshold for all events in this repository + + + + The threshold for all events in this repository + + + + + + RendererMap accesses the object renderer map for this repository. + + + RendererMap accesses the object renderer map for this repository. + + + + RendererMap accesses the object renderer map for this repository. + + + The RendererMap holds a mapping between types and + objects. + + + + + + The plugin map for this repository. + + + The plugin map for this repository. + + + + The plugin map holds the instances + that have been attached to this repository. + + + + + + Get the level map for the Repository. + + + + Get the level map for the Repository. + + + The level map defines the mappings between + level names and objects in + this repository. + + + + + + Flag indicates if this repository has been configured. + + + Flag indicates if this repository has been configured. + + + + Flag indicates if this repository has been configured. + + + + + + Contains a list of internal messages captures during the + last configuration. + + + + + Event to notify that the repository has been shutdown. + + + Event to notify that the repository has been shutdown. + + + + Event raised when the repository has been shutdown. + + + + + + Event to notify that the repository has had its configuration reset. + + + Event to notify that the repository has had its configuration reset. + + + + Event raised when the repository's configuration has been + reset to default. + + + + + + Event to notify that the repository has had its configuration changed. + + + Event to notify that the repository has had its configuration changed. + + + + Event raised when the repository's configuration has been changed. + + + + + + Repository specific properties + + + Repository specific properties + + + These properties can be specified on a repository specific basis + + + + + Basic Configurator interface for repositories + + + + Interface used by basic configurator to configure a + with a default . + + + A should implement this interface to support + configuration by the . + + + Nicko Cadell + Gert Driesen + + + + Initialize the repository using the specified appender + + the appender to use to log all logging events + + + Configure the repository to route all logging events to the + specified appender. + + + + + + Initialize the repository using the specified appenders + + the appenders to use to log all logging events + + + Configure the repository to route all logging events to the + specified appenders. + + + + + + Configure repository using XML + + + + Interface used by Xml configurator to configure a . + + + A should implement this interface to support + configuration by the . + + + Nicko Cadell + Gert Driesen + + + + Initialize the repository using the specified config + + the element containing the root of the config + + + The schema for the XML configuration data is defined by + the implementation. + + + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Construct with properties + + The properties to pass to this repository. + + + Initializes a new instance of the class. + + + + + + Construct with a logger factory + + The factory to use to create new logger instances. + + + Initializes a new instance of the class with + the specified . + + + + + + Construct with properties and a logger factory + + The properties to pass to this repository. + The factory to use to create new logger instances. + + + Initializes a new instance of the class with + the specified . + + + + + + Test if a logger exists + + The name of the logger to lookup + The Logger object with the name specified + + + Check if the named logger exists in the hierarchy. If so return + its reference, otherwise returns null. + + + + + + Returns all the currently defined loggers in the hierarchy as an Array + + All the defined loggers + + + Returns all the currently defined loggers in the hierarchy as an Array. + The root logger is not included in the returned + enumeration. + + + + + + Return a new logger instance named as the first parameter using + the default factory. + + + + Return a new logger instance named as the first parameter using + the default factory. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + The name of the logger to retrieve + The logger object with the name specified + + + + Shutting down a hierarchy will safely close and remove + all appenders in all loggers including the root logger. + + + + Shutting down a hierarchy will safely close and remove + all appenders in all loggers including the root logger. + + + Some appenders need to be closed before the + application exists. Otherwise, pending logging events might be + lost. + + + The Shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Reset all values contained in this hierarchy instance to their default. + + + + Reset all values contained in this hierarchy instance to their + default. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the logEvent through this hierarchy. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Returns all the Appenders that are currently configured + + An array containing all the currently configured appenders + + + Returns all the instances that are currently configured. + All the loggers are searched for appenders. The appenders may also be containers + for appenders and these are also searched for additional loggers. + + + The list returned is unordered but does not contain duplicates. + + + + + + Collect the appenders from an . + The appender may also be a container. + + + + + + + Collect the appenders from an container + + + + + + + Initialize the log4net system using the specified appender + + the appender to use to log all logging events + + + + Initialize the log4net system using the specified appenders + + the appenders to use to log all logging events + + + + Initialize the log4net system using the specified appenders + + the appenders to use to log all logging events + + + This method provides the same functionality as the + method implemented + on this object, but it is protected and therefore can be called by subclasses. + + + + + + Initialize the log4net system using the specified config + + the element containing the root of the config + + + + Initialize the log4net system using the specified config + + the element containing the root of the config + + + This method provides the same functionality as the + method implemented + on this object, but it is protected and therefore can be called by subclasses. + + + + + + Test if this hierarchy is disabled for the specified . + + The level to check against. + + true if the repository is disabled for the level argument, false otherwise. + + + + If this hierarchy has not been configured then this method will + always return true. + + + This method will return true if this repository is + disabled for level object passed as parameter and + false otherwise. + + + See also the property. + + + + + + Clear all logger definitions from the internal hashtable + + + + This call will clear all logger definitions from the internal + hashtable. Invoking this method will irrevocably mess up the + logger hierarchy. + + + You should really know what you are doing before + invoking this method. + + + + + + Return a new logger instance named as the first parameter using + . + + The name of the logger to retrieve + The factory that will make the new logger instance + The logger object with the name specified + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated by the + parameter and linked with its existing + ancestors as well as children. + + + + + + Sends a logger creation event to all registered listeners + + The newly created logger + + Raises the logger creation event. + + + + + Updates all the parents of the specified logger + + The logger to update the parents for + + + This method loops through all the potential parents of + . There 3 possible cases: + + + + No entry for the potential parent of exists + + We create a ProvisionNode for this potential + parent and insert in that provision node. + + + + The entry is of type Logger for the potential parent. + + The entry is 's nearest existing parent. We + update 's parent field with this entry. We also break from + he loop because updating our parent's parent is our parent's + responsibility. + + + + The entry is of type ProvisionNode for this potential parent. + + We add to the list of children for this + potential parent. + + + + + + + + Replace a with a in the hierarchy. + + + + + + We update the links for all the children that placed themselves + in the provision node 'pn'. The second argument 'log' is a + reference for the newly created Logger, parent of all the + children in 'pn'. + + + We loop on all the children 'c' in 'pn'. + + + If the child 'c' has been already linked to a child of + 'log' then there is no need to update 'c'. + + + Otherwise, we set log's parent field to c's parent and set + c's parent field to log. + + + + + + Define or redefine a Level using the values in the argument + + the level values + + + Define or redefine a Level using the values in the argument + + + Supports setting levels via the configuration file. + + + + + + Set a Property using the values in the argument + + the property value + + + Set a Property using the values in the argument. + + + Supports setting property values via the configuration file. + + + + + + The fully qualified type of the Hierarchy class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Event used to notify that a logger has been created. + + + + Event raised when a logger is created. + + + + + + Has no appender warning been emitted + + + + Flag to indicate if we have already issued a warning + about not having an appender warning. + + + + + + Get the root of this hierarchy + + + + Get the root of this hierarchy. + + + + + + Gets or sets the default instance. + + The default + + + The logger factory is used to create logger instances. + + + + + + A class to hold the value, name and display name for a level + + + + A class to hold the value, name and display name for a level + + + + + + Override Object.ToString to return sensible debug info + + string info about this object + + + + Value of the level + + + + If the value is not set (defaults to -1) the value will be looked + up for the current level with the same name. + + + + + + Name of the level + + + The name of the level + + + + The name of the level. + + + + + + Display name for the level + + + The display name of the level + + + + The display name of the level. + + + + + + Used internally to accelerate hash table searches. + + + + Internal class used to improve performance of + string keyed hashtables. + + + The hashcode of the string is cached for reuse. + The string is stored as an interned value. + When comparing two objects for equality + the reference equality of the interned strings is compared. + + + Nicko Cadell + Gert Driesen + + + + Construct key with string name + + + + Initializes a new instance of the class + with the specified name. + + + Stores the hashcode of the string and interns + the string key to optimize comparisons. + + + The Compact Framework 1.0 the + method does not work. On the Compact Framework + the string keys are not interned nor are they + compared by reference. + + + The name of the logger. + + + + Returns a hash code for the current instance. + + A hash code for the current instance. + + + Returns the cached hashcode. + + + + + + Determines whether two instances + are equal. + + The to compare with the current . + + true if the specified is equal to the current ; otherwise, false. + + + + Compares the references of the interned strings. + + + + + + Provision nodes are used where no logger instance has been specified + + + + instances are used in the + when there is no specified + for that node. + + + A provision node holds a list of child loggers on behalf of + a logger that does not exist. + + + Nicko Cadell + Gert Driesen + + + + Create a new provision node with child node + + A child logger to add to this node. + + + Initializes a new instance of the class + with the specified child logger. + + + + + + The sits at the root of the logger hierarchy tree. + + + + The is a regular except + that it provides several guarantees. + + + First, it cannot be assigned a null + level. Second, since the root logger cannot have a parent, the + property always returns the value of the + level field without walking the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Construct a + + The level to assign to the root logger. + + + Initializes a new instance of the class with + the specified logging level. + + + The root logger names itself as "root". However, the root + logger cannot be retrieved by name. + + + + + + The fully qualified type of the RootLogger class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the assigned level value without walking the logger hierarchy. + + The assigned level value without walking the logger hierarchy. + + + Because the root logger cannot have a parent and its level + must not be null this property just returns the + value of . + + + + + + Gets or sets the assigned for the root logger. + + + The of the root logger. + + + + Setting the level of the root logger to a null reference + may have catastrophic results. We prevent this here. + + + + + + Initializes the log4net environment using an XML DOM. + + + + Configures a using an XML DOM. + + + Nicko Cadell + Gert Driesen + + + + Construct the configurator for a hierarchy + + The hierarchy to build. + + + Initializes a new instance of the class + with the specified . + + + + + + Configure the hierarchy by parsing a DOM tree of XML elements. + + The root element to parse. + + + Configure the hierarchy by parsing a DOM tree of XML elements. + + + + + + Parse appenders by IDREF. + + The appender ref element. + The instance of the appender that the ref refers to. + + + Parse an XML element that represents an appender and return + the appender. + + + + + + Parses an appender element. + + The appender element. + The appender instance or null when parsing failed. + + + Parse an XML element that represents an appender and return + the appender instance. + + + + + + Parses a logger element. + + The logger element. + + + Parse an XML element that represents a logger. + + + + + + Parses the root logger element. + + The root element. + + + Parse an XML element that represents the root logger. + + + + + + Parses the children of a logger element. + + The category element. + The logger instance. + Flag to indicate if the logger is the root logger. + + + Parse the child elements of a <logger> element. + + + + + + Parses an object renderer. + + The renderer element. + + + Parse an XML element that represents a renderer. + + + + + + Parses a level element. + + The level element. + The logger object to set the level on. + Flag to indicate if the logger is the root logger. + + + Parse an XML element that represents a level. + + + + + + Sets a parameter on an object. + + The parameter element. + The object to set the parameter on. + + The parameter name must correspond to a writable property + on the object. The value of the parameter is a string, + therefore this function will attempt to set a string + property first. If unable to set a string property it + will inspect the property and its argument type. It will + attempt to call a static method called Parse on the + type of the property. This method will take a single + string argument and return a value that can be used to + set the property. + + + + + Test if an element has no attributes or child elements + + the element to inspect + true if the element has any attributes or child elements, false otherwise + + + + Test if a is constructible with Activator.CreateInstance. + + the type to inspect + true if the type is creatable using a default constructor, false otherwise + + + + Look for a method on the that matches the supplied + + the type that has the method + the name of the method + the method info found + + + The method must be a public instance method on the . + The method must be named or "Add" followed by . + The method must take a single parameter. + + + + + + Converts a string value to a target type. + + The type of object to convert the string to. + The string value to use as the value of the object. + + + An object of type with value or + null when the conversion could not be performed. + + + + + + Creates an object as specified in XML. + + The XML element that contains the definition of the object. + The object type to use if not explicitly specified. + The type that the returned object must be or must inherit from. + The object or null + + + Parse an XML element and create an object instance based on the configuration + data. + + + The type of the instance may be specified in the XML. If not + specified then the is used + as the type. However the type is specified it must support the + type. + + + + + + key: appenderName, value: appender. + + + + + The Hierarchy being configured. + + + + + The fully qualified type of the XmlHierarchyConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + + + + + + + + + + + + + + + + + Delegate used to handle logger repository shutdown event notifications + + The that is shutting down. + Empty event args + + + Delegate used to handle logger repository shutdown event notifications. + + + + + + Delegate used to handle logger repository configuration reset event notifications + + The that has had its configuration reset. + Empty event args + + + Delegate used to handle logger repository configuration reset event notifications. + + + + + + Delegate used to handle event notifications for logger repository configuration changes. + + The that has had its configuration changed. + Empty event arguments. + + + Delegate used to handle event notifications for logger repository configuration changes. + + + + + + Write the name of the current AppDomain to the output + + + + Write the name of the current AppDomain to the output writer + + + Nicko Cadell + + + + Write the name of the current AppDomain to the output + + the writer to write to + null, state is not set + + + Writes name of the current AppDomain to the output . + + + + + + AppSetting pattern converter + + + + This pattern converter reads appSettings from the application configuration file. + + + If the is specified then that will be used to + lookup a single appSettings value. If no is specified + then all appSettings will be dumped as a list of key value pairs. + + + A typical use is to specify a base directory for log files, e.g. + + + + + ... + + + ]]> + + + + + + + Write the property value to the output + + that will receive the formatted result. + null, state is not set + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + Write the current date to the output + + + + Date pattern converter, uses a to format + the current date and time to the writer as a string. + + + The value of the determines + the formatting of the date. The following values are allowed: + + + Option value + Output + + + ISO8601 + + Uses the formatter. + Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. + + + + DATE + + Uses the formatter. + Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". + + + + ABSOLUTE + + Uses the formatter. + Formats using the "HH:mm:ss,fff" for example, "15:49:37,459". + + + + other + + Any other pattern string uses the formatter. + This formatter passes the pattern string to the + method. + For details on valid patterns see + DateTimeFormatInfo Class. + + + + + + The date and time is in the local time zone and is rendered in that zone. + To output the time in Universal time see . + + + Nicko Cadell + + + + The used to render the date to a string + + + + The used to render the date to a string + + + + + + Initialize the converter options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the current date to the output + + that will receive the formatted result. + null, state is not set + + + Pass the current date and time to the + for it to render it to the writer. + + + The date and time passed is in the local time zone. + + + + + + The fully qualified type of the DatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write an folder path to the output + + + + Write an special path environment folder path to the output writer. + The value of the determines + the name of the variable to output. + should be a value in the enumeration. + + + Ron Grabowski + + + + Write an special path environment folder path to the output + + the writer to write to + null, state is not set + + + Writes the special path environment folder path to the output . + The name of the special path environment folder path to output must be set + using the + property. + + + + + + The fully qualified type of the EnvironmentFolderPathPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write an environment variable to the output + + + + Write an environment variable to the output writer. + The value of the determines + the name of the variable to output. + + + Nicko Cadell + + + + Write an environment variable to the output + + the writer to write to + null, state is not set + + + Writes the environment variable to the output . + The name of the environment variable to output must be set + using the + property. + + + + + + The fully qualified type of the EnvironmentPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the current thread identity to the output + + + + Write the current thread identity to the output writer + + + Nicko Cadell + + + + Write the current thread identity to the output + + the writer to write to + null, state is not set + + + Writes the current thread identity to the output . + + + + + + The fully qualified type of the IdentityPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Pattern converter for literal string instances in the pattern + + + + Writes the literal string value specified in the + property to + the output. + + + Nicko Cadell + + + + Set the next converter in the chain + + The next pattern converter in the chain + The next pattern converter + + + Special case the building of the pattern converter chain + for instances. Two adjacent + literals in the pattern can be represented by a single combined + pattern converter. This implementation detects when a + is added to the chain + after this converter and combines its value with this converter's + literal value. + + + + + + Write the literal to the output + + the writer to write to + null, not set + + + Override the formatting behavior to ignore the FormattingInfo + because we have a literal instead. + + + Writes the value of + to the output . + + + + + + Convert this pattern into the rendered message + + that will receive the formatted result. + null, not set + + + This method is not used. + + + + + + Writes a newline to the output + + + + Writes the system dependent line terminator to the output. + This behavior can be overridden by setting the : + + + + Option Value + Output + + + DOS + DOS or Windows line terminator "\r\n" + + + UNIX + UNIX line terminator "\n" + + + + Nicko Cadell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the current process ID to the output + + + + Write the current process ID to the output writer + + + Nicko Cadell + + + + Write the current process ID to the output + + the writer to write to + null, state is not set + + + Write the current process ID to the output . + + + + + + The fully qualified type of the ProcessIdPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Property pattern converter + + + + This pattern converter reads the thread and global properties. + The thread properties take priority over global properties. + See for details of the + thread properties. See for + details of the global properties. + + + If the is specified then that will be used to + lookup a single property. If no is specified + then all properties will be dumped as a list of key value pairs. + + + Nicko Cadell + + + + Write the property value to the output + + that will receive the formatted result. + null, state is not set + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + A Pattern converter that generates a string of random characters + + + + The converter generates a string of random characters. By default + the string is length 4. This can be changed by setting the + to the string value of the length required. + + + The random characters in the string are limited to uppercase letters + and numbers only. + + + The random number generator used by this class is not cryptographically secure. + + + Nicko Cadell + + + + Shared random number generator + + + + + Length of random string to generate. Default length 4. + + + + + Initialize the converter options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write a randoim string to the output + + the writer to write to + null, state is not set + + + Write a randoim string to the output . + + + + + + The fully qualified type of the RandomStringPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the current threads username to the output + + + + Write the current threads username to the output writer + + + Nicko Cadell + + + + Write the current threads username to the output + + the writer to write to + null, state is not set + + + Write the current threads username to the output . + + + + + + The fully qualified type of the UserNamePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the UTC date time to the output + + + + Date pattern converter, uses a to format + the current date and time in Universal time. + + + See the for details on the date pattern syntax. + + + + Nicko Cadell + + + + Write the current date and time to the output + + that will receive the formatted result. + null, state is not set + + + Pass the current date and time to the + for it to render it to the writer. + + + The date is in Universal time when it is rendered. + + + + + + + The fully qualified type of the UtcDatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Type converter for Boolean. + + + + Supports conversion from string to bool type. + + + + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Convert the source object to the type supported by this object + + the object to convert + the converted object + + + Uses the method to convert the + argument to a . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Exception base type for conversion errors. + + + + This type extends . It + does not add any new functionality but does differentiate the + type of exception being thrown. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + A message to include with the exception. + + + Initializes a new instance of the class + with the specified message. + + + + + + Constructor + + A message to include with the exception. + A nested exception to include. + + + Initializes a new instance of the class + with the specified message and inner exception. + + + + + + Serialization constructor + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Creates a new instance of the class. + + The conversion destination type. + The value to convert. + An instance of the . + + + Creates a new instance of the class. + + + + + + Creates a new instance of the class. + + The conversion destination type. + The value to convert. + A nested exception to include. + An instance of the . + + + Creates a new instance of the class. + + + + + + Register of type converters for specific types. + + + + Maintains a registry of type converters used to convert between + types. + + + Use the and + methods to register new converters. + The and methods + lookup appropriate converters to use. + + + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + Initializes a new instance of the class. + + + + + Static constructor. + + + + This constructor defines the intrinsic type converters. + + + + + + Adds a converter for a specific type. + + The type being converted to. + The type converter to use to convert to the destination type. + + + Adds a converter instance for a specific type. + + + + + + Adds a converter for a specific type. + + The type being converted to. + The type of the type converter to use to convert to the destination type. + + + Adds a converter for a specific type. + + + + + + Gets the type converter to use to convert values to the destination type. + + The type being converted from. + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + Gets the type converter to use to convert values to the destination type. + + + + + + Gets the type converter to use to convert values to the destination type. + + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + Gets the type converter to use to convert values to the destination type. + + + + + + Lookups the type converter to use as specified by the attributes on the + destination type. + + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + + Creates the instance of the type converter. + + The type of the type converter. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + The type specified for the type converter must implement + the or interfaces + and must have a public default (no argument) constructor. + + + + + + The fully qualified type of the ConverterRegistry class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Mapping from to type converter. + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to an encoding + the encoding + + + Uses the method to + convert the argument to an . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Interface supported by type converters + + + + This interface supports conversion from a single type to arbitrary types. + See . + + + Nicko Cadell + + + + Returns whether this converter can convert the object to the specified type + + A Type that represents the type you want to convert to + true if the conversion is possible + + + Test if the type supported by this converter can be converted to the + . + + + + + + Converts the given value object to the specified type, using the arguments + + the object to convert + The Type to convert the value parameter to + the converted object + + + Converts the (which must be of the type supported + by this converter) to the specified.. + + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to an IPAddress + the IPAddress + + + Uses the method to convert the + argument to an . + If that fails then the string is resolved as a DNS hostname. + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Valid characters in an IPv4 or IPv6 address string. (Does not support subnets) + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + The string is used as the + of the . + + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a PatternLayout + the PatternLayout + + + Creates and returns a new using + the as the + . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Convert between string and + + + + Supports conversion from string to type, + and from a type to a string. + + + The string is used as the + of the . + + + + + + Nicko Cadell + + + + Can the target type be converted to the type supported by this object + + A that represents the type you want to convert to + true if the conversion is possible + + + Returns true if the is + assignable from a type. + + + + + + Converts the given value object to the specified type, using the arguments + + the object to convert + The Type to convert the value parameter to + the converted object + + + Uses the method to convert the + argument to a . + + + + The object cannot be converted to the + . To check for this condition use the + method. + + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a PatternString + the PatternString + + + Creates and returns a new using + the as the + . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a Type + the Type + + + Uses the method to convert the + argument to a . + Additional effort is made to locate partially specified types + by searching the loaded assemblies. + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Attribute used to associate a type converter + + + + Class and Interface level attribute that specifies a type converter + to use with the associated type. + + + To associate a type converter with a target type apply a + TypeConverterAttribute to the target type. Specify the + type of the type converter on the attribute. + + + Nicko Cadell + Gert Driesen + + + + The string type name of the type converter + + + + + Default constructor + + + + Default constructor + + + + + + Create a new type converter attribute for the specified type name + + The string type name of the type converter + + + The type specified must implement the + or the interfaces. + + + + + + Create a new type converter attribute for the specified type + + The type of the type converter + + + The type specified must implement the + or the interfaces. + + + + + + The string type name of the type converter + + + The string type name of the type converter + + + + The type specified must implement the + or the interfaces. + + + + + + A straightforward implementation of the interface. + + + + This is the default implementation of the + interface. Implementors of the interface + should aggregate an instance of this type. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Append on on all attached appenders. + + The event being logged. + The number of appenders called. + + + Calls the method on all + attached appenders. + + + + + + Append on on all attached appenders. + + The array of events being logged. + The number of appenders called. + + + Calls the method on all + attached appenders. + + + + + + Calls the DoAppende method on the with + the objects supplied. + + The appender + The events + + + If the supports the + interface then the will be passed + through using that interface. Otherwise the + objects in the array will be passed one at a time. + + + + + + Attaches an appender. + + The appender to add. + + + If the appender is already in the list it won't be added again. + + + + + + Gets an attached appender with the specified name. + + The name of the appender to get. + + The appender with the name specified, or null if no appender with the + specified name is found. + + + + Lookup an attached appender by name. + + + + + + Removes all attached appenders. + + + + Removes and closes all attached appenders + + + + + + Removes the specified appender from the list of attached appenders. + + The appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + List of appenders + + + + + Array of appenders, used to cache the m_appenderList + + + + + The fully qualified type of the AppenderAttachedImpl class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets all attached appenders. + + + A collection of attached appenders, or null if there + are no attached appenders. + + + + The read only collection of all currently attached appenders. + + + + + + This class aggregates several PropertiesDictionary collections together. + + + + Provides a dictionary style lookup over an ordered list of + collections. + + + Nicko Cadell + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Add a Properties Dictionary to this composite collection + + the properties to add + + + Properties dictionaries added first take precedence over dictionaries added + later. + + + + + + Flatten this composite collection into a single properties dictionary + + the flattened dictionary + + + Reduces the collection of ordered dictionaries to a single dictionary + containing the resultant values for the keys. + + + + + + Gets the value of a property + + + The value for the property with the specified key + + + + Looks up the value for the specified. + The collections are searched + in the order in which they were added to this collection. The value + returned is the value held by the first collection that contains + the specified key. + + + If none of the collections contain the specified key then + null is returned. + + + + + + Base class for Context Properties implementations + + + + This class defines a basic property get set accessor + + + Nicko Cadell + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Gets or sets the value of a property + + + + + + Wrapper class used to map converter names to converter types + + + + Pattern converter info class used during configuration by custom + PatternString and PatternLayer converters. + + + + + + default constructor + + + + + + + + + + + Gets or sets the name of the conversion pattern + + + + The name of the pattern in the format string + + + + + + Gets or sets the type of the converter + + + + The value specified must extend the + type. + + + + + + + + + + + Subclass of that maintains a count of + the number of bytes written. + + + + This writer counts the number of bytes written. + + + Nicko Cadell + Gert Driesen + + + + that does not leak exceptions + + + + does not throw exceptions when things go wrong. + Instead, it delegates error handling to its . + + + Nicko Cadell + Gert Driesen + + + + Adapter that extends and forwards all + messages to an instance of . + + + + Adapter that extends and forwards all + messages to an instance of . + + + Nicko Cadell + + + + The writer to forward messages to + + + + + Create an instance of that forwards all + messages to a . + + The to forward to + + + Create an instance of that forwards all + messages to a . + + + + + + Closes the writer and releases any system resources associated with the writer + + + + + + + + + Dispose this writer + + flag indicating if we are being disposed + + + Dispose this writer + + + + + + Flushes any buffered output + + + + Clears all buffers for the writer and causes any buffered data to be written + to the underlying device + + + + + + Writes a character to the wrapped TextWriter + + the value to write to the TextWriter + + + Writes a character to the wrapped TextWriter + + + + + + Writes a character buffer to the wrapped TextWriter + + the data buffer + the start index + the number of characters to write + + + Writes a character buffer to the wrapped TextWriter + + + + + + Writes a string to the wrapped TextWriter + + the value to write to the TextWriter + + + Writes a string to the wrapped TextWriter + + + + + + Gets or sets the underlying . + + + The underlying . + + + + Gets or sets the underlying . + + + + + + The Encoding in which the output is written + + + The + + + + The Encoding in which the output is written + + + + + + Gets an object that controls formatting + + + The format provider + + + + Gets an object that controls formatting + + + + + + Gets or sets the line terminator string used by the TextWriter + + + The line terminator to use + + + + Gets or sets the line terminator string used by the TextWriter + + + + + + Constructor + + the writer to actually write to + the error handler to report error to + + + Create a new QuietTextWriter using a writer and error handler + + + + + + Writes a character to the underlying writer + + the char to write + + + Writes a character to the underlying writer + + + + + + Writes a buffer to the underlying writer + + the buffer to write + the start index to write from + the number of characters to write + + + Writes a buffer to the underlying writer + + + + + + Writes a string to the output. + + The string data to write to the output. + + + Writes a string to the output. + + + + + + Closes the underlying output writer. + + + + Closes the underlying output writer. + + + + + + The error handler instance to pass all errors to + + + + + Flag to indicate if this writer is closed + + + + + Gets or sets the error handler that all errors are passed to. + + + The error handler that all errors are passed to. + + + + Gets or sets the error handler that all errors are passed to. + + + + + + Gets a value indicating whether this writer is closed. + + + true if this writer is closed, otherwise false. + + + + Gets a value indicating whether this writer is closed. + + + + + + Constructor + + The to actually write to. + The to report errors to. + + + Creates a new instance of the class + with the specified and . + + + + + + Writes a character to the underlying writer and counts the number of bytes written. + + the char to write + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Writes a buffer to the underlying writer and counts the number of bytes written. + + the buffer to write + the start index to write from + the number of characters to write + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Writes a string to the output and counts the number of bytes written. + + The string data to write to the output. + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Total number of bytes written. + + + + + Gets or sets the total number of bytes written. + + + The total number of bytes written. + + + + Gets or sets the total number of bytes written. + + + + + + A fixed size rolling buffer of logging events. + + + + An array backed fixed size leaky bucket. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The maximum number of logging events in the buffer. + + + Initializes a new instance of the class with + the specified maximum number of buffered logging events. + + + The argument is not a positive integer. + + + + Appends a to the buffer. + + The event to append to the buffer. + The event discarded from the buffer, if the buffer is full, otherwise null. + + + Append an event to the buffer. If the buffer still contains free space then + null is returned. If the buffer is full then an event will be dropped + to make space for the new event, the event dropped is returned. + + + + + + Get and remove the oldest event in the buffer. + + The oldest logging event in the buffer + + + Gets the oldest (first) logging event in the buffer and removes it + from the buffer. + + + + + + Pops all the logging events from the buffer into an array. + + An array of all the logging events in the buffer. + + + Get all the events in the buffer and clear the buffer. + + + + + + Clear the buffer + + + + Clear the buffer of all events. The events in the buffer are lost. + + + + + + Gets the th oldest event currently in the buffer. + + The th oldest event currently in the buffer. + + + If is outside the range 0 to the number of events + currently in the buffer, then null is returned. + + + + + + Gets the maximum size of the buffer. + + The maximum size of the buffer. + + + Gets the maximum size of the buffer + + + + + + Gets the number of logging events in the buffer. + + The number of logging events in the buffer. + + + This number is guaranteed to be in the range 0 to + (inclusive). + + + + + + An always empty . + + + + A singleton implementation of the + interface that always represents an empty collection. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Copies the elements of the to an + , starting at a particular Array index. + + The one-dimensional + that is the destination of the elements copied from + . The Array must have zero-based + indexing. + The zero-based index in array at which + copying begins. + + + As the collection is empty no values are copied into the array. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + The singleton instance of the empty collection. + + + + + Gets the singleton instance of the empty collection. + + The singleton instance of the empty collection. + + + Gets the singleton instance of the empty collection. + + + + + + Gets a value indicating if access to the is synchronized (thread-safe). + + + true if access to the is synchronized (thread-safe); otherwise, false. + + + + For the this property is always true. + + + + + + Gets the number of elements contained in the . + + + The number of elements contained in the . + + + + As the collection is empty the is always 0. + + + + + + Gets an object that can be used to synchronize access to the . + + + An object that can be used to synchronize access to the . + + + + As the collection is empty and thread safe and synchronized this instance is also + the object. + + + + + + An always empty . + + + + A singleton implementation of the + interface that always represents an empty collection. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Copies the elements of the to an + , starting at a particular Array index. + + The one-dimensional + that is the destination of the elements copied from + . The Array must have zero-based + indexing. + The zero-based index in array at which + copying begins. + + + As the collection is empty no values are copied into the array. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + Adds an element with the provided key and value to the + . + + The to use as the key of the element to add. + The to use as the value of the element to add. + + + As the collection is empty no new values can be added. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + Removes all elements from the . + + + + As the collection is empty no values can be removed. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + Determines whether the contains an element + with the specified key. + + The key to locate in the . + false + + + As the collection is empty the method always returns false. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + Removes the element with the specified key from the . + + The key of the element to remove. + + + As the collection is empty no values can be removed. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + The singleton instance of the empty dictionary. + + + + + Gets the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets a value indicating if access to the is synchronized (thread-safe). + + + true if access to the is synchronized (thread-safe); otherwise, false. + + + + For the this property is always true. + + + + + + Gets the number of elements contained in the + + + The number of elements contained in the . + + + + As the collection is empty the is always 0. + + + + + + Gets an object that can be used to synchronize access to the . + + + An object that can be used to synchronize access to the . + + + + As the collection is empty and thread safe and synchronized this instance is also + the object. + + + + + + Gets a value indicating whether the has a fixed size. + + true + + + As the collection is empty always returns true. + + + + + + Gets a value indicating whether the is read-only. + + true + + + As the collection is empty always returns true. + + + + + + Gets an containing the keys of the . + + An containing the keys of the . + + + As the collection is empty a is returned. + + + + + + Gets an containing the values of the . + + An containing the values of the . + + + As the collection is empty a is returned. + + + + + + Gets or sets the element with the specified key. + + The key of the element to get or set. + null + + + As the collection is empty no values can be looked up or stored. + If the index getter is called then null is returned. + A is thrown if the setter is called. + + + This dictionary is always empty and cannot be modified. + + + + Contain the information obtained when parsing formatting modifiers + in conversion modifiers. + + + + Holds the formatting information extracted from the format string by + the . This is used by the + objects when rendering the output. + + + Nicko Cadell + Gert Driesen + + + + Defaut Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + + + Initializes a new instance of the class + with the specified parameters. + + + + + + Gets or sets the minimum value. + + + The minimum value. + + + + Gets or sets the minimum value. + + + + + + Gets or sets the maximum value. + + + The maximum value. + + + + Gets or sets the maximum value. + + + + + + Gets or sets a flag indicating whether left align is enabled + or not. + + + A flag indicating whether left align is enabled or not. + + + + Gets or sets a flag indicating whether left align is enabled or not. + + + + + + Implementation of Properties collection for the + + + + This class implements a properties collection that is thread safe and supports both + storing properties and capturing a read only copy of the current propertied. + + + This class is optimized to the scenario where the properties are read frequently + and are modified infrequently. + + + Nicko Cadell + + + + The read only copy of the properties. + + + + This variable is declared volatile to prevent the compiler and JIT from + reordering reads and writes of this thread performed on different threads. + + + + + + Lock object used to synchronize updates within this instance + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Remove a property from the global context + + the key for the entry to remove + + + Removing an entry from the global context properties is relatively expensive compared + with reading a value. + + + + + + Clear the global context properties + + + + + Get a readonly immutable copy of the properties + + the current global context properties + + + This implementation is fast because the GlobalContextProperties class + stores a readonly copy of the properties. + + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Reading the value for a key is faster than setting the value. + When the value is written a new read only copy of + the properties is created. + + + + + + The static class ILogExtensions contains a set of widely used + methods that ease the interaction with the ILog interface implementations. + + + + This class contains methods for logging at different levels and checks the + properties for determining if those logging levels are enabled in the current + configuration. + + + Simple example of logging messages + + using log4net.Util; + + ILog log = LogManager.GetLogger("application-log"); + + log.InfoExt("Application Start"); + log.DebugExt("This is a debug message"); + + + + + + The fully qualified type of the Logger class. + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is WARN + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is WARN enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is WARN + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is WARN enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is ERROR + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is ERROR enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is ERROR + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is ERROR enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is FATAL + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is FATAL enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is FATAL + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is FATAL enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Manages a mapping from levels to + + + + Manages an ordered mapping from instances + to subclasses. + + + Nicko Cadell + + + + Default constructor + + + + Initialise a new instance of . + + + + + + Add a to this mapping + + the entry to add + + + If a has previously been added + for the same then that entry will be + overwritten. + + + + + + Lookup the mapping for the specified level + + the level to lookup + the for the level or null if no mapping found + + + Lookup the value for the specified level. Finds the nearest + mapping value for the level that is equal to or less than the + specified. + + + If no mapping could be found then null is returned. + + + + + + Initialize options + + + + Caches the sorted list of in an array + + + + + + Implementation of Properties collection for the + + + + Class implements a collection of properties that is specific to each thread. + The class is not synchronized as each thread has its own . + + + This class stores its properties in a slot on the named + log4net.Util.LogicalThreadContextProperties. + + + For .NET Standard 1.3 this class uses + System.Threading.AsyncLocal rather than . + + + The requires a link time + for the + . + If the calling code does not have this permission then this context will be disabled. + It will not store any property values set on it. + + + Nicko Cadell + + + + Flag used to disable this context if we don't have permission to access the CallContext. + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Remove a property + + the key for the entry to remove + + + Remove the value for the specified from the context. + + + + + + Clear all the context properties + + + + Clear all the context properties + + + + + + Get the PropertiesDictionary stored in the LocalDataStoreSlot for this thread. + + create the dictionary if it does not exist, otherwise return null if is does not exist + the properties for this thread + + + The collection returned is only to be used on the calling thread. If the + caller needs to share the collection between different threads then the + caller must clone the collection before doings so. + + + + + + Gets the call context get data. + + The peroperties dictionary stored in the call context + + The method has a + security link demand, therfore we must put the method call in a seperate method + that we can wrap in an exception handler. + + + + + Sets the call context data. + + The properties. + + The method has a + security link demand, therfore we must put the method call in a seperate method + that we can wrap in an exception handler. + + + + + The fully qualified type of the LogicalThreadContextProperties class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Get or set the property value for the specified. + + + + + + Delegate type used for LogicalThreadContextStack's callbacks. + + + + + Implementation of Stack for the + + + + Implementation of Stack for the + + + Nicko Cadell + + + + The stack store. + + + + + The name of this within the + . + + + + + The callback used to let the register a + new instance of a . + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Clears all the contextual information held in this stack. + + + + Clears all the contextual information held in this stack. + Only call this if you think that this thread is being reused after + a previous call execution which may not have completed correctly. + You do not need to use this method if you always guarantee to call + the method of the + returned from even in exceptional circumstances, + for example by using the using(log4net.LogicalThreadContext.Stacks["NDC"].Push("Stack_Message")) + syntax. + + + + + + Removes the top context from this stack. + + The message in the context that was removed from the top of this stack. + + + Remove the top context from this stack, and return + it to the caller. If this stack is empty then an + empty string (not ) is returned. + + + + + + Pushes a new context message into this stack. + + The new context message. + + An that can be used to clean up the context stack. + + + + Pushes a new context onto this stack. An + is returned that can be used to clean up this stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.LogicalThreadContext.Stacks["NDC"].Push("Stack_Message")) + { + log.Warn("This should have an ThreadContext Stack message"); + } + + + + + + Gets the current context information for this stack. + + The current context information. + + + + Gets the current context information for this stack. + + Gets the current context information + + + Gets the current context information for this stack. + + + + + + Get a portable version of this object + + the portable instance of this object + + + Get a cross thread portable version of this object + + + + + + The number of messages in the stack + + + The current number of messages in the stack + + + + The current number of messages in the stack. That is + the number of times has been called + minus the number of times has been called. + + + + + + Gets and sets the internal stack used by this + + The internal storage stack + + + This property is provided only to support backward compatability + of the . Tytpically the internal stack should not + be modified. + + + + + + Inner class used to represent a single context frame in the stack. + + + + Inner class used to represent a single context frame in the stack. + + + + + + Constructor + + The message for this context. + The parent context in the chain. + + + Initializes a new instance of the class + with the specified message and parent context. + + + + + + Get the message. + + The message. + + + Get the message. + + + + + + Gets the full text of the context down to the root level. + + + The full text of the context down to the root level. + + + + Gets the full text of the context down to the root level. + + + + + + Struct returned from the method. + + + + This struct implements the and is designed to be used + with the pattern to remove the stack frame at the end of the scope. + + + + + + The depth to trim the stack to when this instance is disposed + + + + + The outer LogicalThreadContextStack. + + + + + Constructor + + The internal stack used by the ThreadContextStack. + The depth to return the stack to when this object is disposed. + + + Initializes a new instance of the class with + the specified stack and return depth. + + + + + + Returns the stack to the correct depth. + + + + Returns the stack to the correct depth. + + + + + + Implementation of Stacks collection for the + + + + Implementation of Stacks collection for the + + + Nicko Cadell + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + The fully qualified type of the ThreadContextStacks class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the named thread context stack + + + The named stack + + + + Gets the named thread context stack + + + + + + + + + + + + + Outputs log statements from within the log4net assembly. + + + + Log4net components cannot make log4net logging calls. However, it is + sometimes useful for the user to learn about what log4net is + doing. + + + All log4net internal debug calls go to the standard output stream + whereas internal error messages are sent to the standard error output + stream. + + + Nicko Cadell + Gert Driesen + + + + Formats Prefix, Source, and Message in the same format as the value + sent to Console.Out and Trace.Write. + + + + + + Initializes a new instance of the class. + + + + + + + + + Static constructor that initializes logging by reading + settings from the application configuration file. + + + + The log4net.Internal.Debug application setting + controls internal debugging. This setting should be set + to true to enable debugging. + + + The log4net.Internal.Quiet application setting + suppresses all internal logging including error messages. + This setting should be set to true to enable message + suppression. + + + + + + Raises the LogReceived event when an internal messages is received. + + + + + + + + + Writes log4net internal debug messages to the + standard output stream. + + + The message to log. + + + All internal debug messages are prepended with + the string "log4net: ". + + + + + + Writes log4net internal debug messages to the + standard output stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal debug messages are prepended with + the string "log4net: ". + + + + + + Writes log4net internal warning messages to the + standard error stream. + + The Type that generated this message. + The message to log. + + + All internal warning messages are prepended with + the string "log4net:WARN ". + + + + + + Writes log4net internal warning messages to the + standard error stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal warning messages are prepended with + the string "log4net:WARN ". + + + + + + Writes log4net internal error messages to the + standard error stream. + + The Type that generated this message. + The message to log. + + + All internal error messages are prepended with + the string "log4net:ERROR ". + + + + + + Writes log4net internal error messages to the + standard error stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal debug messages are prepended with + the string "log4net:ERROR ". + + + + + + Writes output to the standard output stream. + + The message to log. + + + Writes to both Console.Out and System.Diagnostics.Trace. + Note that the System.Diagnostics.Trace is not supported + on the Compact Framework. + + + If the AppDomain is not configured with a config file then + the call to System.Diagnostics.Trace may fail. This is only + an issue if you are programmatically creating your own AppDomains. + + + + + + Writes output to the standard error stream. + + The message to log. + + + Writes to both Console.Error and System.Diagnostics.Trace. + Note that the System.Diagnostics.Trace is not supported + on the Compact Framework. + + + If the AppDomain is not configured with a config file then + the call to System.Diagnostics.Trace may fail. This is only + an issue if you are programmatically creating your own AppDomains. + + + + + + Default debug level + + + + + In quietMode not even errors generate any output. + + + + + The event raised when an internal message has been received. + + + + + The Type that generated the internal message. + + + + + The DateTime stamp of when the internal message was received. + + + + + The UTC DateTime stamp of when the internal message was received. + + + + + A string indicating the severity of the internal message. + + + "log4net: ", + "log4net:ERROR ", + "log4net:WARN " + + + + + The internal log message. + + + + + The Exception related to the message. + + + Optional. Will be null if no Exception was passed. + + + + + Gets or sets a value indicating whether log4net internal logging + is enabled or disabled. + + + true if log4net internal logging is enabled, otherwise + false. + + + + When set to true, internal debug level logging will be + displayed. + + + This value can be set by setting the application setting + log4net.Internal.Debug in the application configuration + file. + + + The default value is false, i.e. debugging is + disabled. + + + + + The following example enables internal debugging using the + application configuration file : + + + + + + + + + + + + + Gets or sets a value indicating whether log4net should generate no output + from internal logging, not even for errors. + + + true if log4net should generate no output at all from internal + logging, otherwise false. + + + + When set to true will cause internal logging at all levels to be + suppressed. This means that no warning or error reports will be logged. + This option overrides the setting and + disables all debug also. + + This value can be set by setting the application setting + log4net.Internal.Quiet in the application configuration file. + + + The default value is false, i.e. internal logging is not + disabled. + + + + The following example disables internal logging using the + application configuration file : + + + + + + + + + + + + + + + + + Test if LogLog.Debug is enabled for output. + + + true if Debug is enabled + + + + Test if LogLog.Debug is enabled for output. + + + + + + Test if LogLog.Warn is enabled for output. + + + true if Warn is enabled + + + + Test if LogLog.Warn is enabled for output. + + + + + + Test if LogLog.Error is enabled for output. + + + true if Error is enabled + + + + Test if LogLog.Error is enabled for output. + + + + + + Subscribes to the LogLog.LogReceived event and stores messages + to the supplied IList instance. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a native error code and message. + + + + Represents a Win32 platform native error. + + + Nicko Cadell + Gert Driesen + + + + Create an instance of the class with the specified + error number and message. + + The number of the native error. + The message of the native error. + + + Create an instance of the class with the specified + error number and message. + + + + + + Create a new instance of the class for the last Windows error. + + + An instance of the class for the last windows error. + + + + The message for the error number is lookup up using the + native Win32 FormatMessage function. + + + + + + Create a new instance of the class. + + the error number for the native error + + An instance of the class for the specified + error number. + + + + The message for the specified error number is lookup up using the + native Win32 FormatMessage function. + + + + + + Retrieves the message corresponding with a Win32 message identifier. + + Message identifier for the requested message. + + The message corresponding with the specified message identifier. + + + + The message will be searched for in system message-table resource(s) + using the native FormatMessage function. + + + + + + Return error information string + + error information string + + + Return error information string + + + + + + Formats a message string. + + Formatting options, and how to interpret the parameter. + Location of the message definition. + Message identifier for the requested message. + Language identifier for the requested message. + If includes FORMAT_MESSAGE_ALLOCATE_BUFFER, the function allocates a buffer using the LocalAlloc function, and places the pointer to the buffer at the address specified in . + If the FORMAT_MESSAGE_ALLOCATE_BUFFER flag is not set, this parameter specifies the maximum number of TCHARs that can be stored in the output buffer. If FORMAT_MESSAGE_ALLOCATE_BUFFER is set, this parameter specifies the minimum number of TCHARs to allocate for an output buffer. + Pointer to an array of values that are used as insert values in the formatted message. + + + The function requires a message definition as input. The message definition can come from a + buffer passed into the function. It can come from a message table resource in an + already-loaded module. Or the caller can ask the function to search the system's message + table resource(s) for the message definition. The function finds the message definition + in a message table resource based on a message identifier and a language identifier. + The function copies the formatted message text to an output buffer, processing any embedded + insert sequences if requested. + + + To prevent the usage of unsafe code, this stub does not support inserting values in the formatted message. + + + + + If the function succeeds, the return value is the number of TCHARs stored in the output + buffer, excluding the terminating null character. + + + If the function fails, the return value is zero. To get extended error information, + call . + + + + + + Gets the number of the native error. + + + The number of the native error. + + + + Gets the number of the native error. + + + + + + Gets the message of the native error. + + + The message of the native error. + + + + + Gets the message of the native error. + + + + + An always empty . + + + + A singleton implementation of the over a collection + that is empty and not modifiable. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Test if the enumerator can advance, if so advance. + + false as the cannot advance. + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will always return false. + + + + + + Resets the enumerator back to the start. + + + + As the enumerator is over an empty collection does nothing. + + + + + + The singleton instance of the . + + + + + Gets the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets the current object from the enumerator. + + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current key from the enumerator. + + + Throws an exception because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current value from the enumerator. + + The current value from the enumerator. + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current entry from the enumerator. + + + Throws an because the + never has a current entry. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + An always empty . + + + + A singleton implementation of the over a collection + that is empty and not modifiable. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Test if the enumerator can advance, if so advance + + false as the cannot advance. + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will always return false. + + + + + + Resets the enumerator back to the start. + + + + As the enumerator is over an empty collection does nothing. + + + + + + The singleton instance of the . + + + + + Get the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets the current object from the enumerator. + + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + A SecurityContext used when a SecurityContext is not required + + + + The is a no-op implementation of the + base class. It is used where a + is required but one has not been provided. + + + Nicko Cadell + + + + Singleton instance of + + + + Singleton instance of + + + + + + Private constructor + + + + Private constructor for singleton pattern. + + + + + + Impersonate this SecurityContext + + State supplied by the caller + null + + + No impersonation is done and null is always returned. + + + + + + Implements log4net's default error handling policy which consists + of emitting a message for the first error in an appender and + ignoring all subsequent errors. + + + + The error message is processed using the LogLog sub-system by default. + + + This policy aims at protecting an otherwise working application + from being flooded with error messages when logging fails. + + + Nicko Cadell + Gert Driesen + Ron Grabowski + + + + Default Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + The prefix to use for each message. + + + Initializes a new instance of the class + with the specified prefix. + + + + + + Reset the error handler back to its initial disabled state. + + + + + Log an Error + + The error message. + The exception. + The internal error code. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + Log the very first error + + The error message. + The exception. + The internal error code. + + + Sends the error information to 's Error method. + + + + + + Log an Error + + The error message. + The exception. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + Log an error + + The error message. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + The UTC date the error was recorded. + + + + + Flag to indicate if it is the first error + + + + + The message recorded during the first error. + + + + + The exception recorded during the first error. + + + + + The error code recorded during the first error. + + + + + String to prefix each message with + + + + + The fully qualified type of the OnlyOnceErrorHandler class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Is error logging enabled + + + + Is error logging enabled. Logging is only enabled for the + first error delivered to the . + + + + + + The date the first error that trigged this error handler occurred, or if it has not been triggered. + + + + + The UTC date the first error that trigged this error handler occured, or if it has not been triggered. + + + + + The message from the first error that trigged this error handler. + + + + + The exception from the first error that trigged this error handler. + + + May be . + + + + + The error code from the first error that trigged this error handler. + + + Defaults to + + + + + A convenience class to convert property values to specific types. + + + + Utility functions for converting types and parsing values. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Converts a string to a value. + + String to convert. + The default value. + The value of . + + + If is "true", then true is returned. + If is "false", then false is returned. + Otherwise, is returned. + + + + + + Parses a file size into a number. + + String to parse. + The default value. + The value of . + + + Parses a file size of the form: number[KB|MB|GB] into a + long value. It is scaled with the appropriate multiplier. + + + is returned when + cannot be converted to a value. + + + + + + Converts a string to an object. + + The target type to convert to. + The string to convert to an object. + + The object converted from a string or null when the + conversion failed. + + + + Converts a string to an object. Uses the converter registry to try + to convert the string value into the specified target type. + + + + + + Checks if there is an appropriate type conversion from the source type to the target type. + + The type to convert from. + The type to convert to. + true if there is a conversion from the source type to the target type. + + Checks if there is an appropriate type conversion from the source type to the target type. + + + + + + + Converts an object to the target type. + + The object to convert to the target type. + The type to convert to. + The converted object. + + + Converts an object to the target type. + + + + + + Instantiates an object given a class name. + + The fully qualified class name of the object to instantiate. + The class to which the new object should belong. + The object to return in case of non-fulfillment. + + An instance of the or + if the object could not be instantiated. + + + + Checks that the is a subclass of + . If that test fails or the object could + not be instantiated, then is returned. + + + + + + Performs variable substitution in string from the + values of keys found in . + + The string on which variable substitution is performed. + The dictionary to use to lookup variables. + The result of the substitutions. + + + The variable substitution delimiters are ${ and }. + + + For example, if props contains key=value, then the call + + + + string s = OptionConverter.SubstituteVariables("Value of key is ${key}."); + + + + will set the variable s to "Value of key is value.". + + + If no value could be found for the specified key, then substitution + defaults to an empty string. + + + For example, if system properties contains no value for the key + "nonExistentKey", then the call + + + + string s = OptionConverter.SubstituteVariables("Value of nonExistentKey is [${nonExistentKey}]"); + + + + will set s to "Value of nonExistentKey is []". + + + An Exception is thrown if contains a start + delimiter "${" which is not balanced by a stop delimiter "}". + + + + + + Converts the string representation of the name or numeric value of one or + more enumerated constants to an equivalent enumerated object. + + The type to convert to. + The enum string value. + If true, ignore case; otherwise, regard case. + An object of type whose value is represented by . + + + + The fully qualified type of the OptionConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Most of the work of the class + is delegated to the PatternParser class. + + + + The PatternParser processes a pattern string and + returns a chain of objects. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The pattern to parse. + + + Initializes a new instance of the class + with the specified pattern string. + + + + + + Parses the pattern into a chain of pattern converters. + + The head of a chain of pattern converters. + + + Parses the pattern into a chain of pattern converters. + + + + + + Build the unified cache of converters from the static and instance maps + + the list of all the converter names + + + Build the unified cache of converters from the static and instance maps + + + + + + Internal method to parse the specified pattern to find specified matches + + the pattern to parse + the converter names to match in the pattern + + + The matches param must be sorted such that longer strings come before shorter ones. + + + + + + Process a parsed literal + + the literal text + + + + Process a parsed converter pattern + + the name of the converter + the optional option for the converter + the formatting info for the converter + + + + Resets the internal state of the parser and adds the specified pattern converter + to the chain. + + The pattern converter to add. + + + + The first pattern converter in the chain + + + + + the last pattern converter in the chain + + + + + The pattern + + + + + Internal map of converter identifiers to converter types + + + + This map overrides the static s_globalRulesRegistry map. + + + + + + The fully qualified type of the PatternParser class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Get the converter registry used by this parser + + + The converter registry used by this parser + + + + Get the converter registry used by this parser + + + + + + Sort strings by length + + + + that orders strings by string length. + The longest strings are placed first + + + + + + This class implements a patterned string. + + + + This string has embedded patterns that are resolved and expanded + when the string is formatted. + + + This class functions similarly to the + in that it accepts a pattern and renders it to a string. Unlike the + however the PatternString + does not render the properties of a specific but + of the process in general. + + + The recognized conversion pattern names are: + + + + Conversion Pattern Name + Effect + + + appdomain + + + Used to output the friendly name of the current AppDomain. + + + + + appsetting + + + Used to output the value of a specific appSetting key in the application + configuration file. + + + + + date + + + Used to output the current date and time in the local time zone. + To output the date in universal time use the %utcdate pattern. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %date{HH:mm:ss,fff} or + %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %date{ISO8601} or %date{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + env + + + Used to output the a specific environment variable. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %env{COMPUTERNAME} would include the value + of the COMPUTERNAME environment variable. + + + The env pattern is not supported on the .NET Compact Framework. + + + + + identity + + + Used to output the user name for the currently active user + (Principal.Identity.Name). + + + + + newline + + + Outputs the platform dependent line separator character or + characters. + + + This conversion pattern name offers the same performance as using + non-portable line separator strings such as "\n", or "\r\n". + Thus, it is the preferred way of specifying a line separator. + + + + + processid + + + Used to output the system process ID for the current process. + + + + + property + + + Used to output a specific context property. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %property{user} would include the value + from the property that is keyed by the string 'user'. Each property value + that is to be included in the log must be specified separately. + Properties are stored in logging contexts. By default + the log4net:HostName property is set to the name of machine on + which the event was originally logged. + + + If no key is specified, e.g. %property then all the keys and their + values are printed in a comma separated list. + + + The properties of an event are combined from a number of different + contexts. These are listed below in the order in which they are searched. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + random + + + Used to output a random string of characters. The string is made up of + uppercase letters and numbers. By default the string is 4 characters long. + The length of the string can be specified within braces directly following the + pattern specifier, e.g. %random{8} would output an 8 character string. + + + + + username + + + Used to output the WindowsIdentity for the currently + active user. + + + + + utcdate + + + Used to output the date of the logging event in universal time. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %utcdate{HH:mm:ss,fff} or + %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %utcdate{ISO8601} or %utcdate{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + % + + + The sequence %% outputs a single percent sign. + + + + + + Additional pattern converters may be registered with a specific + instance using or + . + + + See the for details on the + format modifiers supported by the patterns. + + + Nicko Cadell + + + + Internal map of converter identifiers to converter types. + + + + + the pattern + + + + + the head of the pattern converter chain + + + + + patterns defined on this PatternString only + + + + + Initialize the global registry + + + + + Default constructor + + + + Initialize a new instance of + + + + + + Constructs a PatternString + + The pattern to use with this PatternString + + + Initialize a new instance of with the pattern specified. + + + + + + Initialize object options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Create the used to parse the pattern + + the pattern to parse + The + + + Returns PatternParser used to parse the conversion string. Subclasses + may override this to return a subclass of PatternParser which recognize + custom conversion pattern name. + + + + + + Produces a formatted string as specified by the conversion pattern. + + The TextWriter to write the formatted event to + + + Format the pattern to the . + + + + + + Format the pattern as a string + + the pattern formatted as a string + + + Format the pattern to a string. + + + + + + Add a converter to this PatternString + + the converter info + + + This version of the method is used by the configurator. + Programmatic users should use the alternative method. + + + + + + Add a converter to this PatternString + + the name of the conversion pattern for this converter + the type of the converter + + + Add a converter to this PatternString + + + + + + Gets or sets the pattern formatting string + + + The pattern formatting string + + + + The ConversionPattern option. This is the string which + controls formatting and consists of a mix of literal content and + conversion specifiers. + + + + + + String keyed object map. + + + + While this collection is serializable only member + objects that are serializable will + be serialized along with this collection. + + + Nicko Cadell + Gert Driesen + + + + String keyed object map that is read only. + + + + This collection is readonly and cannot be modified. + + + While this collection is serializable only member + objects that are serializable will + be serialized along with this collection. + + + Nicko Cadell + Gert Driesen + + + + The Hashtable used to store the properties data + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Copy Constructor + + properties to copy + + + Initializes a new instance of the class. + + + + + + Deserialization constructor + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Gets the key names. + + An array of all the keys. + + + Gets the key names. + + + + + + Test if the dictionary contains a specified key + + the key to look for + true if the dictionary contains the specified key + + + Test if the dictionary contains a specified key + + + + + + Serializes this object into the provided. + + The to populate with data. + The destination for this serialization. + + + Serializes this object into the provided. + + + + + + See + + + + + See + + + + + + See + + + + + + + Remove all properties from the properties collection + + + + + See + + + + + + + See + + + + + + + See + + + + + Gets or sets the value of the property with the specified key. + + + The value of the property with the specified key. + + The key of the property to get or set. + + + The property value will only be serialized if it is serializable. + If it cannot be serialized it will be silently ignored if + a serialization operation is performed. + + + + + + The hashtable used to store the properties + + + The internal collection used to store the properties + + + + The hashtable used to store the properties + + + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + The number of properties in this collection + + + + + See + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + properties to copy + + + Initializes a new instance of the class. + + + + + + Initializes a new instance of the class + with serialized data. + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Because this class is sealed the serialization constructor is private. + + + + + + Remove the entry with the specified key from this dictionary + + the key for the entry to remove + + + Remove the entry with the specified key from this dictionary + + + + + + See + + an enumerator + + + Returns a over the contest of this collection. + + + + + + See + + the key to remove + + + Remove the entry with the specified key from this dictionary + + + + + + See + + the key to lookup in the collection + true if the collection contains the specified key + + + Test if this collection contains a specified key. + + + + + + Remove all properties from the properties collection + + + + Remove all properties from the properties collection + + + + + + See + + the key + the value to store for the key + + + Store a value for the specified . + + + Thrown if the is not a string + + + + See + + + + + + + See + + + + + Gets or sets the value of the property with the specified key. + + + The value of the property with the specified key. + + The key of the property to get or set. + + + The property value will only be serialized if it is serializable. + If it cannot be serialized it will be silently ignored if + a serialization operation is performed. + + + + + + See + + + false + + + + This collection is modifiable. This property always + returns false. + + + + + + See + + + The value for the key specified. + + + + Get or set a value for the specified . + + + Thrown if the is not a string + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + A class to hold the key and data for a property set in the config file + + + + A class to hold the key and data for a property set in the config file + + + + + + Override Object.ToString to return sensible debug info + + string info about this object + + + + Property Key + + + Property Key + + + + Property Key. + + + + + + Property Value + + + Property Value + + + + Property Value. + + + + + + A that ignores the message + + + + This writer is used in special cases where it is necessary + to protect a writer from being closed by a client. + + + Nicko Cadell + + + + Constructor + + the writer to actually write to + + + Create a new ProtectCloseTextWriter using a writer + + + + + + Attach this instance to a different underlying + + the writer to attach to + + + Attach this instance to a different underlying + + + + + + Does not close the underlying output writer. + + + + Does not close the underlying output writer. + This method does nothing. + + + + + + Defines a lock that supports single writers and multiple readers + + + + ReaderWriterLock is used to synchronize access to a resource. + At any given time, it allows either concurrent read access for + multiple threads, or write access for a single thread. In a + situation where a resource is changed infrequently, a + ReaderWriterLock provides better throughput than a simple + one-at-a-time lock, such as . + + + If a platform does not support a System.Threading.ReaderWriterLock + implementation then all readers and writers are serialized. Therefore + the caller must not rely on multiple simultaneous readers. + + + Nicko Cadell + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Acquires a reader lock + + + + blocks if a different thread has the writer + lock, or if at least one thread is waiting for the writer lock. + + + + + + Decrements the lock count + + + + decrements the lock count. When the count + reaches zero, the lock is released. + + + + + + Acquires the writer lock + + + + This method blocks if another thread has a reader lock or writer lock. + + + + + + Decrements the lock count on the writer lock + + + + ReleaseWriterLock decrements the writer lock count. + When the count reaches zero, the writer lock is released. + + + + + + A that can be and reused + + + + A that can be and reused. + This uses a single buffer for string operations. + + + Nicko Cadell + + + + Create an instance of + + the format provider to use + + + Create an instance of + + + + + + Override Dispose to prevent closing of writer + + flag + + + Override Dispose to prevent closing of writer + + + + + + Reset this string writer so that it can be reused. + + the maximum buffer capacity before it is trimmed + the default size to make the buffer + + + Reset this string writer so that it can be reused. + The internal buffers are cleared and reset. + + + + + + Utility class for system specific information. + + + + Utility class of static methods for system specific information. + + + Nicko Cadell + Gert Driesen + Alexey Solofnenko + + + + Private constructor to prevent instances. + + + + Only static methods are exposed from this type. + + + + + + Initialize default values for private static fields. + + + + Only static methods are exposed from this type. + + + + + + Gets the assembly location path for the specified assembly. + + The assembly to get the location for. + The location of the assembly. + + + This method does not guarantee to return the correct path + to the assembly. If only tries to give an indication as to + where the assembly was loaded from. + + + + + + Gets the fully qualified name of the , including + the name of the assembly from which the was + loaded. + + The to get the fully qualified name for. + The fully qualified name for the . + + + This is equivalent to the Type.AssemblyQualifiedName property, + but this method works on the .NET Compact Framework 1.0 as well as + the full .NET runtime. + + + + + + Gets the short name of the . + + The to get the name for. + The short name of the . + + + The short name of the assembly is the + without the version, culture, or public key. i.e. it is just the + assembly's file name without the extension. + + + Use this rather than Assembly.GetName().Name because that + is not available on the Compact Framework. + + + Because of a FileIOPermission security demand we cannot do + the obvious Assembly.GetName().Name. We are allowed to get + the of the assembly so we + start from there and strip out just the assembly name. + + + + + + Gets the file name portion of the , including the extension. + + The to get the file name for. + The file name of the assembly. + + + Gets the file name portion of the , including the extension. + + + + + + Loads the type specified in the type string. + + A sibling type to use to load the type. + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified, it will be loaded from the assembly + containing the specified relative type. If the type is not found in the assembly + then all the loaded assemblies will be searched for the type. + + + + + + Loads the type specified in the type string. + + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified it will be loaded from the + assembly that is directly calling this method. If the type is not found + in the assembly then all the loaded assemblies will be searched for the type. + + + + + + Loads the type specified in the type string. + + An assembly to load the type from. + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified it will be loaded from the specified + assembly. If the type is not found in the assembly then all the loaded assemblies + will be searched for the type. + + + + + + Generate a new guid + + A new Guid + + + Generate a new guid + + + + + + Create an + + The name of the parameter that caused the exception + The value of the argument that causes this exception + The message that describes the error + the ArgumentOutOfRangeException object + + + Create a new instance of the class + with a specified error message, the parameter name, and the value + of the argument. + + + The Compact Framework does not support the 3 parameter constructor for the + type. This method provides an + implementation that works for all platforms. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Lookup an application setting + + the application settings key to lookup + the value for the key, or null + + + Configuration APIs are not supported under the Compact Framework + + + + + + Convert a path into a fully qualified local file path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + The path specified must be a local file path, a URI is not supported. + + + + + + Creates a new case-insensitive instance of the class with the default initial capacity. + + A new case-insensitive instance of the class with the default initial capacity + + + The new Hashtable instance uses the default load factor, the CaseInsensitiveHashCodeProvider, and the CaseInsensitiveComparer. + + + + + + Tests two strings for equality, the ignoring case. + + + If the platform permits, culture information is ignored completely (ordinal comparison). + The aim of this method is to provide a fast comparison that deals with null and ignores different casing. + It is not supposed to deal with various, culture-specific habits. + Use it to compare against pure ASCII constants, like keywords etc. + + The one string. + The other string. + true if the strings are equal, false otherwise. + + + + Gets an empty array of types. + + + + The Type.EmptyTypes field is not available on + the .NET Compact Framework 1.0. + + + + + + The fully qualified type of the SystemInfo class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Cache the host name for the current machine + + + + + Cache the application friendly name + + + + + Text to output when a null is encountered. + + + + + Text to output when an unsupported feature is requested. + + + + + Start time for the current process. + + + + + Gets the system dependent line terminator. + + + The system dependent line terminator. + + + + Gets the system dependent line terminator. + + + + + + Gets the base directory for this . + + The base directory path for the current . + + + Gets the base directory for this . + + + The value returned may be either a local file path or a URI. + + + + + + Gets the path to the configuration file for the current . + + The path to the configuration file for the current . + + + The .NET Compact Framework 1.0 does not have a concept of a configuration + file. For this runtime, we use the entry assembly location as the root for + the configuration file name. + + + The value returned may be either a local file path or a URI. + + + + + + Gets the path to the file that first executed in the current . + + The path to the entry assembly. + + + Gets the path to the file that first executed in the current . + + + + + + Gets the ID of the current thread. + + The ID of the current thread. + + + On the .NET framework, the AppDomain.GetCurrentThreadId method + is used to obtain the thread ID for the current thread. This is the + operating system ID for the thread. + + + On the .NET Compact Framework 1.0 it is not possible to get the + operating system thread ID for the current thread. The native method + GetCurrentThreadId is implemented inline in a header file + and cannot be called. + + + On the .NET Framework 2.0 the Thread.ManagedThreadId is used as this + gives a stable id unrelated to the operating system thread ID which may + change if the runtime is using fibers. + + + + + + Get the host name or machine name for the current machine + + + The hostname or machine name + + + + Get the host name or machine name for the current machine + + + The host name () or + the machine name (Environment.MachineName) for + the current machine, or if neither of these are available + then NOT AVAILABLE is returned. + + + + + + Get this application's friendly name + + + The friendly name of this application as a string + + + + If available the name of the application is retrieved from + the AppDomain using AppDomain.CurrentDomain.FriendlyName. + + + Otherwise the file name of the entry assembly is used. + + + + + + Get the start time for the current process. + + + + This is the time at which the log4net library was loaded into the + AppDomain. Due to reports of a hang in the call to System.Diagnostics.Process.StartTime + this is not the start time for the current process. + + + The log4net library should be loaded by an application early during its + startup, therefore this start time should be a good approximation for + the actual start time. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating, however this start time + will be set per AppDomain. + + + + + + Get the UTC start time for the current process. + + + + This is the UTC time at which the log4net library was loaded into the + AppDomain. Due to reports of a hang in the call to System.Diagnostics.Process.StartTime + this is not the start time for the current process. + + + The log4net library should be loaded by an application early during its + startup, therefore this start time should be a good approximation for + the actual start time. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating, however this start time + will be set per AppDomain. + + + + + + Text to output when a null is encountered. + + + + Use this value to indicate a null has been encountered while + outputting a string representation of an item. + + + The default value is (null). This value can be overridden by specifying + a value for the log4net.NullText appSetting in the application's + .config file. + + + + + + Text to output when an unsupported feature is requested. + + + + Use this value when an unsupported feature is requested. + + + The default value is NOT AVAILABLE. This value can be overridden by specifying + a value for the log4net.NotAvailableText appSetting in the application's + .config file. + + + + + + Utility class that represents a format string. + + + + Utility class that represents a format string. + + + Nicko Cadell + + + + Initialise the + + An that supplies culture-specific formatting information. + A containing zero or more format items. + An array containing zero or more objects to format. + + + + Format the string and arguments + + the formatted string + + + + Replaces the format item in a specified with the text equivalent + of the value of a corresponding instance in a specified array. + A specified parameter supplies culture-specific formatting information. + + An that supplies culture-specific formatting information. + A containing zero or more format items. + An array containing zero or more objects to format. + + A copy of format in which the format items have been replaced by the + equivalent of the corresponding instances of in args. + + + + This method does not throw exceptions. If an exception thrown while formatting the result the + exception and arguments are returned in the result string. + + + + + + Process an error during StringFormat + + + + + Dump the contents of an array into a string builder + + + + + Dump an object to a string + + + + + The fully qualified type of the SystemStringFormat class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Implementation of Properties collection for the + + + + Class implements a collection of properties that is specific to each thread. + The class is not synchronized as each thread has its own . + + + Nicko Cadell + + + + Each thread will automatically have its instance. + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Remove a property + + the key for the entry to remove + + + Remove a property + + + + + + Get the keys stored in the properties. + + + Gets the keys stored in the properties. + + a set of the defined keys + + + + Clear all properties + + + + Clear all properties + + + + + + Get the PropertiesDictionary for this thread. + + create the dictionary if it does not exist, otherwise return null if does not exist + the properties for this thread + + + The collection returned is only to be used on the calling thread. If the + caller needs to share the collection between different threads then the + caller must clone the collection before doing so. + + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Gets or sets the value of a property + + + + + + Implementation of Stack for the + + + + Implementation of Stack for the + + + Nicko Cadell + + + + The stack store. + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Clears all the contextual information held in this stack. + + + + Clears all the contextual information held in this stack. + Only call this if you think that this tread is being reused after + a previous call execution which may not have completed correctly. + You do not need to use this method if you always guarantee to call + the method of the + returned from even in exceptional circumstances, + for example by using the using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) + syntax. + + + + + + Removes the top context from this stack. + + The message in the context that was removed from the top of this stack. + + + Remove the top context from this stack, and return + it to the caller. If this stack is empty then an + empty string (not ) is returned. + + + + + + Pushes a new context message into this stack. + + The new context message. + + An that can be used to clean up the context stack. + + + + Pushes a new context onto this stack. An + is returned that can be used to clean up this stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) + { + log.Warn("This should have an ThreadContext Stack message"); + } + + + + + + Gets the current context information for this stack. + + The current context information. + + + + Gets the current context information for this stack. + + Gets the current context information + + + Gets the current context information for this stack. + + + + + + Get a portable version of this object + + the portable instance of this object + + + Get a cross thread portable version of this object + + + + + + The number of messages in the stack + + + The current number of messages in the stack + + + + The current number of messages in the stack. That is + the number of times has been called + minus the number of times has been called. + + + + + + Gets and sets the internal stack used by this + + The internal storage stack + + + This property is provided only to support backward compatability + of the . Tytpically the internal stack should not + be modified. + + + + + + Inner class used to represent a single context frame in the stack. + + + + Inner class used to represent a single context frame in the stack. + + + + + + Constructor + + The message for this context. + The parent context in the chain. + + + Initializes a new instance of the class + with the specified message and parent context. + + + + + + Get the message. + + The message. + + + Get the message. + + + + + + Gets the full text of the context down to the root level. + + + The full text of the context down to the root level. + + + + Gets the full text of the context down to the root level. + + + + + + Struct returned from the method. + + + + This struct implements the and is designed to be used + with the pattern to remove the stack frame at the end of the scope. + + + + + + The ThreadContextStack internal stack + + + + + The depth to trim the stack to when this instance is disposed + + + + + Constructor + + The internal stack used by the ThreadContextStack. + The depth to return the stack to when this object is disposed. + + + Initializes a new instance of the class with + the specified stack and return depth. + + + + + + Returns the stack to the correct depth. + + + + Returns the stack to the correct depth. + + + + + + Implementation of Stacks collection for the + + + + Implementation of Stacks collection for the + + + Nicko Cadell + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + The fully qualified type of the ThreadContextStacks class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the named thread context stack + + + The named stack + + + + Gets the named thread context stack + + + + + + Utility class for transforming strings. + + + + Utility class for transforming strings. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Write a string to an + + the writer to write to + the string to write + The string to replace non XML compliant chars with + + + The test is escaped either using XML escape entities + or using CDATA sections. + + + + + + Replace invalid XML characters in text string + + the XML text input string + the string to use in place of invalid characters + A string that does not contain invalid XML characters. + + + Certain Unicode code points are not allowed in the XML InfoSet, for + details see: http://www.w3.org/TR/REC-xml/#charsets. + + + This method replaces any illegal characters in the input string + with the mask string specified. + + + + + + Count the number of times that the substring occurs in the text + + the text to search + the substring to find + the number of times the substring occurs in the text + + + The substring is assumed to be non repeating within itself. + + + + + + Characters illegal in XML 1.0 + + + + + Impersonate a Windows Account + + + + This impersonates a Windows account. + + + How the impersonation is done depends on the value of . + This allows the context to either impersonate a set of user credentials specified + using username, domain name and password or to revert to the process credentials. + + + + + + Default constructor + + + + Default constructor + + + + + + Initialize the SecurityContext based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The security context will try to Logon the specified user account and + capture a primary token for impersonation. + + + The required , + or properties were not specified. + + + + Impersonate the Windows account specified by the and properties. + + caller provided state + + An instance that will revoke the impersonation of this SecurityContext + + + + Depending on the property either + impersonate a user using credentials supplied or revert + to the process credentials. + + + + + + Create a given the userName, domainName and password. + + the user name + the domain name + the password + the for the account specified + + + Uses the Windows API call LogonUser to get a principal token for the account. This + token is used to initialize the WindowsIdentity. + + + + + + Gets or sets the impersonation mode for this security context + + + The impersonation mode for this security context + + + + Impersonate either a user with user credentials or + revert this thread to the credentials of the process. + The value is one of the + enum. + + + The default value is + + + When the mode is set to + the user's credentials are established using the + , and + values. + + + When the mode is set to + no other properties need to be set. If the calling thread is + impersonating then it will be reverted back to the process credentials. + + + + + + Gets or sets the Windows username for this security context + + + The Windows username for this security context + + + + This property must be set if + is set to (the default setting). + + + + + + Gets or sets the Windows domain name for this security context + + + The Windows domain name for this security context + + + + The default value for is the local machine name + taken from the property. + + + This property must be set if + is set to (the default setting). + + + + + + Sets the password for the Windows account specified by the and properties. + + + The password for the Windows account specified by the and properties. + + + + This property must be set if + is set to (the default setting). + + + + + + The impersonation modes for the + + + + See the property for + details. + + + + + + Impersonate a user using the credentials supplied + + + + + Revert this the thread to the credentials of the process + + + + + Adds to + + + + Helper class to expose the + through the interface. + + + + + + Constructor + + the impersonation context being wrapped + + + Constructor + + + + + + Revert the impersonation + + + + Revert the impersonation + + + + + + The log4net Global Context. + + + + The GlobalContext provides a location for global debugging + information to be stored. + + + The global context has a properties map and these properties can + be included in the output of log messages. The + supports selecting and outputing these properties. + + + By default the log4net:HostName property is set to the name of + the current machine. + + + + + GlobalContext.Properties["hostname"] = Environment.MachineName; + + + + Nicko Cadell + + + + Private Constructor. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + The global context properties instance + + + + + The global properties map. + + + The global properties map. + + + + The global properties map. + + + + + + Provides information about the environment the assembly has + been built for. + + + + Version of the assembly + + + Version of the framework targeted + + + Type of framework targeted + + + Does it target a client profile? + + + + Identifies the version and target for this assembly. + + + + + The log4net Logical Thread Context. + + + + The LogicalThreadContext provides a location for specific debugging + information to be stored. + The LogicalThreadContext properties override any or + properties with the same name. + + + For .NET Standard 1.3 this class uses + System.Threading.AsyncLocal rather than . + + + The Logical Thread Context has a properties map and a stack. + The properties and stack can + be included in the output of log messages. The + supports selecting and outputting these properties. + + + The Logical Thread Context provides a diagnostic context for the current call context. + This is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The Logical Thread Context is managed on a per basis. + + + The requires a link time + for the + . + If the calling code does not have this permission then this context will be disabled. + It will not store any property values set on it. + + + Example of using the thread context properties to store a username. + + LogicalThreadContext.Properties["user"] = userName; + log.Info("This log message has a LogicalThreadContext Property called 'user'"); + + + Example of how to push a message into the context stack + + using(LogicalThreadContext.Stacks["LDC"].Push("my context message")) + { + log.Info("This log message has a LogicalThreadContext Stack message that includes 'my context message'"); + + } // at the end of the using block the message is automatically popped + + + + Nicko Cadell + + + + Private Constructor. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + The thread context properties instance + + + + + The thread context stacks instance + + + + + The thread properties map + + + The thread properties map + + + + The LogicalThreadContext properties override any + or properties with the same name. + + + + + + The thread stacks + + + stack map + + + + The logical thread stacks. + + + + + + This class is used by client applications to request logger instances. + + + + This class has static methods that are used by a client to request + a logger instance. The method is + used to retrieve a logger. + + + See the interface for more details. + + + Simple example of logging messages + + ILog log = LogManager.GetLogger("application-log"); + + log.Info("Application Start"); + log.Debug("This is a debug message"); + + if (log.IsDebugEnabled) + { + log.Debug("This is another debug message"); + } + + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + Returns the named logger if it exists. + + Returns the named logger if it exists. + + + + If the named logger exists (in the default repository) then it + returns a reference to the logger, otherwise it returns null. + + + The fully qualified logger name to look for. + The logger found, or null if no logger could be found. + + + Get the currently defined loggers. + + Returns all the currently defined loggers in the default repository. + + + The root logger is not included in the returned array. + + All the defined loggers. + + + Get or create a logger. + + Retrieves or creates a named logger. + + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The name of the logger to retrieve. + The logger with the name specified. + + + + Returns the named logger if it exists. + + + + If the named logger exists (in the specified repository) then it + returns a reference to the logger, otherwise it returns + null. + + + The repository to lookup in. + The fully qualified logger name to look for. + + The logger found, or null if the logger doesn't exist in the specified + repository. + + + + + Returns the named logger if it exists. + + + + If the named logger exists (in the repository for the specified assembly) then it + returns a reference to the logger, otherwise it returns + null. + + + The assembly to use to lookup the repository. + The fully qualified logger name to look for. + + The logger, or null if the logger doesn't exist in the specified + assembly's repository. + + + + + Returns all the currently defined loggers in the specified repository. + + The repository to lookup in. + + The root logger is not included in the returned array. + + All the defined loggers. + + + + Returns all the currently defined loggers in the specified assembly's repository. + + The assembly to use to lookup the repository. + + The root logger is not included in the returned array. + + All the defined loggers. + + + + Retrieves or creates a named logger. + + + + Retrieve a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The repository to lookup in. + The name of the logger to retrieve. + The logger with the name specified. + + + + Retrieves or creates a named logger. + + + + Retrieve a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The assembly to use to lookup the repository. + The name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Get the logger for the fully qualified name of the type specified. + + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Gets the logger for the fully qualified name of the type specified. + + The repository to lookup in. + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Gets the logger for the fully qualified name of the type specified. + + The assembly to use to lookup the repository. + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shuts down the log4net system. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in all the + default repositories. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + Shutdown a logger repository. + + Shuts down the default repository. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + default repository. + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + The repository to shutdown. + + + + Shuts down the repository specified. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository. The repository is looked up using + the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + The assembly to use to lookup the repository. + + + Reset the configuration of a repository + + Resets all values contained in this repository instance to their defaults. + + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + + + + Resets all values contained in this repository instance to their defaults. + + + + Reset all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + The repository to reset. + + + + Resets all values contained in this repository instance to their defaults. + + + + Reset all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + The assembly to use to lookup the repository to reset. + + + Get the logger repository. + + Returns the default instance. + + + + Gets the for the repository specified + by the callers assembly (). + + + The instance for the default repository. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The repository to lookup in. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The assembly to use to lookup the repository. + + + Get a logger repository. + + Returns the default instance. + + + + Gets the for the repository specified + by the callers assembly (). + + + The instance for the default repository. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The repository to lookup in. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The assembly to use to lookup the repository. + + + Create a domain + + Creates a repository with the specified repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to will return + the same repository instance. + + + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + Create a logger repository. + + Creates a repository with the specified repository type. + + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The created will be associated with the repository + specified such that a call to will return + the same repository instance. + + + + + + Creates a repository with the specified name. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name. + + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + The specified repository already exists. + + + + Creates a repository for the specified assembly and repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + + Creates a repository for the specified assembly and repository type. + + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + + Gets the list of currently defined repositories. + + + + Get an array of all the objects that have been created. + + + An array of all the known objects. + + + + Flushes logging events buffered in all configured appenders in the default repository. + + The maximum time in milliseconds to wait for logging events from asycnhronous appenders to be flushed. + True if all logging events were flushed successfully, else false. + + + + Looks up the wrapper object for the logger specified. + + The logger to get the wrapper for. + The wrapper for the logger specified. + + + + Looks up the wrapper objects for the loggers specified. + + The loggers to get the wrappers for. + The wrapper objects for the loggers specified. + + + + Create the objects used by + this manager. + + The logger to wrap. + The wrapper for the logger specified. + + + + The wrapper map to use to hold the objects. + + + + + Implementation of Mapped Diagnostic Contexts. + + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + The MDC class is similar to the class except that it is + based on a map instead of a stack. It provides mapped + diagnostic contexts. A Mapped Diagnostic Context, or + MDC in short, is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The MDC is managed on a per thread basis. + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + Gets the context value identified by the parameter. + + The key to lookup in the MDC. + The string value held for the key, or a null reference if no corresponding value is found. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + If the parameter does not look up to a + previously defined context then null will be returned. + + + + + + Add an entry to the MDC + + The key to store the value under. + The value to store. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Puts a context value (the parameter) as identified + with the parameter into the current thread's + context map. + + + If a value is already defined for the + specified then the value will be replaced. If the + is specified as null then the key value mapping will be removed. + + + + + + Removes the key value mapping for the key specified. + + The key to remove. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Remove the specified entry from this thread's MDC + + + + + + Clear all entries in the MDC + + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Remove all the entries from this thread's MDC + + + + + + Implementation of Nested Diagnostic Contexts. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + A Nested Diagnostic Context, or NDC in short, is an instrument + to distinguish interleaved log output from different sources. Log + output is typically interleaved when a server handles multiple + clients near-simultaneously. + + + Interleaved log output can still be meaningful if each log entry + from different contexts had a distinctive stamp. This is where NDCs + come into play. + + + Note that NDCs are managed on a per thread basis. The NDC class + is made up of static methods that operate on the context of the + calling thread. + + + How to push a message into the context + + using(NDC.Push("my context message")) + { + ... all log calls will have 'my context message' included ... + + } // at the end of the using block the message is automatically removed + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + Clears all the contextual information held on the current thread. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Clears the stack of NDC data held on the current thread. + + + + + + Creates a clone of the stack of context information. + + A clone of the context info for this thread. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + The results of this method can be passed to the + method to allow child threads to inherit the context of their + parent thread. + + + + + + Inherits the contextual information from another thread. + + The context stack to inherit. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + This thread will use the context information from the stack + supplied. This can be used to initialize child threads with + the same contextual information as their parent threads. These + contexts will NOT be shared. Any further contexts that + are pushed onto the stack will not be visible to the other. + Call to obtain a stack to pass to + this method. + + + + + + Removes the top context from the stack. + + + The message in the context that was removed from the top + of the stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Remove the top context from the stack, and return + it to the caller. If the stack is empty then an + empty string (not null) is returned. + + + + + + Pushes a new context message. + + The new context message. + + An that can be used to clean up + the context stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Pushes a new context onto the context stack. An + is returned that can be used to clean up the context stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.NDC.Push("NDC_Message")) + { + log.Warn("This should have an NDC message"); + } + + + + + + Pushes a new context message. + + The new context message string format. + Arguments to be passed into messageFormat. + + An that can be used to clean up + the context stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Pushes a new context onto the context stack. An + is returned that can be used to clean up the context stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + var someValue = "ExampleContext" + using(log4net.NDC.PushFormat("NDC_Message {0}", someValue)) + { + log.Warn("This should have an NDC message"); + } + + + + + + Removes the context information for this thread. It is + not required to call this method. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + This method is not implemented. + + + + + + Forces the stack depth to be at most . + + The maximum depth of the stack + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Forces the stack depth to be at most . + This may truncate the head of the stack. This only affects the + stack in the current thread. Also it does not prevent it from + growing, it only sets the maximum depth at the time of the + call. This can be used to return to a known context depth. + + + + + + Gets the current context depth. + + The current context depth. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + The number of context values pushed onto the context stack. + + + Used to record the current depth of the context. This can then + be restored using the method. + + + + + + + The log4net Thread Context. + + + + The ThreadContext provides a location for thread specific debugging + information to be stored. + The ThreadContext properties override any + properties with the same name. + + + The thread context has a properties map and a stack. + The properties and stack can + be included in the output of log messages. The + supports selecting and outputting these properties. + + + The Thread Context provides a diagnostic context for the current thread. + This is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The Thread Context is managed on a per thread basis. + + + Example of using the thread context properties to store a username. + + ThreadContext.Properties["user"] = userName; + log.Info("This log message has a ThreadContext Property called 'user'"); + + + Example of how to push a message into the context stack + + using(ThreadContext.Stacks["NDC"].Push("my context message")) + { + log.Info("This log message has a ThreadContext Stack message that includes 'my context message'"); + + } // at the end of the using block the message is automatically popped + + + + Nicko Cadell + + + + Private Constructor. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + The thread context properties instance + + + + + The thread context stacks instance + + + + + The thread properties map + + + The thread properties map + + + + The ThreadContext properties override any + properties with the same name. + + + + + + The thread stacks + + + stack map + + + + The thread local stacks. + + + + + diff --git a/bin/Debug/zh-Hans/Microsoft.Expression.Interactions.resources.dll b/bin/Debug/zh-Hans/Microsoft.Expression.Interactions.resources.dll new file mode 100644 index 0000000..7ebf073 Binary files /dev/null and b/bin/Debug/zh-Hans/Microsoft.Expression.Interactions.resources.dll differ diff --git a/bin/Debug/zh-Hans/System.Windows.Interactivity.resources.dll b/bin/Debug/zh-Hans/System.Windows.Interactivity.resources.dll new file mode 100644 index 0000000..3f37822 Binary files /dev/null and b/bin/Debug/zh-Hans/System.Windows.Interactivity.resources.dll differ diff --git a/bin/Debug/zh-Hant/Microsoft.Expression.Interactions.resources.dll b/bin/Debug/zh-Hant/Microsoft.Expression.Interactions.resources.dll new file mode 100644 index 0000000..e436c01 Binary files /dev/null and b/bin/Debug/zh-Hant/Microsoft.Expression.Interactions.resources.dll differ diff --git a/bin/Debug/zh-Hant/System.Windows.Interactivity.resources.dll b/bin/Debug/zh-Hant/System.Windows.Interactivity.resources.dll new file mode 100644 index 0000000..3ad989e Binary files /dev/null and b/bin/Debug/zh-Hant/System.Windows.Interactivity.resources.dll differ diff --git a/bin/Release/LogViewer.exe b/bin/Release/LogViewer.exe new file mode 100644 index 0000000..e844f8a Binary files /dev/null and b/bin/Release/LogViewer.exe differ diff --git a/bin/Release/LogViewer.exe.config b/bin/Release/LogViewer.exe.config new file mode 100644 index 0000000..8269f7d --- /dev/null +++ b/bin/Release/LogViewer.exe.config @@ -0,0 +1,39 @@ + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + 800 + + + 600 + + + 150 + + + + diff --git a/bin/Release/LogViewer.pdb b/bin/Release/LogViewer.pdb new file mode 100644 index 0000000..54a5c10 Binary files /dev/null and b/bin/Release/LogViewer.pdb differ diff --git a/bin/Release/LogViewerlog.xml b/bin/Release/LogViewerlog.xml new file mode 100644 index 0000000..21a43be --- /dev/null +++ b/bin/Release/LogViewerlog.xml @@ -0,0 +1,109 @@ +Application [Log4Viewer] Start +initializing windows components +Initializing the registry persister +Can Refresh execute False +Can filter execute False +Setting default width to 800 +Setting default height to 600 +Setting default Grid Height to 150 +Setting the UI Culture to fr-FR +Initializing event handler for ListView control +Setting the RecentFileList toC:\Users\odaha\AppData\Local +Initializing the RecentFiles menu click +Initializing Error Bitmap +Initializing Info Bitmap +Initializing Warn Bitmap +Initializing Debug Bitmap +Setting the title as Log4Net XML LogViewer v.3.0.0.0 +Setting the GridView widths for each column +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Removing Menu Items +Removing the menu separators +Loading Recent files +Inserting Menu items +Loading recent files as menu items +Format is _{0}: {2} +Checking current pathname is less than the max length allowed +Path name is D:\EnCours\LogViewerForLog4Net\bin\Debug\LogViewerlog +File name index is 4 +The short path is D:\EnCours\...\bin\Debug\LogViewerlog +Hooking up the file menu +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Can Refresh execute False +Can filter execute False +Clearing Merged Files +Loading file D:\EnCours\LogViewerForLog4Net\bin\Debug\LogViewerlog.xml +Clearing entries to load single log file +Notifying Entries property as changed +Resetting the ListView item source to nothing +Clearing the log filter +Turning off the IsFiltered property of the FilterIndicator +Clearing all the text controls +Initializing FileStream objet to open the log file +Initializing a Stream Reader +Read all the contents in the log file to a StreamReader +Closing StreamReader and FileStream object +Reading File +Start reading the log file +Completing of Log xml reading +Calculating the number of ERROR in the log file +ERROR count is 2 +Calculating the number of INFO in the log file +INFO count is 3460 +Calculating the number of WARN in the log file +WARN count is 1 +Calculating the number of DEBUG in the log file +DEBUG count is 29 +Initializing ListView to show the log entries +Loading ListView with Log Entries +Clearing Sort Adorner +Setting the title as Log4Net XML LogViewer v.3.0.0.0 - D:\EnCours\LogViewerForLog4Net\bin\Debug\LogViewerlog.xml +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Inside ListView selection changed and clearing the text controls +Clearing all the text controls +Getting the current Log Entry +Show the selected log entry on the UI +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Can Refresh execute True +Can filter execute True +Saving default application width,height,split to open next time diff --git a/bin/Release/Microsoft.Expression.Effects.dll b/bin/Release/Microsoft.Expression.Effects.dll new file mode 100644 index 0000000..c2b722f Binary files /dev/null and b/bin/Release/Microsoft.Expression.Effects.dll differ diff --git a/bin/Release/Microsoft.Expression.Effects.xml b/bin/Release/Microsoft.Expression.Effects.xml new file mode 100644 index 0000000..ba0b390 --- /dev/null +++ b/bin/Release/Microsoft.Expression.Effects.xml @@ -0,0 +1,1056 @@ + + + + Microsoft.Expression.Effects + + + + + Determine the orientation of the blinds. + + + + + Transition shader that simulates blinds opening when transitioning + from one visual to another. + + + + + Gets or sets the orientation of the blinds. + + + + + Gets or sets the number of blinds. + + + + + Gets or sets the Amplitude variable within the shader. + + + + + Creates an instance of the shader. + + + + + Makes a deep copy of the BlindsTransitionEffect effect. + + A clone of the current instance of the BlindsTransitionEffect effect. + + + + Gets or sets the orientation of the blinds. + + + + + Gets or sets the number of blinds to display. + + + + + Gets or sets the orientation of the blinds. + + + + + Effect that implements a bloom illumination of a visual. + + + + + The explicit input for this pixel shader. + + + + + + This property is mapped to the BloomIntensity variable within the pixel shader. + + + + + This property is mapped to the BaseIntensity variable within the pixel shader. + + + + + This property is mapped to the BloomSaturation variable within the pixel shader. + + + + + This property is mapped to the BaseSaturation variable within the pixel shader. + + + + + This property is mapped to the BloomIntensity variable within the pixel shader. + + + + + This property is mapped to the BloomSaturation variable within the pixel shader. + + + + + This property is mapped to the BaseSaturation variable within the pixel shader. + + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Gets or sets the minimum intensity that will be used for the bloom. + + + + + Gets or sets the base intensity. + + + + + Gets or sets the bloom intensity. + + + + + Gets or sets the base saturation. + + + + + Gets or sets the bloom saturation. + + + + + Gets or sets the Input shader sampler. + + + + + Gets or sets the Base/BloomIntensity variable within the shader. + + + + + Gets or sets the BaseBloomSaturation variable within the shader. + + + + + Transition effect that reveals two visuals through a growing/shrinking circle. + + + + + Dependency property which modifies the feather amount variable within the pixel shader. + + + + + Dependency property which modifies the circle movement. + + + + + Dependency property which modifies the reverseShader variable within the pixel shader. + + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Makes a deep copy of the CircleRevealTransitionEffect effect. + + A clone of the current instance of the CircleRevealTransitionEffect effect. + + + + Gets or sets the FuzzyAmount variable within the shader. + + + + + Gets or sets playing the circle reveal backward. + + + + + Gets or sets playing the circle reveal backward into the shader. + + + + + Transition effect that transitions two visuals using a cloud + texture as the sampler threshold. + + + + + Defines a transition shader effect that uses an image as a sampler threshold + for interpolating pixel value between two visuals. + + + + + Defines a transition shader effect that provides a random value, + allowing the effect to provide variance each time the effect is run. + + + + + Dependency property which modifies the RandomSeed variable within the pixel shader. + + + + + Updates the shader's variables to the default values. + + + + + Gets or sets the RandomSeed variable within the shader. + + + + + Dependency property which modifies the CloudImage variable within the pixel shader. + + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Gets or sets the CloudImage variable within the shader used for sampling. + + + + + Creates an instance of the shader. + + + + + Makes a deep copy of the CloudRevealTransitionEffect effect. + + A clone of the current instance of the CloudRevealTransitionEffect effect. + + + + Effect that modifies the color tone of a visual using + two colors as the sampling. + + + + + The explicit input for this pixel shader. + + + + + This property is mapped to the Desaturation variable within the pixel shader. + + + + + This property is mapped to the Tone variable within the pixel shader. + + + + + This property is mapped to the LightColor variable within the pixel shader. + + + + + This property is mapped to the DarkColor variable within the pixel shader. + + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Gets or sets the Desaturation variable within the shader. + + + + + Gets or sets the Tone variable within the shader. + + + + + Gets or sets the LightColor variable within the shader. + + + + + Gets or sets the DarkColor variable within the shader. + + + + + Gets or sets the Input shader sampler. + + + + + Effect that simulates an embossed look for the visual. + + + + + The explicit input for this pixel shader. + + + + + This property is mapped to the Amount variable within the pixel shader. + + + + + This property is mapped to the Height variable within the pixel shader. + + + + + This property is mapped to the Color variable within the pixel shader. + + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Gets or sets the Amount variable within the shader. + + + + + Gets or sets the Height variable within the shader. + + + + + Gets or sets the Color variable within the shader. + + + + + Gets or sets the Input shader sampler. + + + + + Transition effect that gradually transitions from one visual to another. + + + + + Creates an instance of the shader. + + + + + Makes a deep copy of the FadeTransitionEffect effect. + + A clone of the current instance of the FadeTransitionEffect effect. + + + + Effect that simulates a magnifying lens. + + + + + Gets or sets the InnerRadius variable within the shader. + + + + + Gets or sets the OuterRadius variable within the shader. + + + + + Gets or sets the center variable within the shader. + + + + + Gets or sets the amount variable within the shader. + + + + + Gets or sets the Input used in the shader. + + + + + The transform used for this shader. + + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Gets or sets the InnerRadius variable within the shader. + + + + + Gets or sets the OuterRadius variable within the shader. + + + + + Gets or sets the Center variable within the shader. + + + + + Gets or sets the ShrinkFactor. + The higher the shrink factor the "smaller" the content inside the ellipse will appear. + + + + + Gets the EffectMapping. + + + + + Gets or sets the Input shader sampler. + + + + + The GeneralTransform corresponding to the Magnify effect. + + + + + Attempt to transform a point based on the effect. + + The point to transform. + The result if available. + Return true if successful. + + + + The effect instance. + + + + + If the transform is an inverse. + + + + + The transform specific to this Effect. + + + + + Creates a new instance. + + The source effect. + + + + This particular effect keeps axis-aligned lines axis-aligned, so the transformation of the Rect is just + transformation of its corner points. + + The input Rect. + The output Rect. + + + + For the inverse of the shader, we need to find Pin which is the Pixel Ouput, given Pout the texture input (is the reverse of the shader) + However, the shader algorithm is dependant on the radius of the pixel output from the center, which is a variable that we don't + have when computing the inverse. We need to perform bisection in order to converge using the equation below + PHatout = PHat_in*Scalar where + PHatout = Pout - Pcenter + pHatin = Pin -Pcenter + + Scalar is dependent on the radius of Pin (which we don't have). + + + + + Given a pixel output (Pin) find the texture input (Pout). + + + + + Creats a new instance. + + A new instance of this. + + + + Determines if a point is within an ellipse. + + The test point. + The center point of the ellipse. + The radius of the ellipse. + Return true if successful. + + + + Gets the inverse transform. + + + + + Effect that turns a visual into a monochrome color. + + + + + Gets or sets the Color variable within the shader. + + + + + Gets or sets the Input of the shader. + + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Gets or sets the Color variable within the shader. + + + + + Gets or sets the Input used in the shader. + + + + + Effect that pixelates a visual. + + + + + The explicit input for this pixel shader. + + + + + This property is mapped to the Pixelation variable within the pixel shader. + + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Gets or sets the amount of pixelation inside the shader. + + + + + Gets or sets the Input shader sampler. + + + + + Transition effect that increases or decreases pixelation between two visuals. + + + + + Creates an instance of the shader. + + + + + Makes a deep copy of the PixelateTransitionEffect effect. + + A clone of the current instance of the PixelateTransitionEffect effect. + + + + Transition effect that performs a radial blur of the current visual as the new visual is introduced. + + + + + Creates an instance of the shader. + + + + + Makes a deep copy of the RadialBlurTransitionEffect effect. + + A clone of the current instance of the RadialBlurTransitionEffect effect. + + + + Effect that simulates water ripples on the visual. + + + + + Gets or sets the Center variable within the shader. + + + + + Gets or sets the Amplitude variable within the shader. + + + + + Gets or sets the Frequency variable within the shader. + + + + + Gets or sets the Phase variable within the shader. + + + + + Gets or sets the Input brush used in the shader. + + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Gets or sets the Center variable within the shader. + + + + + Gets or sets the Amplitude variable within the shader. + + + + + Gets or sets the Frequency variable within the shader. + + + + + Gets or sets the Phase variable within the shader. + + + + + Gets or sets the Input shader sampler. + + + + + Transition effect that simulates water ripple during transition. + + + + + Creates an instance of the shader. + + + + + Makes a deep copy of the RippleTransitionEffect effect. + + A clone of the current instance of the RippleTransitionEffect effect. + + + + Effect that makes a visual crisper and sharper. + + + + + The explicit input for this pixel shader. + + + + + This property is mapped to the Amount variable within the pixel shader. + + + + + This property is mapped to the Width variable within the pixel shader. + + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Gets or sets the Amount variable within the shader. + + + + + Gets or sets the Height variable within the shader. + + + + + Gets or sets the Input shader sampler. + + + + + Defines the slide orientation. + + + + + Transition effect that slides the current visual away, revealing the new visual. + + + + + Dependency property that modifies the SlideAmount variable within the pixel shader. + + + + + Dependency property that modifies the SlideAmount variable within the pixel shader. + + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Makes a deep copy of the SlideInTransitionEffect effect. + + A clone of the current instance of the SlideInTransitionEffect effect. + + + + Gets or sets the SlideAmount variable within the shader. + + + + + Gets or sets the SlideAmount variable within the shader. + + + + + Transition effect that swirls the current visual while introducing the new visual. + + + + + Dependency property that modifies the TwistAmount variable within the pixel shader. + + + + + Dependency property that modifies the number of cells where pixels will be twisted. + + + + + Creates an instance and sets the shader's twist variable to the specified values. + + Level of swirl twist. + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Makes a deep copy of the SmoothSwirlGridTransitionEffect effect. + + A clone of the current instance of the SmoothSwirlGridTransitionEffect effect. + + + + Gets or sets the TwistAmount variable within the shader. + + + + + Gets or sets the CellCount variable within the shader. + + + + + Effect that swirls the current visual. + + + + + The explicit input for this pixel shader. + + + + + This property is mapped to the Center variable within the pixel shader. + + + + + This property is mapped to the TwistAmount variable within the pixel shader. + + + + + This property is mapped to the AngleFrequency variable within the pixel shader. + + + + + The transform used when this Effect is applied. + + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Gets or sets the Center variable within the shader. + + + + + Gets or sets the TwistAmount variable within the shader. + + + + + Gets or sets the AngleFrequency variable within the shader. + This property is not exposed. + + + + + Gets or sets the Input shader sampler. + + + + + Gets the GeneralTransform for this effect. + + + + + Used for transforming input and tree transformations. + + + + + The instance of the Effect. + + + + + The inverse of the transform. + + + + + The inverse of this GeneralTransform. + + + + + Creates an instance of this class. + + The effect itself. + + + + For this operation, the bounds is the bounding box of the four transformed points. + Need to transform each of them, and then circumscribe. This is true for both the + forward and the inverse. + + The input Rect. + The transformed Rect. + + + + Attempt to transform inPoint with the Swirl effect. + + The input point. + The output point after transformed using the Swirl effect. + Returns true but throws if false. + + + + Returns a new instance of this. + + A new instance. + + + + Gets a clone of the inverse of the current transform. + + + + + Transition effect that waves the current visual while introducing the new visual. + + + + + Dependency property that modifies the Magnitude variable within the pixel shader. + + + + + Dependency property that modifies the Phase variable within the pixel shader. + + + + + Dependency property that modifies the Frequency variable within the pixel shader. + + + + + Creates an instance of the shader. + + + + + Makes a deep copy of the WaveTransitionEffect effect. + + A clone of the current instance of the WaveTransitionEffect effect. + + + + Gets or sets the magnitude of the wave. + + + + + Gets or sets the phase of the wave. + + + + + Gets or sets the magnitude of the wave. + + + + + Define the wipe direction. + + + + + Transition effect that wipes the current visual while introducing the new visual. + + + + + Dependency property that modifies the WipeDirection variable within the pixel shader. + + + + + Dependency property that modifies the FeatherAmount variable within the pixel shader. + + + + + Dependency property that modifies the LineOrigin variable within the pixel shader. + + + + + Dependency property that modifies the LineNormal variable within the pixel shader. + + + + + Dependency property that modifies the LineOffset variable within the pixel shader. + + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Makes a deep copy of the WipeTransitionEffect effect. + + A clone of the current instance of the WipeTransitionEffect effect. + + + + Gets or sets the direction of the wipe. + + + + + Gets or sets the FeatherAmount variable within the shader. + + + + + Gets or sets the LineOrigin variable within the shader. + + + + + Gets or sets the LineNormal variable within the shader. + + + + + Gets or sets the LineOffset variable within the shader. + + + + diff --git a/bin/Release/Microsoft.Expression.Interactions.dll b/bin/Release/Microsoft.Expression.Interactions.dll new file mode 100644 index 0000000..979c965 Binary files /dev/null and b/bin/Release/Microsoft.Expression.Interactions.dll differ diff --git a/bin/Release/Microsoft.Expression.Interactions.xml b/bin/Release/Microsoft.Expression.Interactions.xml new file mode 100644 index 0000000..59fce87 --- /dev/null +++ b/bin/Release/Microsoft.Expression.Interactions.xml @@ -0,0 +1,1295 @@ + + + + Microsoft.Expression.Interactions + + + + + A basic implementation of ICommand that wraps a method that takes no parameters or a method that takes one parameter. + + + + + Initializes a new instance of the class. + + The action. + Use this constructor to provide an action that ignores the ICommand parameter. + + + + Initializes a new instance of the class. + + An action that takes an object parameter. + Use this constructor to provide an action that uses the object parameter passed by the Execute method. + + + + Defines the method that determines whether the command can execute in its current state. + + Data used by the command. If the command does not require data to be passed, then this object can be set to null. + + Always returns true. + + + + + Defines the method to be called when the command is invoked. + + Data used by the command. If the command does not require data to be passed, then this object can be set to null. + + + + Occurs when changes occur that affect whether the command should execute. Will not be fired by ActionCommand. + + + + + Calls a method on a specified object when invoked. + + + + + Invokes the action. + + The parameter of the action. If the action does not require a parameter, the parameter may be set to a null reference. + + + + Called after the action is attached to an AssociatedObject. + + Override this to hook up functionality to the AssociatedObject. + + + + Called when the action is getting detached from its AssociatedObject, but before it has actually occurred. + + Override this to unhook functionality from the AssociatedObject. + + + + The object that exposes the method of interest. This is a dependency property. + + + + + The name of the method to invoke. This is a dependency property. + + + + + An action that will change a specified property to a specified value when invoked. + + + + + Initializes a new instance of the class. + + + + + Invokes the action. + + The parameter of the action. If the action does not require a parameter, then the parameter may be set to a null reference. + A property with could not be found on the Target. + Could not set to the value specified by . + + + + Gets or sets the name of the property to change. This is a dependency property. + + The name of the property to change. + + + + Gets or sets the value to set. This is a dependency property. + + The value to set. + + + + Gets or sets the duration of the animation that will occur when the ChangePropertyAction is invoked. This is a dependency property. + If the duration is unset, no animation will be applied. + + + + + Increment by Value if true; otherwise, set the value directly. If the property cannot be incremented, it will instead try to set the value directly. + + + + + Represents one ternary condition. + + + + + Method that evaluates the condition. Note that this method can throw ArgumentException if the operator is + incompatible with the type. For instance, operators LessThan, LessThanOrEqual, GreaterThan, and GreaterThanOrEqual + require both operators to implement IComparable. + + Returns true if the condition has been met; otherwise, returns false. + + + + Ensure that any binding on DP operands are up-to-date. + + + + + Gets or sets the left operand. + + + + + Gets or sets the right operand. + + + + + Gets or sets the comparison operator. + + + + + Enumeration of different comparison operators. + + + + + This method evaluates operands. + + Left operand from the LeftOperand property. + Operator from Operator property. + Right operand from the RightOperand property. + Returns true if the condition is met; otherwise, returns false. + + + + Evaluates both operands that implement the IComparable interface. + + Left operand from the LeftOperand property. + Operator from Operator property. + Right operand from the RightOperand property. + Returns true if the condition is met; otherwise, returns false. + + + + Forward chaining. + + + + + Represents a conditional expression that is set on a ConditionBehavior.Condition property. + Contains a list of conditions that gets evaluated in order to return true or false for ICondition.Evaluate(). + + + + + An interface that a given object must implement in order to be + set on a ConditionBehavior.Condition property. + + + + + Initializes a new instance of the class. + + + + + Goes through the Conditions collection and evalutes each condition based on + ForwardChaining property. + + Returns true if conditions are met; otherwise, returns false. + + + + Gets or sets forward chaining for the conditions. + If forward chaining is set to ForwardChaining.And, all conditions must be met. + If forward chaining is set to ForwardChaining.Or, only one condition must be met. + + + + + Return the Condition collections. + + + + + A behavior that attaches to a trigger and controls the conditions + to fire the actions. + + + + + + Initializes a new instance of the class. + + + + + The event handler that is listening to the preview invoke event that is fired by + the trigger. Setting PreviewInvokeEventArgs.Cancelling to True will + cancel the invocation. + + The trigger base object. + An object of type PreviewInvokeEventArgs where e.Cancelling can be set to True. + + + + Gets or sets the IConditon object on behavior. + + The name of the condition to change. + + + + Helper class for managing binding expressions on dependency objects. + + + + + Ensure that all DP on an action with binding expressions are + up to date. DataTrigger fires during data binding phase. Since + actions are children of the trigger, any bindings on the action + may not be up-to-date. This routine is called before the action + is invoked in order to guarantee that all bindings are up-to-date + with the most current data. + + + + + Ensures that all binding expression on actions are up to date + + + + + This helper function ensures that, if a dependency property on a dependency object + has a binding expression, the binding expression is up-to-date. + + + + + + + Toggles between two states based on a conditional statement. + + + + + Called after the behavior is attached to an AssociatedObject. + + Override this to hook up functionality to the AssociatedObject. + + + + A helper function to take the place of FrameworkElement.IsLoaded, as this property isn't available in Silverlight. + + The element of interest. + Returns true if the element has been loaded; otherwise, returns false. + + + + Gets or sets the binding that produces the property value of the data object. This is a dependency property. + + + + + Gets or sets the value to be compared with the property value of the data object. This is a dependency property. + + + + + Gets or sets the name of the visual state to transition to when the condition is met. This is a dependency property. + + + + + Gets or sets the name of the visual state to transition to when the condition is not met. This is a dependency property. + + + + + Trigger designed to be bound to a data store property. Fires when the property changes. + + + + + Represents a trigger that performs actions when the bound data have changed. + + UA_REVIEW:chabiss + + + + Called when the binding property has changed. + UA_REVIEW:chabiss + + argument. + + + + Called after the trigger is attached to an AssociatedObject. + UA_REVIEW:chabiss + + + + + Called when the trigger is being detached from its AssociatedObject, but before it has actually occurred. + UA_REVIEW:chabiss + + + + + A binding object that the trigger will listen to, and that causes the trigger to fire when it changes. + + UA_REVIEW:chabiss + + + + Represents a trigger that performs actions when the bound data meets a specified condition. + + + + + Called when the binding property has changed. + UA_REVIEW:chabiss + + argument. + + + + Gets or sets the value to be compared with the property value of the data object. This is a dependency property. + + + + + Gets or sets the type of comparison to be performed between the specified values. This is a dependency property. + + + + + ExtendedVisualStateManager is a custom VisualStateManager that can smooth out the animation of layout properties. + With this custom VisualStateManager, states can include changes to properties like Grid.Column, can change element heights to or from Auto, and so on. + These changes will be smoothed out over time using the GeneratedDuration and GeneratedEasingFunction of the appropriate transition. + See the "VisualStateManager overrides" region below for a general description of the algorithm. + + + + + A VisualStateGroup that can use FluidLayout or not. + + + + + Visibility is shadowed by a custom attached property at runtime. + + + + + A VisualStateGroup keeps a list of these original values in an attached property. + + + + + For every state, the layout-specific properties get extracted and then are attached to the state. These properties are removed from the state itself. + + + + + Remember the current state. + + + + + The TransitionEffect to use when the state changes. + + + + + The TransitionEffectStoryboard in use during the state change. + + + + + The cached background in use during the state change. + + + + + The cached background in use during the state change. + + + + + The cached background in use during the state change. + + + + + This is the set of elements that are currently in motion. + + + + + This is the storyboard that is animating the transition. + + + + + This list contains all the known layout properties. + + + + + Stop the animation and replace the layout changes that were made to support that animation. + + + + + Locate the transition that VisualStateManager will use to animate the change, so that the layout animation can match the duration and easing. + + The group in which the transition is taking place. + The state that you are coming from. + The state you are going to. + The transition + + + + Remove all layout-affecting properties from the Storyboard for the state and cache them in an attached property. + + The state you are moving to. + A Storyboard containing the layout properties in that state. + + + + The set of target elements is the set of all elements that might have moved in a layout transition. This set is the closure of: + - Elements with layout properties animated in the state. + - Siblings of elements in the set. + - Parents of elements in the set. + + Subsequent code will check these rectangles both before and after the layout change. + + The control whose layout is changing state. + The storyboard containing the layout changes. + Any previous values from previous state navigations that might be reverted. + The set of elements currently in motion, if there is a state change transition ongoing. + The full set of elements whose layout may have changed. + + + + Gets a set of rectangles for all the elements in the target list. + + The set of elements to consider. + The set of elements currently in motion. + A Dictionary mapping elements to their Rects. + + + + Get the layout rectangle of an element, by getting the layout slot and then computing which portion of the slot is being used. + + The element whose layout Rect will be retrieved. + The layout Rect of that element. + + + + Get the opacities of elements at the time of the state change, instead of visibilities, because the state change may be in process and the current value is the most important. + + The control whose state is changing. + The storyboard with the layout properties. + The set of original values. + + + + + Go through the layout Storyboard and set all the properties by using SetValue to enable calling UpdateLayout without + ticking the timeline, which would cause a render. + All values that are overwritten will be stored in the collection of OriginalValueRecords so that they can be replaced later. + + The control whose state is changing. + The Storyboard holding the layout properties. + The store of original values. + + + + Take all the elements that will be moving as a result of the layout animation, and wrap them in Canvas panels so that + they do not affect their sibling elements. + + The set of elements that will be moving. + + + + Take all the elements that have been moving as a result of the layout animation, and unwrap them from their Canvas panels. + + The set of elements that have been moving. + + + + Copy the layout properties from the source element to the target element, clearing them from the source. + + The source of the layout properties. + The destination of the layout properties. + + + + Create the actual Storyboard that will be used to animate the transition. Use all previously calculated results. + + The duration of the animation. + The easing function to be used in the animation. + The set of elements that will be moving. + The old opacities of the elements whose visibility properties are changing. + The Storyboard. + + + + OriginalValueRecord remembers the original value of a property that was changed in a state. + + + + + This enumerated type indicates whether a FluidMoveBehavior applies to the element to which it is attached, or to the children of that element. + "Self" is useful when there is a single element that should behave in a special manner; "Children" is useful when the same behavior should apply to all + children of a WrapPanel or to the ItemsHost panel of an ItemsControl. + + + + + This enumerated type indicates whether an element is identified by itself, or by its DataContext. + DataContext identification allows movement from one data-driven location to another. + + + + + Dependency property for the scope of the behavior. See FluidMoveScope for more details. + + + + + Dependency property for the active state of the behavior. + + + + + Dependency property that provides the ability to use the element as its own tag, or the binding on the element. + + + + + Dependency property for the extra path to add to the binding when UsaBindingAsTag is true. + + + + + Identity tag used to detect element motion between containers. + + + + + Indicates whether the behavior applies just to this element, or to all children of the element (if the element is a Panel). + + + + + Indicates whether the behavior is currently active. + + + + + Indicates whether to use the element as its own tag, or to use the binding on the element as the tag. + + + + + Extra path to add to the binding when TagType is specified. + + + + + Private structure that stores all relevant data pertaining to a tagged item. + + + + + Behavior that watches an element (or a set of elements) for layout changes, and moves the element smoothly to the new position when needed. + This behavior does not animate the size or visibility of an element; it only animates the offset of that element within its parent container. + + + + + Dependency property for the duration of the move. + + + + + Dependency property for the tag type to use just before the object is loaded. + + + + + Dependency property for the extra path to add to the binding when UsaBindingAsTag is true. + + + + + Identity tag used to detect element motion between containers. + + + + + Dependency property for the FloatAbove flag. + + + + + Dependency property for the EasingFunction to use for the horizontal component of the move. + + + + + Dependency property for the EasingFunction to use for the vertical component of the move. + + + + + Remember the popup/adorner being used, in case of element motion between containers when FloatAbove is true. + + + + + Opacity cache used when floating a Popup. + + + + + Marks the animation transform. + + + + + The duration of the move. + + + + + Spawning point for this item. + + + + + Extra path to add to the binding when TagType is specified. + + + + + Flag that says whether elements are allowed to float above their containers (in a Popup or Adorner) when changing containers. + + + + + EasingFunction to use for the horizontal component of the move. + + + + + EasingFunction to use for the vertical component of the move. + + + + + Simple helper class to allow any UIElements to be used as an Adorner. + + + + + An action that will transition a FrameworkElement to a specified VisualState when invoked. + + + If the TargetName property is set, this action will attempt to change the state of the targeted element. If not, it walks + the element tree in an attempt to locate an alternative target that defines states. ControlTemplate and UserControl are + two common possibilities. + + + + + Called when the target changes. If the TargetName property isn't set, this action has custom behavior. + + + + Could not locate an appropriate FrameworkElement with states. + + + + This method is called when some criteria is met and the action is invoked. + + + Could not change the target to the specified StateName. + + + + Determines whether or not to use a VisualTransition to transition between states. + + + + + The name of the VisualState. + + + + + A Trigger that is triggered by a keyboard event. If the target Key and Modifiers are detected, it fires. + + + + + The key that must be pressed for the trigger to fire. + + + + + The modifiers that must be active for the trigger to fire (the default is no modifiers pressed). + + + + + If true, the Trigger only listens to its trigger Source object, which means that element must have focus for the trigger to fire. + If false, the Trigger listens at the root, so any unhandled KeyDown/Up messages will be caught. + + + + + Determines whether or not to listen to the KeyDown or KeyUp event. + + + + + An action that will launch a process to open a file or Uri. For files, this action will launch the default program + for the given file extension. A Uri will open in a web browser. + + + + + This method is called when some criteria is met and the action is invoked. + + + + + + The file or Uri to open. + + + + + Repositions the attached element in response to mouse drag gestures on the element. + + + + + Dependency property for the X position of the dragged element, relative to the left of the root element. + + + + + Dependency property for the Y position of the dragged element, relative to the top of the root element. + + + + + Dependency property for the ConstrainToParentBounds property. If true, the dragged element will be constrained to stay within the bounds of its parent container. + + + + + Attempts to update the position of the associated element to the specified coordinates. + + The desired position of the element in root coordinates. + + + + Applies a relative position translation to the associated element. + + The X component of the desired translation in root coordinates. + The Y component of the desired translation in root coordinates. + + + + Applies the given translation to the RenderTransform of the associated element. + + The X component of the translation in parent coordinates. + The Y component of the translation in parent coordinates. + + + + Does a recursive deep copy of the specified transform. + + The transform to clone. + A deep copy of the specified transform, or null if the specified transform is null. + Thrown if the type of the Transform is not recognized. + + + + Updates the X and Y properties based on the current rendered position of the associated element. + + + + + Check if one Rect is contained by another. + + The containing Rect. + The contained Rect. + True if rect1 contains rect2; otherwise, False. + + + + Transforms as vector. + + The transform. + The X component of the vector. + The Y component of the vector. + A point containing the values of X and Y transformed by transform as a vector. + + + + Gets the transform offset. + + The transform. + The offset of the transform. + + + + Called after the behavior is attached to an AssociatedObject. + + Override this to hook up functionality to the AssociatedObject. + + + + Called when the behavior is getting detached from its AssociatedObject, but before it has actually occurred. + + Override this to unhook functionality from the AssociatedObject. + + + + Occurs when a drag gesture is initiated. + + + + + Occurs when a drag gesture update is processed. + + + + + Occurs when a drag gesture is finished. + + + + + Gets or sets the X position of the dragged element, relative to the left of the root element. This is a dependency property. + + + + + Gets or sets the Y position of the dragged element, relative to the top of the root element. This is a dependency property. + + + + + Gets or sets a value indicating whether the dragged element is constrained to stay within the bounds of its parent container. This is a dependency property. + + + True if the dragged element should be constrained to its parents bounds; otherwise, False. + + + + + Gets the on-screen position of the associated element in root coordinates. + + The on-screen position of the associated element in root coordinates. + + + + Gets the element bounds in element coordinates. + + The element bounds in element coordinates. + + + + Gets the parent element of the associated object. + + The parent element of the associated object. + + + + Gets the root element of the scene in which the associated object is located. + + The root element of the scene in which the associated object is located. + + + + Gets and sets the RenderTransform of the associated element. + + + + + An action that will play a sound to completion. + + + This action is intended for use with short sound effects that don't need to be stopped or controlled. If you're trying + to create a music player or game, it may not meet your needs. + + + + + Initializes a new instance of the class. + + + + + When the action is invoked, this method is used to customize the dynamically created MediaElement. + + + This method may be useful for Action authors who wish to extend PlaySoundAction. If you want to control the + MediaElement Balance property, you could inherit from PlaySoundAction and override this method. + + + + + + This method is called when some criteria are met and the action should be invoked. + + + Each invocation of the Action plays a new sound. Although the implementation is subject-to-change, the caller should + anticipate that this will create a new MediaElement that will be cleaned up when the sound completes or if the media + fails to play. + + + + + + A Uri defining the location of the sound file. This is used to set the source property of the MediaElement. This is a dependency property. + + + The sound can be any file format supported by MediaElement. In the case of a video, it will play only the + audio portion. + + + + + Control the volume of the sound. This is used to set the Volume property of the MediaElement. This is a dependency property. + + + + + An action that will remove the targeted element from the tree when invoked. + + + This action may fail. The action understands how to remove elements from common parents but not from custom collections or direct manipulation + of the visual tree. + + + + + An action that will change the value of a property from a data store object. + This class is identical to ChangePropertyAction. The only difference is that the data store picker is loaded + for this action. + + + + + An abstract class that provides the ability to target a Storyboard. + + + For action authors, this class provides a standard way to target a Storyboard. Design tools may choose to provide a + special editing experience for classes that inherit from this action, thereby improving the designer experience. + + + + + This method is called when the Storyboard property is changed. + + + + + + The targeted Storyboard. This is a dependency property. + + + + + An action that will change the state of a targeted storyboard when invoked. + + + + + This method is called when some criteria is met and the action should be invoked. This method will attempt to + change the targeted storyboard in a way defined by the ControlStoryboardOption. + + + + + + An abstract class that provides the ability to target a Storyboard. + + + For Trigger authors, this class provides a standard way to target a Storyboard. Design tools may choose to provide a + special editing experience for classes that inherit from this trigger, thereby improving the designer experience. + + + + + This method is called when the Storyboard property is changed. + + + + + The targeted Storyboard. This is a dependency property. + + + + + A trigger that listens for the completion of a Storyboard. + + + + + Initializes a new instance of the class. + + + + + A trigger that is triggered by a specified event occurring on its source and fires after a delay when that event is fired. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the number of milliseconds to wait between ticks. This is a dependency property. + + + + + Gets or sets the total number of ticks to be fired before the trigger is finished. This is a dependency property. + + + + + Defines a transition effect shader that transitions from one visual to another visual + using an interpolated value between 0 and 1. + + + + + Brush-valued properties that turn into sampler-properties in the shader. + Represents the image present in the final state of the transition. + + + + + Brush-valued properties that turn into sampler-properties in the shader. + Represents the image present in the initial state of the transition. + + + + + A Dependency property as the backing store for Progress. + Also used to represent the state of a transition from start to finish (range between 0 and 1). + + + + + Creates a modifiable clone (deep copy) of the using its current values. + + + + + Makes a deep copy of the transition effect. Implements CloneCurrentValue in Silverlight. + + A clone of current instance of transition effect. + + + + Updates the shader's variables to the default values. + + + + + Gets or sets the Input variable within the shader. + + + + + Gets or sets the OldImage variable within the shader. + + + + + Gets or sets the Progress variable within the shader. + + + + + Allows the user to use common touch gestures to translate, zoom, and rotate the attached object. + + + + + Called after the behavior is attached to an AssociatedObject. + + Override this to hook up functionality to the AssociatedObject. + + + + Called when the behavior is getting detached from its AssociatedObject, but before it has actually occurred. + + Override this to unhook functionality from the AssociatedObject. + + + + Gets or sets a value specifying which zooming and translation variants to support. + + + + + Gets or sets a number describing the rate at which the translation will decrease. + + + + + Gets or sets a number describing the rate at which the rotation will decrease. + + + + + Gets or sets the value indicating whether the zoom and translate position of the attached object is limited by the bounds of the parent object. + + + + + Gets or sets a number indicating the minimum zoom value allowed. + + + + + Gets or sets a number indicating the maximum zoom value allowed. + + + + + This class provides various platform agnostic standard operations for working with VisualStateManager. + + + + + Transitions the control between two states. + + The element to transition between states. + The state to transition to. + True to use a System.Windows.VisualTransition to transition between states; otherwise, false. + True if the control successfully transitioned to the new state; otherwise, false. + Control is null. + StateName is null. + + + + Gets the value of the VisualStateManager.VisualStateGroups attached property. + + The element from which to get the VisualStateManager.VisualStateGroups. + + + + + Find the nearest parent which contains visual states. + + The element from which to find the nearest stateful control. + The nearest stateful control if True; else null. + True if a parent contains visual states; else False. + + + + 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 Could not find method named '{0}' on object of type '{1}' that matches the expected signature.. + + + + + Looks up a localized string similar to More than one potential addition operator was found on type '{0}'.. + + + + + Looks up a localized string similar to Cannot animate a property change on a type '{0}' Target. Property changes can only be animated on types derived from DependencyObject.. + + + + + Looks up a localized string similar to Cannot find a property named "{0}" on type "{1}".. + + + + + Looks up a localized string similar to The Increment property cannot be set to True if the Duration property is set.. + + + + + Looks up a localized string similar to The '{0}' property cannot be incremented because its value cannot be read.. + + + + + Looks up a localized string similar to Cannot assign value of type "{0}" to property "{1}" of type "{2}". The "{1}" property can be assigned only values of type "{2}".. + + + + + Looks up a localized string similar to Property "{0}" defined by type "{1}" does not expose a set method and therefore cannot be modified.. + + + + + Looks up a localized string similar to Cannot find state named '{0}' on type '{1}'. Ensure that the state exists and that it can be accessed from this context.. + + + + + Looks up a localized string similar to Target {0} does not define any VisualStateGroups. . + + + + + Looks up a localized string similar to LeftOperand of type "{0}" cannot be used with operator "{1}".. + + + + + Looks up a localized string similar to LeftOperand of type "{1}" and RightOperand of type "{0}" cannot be used with operator "{2}".. + + + + + Looks up a localized string similar to RightOperand of type "{0}" cannot be used with operator "{1}".. + + + + + Looks up a localized string similar to The target of the RemoveElementAction is not supported.. + + + + diff --git a/bin/Release/System.Windows.Interactivity.dll b/bin/Release/System.Windows.Interactivity.dll new file mode 100644 index 0000000..0419e95 Binary files /dev/null and b/bin/Release/System.Windows.Interactivity.dll differ diff --git a/bin/Release/System.Windows.Interactivity.xml b/bin/Release/System.Windows.Interactivity.xml new file mode 100644 index 0000000..10cdad6 --- /dev/null +++ b/bin/Release/System.Windows.Interactivity.xml @@ -0,0 +1,1072 @@ + + + + System.Windows.Interactivity + + + + + Represents a collection of IAttachedObject with a shared AssociatedObject and provides change notifications to its contents when that AssociatedObject changes. + + + + + An interface for an object that can be attached to another object. + + + + + Attaches to the specified object. + + The object to attach to. + + + + Detaches this instance from its associated object. + + + + + Gets the associated object. + + The associated object. + Represents the object the instance is attached to. + + + + Initializes a new instance of the class. + + Internal, because this should not be inherited outside this assembly. + + + + Called immediately after the collection is attached to an AssociatedObject. + + + + + Called when the collection is being detached from its AssociatedObject, but before it has actually occurred. + + + + + Called when a new item is added to the collection. + + The new item. + + + + Called when an item is removed from the collection. + + The removed item. + + + Cannot add the instance to a collection more than once. + + + + Attaches to the specified object. + + The object to attach to. + The IAttachedObject is already attached to a different object. + + + + Detaches this instance from its associated object. + + + + + The object on which the collection is hosted. + + + + + Gets the associated object. + + The associated object. + + + + Encapsulates state information and zero or more ICommands into an attachable object. + + The type the can be attached to. + + Behavior is the base class for providing attachable state and commands to an object. + The types the Behavior can be attached to can be controlled by the generic parameter. + Override OnAttached() and OnDetaching() methods to hook and unhook any necessary handlers + from the AssociatedObject. + + + + + Encapsulates state information and zero or more ICommands into an attachable object. + + This is an infrastructure class. Behavior authors should derive from Behavior<T> instead of from this class. + + + + Called after the behavior is attached to an AssociatedObject. + + Override this to hook up functionality to the AssociatedObject. + + + + Called when the behavior is being detached from its AssociatedObject, but before it has actually occurred. + + Override this to unhook functionality from the AssociatedObject. + + + + Attaches to the specified object. + + The object to attach to. + The Behavior is already hosted on a different element. + dependencyObject does not satisfy the Behavior type constraint. + + + + Detaches this instance from its associated object. + + + + + The type to which this behavior can be attached. + + + + + Gets the object to which this behavior is attached. + + + + + Gets the associated object. + + The associated object. + + + + Initializes a new instance of the class. + + + + + Gets the object to which this is attached. + + + + + Represents a collection of behaviors with a shared AssociatedObject and provides change notifications to its contents when that AssociatedObject changes. + + + + + Initializes a new instance of the class. + + Internal, because this should not be inherited outside this assembly. + + + + Called immediately after the collection is attached to an AssociatedObject. + + + + + Called when the collection is being detached from its AssociatedObject, but before it has actually occurred. + + + + + Called when a new item is added to the collection. + + The new item. + + + + Called when an item is removed from the collection. + + The removed item. + + + + Creates a new instance of the BehaviorCollection. + + The new instance. + + + + Enumerates possible values for reusable property value editors. + + + + + Uses the element picker, if supported, to edit this property at design time. + + + + + Uses the storyboard picker, if supported, to edit this property at design time. + + + + + Uses the state picker, if supported, to edit this property at design time. + + + + + Uses the element-binding picker, if supported, to edit this property at design time. + + + + + Uses the property-binding picker, if supported, to edit this property at design time. + + + + + Associates the given editor type with the property on which the CustomPropertyValueEditor is applied. + + Use this attribute to get improved design-time editing for properties that denote element (by name), storyboards, or states (by name). + + + + Initializes a new instance of the class. + + The custom property value editor. + + + + Gets or sets the custom property value editor. + + The custom property value editor. + + + + Provides design tools information about what to instantiate for a given action or command. + + + + + Initializes a new instance of the class. + + The type this attribute applies to. + The type of to instantiate. + A single argument for the specified . + is not derived from TriggerBase. + This constructor is useful if the specifed has a single argument. The + resulting code will be CLS compliant. + + + + Initializes a new instance of the class. + + The type this attribute applies to. + The type of to instantiate. + The constructor arguments for the specified . + is not derived from TriggerBase. + + + + Instantiates this instance. + + The specified by the DefaultTriggerAttribute. + + + + Gets the type that this DefaultTriggerAttribute applies to. + + The type this DefaultTriggerAttribute applies to. + + + + Gets the type of the to instantiate. + + The type of the to instantiate. + + + + Gets the parameters to pass to the constructor. + + The parameters to pass to the constructor. + + + + This method will use the VisualTreeHelper.GetParent method to do a depth first walk up + the visual tree and return all ancestors of the specified object, including the object itself. + + The object in the visual tree to find ancestors of. + Returns itself an all ancestors in the visual tree. + + + + EventObserver is designed to help manage event handlers by detatching when disposed. Creating this object will also attach in the constructor. + + + + + Creates an instance of EventObserver and attaches to the supplied event on the supplied target. Call dispose to detach. + + The event to attach and detach from. + The target object the event is defined on. Null if the method is static. + The delegate to attach to the event. + + + + Detaches the handler from the event. + + + + + A trigger that listens for a specified event on its source and fires when that event is fired. + + + + + Represents a trigger that can listen to an element other than its AssociatedObject. + + The type that this trigger can be associated with. + + EventTriggerBase extends TriggerBase to add knowledge of another object than the one it is attached to. + This allows a user to attach a Trigger/Action pair to one element and invoke the Action in response to a + change in another object somewhere else. Override OnSourceChanged to hook or unhook handlers on the source + element, and OnAttached/OnDetaching for the associated element. The type of the Source element can be + constrained by the generic type parameter. If you need control over the type of the + AssociatedObject, set a TypeConstraintAttribute on your derived type. + + + + + Represents a trigger that can listen to an object other than its AssociatedObject. + + This is an infrastructure class. Trigger authors should derive from EventTriggerBase<T> instead of this class. + + + + Represents an object that can invoke Actions conditionally. + + This is an infrastructure class. Trigger authors should derive from Trigger<T> instead of this class. + + + + Invoke all actions associated with this trigger. + + Derived classes should call this to fire the trigger. + + + + Called after the trigger is attached to an AssociatedObject. + + + + + Called when the trigger is being detached from its AssociatedObject, but before it has actually occurred. + + + + + Creates a new instance of the TriggerBase derived class. + + The new instance. + + + + Attaches to the specified object. + + The object to attach to. + Cannot host the same trigger on more than one object at a time. + dependencyObject does not satisfy the trigger type constraint. + + + + Detaches this instance from its associated object. + + + + + Gets the object to which the trigger is attached. + + The associated object. + + + + Gets the type constraint of the associated object. + + The associated object type constraint. + + + + Gets the actions associated with this trigger. + + The actions associated with this trigger. + + + + Event handler for registering to PreviewInvoke. + + + + + Gets the associated object. + + The associated object. + + + + Specifies the name of the Event this EventTriggerBase is listening for. + + + + + + Called when the event associated with this EventTriggerBase is fired. By default, this will invoke all actions on the trigger. + + The instance containing the event data. + Override this to provide more granular control over when actions associated with this trigger will be invoked. + + + + Called when the source changes. + + The old source. + The new source. + This function should be overridden in derived classes to hook functionality to and unhook functionality from the changing source objects. + + + + Called after the trigger is attached to an AssociatedObject. + + + + + Called when the trigger is being detached from its AssociatedObject, but before it has actually occurred. + + + + Could not find eventName on the Target. + + + + Gets the type constraint of the associated object. + + The associated object type constraint. + Define a TypeConstraintAttribute on a derived type to constrain the types it may be attached to. + + + + Gets the source type constraint. + + The source type constraint. + + + + Gets or sets the target object. If TargetObject is not set, the target will look for the object specified by TargetName. If an element referred to by TargetName cannot be found, the target will default to the AssociatedObject. This is a dependency property. + + The target object. + + + + Gets or sets the name of the element this EventTriggerBase listens for as a source. If the name is not set or cannot be resolved, the AssociatedObject will be used. This is a dependency property. + + The name of the source element. + + + + Gets the resolved source. If is not set or cannot be resolved, defaults to AssociatedObject. + + The resolved source object. + In general, this property should be used in place of AssociatedObject in derived classes. + The element pointed to by does not satisify the type constraint. + + + + Initializes a new instance of the class. + + + + + Called when the source property changes. + + Override this to hook functionality to and unhook functionality from the specified source, rather than the AssociatedObject. + The old source. + The new source. + + + + Gets the resolved source. If is not set or cannot be resolved, defaults to AssociatedObject. + + The resolved source object. + In general, this property should be used in place of AssociatedObject in derived classes. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the event. + + + + Gets or sets the name of the event to listen for. This is a dependency property. + + The name of the event. + + + + Static class that owns the Triggers and Behaviors attached properties. Handles propagation of AssociatedObject change notifications. + + + + + This property is used as the internal backing store for the public Triggers attached property. + + + This property is not exposed publicly. This forces clients to use the GetTriggers and SetTriggers methods to access the + collection, ensuring the collection exists and is set before it is used. + + + + + This property is used as the internal backing store for the public Behaviors attached property. + + + This property is not exposed publicly. This forces clients to use the GetBehaviors and SetBehaviors methods to access the + collection, ensuring the collection exists and is set before it is used. + + + + + Gets the TriggerCollection containing the triggers associated with the specified object. + + The object from which to retrieve the triggers. + A TriggerCollection containing the triggers associated with the specified object. + + + + Gets the associated with a specified object. + + The object from which to retrieve the . + A containing the behaviors associated with the specified object. + + + Cannot host the same BehaviorCollection on more than one object at a time. + + + Cannot host the same TriggerCollection on more than one object at a time. + + + + A helper function to take the place of FrameworkElement.IsLoaded, as this property is not available in Silverlight. + + The element of interest. + True if the element has been loaded; otherwise, False. + + + + Gets or sets a value indicating whether to run as if in design mode. + + + True if [should run in design mode]; otherwise, False. + + Not to be used outside unit tests. + + + + Executes a specified ICommand when invoked. + + + + + Represents an attachable object that encapsulates a unit of functionality. + + The type to which this action can be attached. + + + + Represents an attachable object that encapsulates a unit of functionality. + + This is an infrastructure class. Action authors should derive from TriggerAction<T> instead of this class. + + + + Attempts to invoke the action. + + The parameter to the action. If the action does not require a parameter, the parameter may be set to a null reference. + + + + Invokes the action. + + The parameter to the action. If the action does not require a parameter, the parameter may be set to a null reference. + + + + Called after the action is attached to an AssociatedObject. + + + + + Called when the action is being detached from its AssociatedObject, but before it has actually occurred. + + + + + When implemented in a derived class, creates a new instance of the derived class. + + The new instance. + + + + Attaches to the specified object. + + The object to attach to. + Cannot host the same TriggerAction on more than one object at a time. + dependencyObject does not satisfy the TriggerAction type constraint. + + + + Detaches this instance from its associated object. + + + + + Gets or sets a value indicating whether this action will run when invoked. This is a dependency property. + + + True if this action will be run when invoked; otherwise, False. + + + + + Gets the object to which this action is attached. + + The associated object. + + + + Gets the associated object type constraint. + + The associated object type constraint. + + + + Gets or sets a value indicating whether this instance is attached. + + True if this instance is attached; otherwise, False. + + + + Gets the associated object. + + The associated object. + + + + Initializes a new instance of the class. + + + + + Gets the object to which this is attached. + + The associated object. + + + + Gets the associated object type constraint. + + The associated object type constraint. + + + + Invokes the action. + + The parameter to the action. If the action does not require a parameter, the parameter may be set to a null reference. + + + + Gets or sets the name of the command this action should invoke. + + The name of the command this action should invoke. + This property will be superseded by the Command property if both are set. + + + + Gets or sets the command this action should invoke. This is a dependency property. + + The command to execute. + This property will take precedence over the CommandName property if both are set. + + + + Gets or sets the command parameter. This is a dependency property. + + The command parameter. + This is the value passed to ICommand.CanExecute and ICommand.Execute. + + + + Provides data about which objects were affected when resolving a name change. + + + + + Helper class to handle the logic of resolving a TargetName into a Target element + based on the context provided by a host element. + + + + + Attempts to update the resolved object from the name within the context of the namescope reference element. + + The old resolved object. + + Resets the existing target and attempts to resolve the current TargetName from the + context of the current Host. If it cannot resolve from the context of the Host, it will + continue up the visual tree until it resolves. If it has not resolved it when it reaches + the root, it will set the Target to null and write a warning message to Debug output. + + + + + Occurs when the resolved element has changed. + + + + + Gets or sets the name of the element to attempt to resolve. + + The name to attempt to resolve. + + + + The resolved object. Will return the reference element if TargetName is null or empty, or if a resolve has not been attempted. + + + + + Gets or sets the reference element from which to perform the name resolution. + + The reference element. + + + + Gets or sets a value indicating whether the reference element load is pending. + + + True if [pending reference element load]; otherwise, False. + + + If the Host has not been loaded, the name will not be resolved. + In that case, delay the resolution and track that fact with this property. + + + + + Represents an action that can be targeted to affect an object other than its AssociatedObject. + + The type constraint on the target. + + TargetedTriggerAction extends TriggerAction to add knowledge of another element than the one it is attached to. + This allows a user to invoke the action on an element other than the one it is attached to in response to a + trigger firing. Override OnTargetChanged to hook or unhook handlers on the target element, and OnAttached/OnDetaching + for the associated element. The type of the Target element can be constrained by the generic type parameter. If + you need control over the type of the AssociatedObject, set a TypeConstraintAttribute on your derived type. + + + + + Represents an action that can be targeted to affect an object other than its AssociatedObject. + + This is an infrastructure class. Action authors should derive from TargetedTriggerAction<T> instead of this class. + + + + Called when the target changes. + + The old target. + The new target. + This function should be overriden in derived classes to hook and unhook functionality from the changing source objects. + + + + Called after the action is attached to an AssociatedObject. + + + + + Called when the action is being detached from its AssociatedObject, but before it has actually occurred. + + + + + Gets or sets the target object. If TargetObject is not set, the target will look for the object specified by TargetName. If an element referred to by TargetName cannot be found, the target will default to the AssociatedObject. This is a dependency property. + + The target object. + + + + Gets or sets the name of the object this action targets. If Target is set, this property is ignored. If Target is not set and TargetName is not set or cannot be resolved, the target will default to the AssociatedObject. This is a dependency property. + + The name of the target object. + + + + Gets the target object. If TargetObject is set, returns TargetObject. Else, if TargetName is not set or cannot be resolved, defaults to the AssociatedObject. + + The target object. + In general, this property should be used in place of AssociatedObject in derived classes. + The Target element does not satisfy the type constraint. + + + + Gets the associated object type constraint. + + The associated object type constraint. + Define a TypeConstraintAttribute on a derived type to constrain the types it may be attached to. + + + + Gets the target type constraint. + + The target type constraint. + + + + Initializes a new instance of the class. + + + + + Called when the target property changes. + + Override this to hook and unhook functionality on the specified Target, rather than the AssociatedObject. + The old target. + The new target. + + + + Gets the target object. If TargetName is not set or cannot be resolved, defaults to the AssociatedObject. + + The target. + In general, this property should be used in place of AssociatedObject in derived classes. + + + + Represents a collection of actions with a shared AssociatedObject and provides change notifications to its contents when that AssociatedObject changes. + + + + + Initializes a new instance of the class. + + Internal, because this should not be inherited outside this assembly. + + + + Called immediately after the collection is attached to an AssociatedObject. + + + + + Called when the collection is being detached from its AssociatedObject, but before it has actually occurred. + + + + + Called when a new item is added to the collection. + + The new item. + + + + Called when an item is removed from the collection. + + The removed item. + + + + Creates a new instance of the TriggerActionCollection. + + The new instance. + + + + Represents an object that can invoke actions conditionally. + + The type to which this trigger can be attached. + + TriggerBase is the base class for controlling actions. Override OnAttached() and + OnDetaching() to hook and unhook handlers on the AssociatedObject. You may + constrain the types that a derived TriggerBase may be attached to by specifying + the generic parameter. Call InvokeActions() to fire all Actions associated with + this TriggerBase. + + + + + Initializes a new instance of the class. + + + + + Gets the object to which the trigger is attached. + + The associated object. + + + + Gets the type constraint of the associated object. + + The associated object type constraint. + + + + Argument passed to PreviewInvoke event. Assigning Cancelling to True will cancel the invoking of the trigger. + + This is an infrastructure class. Behavior attached to a trigger base object can add its behavior as a listener to TriggerBase.PreviewInvoke. + + + + Represents a collection of triggers with a shared AssociatedObject and provides change notifications to its contents when that AssociatedObject changes. + + + + + Initializes a new instance of the class. + + Internal, because this should not be inherited outside this assembly. + + + + Called immediately after the collection is attached to an AssociatedObject. + + + + + Called when the collection is being detached from its AssociatedObject, but before it has actually occurred. + + + + + Called when a new item is added to the collection. + + The new item. + + + + Called when an item is removed from the collection. + + The removed item. + + + + Creates a new instance of the . + + The new instance. + + + + Specifies type constraints on the AssociatedObject of TargetedTriggerAction and EventTriggerBase. + + + + + Initializes a new instance of the class. + + The constraint type. + + + + Gets the constraint type. + + The constraint type. + + + + 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 Cannot set the same BehaviorCollection on multiple objects.. + + + + + Looks up a localized string similar to An instance of a Behavior cannot be attached to more than one object at a time.. + + + + + Looks up a localized string similar to Cannot host an instance of a TriggerAction in multiple TriggerCollections simultaneously. Remove it from one TriggerCollection before adding it to another.. + + + + + Looks up a localized string similar to Cannot set the same TriggerCollection on multiple objects.. + + + + + Looks up a localized string similar to An instance of a trigger cannot be attached to more than one object at a time.. + + + + + Looks up a localized string similar to The command "{0}" does not exist or is not publicly exposed on {1}.. + + + + + Looks up a localized string similar to "{0}" is not a valid type for the TriggerType parameter. Make sure "{0}" derives from TriggerBase.. + + + + + Looks up a localized string similar to Cannot add the same instance of "{0}" to a "{1}" more than once.. + + + + + Looks up a localized string similar to The event "{0}" on type "{1}" has an incompatible signature. Make sure the event is public and satisfies the EventHandler delegate.. + + + + + Looks up a localized string similar to Cannot find an event named "{0}" on type "{1}".. + + + + + Looks up a localized string similar to An object of type "{0}" cannot have a {3} property of type "{1}". Instances of type "{0}" can have only a {3} property of type "{2}".. + + + + + Looks up a localized string similar to Cannot attach type "{0}" to type "{1}". Instances of type "{0}" can only be attached to objects of type "{2}".. + + + + + Looks up a localized string similar to Unable to resolve TargetName "{0}".. + + + + diff --git a/bin/Release/de/Microsoft.Expression.Interactions.resources.dll b/bin/Release/de/Microsoft.Expression.Interactions.resources.dll new file mode 100644 index 0000000..ec30f52 Binary files /dev/null and b/bin/Release/de/Microsoft.Expression.Interactions.resources.dll differ diff --git a/bin/Release/de/System.Windows.Interactivity.resources.dll b/bin/Release/de/System.Windows.Interactivity.resources.dll new file mode 100644 index 0000000..6fd40e9 Binary files /dev/null and b/bin/Release/de/System.Windows.Interactivity.resources.dll differ diff --git a/bin/Release/en/Microsoft.Expression.Interactions.resources.dll b/bin/Release/en/Microsoft.Expression.Interactions.resources.dll new file mode 100644 index 0000000..0eca265 Binary files /dev/null and b/bin/Release/en/Microsoft.Expression.Interactions.resources.dll differ diff --git a/bin/Release/en/System.Windows.Interactivity.resources.dll b/bin/Release/en/System.Windows.Interactivity.resources.dll new file mode 100644 index 0000000..a9aac8e Binary files /dev/null and b/bin/Release/en/System.Windows.Interactivity.resources.dll differ diff --git a/bin/Release/es/Microsoft.Expression.Interactions.resources.dll b/bin/Release/es/Microsoft.Expression.Interactions.resources.dll new file mode 100644 index 0000000..7b8754c Binary files /dev/null and b/bin/Release/es/Microsoft.Expression.Interactions.resources.dll differ diff --git a/bin/Release/es/System.Windows.Interactivity.resources.dll b/bin/Release/es/System.Windows.Interactivity.resources.dll new file mode 100644 index 0000000..bc65afb Binary files /dev/null and b/bin/Release/es/System.Windows.Interactivity.resources.dll differ diff --git a/bin/Release/fr/Microsoft.Expression.Interactions.resources.dll b/bin/Release/fr/Microsoft.Expression.Interactions.resources.dll new file mode 100644 index 0000000..3540f1e Binary files /dev/null and b/bin/Release/fr/Microsoft.Expression.Interactions.resources.dll differ diff --git a/bin/Release/fr/System.Windows.Interactivity.resources.dll b/bin/Release/fr/System.Windows.Interactivity.resources.dll new file mode 100644 index 0000000..e4b0407 Binary files /dev/null and b/bin/Release/fr/System.Windows.Interactivity.resources.dll differ diff --git a/bin/Release/it/Microsoft.Expression.Interactions.resources.dll b/bin/Release/it/Microsoft.Expression.Interactions.resources.dll new file mode 100644 index 0000000..0fcd653 Binary files /dev/null and b/bin/Release/it/Microsoft.Expression.Interactions.resources.dll differ diff --git a/bin/Release/it/System.Windows.Interactivity.resources.dll b/bin/Release/it/System.Windows.Interactivity.resources.dll new file mode 100644 index 0000000..758cb54 Binary files /dev/null and b/bin/Release/it/System.Windows.Interactivity.resources.dll differ diff --git a/bin/Release/ja/Microsoft.Expression.Interactions.resources.dll b/bin/Release/ja/Microsoft.Expression.Interactions.resources.dll new file mode 100644 index 0000000..7ef3def Binary files /dev/null and b/bin/Release/ja/Microsoft.Expression.Interactions.resources.dll differ diff --git a/bin/Release/ja/System.Windows.Interactivity.resources.dll b/bin/Release/ja/System.Windows.Interactivity.resources.dll new file mode 100644 index 0000000..94edbdc Binary files /dev/null and b/bin/Release/ja/System.Windows.Interactivity.resources.dll differ diff --git a/bin/Release/ko/Microsoft.Expression.Interactions.resources.dll b/bin/Release/ko/Microsoft.Expression.Interactions.resources.dll new file mode 100644 index 0000000..2cf1eeb Binary files /dev/null and b/bin/Release/ko/Microsoft.Expression.Interactions.resources.dll differ diff --git a/bin/Release/ko/System.Windows.Interactivity.resources.dll b/bin/Release/ko/System.Windows.Interactivity.resources.dll new file mode 100644 index 0000000..2fc1694 Binary files /dev/null and b/bin/Release/ko/System.Windows.Interactivity.resources.dll differ diff --git a/bin/Release/log4net.dll b/bin/Release/log4net.dll new file mode 100644 index 0000000..93fb476 Binary files /dev/null and b/bin/Release/log4net.dll differ diff --git a/bin/Release/log4net.xml b/bin/Release/log4net.xml new file mode 100644 index 0000000..df56743 --- /dev/null +++ b/bin/Release/log4net.xml @@ -0,0 +1,32464 @@ + + + + log4net + + + + + Appender that logs to a database. + + + + appends logging events to a table within a + database. The appender can be configured to specify the connection + string by setting the property. + The connection type (provider) can be specified by setting the + property. For more information on database connection strings for + your specific database see http://www.connectionstrings.com/. + + + Records are written into the database either using a prepared + statement or a stored procedure. The property + is set to (System.Data.CommandType.Text) to specify a prepared statement + or to (System.Data.CommandType.StoredProcedure) to specify a stored + procedure. + + + The prepared statement text or the name of the stored procedure + must be set in the property. + + + The prepared statement or stored procedure can take a number + of parameters. Parameters are added using the + method. This adds a single to the + ordered list of parameters. The + type may be subclassed if required to provide database specific + functionality. The specifies + the parameter name, database type, size, and how the value should + be generated using a . + + + + An example of a SQL Server table that could be logged to: + + CREATE TABLE [dbo].[Log] ( + [ID] [int] IDENTITY (1, 1) NOT NULL , + [Date] [datetime] NOT NULL , + [Thread] [varchar] (255) NOT NULL , + [Level] [varchar] (20) NOT NULL , + [Logger] [varchar] (255) NOT NULL , + [Message] [varchar] (4000) NOT NULL + ) ON [PRIMARY] + + + + An example configuration to log to the above table: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Julian Biddle + Nicko Cadell + Gert Driesen + Lance Nehring + + + + Abstract base class implementation of that + buffers events in a fixed size buffer. + + + + This base class should be used by appenders that need to buffer a + number of events before logging them. For example the + buffers events and then submits the entire contents of the buffer to + the underlying database in one go. + + + Subclasses should override the + method to deliver the buffered events. + + The BufferingAppenderSkeleton maintains a fixed size cyclic + buffer of events. The size of the buffer is set using + the property. + + A is used to inspect + each event as it arrives in the appender. If the + triggers, then the current buffer is sent immediately + (see ). Otherwise the event + is stored in the buffer. For example, an evaluator can be used to + deliver the events immediately when an ERROR event arrives. + + + The buffering appender can be configured in a mode. + By default the appender is NOT lossy. When the buffer is full all + the buffered events are sent with . + If the property is set to true then the + buffer will not be sent when it is full, and new events arriving + in the appender will overwrite the oldest event in the buffer. + In lossy mode the buffer will only be sent when the + triggers. This can be useful behavior when you need to know about + ERROR events but not about events with a lower level, configure an + evaluator that will trigger when an ERROR event arrives, the whole + buffer will be sent which gives a history of events leading up to + the ERROR event. + + + Nicko Cadell + Gert Driesen + + + + Abstract base class implementation of . + + + + This class provides the code for common functionality, such + as support for threshold filtering and support for general filters. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + Implement this interface for your own strategies for printing log statements. + + + + Implementors should consider extending the + class which provides a default implementation of this interface. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Log the logging event in Appender specific way. + + The event to log + + + This method is called to log a message into this appender. + + + + + + Gets or sets the name of this appender. + + The name of the appender. + + The name uniquely identifies the appender. + + + + + Interface for appenders that support bulk logging. + + + + This interface extends the interface to + support bulk logging of objects. Appenders + should only implement this interface if they can bulk log efficiently. + + + Nicko Cadell + + + + Log the array of logging events in Appender specific way. + + The events to log + + + This method is called to log an array of events into this appender. + + + + + + Interface used to delay activate a configured object. + + + + This allows an object to defer activation of its options until all + options have been set. This is required for components which have + related options that remain ambiguous until all are set. + + + If a component implements this interface then the method + must be called by the container after its all the configured properties have been set + and before the component can be used. + + + Nicko Cadell + + + + Activate the options that were previously set with calls to properties. + + + + This allows an object to defer activation of its options until all + options have been set. This is required for components which have + related options that remain ambiguous until all are set. + + + If a component implements this interface then this method must be called + after its properties have been set before the component can be used. + + + + + + Interface that can be implemented by Appenders that buffer logging data and expose a method. + + + + + Flushes any buffered log data. + + + Appenders that implement the method must do so in a thread-safe manner: it can be called concurrently with + the method. + + Typically this is done by locking on the Appender instance, e.g.: + + + + + + The parameter is only relevant for appenders that process logging events asynchronously, + such as . + + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + Default constructor + + + Empty default constructor + + + + + Finalizes this appender by calling the implementation's + method. + + + + If this appender has not been closed then the Finalize method + will call . + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Closes the appender and release resources. + + + + Release any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + This method cannot be overridden by subclasses. This method + delegates the closing of the appender to the + method which must be overridden in the subclass. + + + + + + Performs threshold checks and invokes filters before + delegating actual logging to the subclasses specific + method. + + The event to log. + + + This method cannot be overridden by derived classes. A + derived class should override the method + which is called by this method. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + Calls and checks that + it returns true. + + + + + If all of the above steps succeed then the + will be passed to the abstract method. + + + + + + Performs threshold checks and invokes filters before + delegating actual logging to the subclasses specific + method. + + The array of events to log. + + + This method cannot be overridden by derived classes. A + derived class should override the method + which is called by this method. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + Calls and checks that + it returns true. + + + + + If all of the above steps succeed then the + will be passed to the method. + + + + + + Test if the logging event should we output by this appender + + the event to test + true if the event should be output, false if the event should be ignored + + + This method checks the logging event against the threshold level set + on this appender and also against the filters specified on this + appender. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + + + + + Adds a filter to the end of the filter chain. + + the filter to add to this appender + + + The Filters are organized in a linked list. + + + Setting this property causes the new filter to be pushed onto the + back of the filter chain. + + + + + + Clears the filter list for this appender. + + + + Clears the filter list for this appender. + + + + + + Checks if the message level is below this appender's threshold. + + to test against. + + + If there is no threshold set, then the return value is always true. + + + + true if the meets the + requirements of this appender. + + + + + Is called when the appender is closed. Derived classes should override + this method if resources need to be released. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Subclasses of should implement this method + to perform actual logging. + + The event to append. + + + A subclass must implement this method to perform + logging of the . + + This method will be called by + if all the conditions listed for that method are met. + + + To restrict the logging of events in the appender + override the method. + + + + + + Append a bulk array of logging events. + + the array of logging events + + + This base class implementation calls the + method for each element in the bulk array. + + + A sub class that can better process a bulk array of events should + override this method in addition to . + + + + + + Called before as a precondition. + + + + This method is called by + before the call to the abstract method. + + + This method can be overridden in a subclass to extend the checks + made before the event is passed to the method. + + + A subclass should ensure that they delegate this call to + this base class if it is overridden. + + + true if the call to should proceed. + + + + Renders the to a string. + + The event to render. + The event rendered as a string. + + + Helper method to render a to + a string. This appender must have a + set to render the to + a string. + + If there is exception data in the logging event and + the layout does not process the exception, this method + will append the exception text to the rendered string. + + + Where possible use the alternative version of this method + . + That method streams the rendering onto an existing Writer + which can give better performance if the caller already has + a open and ready for writing. + + + + + + Renders the to a string. + + The event to render. + The TextWriter to write the formatted event to + + + Helper method to render a to + a string. This appender must have a + set to render the to + a string. + + If there is exception data in the logging event and + the layout does not process the exception, this method + will append the exception text to the rendered string. + + + Use this method in preference to + where possible. If, however, the caller needs to render the event + to a string then does + provide an efficient mechanism for doing so. + + + + + + Flushes any buffered log data. + + + This implementation doesn't flush anything and always returns true + + True if all logging events were flushed successfully, else false. + + + + The layout of this appender. + + + See for more information. + + + + + The name of this appender. + + + See for more information. + + + + + The level threshold of this appender. + + + + There is no level threshold filtering by default. + + + See for more information. + + + + + + It is assumed and enforced that errorHandler is never null. + + + + It is assumed and enforced that errorHandler is never null. + + + See for more information. + + + + + + The first filter in the filter chain. + + + + Set to null initially. + + + See for more information. + + + + + + The last filter in the filter chain. + + + See for more information. + + + + + Flag indicating if this appender is closed. + + + See for more information. + + + + + The guard prevents an appender from repeatedly calling its own DoAppend method + + + + + StringWriter used to render events + + + + + The fully qualified type of the AppenderSkeleton class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the threshold of this appender. + + + The threshold of the appender. + + + + All log events with lower level than the threshold level are ignored + by the appender. + + + In configuration files this option is specified by setting the + value of the option to a level + string, such as "DEBUG", "INFO" and so on. + + + + + + Gets or sets the for this appender. + + The of the appender + + + The provides a default + implementation for the property. + + + + + + The filter chain. + + The head of the filter chain filter chain. + + + Returns the head Filter. The Filters are organized in a linked list + and so all Filters on this Appender are available through the result. + + + + + + Gets or sets the for this appender. + + The layout of the appender. + + + See for more information. + + + + + + + Gets or sets the name of this appender. + + The name of the appender. + + + The name uniquely identifies the appender. + + + + + + Tests if this appender requires a to be set. + + + + In the rather exceptional case, where the appender + implementation admits a layout but can also work without it, + then the appender should return true. + + + This default implementation always returns false. + + + + true if the appender requires a layout object, otherwise false. + + + + + The default buffer size. + + + The default size of the cyclic buffer used to store events. + This is set to 512 by default. + + + + + Initializes a new instance of the class. + + + + Protected default constructor to allow subclassing. + + + + + + Initializes a new instance of the class. + + the events passed through this appender must be + fixed by the time that they arrive in the derived class' SendBuffer method. + + + Protected constructor to allow subclassing. + + + The should be set if the subclass + expects the events delivered to be fixed even if the + is set to zero, i.e. when no buffering occurs. + + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Flush the currently buffered events + + + + Flushes any events that have been buffered. + + + If the appender is buffering in mode then the contents + of the buffer will NOT be flushed to the appender. + + + + + + Flush the currently buffered events + + set to true to flush the buffer of lossy events + + + Flushes events that have been buffered. If is + false then events will only be flushed if this buffer is non-lossy mode. + + + If the appender is buffering in mode then the contents + of the buffer will only be flushed if is true. + In this case the contents of the buffer will be tested against the + and if triggering will be output. All other buffered + events will be discarded. + + + If is true then the buffer will always + be emptied by calling this method. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Close this appender instance. + + + + Close this appender instance. If this appender is marked + as not then the remaining events in + the buffer must be sent when the appender is closed. + + + + + + This method is called by the method. + + the event to log + + + Stores the in the cyclic buffer. + + + The buffer will be sent (i.e. passed to the + method) if one of the following conditions is met: + + + + The cyclic buffer is full and this appender is + marked as not lossy (see ) + + + An is set and + it is triggered for the + specified. + + + + Before the event is stored in the buffer it is fixed + (see ) to ensure that + any data referenced by the event will be valid when the buffer + is processed. + + + + + + Sends the contents of the buffer. + + The first logging event. + The buffer containing the events that need to be send. + + + The subclass must override . + + + + + + Sends the events. + + The events that need to be send. + + + The subclass must override this method to process the buffered events. + + + + + + The size of the cyclic buffer used to hold the logging events. + + + Set to by default. + + + + + The cyclic buffer used to store the logging events. + + + + + The triggering event evaluator that causes the buffer to be sent immediately. + + + The object that is used to determine if an event causes the entire + buffer to be sent immediately. This field can be null, which + indicates that event triggering is not to be done. The evaluator + can be set using the property. If this appender + has the ( property) set to + true then an must be set. + + + + + Indicates if the appender should overwrite events in the cyclic buffer + when it becomes full, or if the buffer should be flushed when the + buffer is full. + + + If this field is set to true then an must + be set. + + + + + The triggering event evaluator filters discarded events. + + + The object that is used to determine if an event that is discarded should + really be discarded or if it should be sent to the appenders. + This field can be null, which indicates that all discarded events will + be discarded. + + + + + Value indicating which fields in the event should be fixed + + + By default all fields are fixed + + + + + The events delivered to the subclass must be fixed. + + + + + Gets or sets a value that indicates whether the appender is lossy. + + + true if the appender is lossy, otherwise false. The default is false. + + + + This appender uses a buffer to store logging events before + delivering them. A triggering event causes the whole buffer + to be send to the remote sink. If the buffer overruns before + a triggering event then logging events could be lost. Set + to false to prevent logging events + from being lost. + + If is set to true then an + must be specified. + + + + + Gets or sets the size of the cyclic buffer used to hold the + logging events. + + + The size of the cyclic buffer used to hold the logging events. + + + + The option takes a positive integer + representing the maximum number of logging events to collect in + a cyclic buffer. When the is reached, + oldest events are deleted as new events are added to the + buffer. By default the size of the cyclic buffer is 512 events. + + + If the is set to a value less than + or equal to 1 then no buffering will occur. The logging event + will be delivered synchronously (depending on the + and properties). Otherwise the event will + be buffered. + + + + + + Gets or sets the that causes the + buffer to be sent immediately. + + + The that causes the buffer to be + sent immediately. + + + + The evaluator will be called for each event that is appended to this + appender. If the evaluator triggers then the current buffer will + immediately be sent (see ). + + If is set to true then an + must be specified. + + + + + Gets or sets the value of the to use. + + + The value of the to use. + + + + The evaluator will be called for each event that is discarded from this + appender. If the evaluator triggers then the current buffer will immediately + be sent (see ). + + + + + + Gets or sets a value indicating if only part of the logging event data + should be fixed. + + + true if the appender should only fix part of the logging event + data, otherwise false. The default is false. + + + + Setting this property to true will cause only part of the + event data to be fixed and serialized. This will improve performance. + + + See for more information. + + + + + + Gets or sets a the fields that will be fixed in the event + + + The event fields that will be fixed before the event is buffered + + + + The logging event needs to have certain thread specific values + captured before it can be buffered. See + for details. + + + + + + + Initializes a new instance of the class. + + + Public default constructor to initialize a new instance of this class. + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Override the parent method to close the database + + + + Closes the database command and database connection. + + + + + + Inserts the events into the database. + + The events to insert into the database. + + + Insert all the events specified in the + array into the database. + + + + + + Adds a parameter to the command. + + The parameter to add to the command. + + + Adds a parameter to the ordered list of command parameters. + + + + + + Writes the events to the database using the transaction specified. + + The transaction that the events will be executed under. + The array of events to insert into the database. + + + The transaction argument can be null if the appender has been + configured not to use transactions. See + property for more information. + + + + + + Formats the log message into database statement text. + + The event being logged. + + This method can be overridden by subclasses to provide + more control over the format of the database statement. + + + Text that can be passed to a . + + + + + Creates an instance used to connect to the database. + + + This method is called whenever a new IDbConnection is needed (i.e. when a reconnect is necessary). + + The of the object. + The connectionString output from the ResolveConnectionString method. + An instance with a valid connection string. + + + + Resolves the connection string from the ConnectionString, ConnectionStringName, or AppSettingsKey + property. + + + ConnectiongStringName is only supported on .NET 2.0 and higher. + + Additional information describing the connection string. + A connection string used to connect to the database. + + + + Retrieves the class type of the ADO.NET provider. + + + + Gets the Type of the ADO.NET provider to use to connect to the + database. This method resolves the type specified in the + property. + + + Subclasses can override this method to return a different type + if necessary. + + + The of the ADO.NET provider + + + + Connects to the database. + + + + + Cleanup the existing connection. + + + Calls the IDbConnection's method. + + + + + The list of objects. + + + + The list of objects. + + + + + + The security context to use for privileged calls + + + + + The that will be used + to insert logging events into a database. + + + + + Database connection string. + + + + + The appSettings key from App.Config that contains the connection string. + + + + + The connectionStrings key from App.Config that contains the connection string. + + + + + String type name of the type name. + + + + + The text of the command. + + + + + The command type. + + + + + Indicates whether to use transactions when writing to the database. + + + + + Indicates whether to reconnect when a connection is lost. + + + + + The fully qualified type of the AdoNetAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the database connection string that is used to connect to + the database. + + + The database connection string used to connect to the database. + + + + The connections string is specific to the connection type. + See for more information. + + + Connection string for MS Access via ODBC: + "DSN=MS Access Database;UID=admin;PWD=;SystemDB=C:\data\System.mdw;SafeTransactions = 0;FIL=MS Access;DriverID = 25;DBQ=C:\data\train33.mdb" + + Another connection string for MS Access via ODBC: + "Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\Work\cvs_root\log4net-1.2\access.mdb;UID=;PWD=;" + + Connection string for MS Access via OLE DB: + "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Work\cvs_root\log4net-1.2\access.mdb;User Id=;Password=;" + + + + + The appSettings key from App.Config that contains the connection string. + + + + + The connectionStrings key from App.Config that contains the connection string. + + + This property requires at least .NET 2.0. + + + + + Gets or sets the type name of the connection + that should be created. + + + The type name of the connection. + + + + The type name of the ADO.NET provider to use. + + + The default is to use the OLE DB provider. + + + Use the OLE DB Provider. This is the default value. + System.Data.OleDb.OleDbConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Use the MS SQL Server Provider. + System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Use the ODBC Provider. + Microsoft.Data.Odbc.OdbcConnection,Microsoft.Data.Odbc,version=1.0.3300.0,publicKeyToken=b77a5c561934e089,culture=neutral + This is an optional package that you can download from + http://msdn.microsoft.com/downloads + search for ODBC .NET Data Provider. + + Use the Oracle Provider. + System.Data.OracleClient.OracleConnection, System.Data.OracleClient, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + This is an optional package that you can download from + http://msdn.microsoft.com/downloads + search for .NET Managed Provider for Oracle. + + + + + Gets or sets the command text that is used to insert logging events + into the database. + + + The command text used to insert logging events into the database. + + + + Either the text of the prepared statement or the + name of the stored procedure to execute to write into + the database. + + + The property determines if + this text is a prepared statement or a stored procedure. + + + If this property is not set, the command text is retrieved by invoking + . + + + + + + Gets or sets the command type to execute. + + + The command type to execute. + + + + This value may be either (System.Data.CommandType.Text) to specify + that the is a prepared statement to execute, + or (System.Data.CommandType.StoredProcedure) to specify that the + property is the name of a stored procedure + to execute. + + + The default value is (System.Data.CommandType.Text). + + + + + + Should transactions be used to insert logging events in the database. + + + true if transactions should be used to insert logging events in + the database, otherwise false. The default value is true. + + + + Gets or sets a value that indicates whether transactions should be used + to insert logging events in the database. + + + When set a single transaction will be used to insert the buffered events + into the database. Otherwise each event will be inserted without using + an explicit transaction. + + + + + + Gets or sets the used to call the NetSend method. + + + The used to call the NetSend method. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Should this appender try to reconnect to the database on error. + + + true if the appender should try to reconnect to the database after an + error has occurred, otherwise false. The default value is false, + i.e. not to try to reconnect. + + + + The default behaviour is for the appender not to try to reconnect to the + database if an error occurs. Subsequent logging events are discarded. + + + To force the appender to attempt to reconnect to the database set this + property to true. + + + When the appender attempts to connect to the database there may be a + delay of up to the connection timeout specified in the connection string. + This delay will block the calling application's thread. + Until the connection can be reestablished this potential delay may occur multiple times. + + + + + + Gets or sets the underlying . + + + The underlying . + + + creates a to insert + logging events into a database. Classes deriving from + can use this property to get or set this . Use the + underlying returned from if + you require access beyond that which provides. + + + + + Parameter type used by the . + + + + This class provides the basic database parameter properties + as defined by the interface. + + This type can be subclassed to provide database specific + functionality. The two methods that are called externally are + and . + + + + + + Initializes a new instance of the class. + + + Default constructor for the AdoNetAppenderParameter class. + + + + + Prepare the specified database command object. + + The command to prepare. + + + Prepares the database command object by adding + this parameter to its collection of parameters. + + + + + + Renders the logging event and set the parameter value in the command. + + The command containing the parameter. + The event to be rendered. + + + Renders the logging event using this parameters layout + object. Sets the value of the parameter on the command object. + + + + + + The name of this parameter. + + + + + The database type for this parameter. + + + + + Flag to infer type rather than use the DbType + + + + + The precision for this parameter. + + + + + The scale for this parameter. + + + + + The size for this parameter. + + + + + The to use to render the + logging event into an object for this parameter. + + + + + Gets or sets the name of this parameter. + + + The name of this parameter. + + + + The name of this parameter. The parameter name + must match up to a named parameter to the SQL stored procedure + or prepared statement. + + + + + + Gets or sets the database type for this parameter. + + + The database type for this parameter. + + + + The database type for this parameter. This property should + be set to the database type from the + enumeration. See . + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the type from the value. + + + + + + + Gets or sets the precision for this parameter. + + + The precision for this parameter. + + + + The maximum number of digits used to represent the Value. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the precision from the value. + + + + + + + Gets or sets the scale for this parameter. + + + The scale for this parameter. + + + + The number of decimal places to which Value is resolved. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the scale from the value. + + + + + + + Gets or sets the size for this parameter. + + + The size for this parameter. + + + + The maximum size, in bytes, of the data within the column. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the size from the value. + + + For BLOB data types like VARCHAR(max) it may be impossible to infer the value automatically, use -1 as the size in this case. + + + + + + + Gets or sets the to use to + render the logging event into an object for this + parameter. + + + The used to render the + logging event into an object for this parameter. + + + + The that renders the value for this + parameter. + + + The can be used to adapt + any into a + for use in the property. + + + + + + Appends logging events to the terminal using ANSI color escape sequences. + + + + AnsiColorTerminalAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific level of message to be set. + + + This appender expects the terminal to understand the VT100 control set + in order to interpret the color codes. If the terminal or console does not + understand the control codes the behavior is not defined. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes each message to the System.Console.Out or + System.Console.Error that is set at the time the event is appended. + Therefore it is possible to programmatically redirect the output of this appender + (for example NUnit does this to capture program output). While this is the desired + behavior of this appender it may have security implications in your application. + + + When configuring the ANSI colored terminal appender, a mapping should be + specified to map a logging level to a color. For example: + + + + + + + + + + + + + + + The Level is the standard log4net logging level and ForeColor and BackColor can be any + of the following values: + + Blue + Green + Red + White + Yellow + Purple + Cyan + + These color values cannot be combined together to make new colors. + + + The attributes can be any combination of the following: + + Brightforeground is brighter + Dimforeground is dimmer + Underscoremessage is underlined + Blinkforeground is blinking (does not work on all terminals) + Reverseforeground and background are reversed + Hiddenoutput is hidden + Strikethroughmessage has a line through it + + While any of these attributes may be combined together not all combinations + work well together, for example setting both Bright and Dim attributes makes + no sense. + + + Patrick Wagstrom + Nicko Cadell + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Ansi code to reset terminal + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Add a mapping of level to color + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colours + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + Target is the value of the console output stream. + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + The enum of possible display attributes + + + + The following flags can be combined together to + form the ANSI color attributes. + + + + + + + text is bright + + + + + text is dim + + + + + text is underlined + + + + + text is blinking + + + Not all terminals support this attribute + + + + + text and background colors are reversed + + + + + text is hidden + + + + + text is displayed with a strikethrough + + + + + text color is light + + + + + The enum of possible foreground or background color values for + use with the color mapping method + + + + The output can be in one for the following ANSI colors. + + + + + + + color is black + + + + + color is red + + + + + color is green + + + + + color is yellow + + + + + color is blue + + + + + color is magenta + + + + + color is cyan + + + + + color is white + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + An entry in the + + + + This is an abstract base class for types that are stored in the + object. + + + Nicko Cadell + + + + Default protected constructor + + + + Default protected constructor + + + + + + Initialize any options defined on this entry + + + + Should be overridden by any classes that need to initialise based on their options + + + + + + The level that is the key for this mapping + + + The that is the key for this mapping + + + + Get or set the that is the key for this + mapping subclass. + + + + + + Initialize the options for the object + + + + Combine the and together + and append the attributes. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level + + + + + + The color attributes for the specified level + + + + Required property. + The color attributes for the specified level + + + + + + The combined , and + suitable for setting the ansi terminal color. + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Creates a read-only wrapper for a AppenderCollection instance. + + list to create a readonly wrapper arround + + An AppenderCollection wrapper that is read-only. + + + + + An empty readonly static AppenderCollection + + + + + Initializes a new instance of the AppenderCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the AppenderCollection class + that has the specified initial capacity. + + + The number of elements that the new AppenderCollection is initially capable of storing. + + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified AppenderCollection. + + The AppenderCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Allow subclasses to avoid our default constructors + + + + + + + Copies the entire AppenderCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire AppenderCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Adds a to the end of the AppenderCollection. + + The to be added to the end of the AppenderCollection. + The index at which the value has been added. + + + + Removes all elements from the AppenderCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the AppenderCollection. + + The to check for. + true if is found in the AppenderCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the AppenderCollection. + + The to locate in the AppenderCollection. + + The zero-based index of the first occurrence of + in the entire AppenderCollection, if found; otherwise, -1. + + + + + Inserts an element into the AppenderCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the AppenderCollection. + + The to remove from the AppenderCollection. + + The specified was not found in the AppenderCollection. + + + + + Removes the element at the specified index of the AppenderCollection. + + The zero-based index of the element to remove. + + is less than zero + -or- + is equal to or greater than . + + + + + Returns an enumerator that can iterate through the AppenderCollection. + + An for the entire AppenderCollection. + + + + Adds the elements of another AppenderCollection to the current AppenderCollection. + + The AppenderCollection whose elements should be added to the end of the current AppenderCollection. + The new of the AppenderCollection. + + + + Adds the elements of a array to the current AppenderCollection. + + The array whose elements should be added to the end of the AppenderCollection. + The new of the AppenderCollection. + + + + Adds the elements of a collection to the current AppenderCollection. + + The collection whose elements should be added to the end of the AppenderCollection. + The new of the AppenderCollection. + + + + Sets the capacity to the actual number of elements. + + + + + Return the collection elements as an array + + the array + + + + is less than zero + -or- + is equal to or greater than . + + + + + is less than zero + -or- + is equal to or greater than . + + + + + Gets the number of elements actually contained in the AppenderCollection. + + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + The zero-based index of the element to get or set. + + is less than zero + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false + + + + Gets or sets the number of elements the AppenderCollection can contain. + + + + + Supports type-safe iteration over a . + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + + A value + + + + + Supports simple iteration over a . + + + + + + Initializes a new instance of the Enumerator class. + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + + + + + Appends log events to the ASP.NET system. + + + + + Diagnostic information and tracing messages that you specify are appended to the output + of the page that is sent to the requesting browser. Optionally, you can view this information + from a separate trace viewer (Trace.axd) that displays trace information for every page in a + given application. + + + Trace statements are processed and displayed only when tracing is enabled. You can control + whether tracing is displayed to a page, to the trace viewer, or both. + + + The logging event is passed to the or + method depending on the level of the logging event. + The event's logger name is the default value for the category parameter of the Write/Warn method. + + + Nicko Cadell + Gert Driesen + Ron Grabowski + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Write the logging event to the ASP.NET trace + + the event to log + + + Write the logging event to the ASP.NET trace + HttpContext.Current.Trace + (). + + + + + + Defaults to %logger + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + The category parameter sent to the Trace method. + + + + Defaults to %logger which will use the logger name of the current + as the category parameter. + + + + + + + + Buffers events and then forwards them to attached appenders. + + + + The events are buffered in this appender until conditions are + met to allow the appender to deliver the events to the attached + appenders. See for the + conditions that cause the buffer to be sent. + + The forwarding appender can be used to specify different + thresholds and filters for the same appender at different locations + within the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Interface for attaching appenders to objects. + + + + Interface for attaching, removing and retrieving appenders. + + + Nicko Cadell + Gert Driesen + + + + Attaches an appender. + + The appender to add. + + + Add the specified appender. The implementation may + choose to allow or deny duplicate appenders. + + + + + + Gets an attached appender with the specified name. + + The name of the appender to get. + + The appender with the name specified, or null if no appender with the + specified name is found. + + + + Returns an attached appender with the specified. + If no appender with the specified name is found null will be + returned. + + + + + + Removes all attached appenders. + + + + Removes and closes all attached appenders + + + + + + Removes the specified appender from the list of attached appenders. + + The appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Gets all attached appenders. + + + A collection of attached appenders. + + + + Gets a collection of attached appenders. + If there are no attached appenders the + implementation should return an empty + collection rather than null. + + + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Send the events. + + The events that need to be send. + + + Forwards the events to the attached appenders. + + + + + + Adds an to the list of appenders of this + instance. + + The to add to this appender. + + + If the specified is already in the list of + appenders, then it won't be added again. + + + + + + Looks for the appender with the specified name. + + The name of the appender to lookup. + + The appender with the specified name, or null. + + + + Get the named appender attached to this buffering appender. + + + + + + Removes all previously added appenders from this appender. + + + + This is useful when re-reading configuration information. + + + + + + Removes the specified appender from the list of appenders. + + The appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Implementation of the interface + + + + + Gets the appenders contained in this appender as an + . + + + If no appenders can be found, then an + is returned. + + + A collection of the appenders in this appender. + + + + + Appends logging events to the console. + + + + ColoredConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific type of message to be set. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes directly to the application's attached console + not to the System.Console.Out or System.Console.Error TextWriter. + The System.Console.Out and System.Console.Error streams can be + programmatically redirected (for example NUnit does this to capture program output). + This appender will ignore these redirections because it needs to use Win32 + API calls to colorize the output. To respect these redirections the + must be used. + + + When configuring the colored console appender, mapping should be + specified to map a logging level to a color. For example: + + + + + + + + + + + + + + The Level is the standard log4net logging level and ForeColor and BackColor can be any + combination of the following values: + + Blue + Green + Red + White + Yellow + Purple + Cyan + HighIntensity + + + + Rick Hobbs + Nicko Cadell + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + flag set to true to write to the console error stream + + When is set to true, output is written to + the standard error output stream. Otherwise, output is written to the standard + output stream. + + + + + Add a mapping of level to color - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colors + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + The console output stream writer to write to + + + + This writer is not thread safe. + + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + The enum of possible color values for use with the color mapping method + + + + The following flags can be combined together to + form the colors. + + + + + + + color is blue + + + + + color is green + + + + + color is red + + + + + color is white + + + + + color is yellow + + + + + color is purple + + + + + color is cyan + + + + + color is intensified + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + Initialize the options for the object + + + + Combine the and together. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level. + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level. + + + + + + The combined and suitable for + setting the console color. + + + + + Appends logging events to the console. + + + + ConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes each message to the System.Console.Out or + System.Console.Error that is set at the time the event is appended. + Therefore it is possible to programmatically redirect the output of this appender + (for example NUnit does this to capture program output). While this is the desired + behavior of this appender it may have security implications in your application. + + + Nicko Cadell + Gert Driesen + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + flag set to true to write to the console error stream + + When is set to true, output is written to + the standard error output stream. Otherwise, output is written to the standard + output stream. + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Appends log events to the system. + + + + The application configuration file can be used to control what listeners + are actually used. See the MSDN documentation for the + class for details on configuring the + debug system. + + + Events are written using the + method. The event's logger name is passed as the value for the category name to the Write method. + + + Nicko Cadell + + + + Initializes a new instance of the . + + + + Default constructor. + + + + + + Initializes a new instance of the + with a specified layout. + + The layout to use with this appender. + + + Obsolete constructor. + + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Writes the logging event to the system. + + The event to log. + + + Writes the logging event to the system. + If is true then the + is called. + + + + + + Immediate flush means that the underlying writer or output stream + will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logs events are not actually written to persistent media if and + when the application crashes. + + + The default value is true. + + + + + Defaults to a with %logger as the pattern. + + + + + Gets or sets a value that indicates whether the appender will + flush at the end of each write. + + + The default behavior is to flush at the end of each + write. If the option is set tofalse, then the underlying + stream can defer writing to physical medium to a later time. + + + Avoiding the flush operation at the end of each append results + in a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + + Formats the category parameter sent to the Debug method. + + + + Defaults to a with %logger as the pattern which will use the logger name of the current + as the category parameter. + + + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Writes events to the system event log. + + + + The appender will fail if you try to write using an event source that doesn't exist unless it is running with local administrator privileges. + See also http://logging.apache.org/log4net/release/faq.html#trouble-EventLog + + + The EventID of the event log entry can be + set using the EventID property () + on the . + + + The Category of the event log entry can be + set using the Category property () + on the . + + + There is a limit of 32K characters for an event log message + + + When configuring the EventLogAppender a mapping can be + specified to map a logging level to an event log entry type. For example: + + + <mapping> + <level value="ERROR" /> + <eventLogEntryType value="Error" /> + </mapping> + <mapping> + <level value="DEBUG" /> + <eventLogEntryType value="Information" /> + </mapping> + + + The Level is the standard log4net logging level and eventLogEntryType can be any value + from the enum, i.e.: + + Erroran error event + Warninga warning event + Informationan informational event + + + + Aspi Havewala + Douglas de la Torre + Nicko Cadell + Gert Driesen + Thomas Voss + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initializes a new instance of the class + with the specified . + + The to use with this appender. + + + Obsolete constructor. + + + + + + Add a mapping of level to - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the event log entry type for a level. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Create an event log source + + + Uses different API calls under NET_2_0 + + + + + This method is called by the + method. + + the event to log + + Writes the event to the system event log using the + . + + If the event has an EventID property (see ) + set then this integer will be used as the event log event id. + + + There is a limit of 32K characters for an event log message + + + + + + Get the equivalent for a + + the Level to convert to an EventLogEntryType + The equivalent for a + + Because there are fewer applicable + values to use in logging levels than there are in the + this is a one way mapping. There is + a loss of information during the conversion. + + + + + The log name is the section in the event logs where the messages + are stored. + + + + + Name of the application to use when logging. This appears in the + application column of the event log named by . + + + + + The name of the machine which holds the event log. This is + currently only allowed to be '.' i.e. the current machine. + + + + + Mapping from level object to EventLogEntryType + + + + + The security context to use for privileged calls + + + + + The event ID to use unless one is explicitly specified via the LoggingEvent's properties. + + + + + The event category to use unless one is explicitly specified via the LoggingEvent's properties. + + + + + The fully qualified type of the EventLogAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + The maximum size supported by default. + + + http://msdn.microsoft.com/en-us/library/xzwc042w(v=vs.100).aspx + The 32766 documented max size is two bytes shy of 32K (I'm assuming 32766 + may leave space for a two byte null terminator of #0#0). The 32766 max + length is what the .NET 4.0 source code checks for, but this is WRONG! + Strings with a length > 31839 on Windows Vista or higher can CORRUPT + the event log! See: System.Diagnostics.EventLogInternal.InternalWriteEvent() + for the use of the 32766 max size. + + + + + The maximum size supported by a windows operating system that is vista + or newer. + + + See ReportEvent API: + http://msdn.microsoft.com/en-us/library/aa363679(VS.85).aspx + ReportEvent's lpStrings parameter: + "A pointer to a buffer containing an array of + null-terminated strings that are merged into the message before Event Viewer + displays the string to the user. This parameter must be a valid pointer + (or NULL), even if wNumStrings is zero. Each string is limited to 31,839 characters." + + Going beyond the size of 31839 will (at some point) corrupt the event log on Windows + Vista or higher! It may succeed for a while...but you will eventually run into the + error: "System.ComponentModel.Win32Exception : A device attached to the system is + not functioning", and the event log will then be corrupt (I was able to corrupt + an event log using a length of 31877 on Windows 7). + + The max size for Windows Vista or higher is documented here: + http://msdn.microsoft.com/en-us/library/xzwc042w(v=vs.100).aspx. + Going over this size may succeed a few times but the buffer will overrun and + eventually corrupt the log (based on testing). + + The maxEventMsgSize size is based on the max buffer size of the lpStrings parameter of the ReportEvent API. + The documented max size for EventLog.WriteEntry for Windows Vista and higher is 31839, but I'm leaving room for a + terminator of #0#0, as we cannot see the source of ReportEvent (though we could use an API monitor to examine the + buffer, given enough time). + + + + + The maximum size that the operating system supports for + a event log message. + + + Used to determine the maximum string length that can be written + to the operating system event log and eventually truncate a string + that exceeds the limits. + + + + + This method determines the maximum event log message size allowed for + the current environment. + + + + + + The name of the log where messages will be stored. + + + The string name of the log where messages will be stored. + + + This is the name of the log as it appears in the Event Viewer + tree. The default value is to log into the Application + log, this is where most applications write their events. However + if you need a separate log for your application (or applications) + then you should set the appropriately. + This should not be used to distinguish your event log messages + from those of other applications, the + property should be used to distinguish events. This property should be + used to group together events into a single log. + + + + + + Property used to set the Application name. This appears in the + event logs when logging. + + + The string used to distinguish events from different sources. + + + Sets the event log source property. + + + + + This property is used to return the name of the computer to use + when accessing the event logs. Currently, this is the current + computer, denoted by a dot "." + + + The string name of the machine holding the event log that + will be logged into. + + + This property cannot be changed. It is currently set to '.' + i.e. the local machine. This may be changed in future. + + + + + Gets or sets the used to write to the EventLog. + + + The used to write to the EventLog. + + + + The system security context used to write to the EventLog. + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Gets or sets the EventId to use unless one is explicitly specified via the LoggingEvent's properties. + + + + The EventID of the event log entry will normally be + set using the EventID property () + on the . + This property provides the fallback value which defaults to 0. + + + + + + Gets or sets the Category to use unless one is explicitly specified via the LoggingEvent's properties. + + + + The Category of the event log entry will normally be + set using the Category property () + on the . + This property provides the fallback value which defaults to 0. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and its event log entry type. + + + + + + The for this entry + + + + Required property. + The for this entry + + + + + + Appends logging events to a file. + + + + Logging events are sent to the file specified by + the property. + + + The file can be opened in either append or overwrite mode + by specifying the property. + If the file path is relative it is taken as relative from + the application base directory. The file encoding can be + specified by setting the property. + + + The layout's and + values will be written each time the file is opened and closed + respectively. If the property is + then the file may contain multiple copies of the header and footer. + + + This appender will first try to open the file for writing when + is called. This will typically be during configuration. + If the file cannot be opened for writing the appender will attempt + to open the file again each time a message is logged to the appender. + If the file cannot be opened for writing when a message is logged then + the message will be discarded by this appender. + + + The supports pluggable file locking models via + the property. + The default behavior, implemented by + is to obtain an exclusive write lock on the file until this appender is closed. + The alternative models only hold a + write lock while the appender is writing a logging event () + or synchronize by using a named system wide Mutex (). + + + All locking strategies have issues and you should seriously consider using a different strategy that + avoids having multiple processes logging to the same file. + + + Nicko Cadell + Gert Driesen + Rodrigo B. de Oliveira + Douglas de la Torre + Niall Daley + + + + Sends logging events to a . + + + + An Appender that writes to a . + + + This appender may be used stand alone if initialized with an appropriate + writer, however it is typically used as a base class for an appender that + can open a to write to. + + + Nicko Cadell + Gert Driesen + Douglas de la Torre + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initializes a new instance of the class and + sets the output destination to a new initialized + with the specified . + + The layout to use with this appender. + The to output to. + + + Obsolete constructor. + + + + + + Initializes a new instance of the class and sets + the output destination to the specified . + + The layout to use with this appender + The to output to + + The must have been previously opened. + + + + Obsolete constructor. + + + + + + This method determines if there is a sense in attempting to append. + + + + This method checks if an output target has been set and if a + layout has been set. + + + false if any of the preconditions fail. + + + + This method is called by the + method. + + The event to log. + + + Writes a log statement to the output stream if the output stream exists + and is writable. + + + The format of the output will depend on the appender's layout. + + + + + + This method is called by the + method. + + The array of events to log. + + + This method writes all the bulk logged events to the output writer + before flushing the stream. + + + + + + Close this appender instance. The underlying stream or writer is also closed. + + + Closed appenders cannot be reused. + + + + + Writes the footer and closes the underlying . + + + + Writes the footer and closes the underlying . + + + + + + Closes the underlying . + + + + Closes the underlying . + + + + + + Clears internal references to the underlying + and other variables. + + + + Subclasses can override this method for an alternate closing behavior. + + + + + + Writes a footer as produced by the embedded layout's property. + + + + Writes a footer as produced by the embedded layout's property. + + + + + + Writes a header produced by the embedded layout's property. + + + + Writes a header produced by the embedded layout's property. + + + + + + Called to allow a subclass to lazily initialize the writer + + + + This method is called when an event is logged and the or + have not been set. This allows a subclass to + attempt to initialize the writer multiple times. + + + + + + This is the where logging events + will be written to. + + + + + Immediate flush means that the underlying + or output stream will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logging events are not actually persisted if and when the application + crashes. + + + The default value is true. + + + + + + The fully qualified type of the TextWriterAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Gets or set whether the appender will flush at the end + of each append operation. + + + + The default behavior is to flush at the end of each + append operation. + + + If this option is set to false, then the underlying + stream can defer persisting the logging event to a later + time. + + + + Avoiding the flush operation at the end of each append results in + a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + Sets the where the log output will go. + + + + The specified must be open and writable. + + + The will be closed when the appender + instance is closed. + + + Note: Logging to an unopened will fail. + + + + + + Gets or set the and the underlying + , if any, for this appender. + + + The for this appender. + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Gets or sets the where logging events + will be written to. + + + The where logging events are written. + + + + This is the where logging events + will be written to. + + + + + + Default constructor + + + + Default constructor + + + + + + Construct a new appender using the layout, file and append mode. + + the layout to use with this appender + the full path to the file to write to + flag to indicate if the file should be appended to + + + Obsolete constructor. + + + + + + Construct a new appender using the layout and file specified. + The file will be appended to. + + the layout to use with this appender + the full path to the file to write to + + + Obsolete constructor. + + + + + + Activate the options on the file appender. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + This will cause the file to be opened. + + + + + + Closes any previously opened file and calls the parent's . + + + + Resets the filename and the file stream. + + + + + + Close this appender instance. The underlying stream or writer is also closed. + + + + + Called to initialize the file writer + + + + Will be called for each logged message until the file is + successfully opened. + + + + + + This method is called by the + method. + + The event to log. + + + Writes a log statement to the output stream if the output stream exists + and is writable. + + + The format of the output will depend on the appender's layout. + + + + + + This method is called by the + method. + + The array of events to log. + + + Acquires the output file locks once before writing all the events to + the stream. + + + + + + Writes a footer as produced by the embedded layout's property. + + + + Writes a footer as produced by the embedded layout's property. + + + + + + Writes a header produced by the embedded layout's property. + + + + Writes a header produced by the embedded layout's property. + + + + + + Closes the underlying . + + + + Closes the underlying . + + + + + + Closes the previously opened file. + + + + Writes the to the file and then + closes the file. + + + + + + Sets and opens the file where the log output will go. The specified file must be writable. + + The path to the log file. Must be a fully qualified path. + If true will append to fileName. Otherwise will truncate fileName + + + Calls but guarantees not to throw an exception. + Errors are passed to the . + + + + + + Sets and opens the file where the log output will go. The specified file must be writable. + + The path to the log file. Must be a fully qualified path. + If true will append to fileName. Otherwise will truncate fileName + + + If there was already an opened file, then the previous file + is closed first. + + + This method will ensure that the directory structure + for the specified exists. + + + + + + Sets the quiet writer used for file output + + the file stream that has been opened for writing + + + This implementation of creates a + over the and passes it to the + method. + + + This method can be overridden by sub classes that want to wrap the + in some way, for example to encrypt the output + data using a System.Security.Cryptography.CryptoStream. + + + + + + Sets the quiet writer being used. + + the writer over the file stream that has been opened for writing + + + This method can be overridden by sub classes that want to + wrap the in some way. + + + + + + Convert a path into a fully qualified path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + + + + Flag to indicate if we should append to the file + or overwrite the file. The default is to append. + + + + + The name of the log file. + + + + + The encoding to use for the file stream. + + + + + The security context to use for privileged calls + + + + + The stream to log to. Has added locking semantics + + + + + The locking model to use + + + + + The fully qualified type of the FileAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the path to the file that logging will be written to. + + + The path to the file that logging will be written to. + + + + If the path is relative it is taken as relative from + the application base directory. + + + + + + Gets or sets a flag that indicates whether the file should be + appended to or overwritten. + + + Indicates whether the file should be appended to or overwritten. + + + + If the value is set to false then the file will be overwritten, if + it is set to true then the file will be appended to. + + The default value is true. + + + + + Gets or sets used to write to the file. + + + The used to write to the file. + + + + The default encoding set is + which is the encoding for the system's current ANSI code page. + + + + + + Gets or sets the used to write to the file. + + + The used to write to the file. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Gets or sets the used to handle locking of the file. + + + The used to lock the file. + + + + Gets or sets the used to handle locking of the file. + + + There are three built in locking models, , and . + The first locks the file from the start of logging to the end, the + second locks only for the minimal amount of time when logging each message + and the last synchronizes processes using a named system wide Mutex. + + + The default locking model is the . + + + + + + Write only that uses the + to manage access to an underlying resource. + + + + + True asynchronous writes are not supported, the implementation forces a synchronous write. + + + + + Exception base type for log4net. + + + + This type extends . It + does not add any new functionality but does differentiate the + type of exception being thrown. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + A message to include with the exception. + + + Initializes a new instance of the class with + the specified message. + + + + + + Constructor + + A message to include with the exception. + A nested exception to include. + + + Initializes a new instance of the class + with the specified message and inner exception. + + + + + + Serialization constructor + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Locking model base class + + + + Base class for the locking models available to the derived loggers. + + + + + + Open the output file + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Acquire the lock on the file in preparation for writing to it. + Return a stream pointing to the file. + must be called to release the lock on the output file. + + + + + + Release the lock on the file + + + + Release the lock on the file. No further writes will be made to the + stream until is called again. + + + + + + Helper method that creates a FileStream under CurrentAppender's SecurityContext. + + + + Typically called during OpenFile or AcquireLock. + + + If the directory portion of the does not exist, it is created + via Directory.CreateDirecctory. + + + + + + + + + + Helper method to close under CurrentAppender's SecurityContext. + + + Does not set to null. + + + + + + Gets or sets the for this LockingModel + + + The for this LockingModel + + + + The file appender this locking model is attached to and working on + behalf of. + + + The file appender is used to locate the security context and the error handler to use. + + + The value of this property will be set before is + called. + + + + + + Hold an exclusive lock on the output file + + + + Open the file once for writing and hold it open until is called. + Maintains an exclusive lock on the file during this time. + + + + + + Open the file specified and prepare for logging. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Does nothing. The lock is already taken + + + + + + Release the lock on the file + + + + Does nothing. The lock will be released when the file is closed. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Acquires the file lock for each write + + + + Opens the file once for each / cycle, + thus holding the lock for the minimal amount of time. This method of locking + is considerably slower than but allows + other processes to move/delete the log file whilst logging continues. + + + + + + Prepares to open the file when the first message is logged. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Acquire the lock on the file in preparation for writing to it. + Return a stream pointing to the file. + must be called to release the lock on the output file. + + + + + + Release the lock on the file + + + + Release the lock on the file. No further writes will be made to the + stream until is called again. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Provides cross-process file locking. + + Ron Grabowski + Steve Wranovsky + + + + Open the file specified and prepare for logging. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + - and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Does nothing. The lock is already taken + + + + + + Releases the lock and allows others to acquire a lock. + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + This appender forwards logging events to attached appenders. + + + + The forwarding appender can be used to specify different thresholds + and filters for the same appender at different locations within the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Forward the logging event to the attached appenders + + The event to log. + + + Delivers the logging event to all the attached appenders. + + + + + + Forward the logging events to the attached appenders + + The array of events to log. + + + Delivers the logging events to all the attached appenders. + + + + + + Adds an to the list of appenders of this + instance. + + The to add to this appender. + + + If the specified is already in the list of + appenders, then it won't be added again. + + + + + + Looks for the appender with the specified name. + + The name of the appender to lookup. + + The appender with the specified name, or null. + + + + Get the named appender attached to this appender. + + + + + + Removes all previously added appenders from this appender. + + + + This is useful when re-reading configuration information. + + + + + + Removes the specified appender from the list of appenders. + + The appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Implementation of the interface + + + + + Gets the appenders contained in this appender as an + . + + + If no appenders can be found, then an + is returned. + + + A collection of the appenders in this appender. + + + + + Logs events to a local syslog service. + + + + This appender uses the POSIX libc library functions openlog, syslog, and closelog. + If these functions are not available on the local system then this appender will not work! + + + The functions openlog, syslog, and closelog are specified in SUSv2 and + POSIX 1003.1-2001 standards. These are used to log messages to the local syslog service. + + + This appender talks to a local syslog service. If you need to log to a remote syslog + daemon and you cannot configure your local syslog service to do this you may be + able to use the to log via UDP. + + + Syslog messages must have a facility and and a severity. The severity + is derived from the Level of the logging event. + The facility must be chosen from the set of defined syslog + values. The facilities list is predefined + and cannot be extended. + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + Rob Lyon + Nicko Cadell + + + + Initializes a new instance of the class. + + + This instance of the class is set up to write + to a local syslog service. + + + + + Add a mapping of level to severity + + The mapping to add + + + Adds a to this appender. + + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to a remote syslog daemon. + + + The format of the output will depend on the appender's layout. + + + + + + Close the syslog when the appender is closed + + + + Close the syslog when the appender is closed + + + + + + Translates a log4net level to a syslog severity. + + A log4net level. + A syslog severity. + + + Translates a log4net level to a syslog severity. + + + + + + Generate a syslog priority. + + The syslog facility. + The syslog severity. + A syslog priority. + + + + The facility. The default facility is . + + + + + The message identity + + + + + Marshaled handle to the identity string. We have to hold on to the + string as the openlog and syslog APIs just hold the + pointer to the ident and dereference it for each log message. + + + + + Mapping from level object to syslog severity + + + + + Open connection to system logger. + + + + + Generate a log message. + + + + The libc syslog method takes a format string and a variable argument list similar + to the classic printf function. As this type of vararg list is not supported + by C# we need to specify the arguments explicitly. Here we have specified the + format string with a single message argument. The caller must set the format + string to "%s". + + + + + + Close descriptor used to write to system logger. + + + + + Message identity + + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + + + + Syslog facility + + + Set to one of the values. The list of + facilities is predefined and cannot be extended. The default value + is . + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + syslog severities + + + + The log4net Level maps to a syslog severity using the + method and the + class. The severity is set on . + + + + + + system is unusable + + + + + action must be taken immediately + + + + + critical conditions + + + + + error conditions + + + + + warning conditions + + + + + normal but significant condition + + + + + informational + + + + + debug-level messages + + + + + syslog facilities + + + + The syslog facility defines which subsystem the logging comes from. + This is set on the property. + + + + + + kernel messages + + + + + random user-level messages + + + + + mail system + + + + + system daemons + + + + + security/authorization messages + + + + + messages generated internally by syslogd + + + + + line printer subsystem + + + + + network news subsystem + + + + + UUCP subsystem + + + + + clock (cron/at) daemon + + + + + security/authorization messages (private) + + + + + ftp daemon + + + + + NTP subsystem + + + + + log audit + + + + + log alert + + + + + clock daemon + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + + + The mapped syslog severity for the specified level + + + + Required property. + The mapped syslog severity for the specified level + + + + + + Appends colorful logging events to the console, using the .NET 2 + built-in capabilities. + + + + ManagedColoredConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific type of message to be set. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + When configuring the colored console appender, mappings should be + specified to map logging levels to colors. For example: + + + + + + + + + + + + + + + + + + + + + + The Level is the standard log4net logging level while + ForeColor and BackColor are the values of + enumeration. + + + Based on the ColoredConsoleAppender + + + Rick Hobbs + Nicko Cadell + Pavlos Touboulidis + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Add a mapping of level to color - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colors + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level. + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level. + + + + + + Stores logging events in an array. + + + + The memory appender stores all the logging events + that are appended in an in-memory array. + + + Use the method to get + and clear the current list of events that have been appended. + + + Use the method to get the current + list of events that have been appended. Note there is a + race-condition when calling and + in pairs, you better use in that case. + + + Use the method to clear the + current list of events. Note there is a + race-condition when calling and + in pairs, you better use in that case. + + + Julian Biddle + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Gets the events that have been logged. + + The events that have been logged + + + Gets the events that have been logged. + + + + + + This method is called by the method. + + the event to log + + Stores the in the events list. + + + + + Clear the list of events + + + Clear the list of events + + + + + Gets the events that have been logged and clears the list of events. + + The events that have been logged + + + Gets the events that have been logged and clears the list of events. + + + + + + The list of events that have been appended. + + + + + Value indicating which fields in the event should be fixed + + + By default all fields are fixed + + + + + Gets or sets a value indicating whether only part of the logging event + data should be fixed. + + + true if the appender should only fix part of the logging event + data, otherwise false. The default is false. + + + + Setting this property to true will cause only part of the event + data to be fixed and stored in the appender, hereby improving performance. + + + See for more information. + + + + + + Gets or sets the fields that will be fixed in the event + + + + The logging event needs to have certain thread specific values + captured before it can be buffered. See + for details. + + + + + + Logs entries by sending network messages using the + native function. + + + + You can send messages only to names that are active + on the network. If you send the message to a user name, + that user must be logged on and running the Messenger + service to receive the message. + + + The receiver will get a top most window displaying the + messages one at a time, therefore this appender should + not be used to deliver a high volume of messages. + + + The following table lists some possible uses for this appender : + + + + + Action + Property Value(s) + + + Send a message to a user account on the local machine + + + = <name of the local machine> + + + = <user name> + + + + + Send a message to a user account on a remote machine + + + = <name of the remote machine> + + + = <user name> + + + + + Send a message to a domain user account + + + = <name of a domain controller | uninitialized> + + + = <user name> + + + + + Send a message to all the names in a workgroup or domain + + + = <workgroup name | domain name>* + + + + + Send a message from the local machine to a remote machine + + + = <name of the local machine | uninitialized> + + + = <name of the remote machine> + + + + + + + Note : security restrictions apply for sending + network messages, see + for more information. + + + + + An example configuration section to log information + using this appender from the local machine, named + LOCAL_PC, to machine OPERATOR_PC : + + + + + + + + + + Nicko Cadell + Gert Driesen + + + + The DNS or NetBIOS name of the server on which the function is to execute. + + + + + The sender of the network message. + + + + + The message alias to which the message should be sent. + + + + + The security context to use for privileged calls + + + + + Initializes the appender. + + + The default constructor initializes all fields to their default values. + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The appender will be ignored if no was specified. + + + The required property was not specified. + + + + This method is called by the method. + + The event to log. + + + Sends the event using a network message. + + + + + + Sends a buffer of information to a registered message alias. + + The DNS or NetBIOS name of the server on which the function is to execute. + The message alias to which the message buffer should be sent + The originator of the message. + The message text. + The length, in bytes, of the message text. + + + The following restrictions apply for sending network messages: + + + + + Platform + Requirements + + + Windows NT + + + No special group membership is required to send a network message. + + + Admin, Accounts, Print, or Server Operator group membership is required to + successfully send a network message on a remote server. + + + + + Windows 2000 or later + + + If you send a message on a domain controller that is running Active Directory, + access is allowed or denied based on the access control list (ACL) for the securable + object. The default ACL permits only Domain Admins and Account Operators to send a network message. + + + On a member server or workstation, only Administrators and Server Operators can send a network message. + + + + + + + For more information see Security Requirements for the Network Management Functions. + + + + + If the function succeeds, the return value is zero. + + + + + + Gets or sets the sender of the message. + + + The sender of the message. + + + If this property is not specified, the message is sent from the local computer. + + + + + Gets or sets the message alias to which the message should be sent. + + + The recipient of the message. + + + This property should always be specified in order to send a message. + + + + + Gets or sets the DNS or NetBIOS name of the remote server on which the function is to execute. + + + DNS or NetBIOS name of the remote server on which the function is to execute. + + + + For Windows NT 4.0 and earlier, the string should begin with \\. + + + If this property is not specified, the local computer is used. + + + + + + Gets or sets the used to call the NetSend method. + + + The used to call the NetSend method. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Appends log events to the OutputDebugString system. + + + + OutputDebugStringAppender appends log events to the + OutputDebugString system. + + + The string is passed to the native OutputDebugString + function. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Write the logging event to the output debug string API + + the event to log + + + Write the logging event to the output debug string API + + + + + + Stub for OutputDebugString native method + + the string to output + + + Stub for OutputDebugString native method + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Logs events to a remote syslog daemon. + + + + The BSD syslog protocol is used to remotely log to + a syslog daemon. The syslogd listens for for messages + on UDP port 514. + + + The syslog UDP protocol is not authenticated. Most syslog daemons + do not accept remote log messages because of the security implications. + You may be able to use the LocalSyslogAppender to talk to a local + syslog service. + + + There is an RFC 3164 that claims to document the BSD Syslog Protocol. + This RFC can be seen here: http://www.faqs.org/rfcs/rfc3164.html. + This appender generates what the RFC calls an "Original Device Message", + i.e. does not include the TIMESTAMP or HOSTNAME fields. By observation + this format of message will be accepted by all current syslog daemon + implementations. The daemon will attach the current time and the source + hostname or IP address to any messages received. + + + Syslog messages must have a facility and and a severity. The severity + is derived from the Level of the logging event. + The facility must be chosen from the set of defined syslog + values. The facilities list is predefined + and cannot be extended. + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + Rob Lyon + Nicko Cadell + + + + Sends logging events as connectionless UDP datagrams to a remote host or a + multicast group using an . + + + + UDP guarantees neither that messages arrive, nor that they arrive in the correct order. + + + To view the logging results, a custom application can be developed that listens for logging + events. + + + When decoding events send via this appender remember to use the same encoding + to decode the events as was used to send the events. See the + property to specify the encoding to use. + + + + This example shows how to log receive logging events that are sent + on IP address 244.0.0.1 and port 8080 to the console. The event is + encoded in the packet as a unicode string and it is decoded as such. + + IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0); + UdpClient udpClient; + byte[] buffer; + string loggingEvent; + + try + { + udpClient = new UdpClient(8080); + + while(true) + { + buffer = udpClient.Receive(ref remoteEndPoint); + loggingEvent = System.Text.Encoding.Unicode.GetString(buffer); + Console.WriteLine(loggingEvent); + } + } + catch(Exception e) + { + Console.WriteLine(e.ToString()); + } + + + Dim remoteEndPoint as IPEndPoint + Dim udpClient as UdpClient + Dim buffer as Byte() + Dim loggingEvent as String + + Try + remoteEndPoint = new IPEndPoint(IPAddress.Any, 0) + udpClient = new UdpClient(8080) + + While True + buffer = udpClient.Receive(ByRef remoteEndPoint) + loggingEvent = System.Text.Encoding.Unicode.GetString(buffer) + Console.WriteLine(loggingEvent) + Wend + Catch e As Exception + Console.WriteLine(e.ToString()) + End Try + + + An example configuration section to log information using this appender to the + IP 224.0.0.1 on port 8080: + + + + + + + + + + Gert Driesen + Nicko Cadell + + + + Initializes a new instance of the class. + + + The default constructor initializes all fields to their default values. + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The appender will be ignored if no was specified or + an invalid remote or local TCP port number was specified. + + + The required property was not specified. + The TCP port number assigned to or is less than or greater than . + + + + This method is called by the method. + + The event to log. + + + Sends the event using an UDP datagram. + + + Exceptions are passed to the . + + + + + + Closes the UDP connection and releases all resources associated with + this instance. + + + + Disables the underlying and releases all managed + and unmanaged resources associated with the . + + + + + + Initializes the underlying connection. + + + + The underlying is initialized and binds to the + port number from which you intend to communicate. + + + Exceptions are passed to the . + + + + + + The IP address of the remote host or multicast group to which + the logging event will be sent. + + + + + The TCP port number of the remote host or multicast group to + which the logging event will be sent. + + + + + The cached remote endpoint to which the logging events will be sent. + + + + + The TCP port number from which the will communicate. + + + + + The instance that will be used for sending the + logging events. + + + + + The encoding to use for the packet. + + + + + Gets or sets the IP address of the remote host or multicast group to which + the underlying should sent the logging event. + + + The IP address of the remote host or multicast group to which the logging event + will be sent. + + + + Multicast addresses are identified by IP class D addresses (in the range 224.0.0.0 to + 239.255.255.255). Multicast packets can pass across different networks through routers, so + it is possible to use multicasts in an Internet scenario as long as your network provider + supports multicasting. + + + Hosts that want to receive particular multicast messages must register their interest by joining + the multicast group. Multicast messages are not sent to networks where no host has joined + the multicast group. Class D IP addresses are used for multicast groups, to differentiate + them from normal host addresses, allowing nodes to easily detect if a message is of interest. + + + Static multicast addresses that are needed globally are assigned by IANA. A few examples are listed in the table below: + + + + + IP Address + Description + + + 224.0.0.1 + + + Sends a message to all system on the subnet. + + + + + 224.0.0.2 + + + Sends a message to all routers on the subnet. + + + + + 224.0.0.12 + + + The DHCP server answers messages on the IP address 224.0.0.12, but only on a subnet. + + + + + + + A complete list of actually reserved multicast addresses and their owners in the ranges + defined by RFC 3171 can be found at the IANA web site. + + + The address range 239.0.0.0 to 239.255.255.255 is reserved for administrative scope-relative + addresses. These addresses can be reused with other local groups. Routers are typically + configured with filters to prevent multicast traffic in this range from flowing outside + of the local network. + + + + + + Gets or sets the TCP port number of the remote host or multicast group to which + the underlying should sent the logging event. + + + An integer value in the range to + indicating the TCP port number of the remote host or multicast group to which the logging event + will be sent. + + + The underlying will send messages to this TCP port number + on the remote host or multicast group. + + The value specified is less than or greater than . + + + + Gets or sets the TCP port number from which the underlying will communicate. + + + An integer value in the range to + indicating the TCP port number from which the underlying will communicate. + + + + The underlying will bind to this port for sending messages. + + + Setting the value to 0 (the default) will cause the udp client not to bind to + a local port. + + + The value specified is less than or greater than . + + + + Gets or sets used to write the packets. + + + The used to write the packets. + + + + The used to write the packets. + + + + + + Gets or sets the underlying . + + + The underlying . + + + creates a to send logging events + over a network. Classes deriving from can use this + property to get or set this . Use the underlying + returned from if you require access beyond that which + provides. + + + + + Gets or sets the cached remote endpoint to which the logging events should be sent. + + + The cached remote endpoint to which the logging events will be sent. + + + The method will initialize the remote endpoint + with the values of the and + properties. + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Syslog port 514 + + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + Initializes a new instance of the class. + + + This instance of the class is set up to write + to a remote syslog daemon. + + + + + Add a mapping of level to severity + + The mapping to add + + + Add a mapping to this appender. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to a remote syslog daemon. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to syslog severity mappings set on this appender. + + + + + + Translates a log4net level to a syslog severity. + + A log4net level. + A syslog severity. + + + Translates a log4net level to a syslog severity. + + + + + + Generate a syslog priority. + + The syslog facility. + The syslog severity. + A syslog priority. + + + Generate a syslog priority. + + + + + + The facility. The default facility is . + + + + + The message identity + + + + + Mapping from level object to syslog severity + + + + + Message identity + + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + + + + Syslog facility + + + Set to one of the values. The list of + facilities is predefined and cannot be extended. The default value + is . + + + + + syslog severities + + + + The syslog severities. + + + + + + system is unusable + + + + + action must be taken immediately + + + + + critical conditions + + + + + error conditions + + + + + warning conditions + + + + + normal but significant condition + + + + + informational + + + + + debug-level messages + + + + + syslog facilities + + + + The syslog facilities + + + + + + kernel messages + + + + + random user-level messages + + + + + mail system + + + + + system daemons + + + + + security/authorization messages + + + + + messages generated internally by syslogd + + + + + line printer subsystem + + + + + network news subsystem + + + + + UUCP subsystem + + + + + clock (cron/at) daemon + + + + + security/authorization messages (private) + + + + + ftp daemon + + + + + NTP subsystem + + + + + log audit + + + + + log alert + + + + + clock daemon + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + + + The mapped syslog severity for the specified level + + + + Required property. + The mapped syslog severity for the specified level + + + + + + Delivers logging events to a remote logging sink. + + + + This Appender is designed to deliver events to a remote sink. + That is any object that implements the + interface. It delivers the events using .NET remoting. The + object to deliver events to is specified by setting the + appenders property. + + The RemotingAppender buffers events before sending them. This allows it to + make more efficient use of the remoting infrastructure. + + Once the buffer is full the events are still not sent immediately. + They are scheduled to be sent using a pool thread. The effect is that + the send occurs asynchronously. This is very important for a + number of non obvious reasons. The remoting infrastructure will + flow thread local variables (stored in the ), + if they are marked as , across the + remoting boundary. If the server is not contactable then + the remoting infrastructure will clear the + objects from the . To prevent a logging failure from + having side effects on the calling application the remoting call must be made + from a separate thread to the one used by the application. A + thread is used for this. If no thread is available then + the events will block in the thread pool manager until a thread is available. + + Because the events are sent asynchronously using pool threads it is possible to close + this appender before all the queued events have been sent. + When closing the appender attempts to wait until all the queued events have been sent, but + this will timeout after 30 seconds regardless. + + If this appender is being closed because the + event has fired it may not be possible to send all the queued events. During process + exit the runtime limits the time that a + event handler is allowed to run for. If the runtime terminates the threads before + the queued events have been sent then they will be lost. To ensure that all events + are sent the appender must be closed before the application exits. See + for details on how to shutdown + log4net programmatically. + + + Nicko Cadell + Gert Driesen + Daniel Cazzulino + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Send the contents of the buffer to the remote sink. + + + The events are not sent immediately. They are scheduled to be sent + using a pool thread. The effect is that the send occurs asynchronously. + This is very important for a number of non obvious reasons. The remoting + infrastructure will flow thread local variables (stored in the ), + if they are marked as , across the + remoting boundary. If the server is not contactable then + the remoting infrastructure will clear the + objects from the . To prevent a logging failure from + having side effects on the calling application the remoting call must be made + from a separate thread to the one used by the application. A + thread is used for this. If no thread is available then + the events will block in the thread pool manager until a thread is available. + + The events to send. + + + + Override base class close. + + + + This method waits while there are queued work items. The events are + sent asynchronously using work items. These items + will be sent once a thread pool thread is available to send them, therefore + it is possible to close the appender before all the queued events have been + sent. + + This method attempts to wait until all the queued events have been sent, but this + method will timeout after 30 seconds regardless. + + If the appender is being closed because the + event has fired it may not be possible to send all the queued events. During process + exit the runtime limits the time that a + event handler is allowed to run for. + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + A work item is being queued into the thread pool + + + + + A work item from the thread pool has completed + + + + + Send the contents of the buffer to the remote sink. + + + This method is designed to be used with the . + This method expects to be passed an array of + objects in the state param. + + the logging events to send + + + + The URL of the remote sink. + + + + + The local proxy (.NET remoting) for the remote logging sink. + + + + + The number of queued callbacks currently waiting or executing + + + + + Event used to signal when there are no queued work items + + + This event is set when there are no queued work items. In this + state it is safe to close the appender. + + + + + Gets or sets the URL of the well-known object that will accept + the logging events. + + + The well-known URL of the remote sink. + + + + The URL of the remoting sink that will accept logging events. + The sink must implement the + interface. + + + + + + Interface used to deliver objects to a remote sink. + + + This interface must be implemented by a remoting sink + if the is to be used + to deliver logging events to the sink. + + + + + Delivers logging events to the remote sink + + Array of events to log. + + + Delivers logging events to the remote sink + + + + + + Appender that rolls log files based on size or date or both. + + + + RollingFileAppender can roll log files based on size or date or both + depending on the setting of the property. + When set to the log file will be rolled + once its size exceeds the . + When set to the log file will be rolled + once the date boundary specified in the property + is crossed. + When set to the log file will be + rolled once the date boundary specified in the property + is crossed, but within a date boundary the file will also be rolled + once its size exceeds the . + When set to the log file will be rolled when + the appender is configured. This effectively means that the log file can be + rolled once per program execution. + + + A of few additional optional features have been added: + + Attach date pattern for current log file + Backup number increments for newer files + Infinite number of backups by file size + + + + + + For large or infinite numbers of backup files a + greater than zero is highly recommended, otherwise all the backup files need + to be renamed each time a new backup is created. + + + When Date/Time based rolling is used setting + to will reduce the number of file renamings to few or none. + + + + + + Changing or without clearing + the log file directory of backup files will cause unexpected and unwanted side effects. + + + + + If Date/Time based rolling is enabled this appender will attempt to roll existing files + in the directory without a Date/Time tag based on the last write date of the base log file. + The appender only rolls the log file when a message is logged. If Date/Time based rolling + is enabled then the appender will not roll the log file at the Date/Time boundary but + at the point when the next message is logged after the boundary has been crossed. + + + + The extends the and + has the same behavior when opening the log file. + The appender will first try to open the file for writing when + is called. This will typically be during configuration. + If the file cannot be opened for writing the appender will attempt + to open the file again each time a message is logged to the appender. + If the file cannot be opened for writing when a message is logged then + the message will be discarded by this appender. + + + When rolling a backup file necessitates deleting an older backup file the + file to be deleted is moved to a temporary name before being deleted. + + + + + A maximum number of backup files when rolling on date/time boundaries is not supported. + + + + Nicko Cadell + Gert Driesen + Aspi Havewala + Douglas de la Torre + Edward Smit + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Cleans up all resources used by this appender. + + + + + The fully qualified type of the RollingFileAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Sets the quiet writer being used. + + + This method can be overridden by sub classes. + + the writer to set + + + + Write out a logging event. + + the event to write to file. + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Write out an array of logging events. + + the events to write to file. + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Performs any required rolling before outputting the next event + + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Creates and opens the file for logging. If + is false then the fully qualified name is determined and used. + + the name of the file to open + true to append to existing file + + This method will ensure that the directory structure + for the specified exists. + + + + + Get the current output file name + + the base file name + the output file name + + The output file name is based on the base fileName specified. + If is set then the output + file name is the same as the base file passed in. Otherwise + the output file depends on the date pattern, on the count + direction or both. + + + + + Determines curSizeRollBackups (only within the current roll point) + + + + + Generates a wildcard pattern that can be used to find all files + that are similar to the base file name. + + + + + + + Builds a list of filenames for all files matching the base filename plus a file + pattern. + + + + + + + Initiates a roll over if needed for crossing a date boundary since the last run. + + + + + Initializes based on existing conditions at time of . + + + + Initializes based on existing conditions at time of . + The following is done + + determine curSizeRollBackups (only within the current roll point) + initiates a roll over if needed for crossing a date boundary since the last run. + + + + + + + Does the work of bumping the 'current' file counter higher + to the highest count when an incremental file name is seen. + The highest count is either the first file (when count direction + is greater than 0) or the last file (when count direction less than 0). + In either case, we want to know the highest count that is present. + + + + + + + Attempts to extract a number from the end of the file name that indicates + the number of the times the file has been rolled over. + + + Certain date pattern extensions like yyyyMMdd will be parsed as valid backup indexes. + + + + + + + Takes a list of files and a base file name, and looks for + 'incremented' versions of the base file. Bumps the max + count up to the highest count seen. + + + + + + + Calculates the RollPoint for the datePattern supplied. + + the date pattern to calculate the check period for + The RollPoint that is most accurate for the date pattern supplied + + Essentially the date pattern is examined to determine what the + most suitable roll point is. The roll point chosen is the roll point + with the smallest period that can be detected using the date pattern + supplied. i.e. if the date pattern only outputs the year, month, day + and hour then the smallest roll point that can be detected would be + and hourly roll point as minutes could not be detected. + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Sets initial conditions including date/time roll over information, first check, + scheduledFilename, and calls to initialize + the current number of backups. + + + + + + + + + .1, .2, .3, etc. + + + + + Rollover the file(s) to date/time tagged file(s). + + set to true if the file to be rolled is currently open + + + Rollover the file(s) to date/time tagged file(s). + Resets curSizeRollBackups. + If fileIsOpen is set then the new file is opened (through SafeOpenFile). + + + + + + Renames file to file . + + Name of existing file to roll. + New name for file. + + + Renames file to file . It + also checks for existence of target file and deletes if it does. + + + + + + Test if a file exists at a specified path + + the path to the file + true if the file exists + + + Test if a file exists at a specified path + + + + + + Deletes the specified file if it exists. + + The file to delete. + + + Delete a file if is exists. + The file is first moved to a new filename then deleted. + This allows the file to be removed even when it cannot + be deleted, but it still can be moved. + + + + + + Implements file roll base on file size. + + + + If the maximum number of size based backups is reached + (curSizeRollBackups == maxSizeRollBackups) then the oldest + file is deleted -- its index determined by the sign of countDirection. + If countDirection < 0, then files + {File.1, ..., File.curSizeRollBackups -1} + are renamed to {File.2, ..., + File.curSizeRollBackups}. Moreover, File is + renamed File.1 and closed. + + + A new file is created to receive further log output. + + + If maxSizeRollBackups is equal to zero, then the + File is truncated with no backup files created. + + + If maxSizeRollBackups < 0, then File is + renamed if needed and no files are deleted. + + + + + + Implements file roll. + + the base name to rename + + + If the maximum number of size based backups is reached + (curSizeRollBackups == maxSizeRollBackups) then the oldest + file is deleted -- its index determined by the sign of countDirection. + If countDirection < 0, then files + {File.1, ..., File.curSizeRollBackups -1} + are renamed to {File.2, ..., + File.curSizeRollBackups}. + + + If maxSizeRollBackups is equal to zero, then the + File is truncated with no backup files created. + + + If maxSizeRollBackups < 0, then File is + renamed if needed and no files are deleted. + + + This is called by to rename the files. + + + + + + Get the start time of the next window for the current rollpoint + + the current date + the type of roll point we are working with + the start time for the next roll point an interval after the currentDateTime date + + + Returns the date of the next roll point after the currentDateTime date passed to the method. + + + The basic strategy is to subtract the time parts that are less significant + than the rollpoint from the current time. This should roll the time back to + the start of the time window for the current rollpoint. Then we add 1 window + worth of time and get the start time of the next window for the rollpoint. + + + + + + This object supplies the current date/time. Allows test code to plug in + a method to control this class when testing date/time based rolling. The default + implementation uses the underlying value of DateTime.Now. + + + + + The date pattern. By default, the pattern is set to ".yyyy-MM-dd" + meaning daily rollover. + + + + + The actual formatted filename that is currently being written to + or will be the file transferred to on roll over + (based on staticLogFileName). + + + + + The timestamp when we shall next recompute the filename. + + + + + Holds date of last roll over + + + + + The type of rolling done + + + + + The default maximum file size is 10MB + + + + + There is zero backup files by default + + + + + How many sized based backups have been made so far + + + + + The rolling file count direction. + + + + + The rolling mode used in this appender. + + + + + Cache flag set if we are rolling by date. + + + + + Cache flag set if we are rolling by size. + + + + + Value indicating whether to always log to the same file. + + + + + Value indicating whether to preserve the file name extension when rolling. + + + + + FileName provided in configuration. Used for rolling properly + + + + + A mutex that is used to lock rolling of files. + + + + + The 1st of January 1970 in UTC + + + + + Gets or sets the strategy for determining the current date and time. The default + implementation is to use LocalDateTime which internally calls through to DateTime.Now. + DateTime.UtcNow may be used on frameworks newer than .NET 1.0 by specifying + . + + + An implementation of the interface which returns the current date and time. + + + + Gets or sets the used to return the current date and time. + + + There are two built strategies for determining the current date and time, + + and . + + + The default strategy is . + + + + + + Gets or sets the date pattern to be used for generating file names + when rolling over on date. + + + The date pattern to be used for generating file names when rolling + over on date. + + + + Takes a string in the same format as expected by + . + + + This property determines the rollover schedule when rolling over + on date. + + + + + + Gets or sets the maximum number of backup files that are kept before + the oldest is erased. + + + The maximum number of backup files that are kept before the oldest is + erased. + + + + If set to zero, then there will be no backup files and the log file + will be truncated when it reaches . + + + If a negative number is supplied then no deletions will be made. Note + that this could result in very slow performance as a large number of + files are rolled over unless is used. + + + The maximum applies to each time based group of files and + not the total. + + + + + + Gets or sets the maximum size that the output file is allowed to reach + before being rolled over to backup files. + + + The maximum size in bytes that the output file is allowed to reach before being + rolled over to backup files. + + + + This property is equivalent to except + that it is required for differentiating the setter taking a + argument from the setter taking a + argument. + + + The default maximum file size is 10MB (10*1024*1024). + + + + + + Gets or sets the maximum size that the output file is allowed to reach + before being rolled over to backup files. + + + The maximum size that the output file is allowed to reach before being + rolled over to backup files. + + + + This property allows you to specify the maximum size with the + suffixes "KB", "MB" or "GB" so that the size is interpreted being + expressed respectively in kilobytes, megabytes or gigabytes. + + + For example, the value "10KB" will be interpreted as 10240 bytes. + + + The default maximum file size is 10MB. + + + If you have the option to set the maximum file size programmatically + consider using the property instead as this + allows you to set the size in bytes as a . + + + + + + Gets or sets the rolling file count direction. + + + The rolling file count direction. + + + + Indicates if the current file is the lowest numbered file or the + highest numbered file. + + + By default newer files have lower numbers ( < 0), + i.e. log.1 is most recent, log.5 is the 5th backup, etc... + + + >= 0 does the opposite i.e. + log.1 is the first backup made, log.5 is the 5th backup made, etc. + For infinite backups use >= 0 to reduce + rollover costs. + + The default file count direction is -1. + + + + + Gets or sets the rolling style. + + The rolling style. + + + The default rolling style is . + + + When set to this appender's + property is set to false, otherwise + the appender would append to a single file rather than rolling + the file each time it is opened. + + + + + + Gets or sets a value indicating whether to preserve the file name extension when rolling. + + + true if the file name extension should be preserved. + + + + By default file.log is rolled to file.log.yyyy-MM-dd or file.log.curSizeRollBackup. + However, under Windows the new file name will loose any program associations as the + extension is changed. Optionally file.log can be renamed to file.yyyy-MM-dd.log or + file.curSizeRollBackup.log to maintain any program associations. + + + + + + Gets or sets a value indicating whether to always log to + the same file. + + + true if always should be logged to the same file, otherwise false. + + + + By default file.log is always the current file. Optionally + file.log.yyyy-mm-dd for current formatted datePattern can by the currently + logging file (or file.log.curSizeRollBackup or even + file.log.yyyy-mm-dd.curSizeRollBackup). + + + This will make time based rollovers with a large number of backups + much faster as the appender it won't have to rename all the backups! + + + + + + Style of rolling to use + + + + Style of rolling to use + + + + + + Roll files once per program execution + + + + Roll files once per program execution. + Well really once each time this appender is + configured. + + + Setting this option also sets AppendToFile to + false on the RollingFileAppender, otherwise + this appender would just be a normal file appender. + + + + + + Roll files based only on the size of the file + + + + + Roll files based only on the date + + + + + Roll files based on both the size and date of the file + + + + + The code assumes that the following 'time' constants are in a increasing sequence. + + + + The code assumes that the following 'time' constants are in a increasing sequence. + + + + + + Roll the log not based on the date + + + + + Roll the log for each minute + + + + + Roll the log for each hour + + + + + Roll the log twice a day (midday and midnight) + + + + + Roll the log each day (midnight) + + + + + Roll the log each week + + + + + Roll the log each month + + + + + This interface is used to supply Date/Time information to the . + + + This interface is used to supply Date/Time information to the . + Used primarily to allow test classes to plug themselves in so they can + supply test date/times. + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Default implementation of that returns the current time. + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Implementation of that returns the current time as the coordinated universal time (UTC). + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Send an e-mail when a specific logging event occurs, typically on errors + or fatal errors. + + + + The number of logging events delivered in this e-mail depend on + the value of option. The + keeps only the last + logging events in its + cyclic buffer. This keeps memory requirements at a reasonable level while + still delivering useful application context. + + + Authentication and setting the server Port are only available on the MS .NET 1.1 runtime. + For these features to be enabled you need to ensure that you are using a version of + the log4net assembly that is built against the MS .NET 1.1 framework and that you are + running the your application on the MS .NET 1.1 runtime. On all other platforms only sending + unauthenticated messages to a server listening on port 25 (the default) is supported. + + + Authentication is supported by setting the property to + either or . + If using authentication then the + and properties must also be set. + + + To set the SMTP server port use the property. The default port is 25. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Default constructor + + + + + + Sends the contents of the cyclic buffer as an e-mail message. + + The logging events to send. + + + + Send the email message + + the body text to include in the mail + + + + trims leading and trailing commas or semicolons + + + + + Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses (use semicolon on .NET 1.1 and comma for later versions). + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + + Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses + that will be carbon copied (use semicolon on .NET 1.1 and comma for later versions). + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + + Gets or sets a semicolon-delimited list of recipient e-mail addresses + that will be blind carbon copied. + + + A semicolon-delimited list of e-mail addresses. + + + + A semicolon-delimited list of recipient e-mail addresses. + + + + + + Gets or sets the e-mail address of the sender. + + + The e-mail address of the sender. + + + + The e-mail address of the sender. + + + + + + Gets or sets the subject line of the e-mail message. + + + The subject line of the e-mail message. + + + + The subject line of the e-mail message. + + + + + + Gets or sets the name of the SMTP relay mail server to use to send + the e-mail messages. + + + The name of the e-mail relay server. If SmtpServer is not set, the + name of the local SMTP server is used. + + + + The name of the e-mail relay server. If SmtpServer is not set, the + name of the local SMTP server is used. + + + + + + Obsolete + + + Use the BufferingAppenderSkeleton Fix methods instead + + + + Obsolete property. + + + + + + The mode to use to authentication with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + Valid Authentication mode values are: , + , and . + The default value is . When using + you must specify the + and to use to authenticate. + When using the Windows credentials for the current + thread, if impersonating, or the process will be used to authenticate. + + + + + + The username to use to authenticate with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + A and must be specified when + is set to , + otherwise the username will be ignored. + + + + + + The password to use to authenticate with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + A and must be specified when + is set to , + otherwise the password will be ignored. + + + + + + The port on which the SMTP server is listening + + + Server Port is only available on the MS .NET 1.1 runtime. + + The port on which the SMTP server is listening. The default + port is 25. The Port can only be changed when running on + the MS .NET 1.1 runtime. + + + + + + Gets or sets the priority of the e-mail message + + + One of the values. + + + + Sets the priority of the e-mails generated by this + appender. The default priority is . + + + If you are using this appender to report errors then + you may want to set the priority to . + + + + + + Enable or disable use of SSL when sending e-mail message + + + This is available on MS .NET 2.0 runtime and higher + + + + + Gets or sets the reply-to e-mail address. + + + This is available on MS .NET 2.0 runtime and higher + + + + + Gets or sets the subject encoding to be used. + + + The default encoding is the operating system's current ANSI codepage. + + + + + Gets or sets the body encoding to be used. + + + The default encoding is the operating system's current ANSI codepage. + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Values for the property. + + + + SMTP authentication modes. + + + + + + No authentication + + + + + Basic authentication. + + + Requires a username and password to be supplied + + + + + Integrated authentication + + + Uses the Windows credentials from the current thread or process to authenticate. + + + + + Send an email when a specific logging event occurs, typically on errors + or fatal errors. Rather than sending via smtp it writes a file into the + directory specified by . This allows services such + as the IIS SMTP agent to manage sending the messages. + + + + The configuration for this appender is identical to that of the SMTPAppender, + except that instead of specifying the SMTPAppender.SMTPHost you specify + . + + + The number of logging events delivered in this e-mail depend on + the value of option. The + keeps only the last + logging events in its + cyclic buffer. This keeps memory requirements at a reasonable level while + still delivering useful application context. + + + Niall Daley + Nicko Cadell + + + + Default constructor + + + + Default constructor + + + + + + Sends the contents of the cyclic buffer as an e-mail message. + + The logging events to send. + + + Sends the contents of the cyclic buffer as an e-mail message. + + + + + + Activate the options on this appender. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Convert a path into a fully qualified path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + + + + The security context to use for privileged calls + + + + + Gets or sets a semicolon-delimited list of recipient e-mail addresses. + + + A semicolon-delimited list of e-mail addresses. + + + + A semicolon-delimited list of e-mail addresses. + + + + + + Gets or sets the e-mail address of the sender. + + + The e-mail address of the sender. + + + + The e-mail address of the sender. + + + + + + Gets or sets the subject line of the e-mail message. + + + The subject line of the e-mail message. + + + + The subject line of the e-mail message. + + + + + + Gets or sets the path to write the messages to. + + + + Gets or sets the path to write the messages to. This should be the same + as that used by the agent sending the messages. + + + + + + Gets or sets the file extension for the generated files + + + The file extension for the generated files + + + + The file extension for the generated files + + + + + + Gets or sets the used to write to the pickup directory. + + + The used to write to the pickup directory. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Appender that allows clients to connect via Telnet to receive log messages + + + + The TelnetAppender accepts socket connections and streams logging messages + back to the client. + The output is provided in a telnet-friendly way so that a log can be monitored + over a TCP/IP socket. + This allows simple remote monitoring of application logging. + + + The default is 23 (the telnet port). + + + Keith Long + Nicko Cadell + + + + Default constructor + + + + Default constructor + + + + + + The fully qualified type of the TelnetAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Overrides the parent method to close the socket handler + + + + Closes all the outstanding connections. + + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Create the socket handler and wait for connections + + + + + + Writes the logging event to each connected client. + + The event to log. + + + Writes the logging event to each connected client. + + + + + + Gets or sets the TCP port number on which this will listen for connections. + + + An integer value in the range to + indicating the TCP port number on which this will listen for connections. + + + + The default value is 23 (the telnet port). + + + The value specified is less than + or greater than . + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Helper class to manage connected clients + + + + The SocketHandler class is used to accept connections from + clients. It is threaded so that clients can connect/disconnect + asynchronously. + + + + + + Opens a new server port on + + the local port to listen on for connections + + + Creates a socket handler on the specified local server port. + + + + + + Sends a string message to each of the connected clients + + the text to send + + + Sends a string message to each of the connected clients + + + + + + Add a client to the internal clients list + + client to add + + + + Remove a client from the internal clients list + + client to remove + + + + Callback used to accept a connection on the server socket + + The result of the asynchronous operation + + + On connection adds to the list of connections + if there are two many open connections you will be disconnected + + + + + + Close all network connections + + + + Make sure we close all network connections + + + + + + Test if this handler has active connections + + + true if this handler has active connections + + + + This property will be true while this handler has + active connections, that is at least one connection that + the handler will attempt to send a message to. + + + + + + Class that represents a client connected to this handler + + + + Class that represents a client connected to this handler + + + + + + Create this for the specified + + the client's socket + + + Opens a stream writer on the socket. + + + + + + Write a string to the client + + string to send + + + Write a string to the client + + + + + + Cleanup the clients connection + + + + Close the socket connection. + + + + + + Appends log events to the system. + + + + The application configuration file can be used to control what listeners + are actually used. See the MSDN documentation for the + class for details on configuring the + trace system. + + + Events are written using the System.Diagnostics.Trace.Write(string,string) + method. The event's logger name is the default value for the category parameter + of the Write method. + + + Compact Framework
+ The Compact Framework does not support the + class for any operation except Assert. When using the Compact Framework this + appender will write to the system rather than + the Trace system. This appender will therefore behave like the . +
+
+ Douglas de la Torre + Nicko Cadell + Gert Driesen + Ron Grabowski +
+ + + Initializes a new instance of the . + + + + Default constructor. + + + + + + Initializes a new instance of the + with a specified layout. + + The layout to use with this appender. + + + Obsolete constructor. + + + + + + Writes the logging event to the system. + + The event to log. + + + Writes the logging event to the system. + + + + + + Immediate flush means that the underlying writer or output stream + will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logs events are not actually written to persistent media if and + when the application crashes. + + + The default value is true. + + + + + Defaults to %logger + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Gets or sets a value that indicates whether the appender will + flush at the end of each write. + + + The default behavior is to flush at the end of each + write. If the option is set tofalse, then the underlying + stream can defer writing to physical medium to a later time. + + + Avoiding the flush operation at the end of each append results + in a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + + The category parameter sent to the Trace method. + + + + Defaults to %logger which will use the logger name of the current + as the category parameter. + + + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Assembly level attribute that specifies a domain to alias to this assembly's repository. + + + + AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. + + + An assembly's logger repository is defined by its , + however this can be overridden by an assembly loaded before the target assembly. + + + An assembly can alias another assembly's domain to its repository by + specifying this attribute with the name of the target domain. + + + This attribute can only be specified on the assembly and may be used + as many times as necessary to alias all the required domains. + + + Nicko Cadell + Gert Driesen + + + + Assembly level attribute that specifies a repository to alias to this assembly's repository. + + + + An assembly's logger repository is defined by its , + however this can be overridden by an assembly loaded before the target assembly. + + + An assembly can alias another assembly's repository to its repository by + specifying this attribute with the name of the target repository. + + + This attribute can only be specified on the assembly and may be used + as many times as necessary to alias all the required repositories. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class with + the specified repository to alias to this assembly's repository. + + The repository to alias to this assemby's repository. + + + Initializes a new instance of the class with + the specified repository to alias to this assembly's repository. + + + + + + Gets or sets the repository to alias to this assemby's repository. + + + The repository to alias to this assemby's repository. + + + + The name of the repository to alias to this assemby's repository. + + + + + + Initializes a new instance of the class with + the specified domain to alias to this assembly's repository. + + The domain to alias to this assemby's repository. + + + Obsolete. Use instead of . + + + + + + Use this class to quickly configure a . + + + + Allows very simple programmatic configuration of log4net. + + + Only one appender can be configured using this configurator. + The appender is set at the root of the hierarchy and all logging + events will be delivered to that appender. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + The fully qualified type of the BasicConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Initializes the log4net system with a default configuration. + + + + Initializes the log4net logging system using a + that will write to Console.Out. The log messages are + formatted using the layout object + with the + layout style. + + + + + + Initializes the log4net system using the specified appenders. + + The appenders to use to log all logging events. + + + Initializes the log4net system using the specified appenders. + + + + + + Initializes the log4net system using the specified appender. + + The appender to use to log all logging events. + + + Initializes the log4net system using the specified appender. + + + + + + Initializes the with a default configuration. + + The repository to configure. + + + Initializes the specified repository using a + that will write to Console.Out. The log messages are + formatted using the layout object + with the + layout style. + + + + + + Initializes the using the specified appender. + + The repository to configure. + The appender to use to log all logging events. + + + Initializes the using the specified appender. + + + + + + Initializes the using the specified appenders. + + The repository to configure. + The appenders to use to log all logging events. + + + Initializes the using the specified appender. + + + + + + Base class for all log4net configuration attributes. + + + This is an abstract class that must be extended by + specific configurators. This attribute allows the + configurator to be parameterized by an assembly level + attribute. + + Nicko Cadell + Gert Driesen + + + + Constructor used by subclasses. + + the ordering priority for this configurator + + + The is used to order the configurator + attributes before they are invoked. Higher priority configurators are executed + before lower priority ones. + + + + + + Configures the for the specified assembly. + + The assembly that this attribute was defined on. + The repository to configure. + + + Abstract method implemented by a subclass. When this method is called + the subclass should configure the . + + + + + + Compare this instance to another ConfiguratorAttribute + + the object to compare to + see + + + Compares the priorities of the two instances. + Sorts by priority in descending order. Objects with the same priority are + randomly ordered. + + + + + + Assembly level attribute that specifies the logging domain for the assembly. + + + + DomainAttribute is obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + Assemblies are mapped to logging domains. Each domain has its own + logging repository. This attribute specified on the assembly controls + the configuration of the domain. The property specifies the name + of the domain that this assembly is a part of. The + specifies the type of the repository objects to create for the domain. If + this attribute is not specified and a is not specified + then the assembly will be part of the default shared logging domain. + + + This attribute can only be specified on the assembly and may only be used + once per assembly. + + + Nicko Cadell + Gert Driesen + + + + Assembly level attribute that specifies the logging repository for the assembly. + + + + Assemblies are mapped to logging repository. This attribute specified + on the assembly controls + the configuration of the repository. The property specifies the name + of the repository that this assembly is a part of. The + specifies the type of the object + to create for the assembly. If this attribute is not specified or a + is not specified then the assembly will be part of the default shared logging repository. + + + This attribute can only be specified on the assembly and may only be used + once per assembly. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initialize a new instance of the class + with the name of the repository. + + The name of the repository. + + + Initialize the attribute with the name for the assembly's repository. + + + + + + Gets or sets the name of the logging repository. + + + The string name to use as the name of the repository associated with this + assembly. + + + + This value does not have to be unique. Several assemblies can share the + same repository. They will share the logging configuration of the repository. + + + + + + Gets or sets the type of repository to create for this assembly. + + + The type of repository to create for this assembly. + + + + The type of the repository to create for the assembly. + The type must implement the + interface. + + + This will be the type of repository created when + the repository is created. If multiple assemblies reference the + same repository then the repository is only created once using the + of the first assembly to call into the + repository. + + + + + + Initializes a new instance of the class. + + + + Obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + + + + Initialize a new instance of the class + with the name of the domain. + + The name of the domain. + + + Obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + + + + Use this class to initialize the log4net environment using an Xml tree. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + Configures a using an Xml tree. + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + + + Automatically configures the log4net system based on the + application's configuration settings. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + + + Automatically configures the using settings + stored in the application's configuration file. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + The repository to configure. + + + + Configures log4net using a log4net element + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Loads the log4net configuration from the XML element + supplied as . + + The element to parse. + + + + Configures the using the specified XML + element. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Loads the log4net configuration from the XML element + supplied as . + + The repository to configure. + The element to parse. + + + + Configures log4net using the specified configuration file. + + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures log4net using the specified configuration file. + + A stream to load the XML configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The stream to load the XML configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures log4net using the file specified, monitors the file for changes + and reloads the configuration if a change is detected. + + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the using the file specified, + monitors the file for changes and reloads the configuration if a change + is detected. + + The repository to configure. + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Assembly level attribute to configure the . + + + + AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + Nicko Cadell + Gert Driesen + + + + Assembly level attribute to configure the . + + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + If neither of the or + properties are set the configuration is loaded from the application's .config file. + If set the property takes priority over the + property. The property + specifies a path to a file to load the config from. The path is relative to the + application's base directory; . + The property is used as a postfix to the assembly file name. + The config file must be located in the application's base directory; . + For example in a console application setting the to + config has the same effect as not specifying the or + properties. + + + The property can be set to cause the + to watch the configuration file for changes. + + + + Log4net will only look for assembly level configuration attributes once. + When using the log4net assembly level attributes to control the configuration + of log4net you must ensure that the first call to any of the + methods is made from the assembly with the configuration + attributes. + + + If you cannot guarantee the order in which log4net calls will be made from + different assemblies you must use programmatic configuration instead, i.e. + call the method directly. + + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Default constructor + + + + + + Configures the for the specified assembly. + + The assembly that this attribute was defined on. + The repository to configure. + + + Configure the repository using the . + The specified must extend the + class otherwise the will not be able to + configure it. + + + The does not extend . + + + + Attempt to load configuration from the local file system + + The assembly that this attribute was defined on. + The repository to configure. + + + + Configure the specified repository using a + + The repository to configure. + the FileInfo pointing to the config file + + + + Attempt to load configuration from a URI + + The assembly that this attribute was defined on. + The repository to configure. + + + + The fully qualified type of the XmlConfiguratorAttribute class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the filename of the configuration file. + + + The filename of the configuration file. + + + + If specified, this is the name of the configuration file to use with + the . This file path is relative to the + application base directory (). + + + The takes priority over the . + + + + + + Gets or sets the extension of the configuration file. + + + The extension of the configuration file. + + + + If specified this is the extension for the configuration file. + The path to the config file is built by using the application + base directory (), + the assembly file name and the config file extension. + + + If the is set to MyExt then + possible config file names would be: MyConsoleApp.exe.MyExt or + MyClassLibrary.dll.MyExt. + + + The takes priority over the . + + + + + + Gets or sets a value indicating whether to watch the configuration file. + + + true if the configuration should be watched, false otherwise. + + + + If this flag is specified and set to true then the framework + will watch the configuration file and will reload the config each time + the file is modified. + + + The config file can only be watched if it is loaded from local disk. + In a No-Touch (Smart Client) deployment where the application is downloaded + from a web server the config file may not reside on the local disk + and therefore it may not be able to watch it. + + + Watching configuration is not supported on the SSCLI. + + + + + + Class to register for the log4net section of the configuration file + + + The log4net section of the configuration file needs to have a section + handler registered. This is the section handler used. It simply returns + the XML element that is the root of the section. + + + Example of registering the log4net section handler : + + + +
+ + + log4net configuration XML goes here + + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Parses the configuration section. + + The configuration settings in a corresponding parent configuration section. + The configuration context when called from the ASP.NET configuration system. Otherwise, this parameter is reserved and is a null reference. + The for the log4net section. + The for the log4net section. + + + Returns the containing the configuration data, + + + + + + Assembly level attribute that specifies a plugin to attach to + the repository. + + + + Specifies the type of a plugin to create and attach to the + assembly's repository. The plugin type must implement the + interface. + + + Nicko Cadell + Gert Driesen + + + + Interface used to create plugins. + + + + Interface used to create a plugin. + + + Nicko Cadell + Gert Driesen + + + + Creates the plugin object. + + the new plugin instance + + + Create and return a new plugin instance. + + + + + + Initializes a new instance of the class + with the specified type. + + The type name of plugin to create. + + + Create the attribute with the plugin type specified. + + + Where possible use the constructor that takes a . + + + + + + Initializes a new instance of the class + with the specified type. + + The type of plugin to create. + + + Create the attribute with the plugin type specified. + + + + + + Creates the plugin object defined by this attribute. + + + + Creates the instance of the object as + specified by this attribute. + + + The plugin object. + + + + Returns a representation of the properties of this object. + + + + Overrides base class method to + return a representation of the properties of this object. + + + A representation of the properties of this object + + + + Gets or sets the type for the plugin. + + + The type for the plugin. + + + + The type for the plugin. + + + + + + Gets or sets the type name for the plugin. + + + The type name for the plugin. + + + + The type name for the plugin. + + + Where possible use the property instead. + + + + + + Assembly level attribute to configure the . + + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + Nicko Cadell + + + + Construct provider attribute with type specified + + the type of the provider to use + + + The provider specified must subclass the + class. + + + + + + Configures the SecurityContextProvider + + The assembly that this attribute was defined on. + The repository to configure. + + + Creates a provider instance from the specified. + Sets this as the default security context provider . + + + + + + The fully qualified type of the SecurityContextProviderAttribute class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the type of the provider to use. + + + the type of the provider to use. + + + + The provider specified must subclass the + class. + + + + + + Use this class to initialize the log4net environment using an Xml tree. + + + + Configures a using an Xml tree. + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + + + Automatically configures the using settings + stored in the application's configuration file. + + + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + To use this method to configure log4net you must specify + the section + handler for the log4net configuration section. See the + for an example. + + + The repository to configure. + + + + Automatically configures the log4net system based on the + application's configuration settings. + + + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + To use this method to configure log4net you must specify + the section + handler for the log4net configuration section. See the + for an example. + + + + + + + Configures log4net using a log4net element + + + + Loads the log4net configuration from the XML element + supplied as . + + + The element to parse. + + + + Configures log4net using the specified configuration file. + + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The first element matching <configuration> will be read as the + configuration. If this file is also a .NET .config file then you must specify + a configuration section for the log4net element otherwise .NET will + complain. Set the type for the section handler to , for example: + + +
+ + + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures log4net using the specified configuration URI. + + A URI to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The must support the URI scheme specified. + + + + + + Configures log4net using the specified configuration data stream. + + A stream to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures the using the specified XML + element. + + + Loads the log4net configuration from the XML element + supplied as . + + The repository to configure. + The element to parse. + + + + Configures the using the specified configuration + file. + + The repository to configure. + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The first element matching <configuration> will be read as the + configuration. If this file is also a .NET .config file then you must specify + a configuration section for the log4net element otherwise .NET will + complain. Set the type for the section handler to , for example: + + +
+ + + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures the using the specified configuration + URI. + + The repository to configure. + A URI to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The must support the URI scheme specified. + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The stream to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures log4net using the file specified, monitors the file for changes + and reloads the configuration if a change is detected. + + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the using the file specified, + monitors the file for changes and reloads the configuration if a change + is detected. + + The repository to configure. + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the specified repository using a log4net element. + + The hierarchy to configure. + The element to parse. + + + Loads the log4net configuration from the XML element + supplied as . + + + This method is ultimately called by one of the Configure methods + to load the configuration from an . + + + + + + Maps repository names to ConfigAndWatchHandler instances to allow a particular + ConfigAndWatchHandler to dispose of its FileSystemWatcher when a repository is + reconfigured. + + + + + The fully qualified type of the XmlConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Class used to watch config files. + + + + Uses the to monitor + changes to a specified file. Because multiple change notifications + may be raised when the file is modified, a timer is used to + compress the notifications into a single event. The timer + waits for time before delivering + the event notification. If any further + change notifications arrive while the timer is waiting it + is reset and waits again for to + elapse. + + + + + + The default amount of time to wait after receiving notification + before reloading the config file. + + + + + Holds the FileInfo used to configure the XmlConfigurator + + + + + Holds the repository being configured. + + + + + The timer used to compress the notification events. + + + + + Watches file for changes. This object should be disposed when no longer + needed to free system handles on the watched resources. + + + + + Initializes a new instance of the class to + watch a specified config file used to configure a repository. + + The repository to configure. + The configuration file to watch. + + + Initializes a new instance of the class. + + + + + + Event handler used by . + + The firing the event. + The argument indicates the file that caused the event to be fired. + + + This handler reloads the configuration from the file when the event is fired. + + + + + + Event handler used by . + + The firing the event. + The argument indicates the file that caused the event to be fired. + + + This handler reloads the configuration from the file when the event is fired. + + + + + + Called by the timer when the configuration has been updated. + + null + + + + Release the handles held by the watcher and timer. + + + + + The implementation of the interface suitable + for use with the compact framework + + + + This implementation is a simple + mapping between repository name and + object. + + + The .NET Compact Framework 1.0 does not support retrieving assembly + level attributes therefore unlike the DefaultRepositorySelector + this selector does not examine the calling assembly for attributes. + + + Nicko Cadell + + + + Interface used by the to select the . + + + + The uses a + to specify the policy for selecting the correct + to return to the caller. + + + Nicko Cadell + Gert Driesen + + + + Gets the for the specified assembly. + + The assembly to use to lookup to the + The for the assembly. + + + Gets the for the specified assembly. + + + How the association between and + is made is not defined. The implementation may choose any method for + this association. The results of this method must be repeatable, i.e. + when called again with the same arguments the result must be the + save value. + + + + + + Gets the named . + + The name to use to lookup to the . + The named + + Lookup a named . This is the repository created by + calling . + + + + + Creates a new repository for the assembly specified. + + The assembly to use to create the domain to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the domain + specified such that a call to with the + same assembly specified will return the same repository instance. + + + How the association between and + is made is not defined. The implementation may choose any method for + this association. + + + + + + Creates a new repository with the name specified. + + The name to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the name + specified such that a call to with the + same name will return the same repository instance. + + + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets an array of all currently defined repositories. + + + An array of the instances created by + this . + + + Gets an array of all of the repositories created by this selector. + + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + Create a new repository selector + + the type of the repositories to create, must implement + + + Create an new compact repository selector. + The default type for repositories must be specified, + an appropriate value would be . + + + throw if is null + throw if does not implement + + + + Get the for the specified assembly + + not used + The default + + + The argument is not used. This selector does not create a + separate repository for each assembly. + + + As a named repository is not specified the default repository is + returned. The default repository is named log4net-default-repository. + + + + + + Get the named + + the name of the repository to lookup + The named + + + Get the named . The default + repository is log4net-default-repository. Other repositories + must be created using the . + If the named repository does not exist an exception is thrown. + + + throw if is null + throw if the does not exist + + + + Create a new repository for the assembly specified + + not used + the type of repository to create, must implement + the repository created + + + The argument is not used. This selector does not create a + separate repository for each assembly. + + + If the is null then the + default repository type specified to the constructor is used. + + + As a named repository is not specified the default repository is + returned. The default repository is named log4net-default-repository. + + + + + + Create a new repository for the repository specified + + the repository to associate with the + the type of repository to create, must implement . + If this param is null then the default repository type is used. + the repository created + + + The created will be associated with the repository + specified such that a call to with the + same repository specified will return the same repository instance. + + + If the named repository already exists an exception will be thrown. + + + If is null then the default + repository type specified to the constructor is used. + + + throw if is null + throw if the already exists + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets a list of objects + + an array of all known objects + + + Gets an array of all of the repositories created by this selector. + + + + + + The fully qualified type of the CompactRepositorySelector class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Notify the registered listeners that the repository has been created + + The repository that has been created + + + Raises the LoggerRepositoryCreatedEvent + event. + + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + The default implementation of the interface. + + + + Uses attributes defined on the calling assembly to determine how to + configure the hierarchy for the repository. + + + Nicko Cadell + Gert Driesen + + + + Creates a new repository selector. + + The type of the repositories to create, must implement + + + Create an new repository selector. + The default type for repositories must be specified, + an appropriate value would be . + + + is . + does not implement . + + + + Gets the for the specified assembly. + + The assembly use to lookup the . + + + The type of the created and the repository + to create can be overridden by specifying the + attribute on the . + + + The default values are to use the + implementation of the interface and to use the + as the name of the repository. + + + The created will be automatically configured using + any attributes defined on + the . + + + The for the assembly + is . + + + + Gets the for the specified repository. + + The repository to use to lookup the . + The for the specified repository. + + + Returns the named repository. If is null + a is thrown. If the repository + does not exist a is thrown. + + + Use to create a repository. + + + is . + does not exist. + + + + Create a new repository for the assembly specified + + the assembly to use to create the repository to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The type of the created and + the repository to create can be overridden by specifying the + attribute on the + . The default values are to use the + implementation of the + interface and to use the + as the name of the repository. + + + The created will be automatically + configured using any + attributes defined on the . + + + If a repository for the already exists + that repository will be returned. An error will not be raised and that + repository may be of a different type to that specified in . + Also the attribute on the + assembly may be used to override the repository type specified in + . + + + is . + + + + Creates a new repository for the assembly specified. + + the assembly to use to create the repository to associate with the . + The type of repository to create, must implement . + The name to assign to the created repository + Set to true to read and apply the assembly attributes + The repository created. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The type of the created and + the repository to create can be overridden by specifying the + attribute on the + . The default values are to use the + implementation of the + interface and to use the + as the name of the repository. + + + The created will be automatically + configured using any + attributes defined on the . + + + If a repository for the already exists + that repository will be returned. An error will not be raised and that + repository may be of a different type to that specified in . + Also the attribute on the + assembly may be used to override the repository type specified in + . + + + is . + + + + Creates a new repository for the specified repository. + + The repository to associate with the . + The type of repository to create, must implement . + If this param is then the default repository type is used. + The new repository. + + + The created will be associated with the repository + specified such that a call to with the + same repository specified will return the same repository instance. + + + is . + already exists. + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets a list of objects + + an array of all known objects + + + Gets an array of all of the repositories created by this selector. + + + + + + Aliases a repository to an existing repository. + + The repository to alias. + The repository that the repository is aliased to. + + + The repository specified will be aliased to the repository when created. + The repository must not already exist. + + + When the repository is created it must utilize the same repository type as + the repository it is aliased to, otherwise the aliasing will fail. + + + + is . + -or- + is . + + + + + Notifies the registered listeners that the repository has been created. + + The repository that has been created. + + + Raises the event. + + + + + + Gets the repository name and repository type for the specified assembly. + + The assembly that has a . + in/out param to hold the repository name to use for the assembly, caller should set this to the default value before calling. + in/out param to hold the type of the repository to create for the assembly, caller should set this to the default value before calling. + is . + + + + Configures the repository using information from the assembly. + + The assembly containing + attributes which define the configuration for the repository. + The repository to configure. + + is . + -or- + is . + + + + + Loads the attribute defined plugins on the assembly. + + The assembly that contains the attributes. + The repository to add the plugins to. + + is . + -or- + is . + + + + + Loads the attribute defined aliases on the assembly. + + The assembly that contains the attributes. + The repository to alias to. + + is . + -or- + is . + + + + + The fully qualified type of the DefaultRepositorySelector class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + Defined error codes that can be passed to the method. + + + + Values passed to the method. + + + Nicko Cadell + + + + A general error + + + + + Error while writing output + + + + + Failed to flush file + + + + + Failed to close file + + + + + Unable to open output file + + + + + No layout specified + + + + + Failed to parse address + + + + + An evaluator that triggers on an Exception type + + + + This evaluator will trigger if the type of the Exception + passed to + is equal to a Type in . /// + + + Drew Schaeffer + + + + Test if an triggers an action + + + + Implementations of this interface allow certain appenders to decide + when to perform an appender specific action. + + + The action or behavior triggered is defined by the implementation. + + + Nicko Cadell + + + + Test if this event triggers the action + + The event to check + true if this event triggers the action, otherwise false + + + Return true if this event triggers the action + + + + + + The type that causes the trigger to fire. + + + + + Causes subclasses of to cause the trigger to fire. + + + + + Default ctor to allow dynamic creation through a configurator. + + + + + Constructs an evaluator and initializes to trigger on + + the type that triggers this evaluator. + If true, this evaluator will trigger on subclasses of . + + + + Is this the triggering event? + + The event to check + This method returns true, if the logging event Exception + Type is . + Otherwise it returns false + + + This evaluator will trigger if the Exception Type of the event + passed to + is . + + + + + + The type that triggers this evaluator. + + + + + If true, this evaluator will trigger on subclasses of . + + + + + Appenders may delegate their error handling to an . + + + + Error handling is a particularly tedious to get right because by + definition errors are hard to predict and to reproduce. + + + Nicko Cadell + Gert Driesen + + + + Handles the error and information about the error condition is passed as + a parameter. + + The message associated with the error. + The that was thrown when the error occurred. + The error code associated with the error. + + + Handles the error and information about the error condition is passed as + a parameter. + + + + + + Prints the error message passed as a parameter. + + The message associated with the error. + The that was thrown when the error occurred. + + + See . + + + + + + Prints the error message passed as a parameter. + + The message associated with the error. + + + See . + + + + + + Interface for objects that require fixing. + + + + Interface that indicates that the object requires fixing before it + can be taken outside the context of the appender's + method. + + + When objects that implement this interface are stored + in the context properties maps + and + are fixed + (see ) the + method will be called. + + + Nicko Cadell + + + + Get a portable version of this object + + the portable instance of this object + + + Get a portable instance object that represents the current + state of this object. The portable object can be stored + and logged from any thread with identical results. + + + + + + Interface that all loggers implement + + + + This interface supports logging events and testing if a level + is enabled for logging. + + + These methods will not throw exceptions. Note to implementor, ensure + that the implementation of these methods cannot allow an exception + to be thrown to the caller. + + + Nicko Cadell + Gert Driesen + + + + This generic form is intended to be used by wrappers. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + the exception to log, including its stack trace. Pass null to not log an exception. + + + Generates a logging event for the specified using + the and . + + + + + + This is the most generic printing method that is intended to be used + by wrappers. + + The event being logged. + + + Logs the specified logging event through this logger. + + + + + + Checks if this logger is enabled for a given passed as parameter. + + The level to check. + + true if this logger is enabled for level, otherwise false. + + + + Test if this logger is going to log events of the specified . + + + + + + Gets the name of the logger. + + + The name of the logger. + + + + The name of this logger + + + + + + Gets the where this + Logger instance is attached to. + + + The that this logger belongs to. + + + + Gets the where this + Logger instance is attached to. + + + + + + Base interface for all wrappers + + + + Base interface for all wrappers. + + + All wrappers must implement this interface. + + + Nicko Cadell + + + + Get the implementation behind this wrapper object. + + + The object that in implementing this object. + + + + The object that in implementing this + object. The Logger object may not + be the same object as this object because of logger decorators. + This gets the actual underlying objects that is used to process + the log events. + + + + + + Delegate used to handle logger repository creation event notifications + + The which created the repository. + The event args + that holds the instance that has been created. + + + Delegate used to handle logger repository creation event notifications. + + + + + + Provides data for the event. + + + + A + event is raised every time a is created. + + + + + + The created + + + + + Construct instance using specified + + the that has been created + + + Construct instance using specified + + + + + + The that has been created + + + The that has been created + + + + The that has been created + + + + + + Defines the default set of levels recognized by the system. + + + + Each has an associated . + + + Levels have a numeric that defines the relative + ordering between levels. Two Levels with the same + are deemed to be equivalent. + + + The levels that are recognized by log4net are set for each + and each repository can have different levels defined. The levels are stored + in the on the repository. Levels are + looked up by name from the . + + + When logging at level INFO the actual level used is not but + the value of LoggerRepository.LevelMap["INFO"]. The default value for this is + , but this can be changed by reconfiguring the level map. + + + Each level has a in addition to its . The + is the string that is written into the output log. By default + the display name is the same as the level name, but this can be used to alias levels + or to localize the log output. + + + Some of the predefined levels recognized by the system are: + + + + . + + + . + + + . + + + . + + + . + + + . + + + . + + + + Nicko Cadell + Gert Driesen + + + + Constructor + + Integer value for this level, higher values represent more severe levels. + The string name of this level. + The display name for this level. This may be localized or otherwise different from the name + + + Initializes a new instance of the class with + the specified level name and value. + + + + + + Constructor + + Integer value for this level, higher values represent more severe levels. + The string name of this level. + + + Initializes a new instance of the class with + the specified level name and value. + + + + + + Returns the representation of the current + . + + + A representation of the current . + + + + Returns the level . + + + + + + Compares levels. + + The object to compare against. + true if the objects are equal. + + + Compares the levels of instances, and + defers to base class if the target object is not a + instance. + + + + + + Returns a hash code + + A hash code for the current . + + + Returns a hash code suitable for use in hashing algorithms and data + structures like a hash table. + + + Returns the hash code of the level . + + + + + + Compares this instance to a specified object and returns an + indication of their relative values. + + A instance or to compare with this instance. + + A 32-bit signed integer that indicates the relative order of the + values compared. The return value has these meanings: + + + Value + Meaning + + + Less than zero + This instance is less than . + + + Zero + This instance is equal to . + + + Greater than zero + + This instance is greater than . + -or- + is . + + + + + + + must be an instance of + or ; otherwise, an exception is thrown. + + + is not a . + + + + Returns a value indicating whether a specified + is greater than another specified . + + A + A + + true if is greater than + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is less than another specified . + + A + A + + true if is less than + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is greater than or equal to another specified . + + A + A + + true if is greater than or equal to + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is less than or equal to another specified . + + A + A + + true if is less than or equal to + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether two specified + objects have the same value. + + A or . + A or . + + true if the value of is the same as the + value of ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether two specified + objects have different values. + + A or . + A or . + + true if the value of is different from + the value of ; otherwise, false. + + + + Compares two levels. + + + + + + Compares two specified instances. + + The first to compare. + The second to compare. + + A 32-bit signed integer that indicates the relative order of the + two values compared. The return value has these meanings: + + + Value + Meaning + + + Less than zero + is less than . + + + Zero + is equal to . + + + Greater than zero + is greater than . + + + + + + Compares two levels. + + + + + + The level designates a higher level than all the rest. + + + + + The level designates very severe error events. + System unusable, emergencies. + + + + + The level designates very severe error events. + System unusable, emergencies. + + + + + The level designates very severe error events + that will presumably lead the application to abort. + + + + + The level designates very severe error events. + Take immediate action, alerts. + + + + + The level designates very severe error events. + Critical condition, critical. + + + + + The level designates very severe error events. + + + + + The level designates error events that might + still allow the application to continue running. + + + + + The level designates potentially harmful + situations. + + + + + The level designates informational messages + that highlight the progress of the application at the highest level. + + + + + The level designates informational messages that + highlight the progress of the application at coarse-grained level. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates the lowest level possible. + + + + + Gets the name of this level. + + + The name of this level. + + + + Gets the name of this level. + + + + + + Gets the value of this level. + + + The value of this level. + + + + Gets the value of this level. + + + + + + Gets the display name of this level. + + + The display name of this level. + + + + Gets the display name of this level. + + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Creates a read-only wrapper for a LevelCollection instance. + + list to create a readonly wrapper arround + + A LevelCollection wrapper that is read-only. + + + + + Initializes a new instance of the LevelCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the LevelCollection class + that has the specified initial capacity. + + + The number of elements that the new LevelCollection is initially capable of storing. + + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified LevelCollection. + + The LevelCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Allow subclasses to avoid our default constructors + + + + + + Copies the entire LevelCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire LevelCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Adds a to the end of the LevelCollection. + + The to be added to the end of the LevelCollection. + The index at which the value has been added. + + + + Removes all elements from the LevelCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the LevelCollection. + + The to check for. + true if is found in the LevelCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the LevelCollection. + + The to locate in the LevelCollection. + + The zero-based index of the first occurrence of + in the entire LevelCollection, if found; otherwise, -1. + + + + + Inserts an element into the LevelCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the LevelCollection. + + The to remove from the LevelCollection. + + The specified was not found in the LevelCollection. + + + + + Removes the element at the specified index of the LevelCollection. + + The zero-based index of the element to remove. + + is less than zero + -or- + is equal to or greater than . + + + + + Returns an enumerator that can iterate through the LevelCollection. + + An for the entire LevelCollection. + + + + Adds the elements of another LevelCollection to the current LevelCollection. + + The LevelCollection whose elements should be added to the end of the current LevelCollection. + The new of the LevelCollection. + + + + Adds the elements of a array to the current LevelCollection. + + The array whose elements should be added to the end of the LevelCollection. + The new of the LevelCollection. + + + + Adds the elements of a collection to the current LevelCollection. + + The collection whose elements should be added to the end of the LevelCollection. + The new of the LevelCollection. + + + + Sets the capacity to the actual number of elements. + + + + + is less than zero + -or- + is equal to or greater than . + + + + + is less than zero + -or- + is equal to or greater than . + + + + + Gets the number of elements actually contained in the LevelCollection. + + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + The zero-based index of the element to get or set. + + is less than zero + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false + + + + Gets or sets the number of elements the LevelCollection can contain. + + + + + Supports type-safe iteration over a . + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + A value + + + + + Supports simple iteration over a . + + + + + Initializes a new instance of the Enumerator class. + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + An evaluator that triggers at a threshold level + + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + Nicko Cadell + + + + The threshold for triggering + + + + + Create a new evaluator using the threshold. + + + + Create a new evaluator using the threshold. + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Create a new evaluator using the specified threshold. + + the threshold to trigger at + + + Create a new evaluator using the specified threshold. + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Is this the triggering event? + + The event to check + This method returns true, if the event level + is equal or higher than the . + Otherwise it returns false + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + the threshold to trigger at + + + The that will cause this evaluator to trigger + + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Mapping between string name and Level object + + + + Mapping between string name and object. + This mapping is held separately for each . + The level name is case insensitive. + + + Nicko Cadell + + + + Mapping from level name to Level object. The + level name is case insensitive + + + + + Construct the level map + + + + Construct the level map. + + + + + + Clear the internal maps of all levels + + + + Clear the internal maps of all levels + + + + + + Create a new Level and add it to the map + + the string to display for the Level + the level value to give to the Level + + + Create a new Level and add it to the map + + + + + + + Create a new Level and add it to the map + + the string to display for the Level + the level value to give to the Level + the display name to give to the Level + + + Create a new Level and add it to the map + + + + + + Add a Level to the map + + the Level to add + + + Add a Level to the map + + + + + + Lookup a named level from the map + + the name of the level to lookup is taken from this level. + If the level is not set on the map then this level is added + the level in the map with the name specified + + + Lookup a named level from the map. The name of the level to lookup is taken + from the property of the + argument. + + + If no level with the specified name is found then the + argument is added to the level map + and returned. + + + + + + Lookup a by name + + The name of the Level to lookup + a Level from the map with the name specified + + + Returns the from the + map with the name specified. If the no level is + found then null is returned. + + + + + + Return all possible levels as a list of Level objects. + + all possible levels as a list of Level objects + + + Return all possible levels as a list of Level objects. + + + + + + The internal representation of caller location information. + + + + This class uses the System.Diagnostics.StackTrace class to generate + a call stack. The caller's information is then extracted from this stack. + + + The System.Diagnostics.StackTrace class is not supported on the + .NET Compact Framework 1.0 therefore caller location information is not + available on that framework. + + + The System.Diagnostics.StackTrace class has this to say about Release builds: + + + "StackTrace information will be most informative with Debug build configurations. + By default, Debug builds include debug symbols, while Release builds do not. The + debug symbols contain most of the file, method name, line number, and column + information used in constructing StackFrame and StackTrace objects. StackTrace + might not report as many method calls as expected, due to code transformations + that occur during optimization." + + + This means that in a Release build the caller information may be incomplete or may + not exist at all! Therefore caller location information cannot be relied upon in a Release build. + + + Nicko Cadell + Gert Driesen + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + Constructor + + The declaring type of the method that is + the stack boundary into the logging system for this call. + + + Initializes a new instance of the + class based on the current thread. + + + + + + Constructor + + The fully qualified class name. + The method name. + The file name. + The line number of the method within the file. + + + Initializes a new instance of the + class with the specified data. + + + + + + The fully qualified type of the LocationInfo class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the fully qualified class name of the caller making the logging + request. + + + The fully qualified class name of the caller making the logging + request. + + + + Gets the fully qualified class name of the caller making the logging + request. + + + + + + Gets the file name of the caller. + + + The file name of the caller. + + + + Gets the file name of the caller. + + + + + + Gets the line number of the caller. + + + The line number of the caller. + + + + Gets the line number of the caller. + + + + + + Gets the method name of the caller. + + + The method name of the caller. + + + + Gets the method name of the caller. + + + + + + Gets all available caller information + + + All available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + Gets all available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + + + Gets the stack frames from the stack trace of the caller making the log request + + + + + Static manager that controls the creation of repositories + + + + Static manager that controls the creation of repositories + + + This class is used by the wrapper managers (e.g. ) + to provide access to the objects. + + + This manager also holds the that is used to + lookup and create repositories. The selector can be set either programmatically using + the property, or by setting the log4net.RepositorySelector + AppSetting in the applications config file to the fully qualified type name of the + selector to use. + + + Nicko Cadell + Gert Driesen + + + + Private constructor to prevent instances. Only static methods should be used. + + + + Private constructor to prevent instances. Only static methods should be used. + + + + + + Hook the shutdown event + + + + On the full .NET runtime, the static constructor hooks up the + AppDomain.ProcessExit and AppDomain.DomainUnload> events. + These are used to shutdown the log4net system as the application exits. + + + + + + Register for ProcessExit and DomainUnload events on the AppDomain + + + + This needs to be in a separate method because the events make + a LinkDemand for the ControlAppDomain SecurityPermission. Because + this is a LinkDemand it is demanded at JIT time. Therefore we cannot + catch the exception in the method itself, we have to catch it in the + caller. + + + + + + Return the default instance. + + the repository to lookup in + Return the default instance + + + Gets the for the repository specified + by the argument. + + + + + + Returns the default instance. + + The assembly to use to lookup the repository. + The default instance. + + + + Return the default instance. + + the repository to lookup in + Return the default instance + + + Gets the for the repository specified + by the argument. + + + + + + Returns the default instance. + + The assembly to use to lookup the repository. + The default instance. + + + Returns the default instance. + + + + + + Returns the named logger if it exists. + + The repository to lookup in. + The fully qualified logger name to look for. + + The logger found, or null if the named logger does not exist in the + specified repository. + + + + If the named logger exists (in the specified repository) then it + returns a reference to the logger, otherwise it returns + null. + + + + + + Returns the named logger if it exists. + + The assembly to use to lookup the repository. + The fully qualified logger name to look for. + + The logger found, or null if the named logger does not exist in the + specified assembly's repository. + + + + If the named logger exists (in the specified assembly's repository) then it + returns a reference to the logger, otherwise it returns + null. + + + + + + Returns all the currently defined loggers in the specified repository. + + The repository to lookup in. + All the defined loggers. + + + The root logger is not included in the returned array. + + + + + + Returns all the currently defined loggers in the specified assembly's repository. + + The assembly to use to lookup the repository. + All the defined loggers. + + + The root logger is not included in the returned array. + + + + + + Retrieves or creates a named logger. + + The repository to lookup in. + The name of the logger to retrieve. + The logger with the name specified. + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + + + + Retrieves or creates a named logger. + + The assembly to use to lookup the repository. + The name of the logger to retrieve. + The logger with the name specified. + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + + + + Shorthand for . + + The repository to lookup in. + The of which the fullname will be used as the name of the logger to retrieve. + The logger with the name specified. + + + Gets the logger for the fully qualified name of the type specified. + + + + + + Shorthand for . + + the assembly to use to lookup the repository + The of which the fullname will be used as the name of the logger to retrieve. + The logger with the name specified. + + + Gets the logger for the fully qualified name of the type specified. + + + + + + Shuts down the log4net system. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in all the + default repositories. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + The repository to shutdown. + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository for the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + The assembly to use to lookup the repository. + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository for the repository. The repository is looked up using + the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Resets all values contained in this repository instance to their defaults. + + The repository to reset. + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + + + + Resets all values contained in this repository instance to their defaults. + + The assembly to use to lookup the repository to reset. + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + + + + Creates a repository with the specified name. + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name. + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The name must be unique. Repositories cannot be redefined. + An Exception will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The name must be unique. Repositories cannot be redefined. + An Exception will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository for the specified assembly and repository type. + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + + + + Creates a repository for the specified assembly and repository type. + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + + + + Gets an array of all currently defined repositories. + + An array of all the known objects. + + + Gets an array of all currently defined repositories. + + + + + + Internal method to get pertinent version info. + + A string of version info. + + + + Called when the event fires + + the that is exiting + null + + + Called when the event fires. + + + When the event is triggered the log4net system is . + + + + + + Called when the event fires + + the that is exiting + null + + + Called when the event fires. + + + When the event is triggered the log4net system is . + + + + + + The fully qualified type of the LoggerManager class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Initialize the default repository selector + + + + + Gets or sets the repository selector used by the . + + + The repository selector used by the . + + + + The repository selector () is used by + the to create and select repositories + (). + + + The caller to supplies either a string name + or an assembly (if not supplied the assembly is inferred using + ). + + + This context is used by the selector to lookup a specific repository. + + + For the full .NET Framework, the default repository is DefaultRepositorySelector; + for the .NET Compact Framework CompactRepositorySelector is the default + repository. + + + + + + Implementation of the interface. + + + + This class should be used as the base for all wrapper implementations. + + + Nicko Cadell + Gert Driesen + + + + Constructs a new wrapper for the specified logger. + + The logger to wrap. + + + Constructs a new wrapper for the specified logger. + + + + + + The logger that this object is wrapping + + + + + Gets the implementation behind this wrapper object. + + + The object that this object is implementing. + + + + The Logger object may not be the same object as this object + because of logger decorators. + + + This gets the actual underlying objects that is used to process + the log events. + + + + + + Portable data structure used by + + + + Portable data structure used by + + + Nicko Cadell + + + + The logger name. + + + + The logger name. + + + + + + Level of logging event. + + + + Level of logging event. Level cannot be Serializable + because it is a flyweight. Due to its special serialization it + cannot be declared final either. + + + + + + The application supplied message. + + + + The application supplied message of logging event. + + + + + + The name of thread + + + + The name of thread in which this logging event was generated + + + + + + Gets or sets the local time the event was logged + + + + Prefer using the setter, since local time can be ambiguous. + + + + + + Location information for the caller. + + + + Location information for the caller. + + + + + + String representation of the user + + + + String representation of the user's windows name, + like DOMAIN\username + + + + + + String representation of the identity. + + + + String representation of the current thread's principal identity. + + + + + + The string representation of the exception + + + + The string representation of the exception + + + + + + String representation of the AppDomain. + + + + String representation of the AppDomain. + + + + + + Additional event specific properties + + + + A logger or an appender may attach additional + properties to specific events. These properties + have a string key and an object value. + + + + + + Gets or sets the UTC time the event was logged + + + + The TimeStamp is stored in the UTC time zone. + + + + + + Flags passed to the property + + + + Flags passed to the property + + + Nicko Cadell + + + + Fix the MDC + + + + + Fix the NDC + + + + + Fix the rendered message + + + + + Fix the thread name + + + + + Fix the callers location information + + + CAUTION: Very slow to generate + + + + + Fix the callers windows user name + + + CAUTION: Slow to generate + + + + + Fix the domain friendly name + + + + + Fix the callers principal name + + + CAUTION: May be slow to generate + + + + + Fix the exception text + + + + + Fix the event properties. Active properties must implement in order to be eligible for fixing. + + + + + No fields fixed + + + + + All fields fixed + + + + + Partial fields fixed + + + + This set of partial fields gives good performance. The following fields are fixed: + + + + + + + + + + + + + The internal representation of logging events. + + + + When an affirmative decision is made to log then a + instance is created. This instance + is passed around to the different log4net components. + + + This class is of concern to those wishing to extend log4net. + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + for incurred by calling but it + is essential to maintaining data consistency. + + + Nicko Cadell + Gert Driesen + Douglas de la Torre + Daniel Cazzulino + + + + The key into the Properties map for the host name value. + + + + + The key into the Properties map for the thread identity value. + + + + + The key into the Properties map for the user name value. + + + + + Initializes a new instance of the class + from the supplied parameters. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + The name of the logger of this event. + The level of this event. + The message of this event. + The exception for this event. + + + Except , and , + all fields of LoggingEvent are filled when actually needed. Call + to cache all data locally + to prevent inconsistencies. + + This method is called by the log4net framework + to create a logging event. + + + + + + Initializes a new instance of the class + using specific data. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + Data used to initialize the logging event. + The fields in the struct that have already been fixed. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + The parameter should be used to specify which fields in the + struct have been preset. Fields not specified in the + will be captured from the environment if requested or fixed. + + + + + + Initializes a new instance of the class + using specific data. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + Data used to initialize the logging event. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + This constructor sets this objects flags to , + this assumes that all the data relating to this event is passed in via the + parameter and no other data should be captured from the environment. + + + + + + Initializes a new instance of the class + using specific data. + + Data used to initialize the logging event. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + This constructor sets this objects flags to , + this assumes that all the data relating to this event is passed in via the + parameter and no other data should be captured from the environment. + + + + + + Serialization constructor + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Ensure that the repository is set. + + the value for the repository + + + + Write the rendered message to a TextWriter + + the writer to write the message to + + + Unlike the property this method + does store the message data in the internal cache. Therefore + if called only once this method should be faster than the + property, however if the message is + to be accessed multiple times then the property will be more efficient. + + + + + + Serializes this object into the provided. + + The to populate with data. + The destination for this serialization. + + + The data in this event must be fixed before it can be serialized. + + + The method must be called during the + method call if this event + is to be used outside that method. + + + + + + Gets the portable data for this . + + The for this event. + + + A new can be constructed using a + instance. + + + Does a fix of the data + in the logging event before returning the event data. + + + + + + Gets the portable data for this . + + The set of data to ensure is fixed in the LoggingEventData + The for this event. + + + A new can be constructed using a + instance. + + + + + + Returns this event's exception's rendered using the + . + + + This event's exception's rendered using the . + + + + Obsolete. Use instead. + + + + + + Returns this event's exception's rendered using the + . + + + This event's exception's rendered using the . + + + + Returns this event's exception's rendered using the + . + + + + + + Fix instance fields that hold volatile data. + + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + incurred by calling but it + is essential to maintaining data consistency. + + + Calling is equivalent to + calling passing the parameter + false. + + + See for more + information. + + + + + + Fixes instance fields that hold volatile data. + + Set to true to not fix data that takes a long time to fix. + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + for incurred by calling but it + is essential to maintaining data consistency. + + + The param controls the data that + is fixed. Some of the data that can be fixed takes a long time to + generate, therefore if you do not require those settings to be fixed + they can be ignored by setting the param + to true. This setting will ignore the + and settings. + + + Set to false to ensure that all + settings are fixed. + + + + + + Fix the fields specified by the parameter + + the fields to fix + + + Only fields specified in the will be fixed. + Fields will not be fixed if they have previously been fixed. + It is not possible to 'unfix' a field. + + + + + + Lookup a composite property in this event + + the key for the property to lookup + the value for the property + + + This event has composite properties that combine together properties from + several different contexts in the following order: + + + this events properties + + This event has that can be set. These + properties are specific to this event only. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + + + Get all the composite properties in this event + + the containing all the properties + + + See for details of the composite properties + stored by the event. + + + This method returns a single containing all the + properties defined for this event. + + + + + + The internal logging event data. + + + + + The internal logging event data. + + + + + The internal logging event data. + + + + + The fully qualified Type of the calling + logger class in the stack frame (i.e. the declaring type of the method). + + + + + The application supplied message of logging event. + + + + + The exception that was thrown. + + + This is not serialized. The string representation + is serialized instead. + + + + + The repository that generated the logging event + + + This is not serialized. + + + + + The fix state for this event + + + These flags indicate which fields have been fixed. + Not serialized. + + + + + Indicated that the internal cache is updateable (ie not fixed) + + + This is a seperate flag to m_fixFlags as it allows incrementel fixing and simpler + changes in the caching strategy. + + + + + Gets the time when the current process started. + + + This is the time when this process started. + + + + The TimeStamp is stored internally in UTC and converted to the local time zone for this computer. + + + Tries to get the start time for the current process. + Failing that it returns the time of the first call to + this property. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating and therefore + without the process start time being reset. + + + + + + Gets the UTC time when the current process started. + + + This is the UTC time when this process started. + + + + Tries to get the start time for the current process. + Failing that it returns the time of the first call to + this property. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating and therefore + without the process start time being reset. + + + + + + Gets the of the logging event. + + + The of the logging event. + + + + Gets the of the logging event. + + + + + + Gets the time of the logging event. + + + The time of the logging event. + + + + The TimeStamp is stored in UTC and converted to the local time zone for this computer. + + + + + + Gets UTC the time of the logging event. + + + The UTC time of the logging event. + + + + + Gets the name of the logger that logged the event. + + + The name of the logger that logged the event. + + + + Gets the name of the logger that logged the event. + + + + + + Gets the location information for this logging event. + + + The location information for this logging event. + + + + The collected information is cached for future use. + + + See the class for more information on + supported frameworks and the different behavior in Debug and + Release builds. + + + + + + Gets the message object used to initialize this event. + + + The message object used to initialize this event. + + + + Gets the message object used to initialize this event. + Note that this event may not have a valid message object. + If the event is serialized the message object will not + be transferred. To get the text of the message the + property must be used + not this property. + + + If there is no defined message object for this event then + null will be returned. + + + + + + Gets the exception object used to initialize this event. + + + The exception object used to initialize this event. + + + + Gets the exception object used to initialize this event. + Note that this event may not have a valid exception object. + If the event is serialized the exception object will not + be transferred. To get the text of the exception the + method must be used + not this property. + + + If there is no defined exception object for this event then + null will be returned. + + + + + + The that this event was created in. + + + + The that this event was created in. + + + + + + Gets the message, rendered through the . + + + The message rendered through the . + + + + The collected information is cached for future use. + + + + + + Gets the name of the current thread. + + + The name of the current thread, or the thread ID when + the name is not available. + + + + The collected information is cached for future use. + + + + + + Gets the name of the current user. + + + The name of the current user, or NOT AVAILABLE when the + underlying runtime has no support for retrieving the name of the + current user. + + + + Calls WindowsIdentity.GetCurrent().Name to get the name of + the current windows user. + + + To improve performance, we could cache the string representation of + the name, and reuse that as long as the identity stayed constant. + Once the identity changed, we would need to re-assign and re-render + the string. + + + However, the WindowsIdentity.GetCurrent() call seems to + return different objects every time, so the current implementation + doesn't do this type of caching. + + + Timing for these operations: + + + + Method + Results + + + WindowsIdentity.GetCurrent() + 10000 loops, 00:00:00.2031250 seconds + + + WindowsIdentity.GetCurrent().Name + 10000 loops, 00:00:08.0468750 seconds + + + + This means we could speed things up almost 40 times by caching the + value of the WindowsIdentity.GetCurrent().Name property, since + this takes (8.04-0.20) = 7.84375 seconds. + + + + + + Gets the identity of the current thread principal. + + + The string name of the identity of the current thread principal. + + + + Calls System.Threading.Thread.CurrentPrincipal.Identity.Name to get + the name of the current thread principal. + + + + + + Gets the AppDomain friendly name. + + + The AppDomain friendly name. + + + + Gets the AppDomain friendly name. + + + + + + Additional event specific properties. + + + Additional event specific properties. + + + + A logger or an appender may attach additional + properties to specific events. These properties + have a string key and an object value. + + + This property is for events that have been added directly to + this event. The aggregate properties (which include these + event properties) can be retrieved using + and . + + + Once the properties have been fixed this property + returns the combined cached properties. This ensures that updates to + this property are always reflected in the underlying storage. When + returning the combined properties there may be more keys in the + Dictionary than expected. + + + + + + The fixed fields in this event + + + The set of fields that are fixed in this event + + + + Fields will not be fixed if they have previously been fixed. + It is not possible to 'unfix' a field. + + + + + + Implementation of wrapper interface. + + + + This implementation of the interface + forwards to the held by the base class. + + + This logger has methods to allow the caller to log at the following + levels: + + + + DEBUG + + The and methods log messages + at the DEBUG level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + INFO + + The and methods log messages + at the INFO level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + WARN + + The and methods log messages + at the WARN level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + ERROR + + The and methods log messages + at the ERROR level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + FATAL + + The and methods log messages + at the FATAL level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + + The values for these levels and their semantic meanings can be changed by + configuring the for the repository. + + + Nicko Cadell + Gert Driesen + + + + The ILog interface is use by application to log messages into + the log4net framework. + + + + Use the to obtain logger instances + that implement this interface. The + static method is used to get logger instances. + + + This class contains methods for logging at different levels and also + has properties for determining if those logging levels are + enabled in the current configuration. + + + This interface can be implemented in different ways. This documentation + specifies reasonable behavior that a caller can expect from the actual + implementation, however different implementations reserve the right to + do things differently. + + + Simple example of logging messages + + ILog log = LogManager.GetLogger("application-log"); + + log.Info("Application Start"); + log.Debug("This is a debug message"); + + if (log.IsDebugEnabled) + { + log.Debug("This is another debug message"); + } + + + + + Nicko Cadell + Gert Driesen + + + Log a message object with the level. + + Log a message object with the level. + + The message object to log. + + + This method first checks if this logger is DEBUG + enabled by comparing the level of this logger with the + level. If this logger is + DEBUG enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Logs a message object with the level. + + + + This method first checks if this logger is INFO + enabled by comparing the level of this logger with the + level. If this logger is + INFO enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Logs a message object with the INFO level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Log a message object with the level. + + + + This method first checks if this logger is WARN + enabled by comparing the level of this logger with the + level. If this logger is + WARN enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Logs a message object with the level. + + The message object to log. + + + This method first checks if this logger is ERROR + enabled by comparing the level of this logger with the + level. If this logger is + ERROR enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Log a message object with the level. + + + + This method first checks if this logger is FATAL + enabled by comparing the level of this logger with the + level. If this logger is + FATAL enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + + This function is intended to lessen the computational cost of + disabled log debug statements. + + For some ILog interface log, when you write: + + log.Debug("This is entry number: " + i ); + + + You incur the cost constructing the message, string construction and concatenation in + this case, regardless of whether the message is logged or not. + + + If you are worried about speed (who isn't), then you should write: + + + if (log.IsDebugEnabled) + { + log.Debug("This is entry number: " + i ); + } + + + This way you will not incur the cost of parameter + construction if debugging is disabled for log. On + the other hand, if the log is debug enabled, you + will incur the cost of evaluating whether the logger is debug + enabled twice. Once in and once in + the . This is an insignificant overhead + since evaluating a logger takes about 1% of the time it + takes to actually log. This is the preferred style of logging. + + Alternatively if your logger is available statically then the is debug + enabled state can be stored in a static variable like this: + + + private static readonly bool isDebugEnabled = log.IsDebugEnabled; + + + Then when you come to log you can write: + + + if (isDebugEnabled) + { + log.Debug("This is entry number: " + i ); + } + + + This way the debug enabled state is only queried once + when the class is loaded. Using a private static readonly + variable is the most efficient because it is a run time constant + and can be heavily optimized by the JIT compiler. + + + Of course if you use a static readonly variable to + hold the enabled state of the logger then you cannot + change the enabled state at runtime to vary the logging + that is produced. You have to decide if you need absolute + speed or runtime flexibility. + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Construct a new wrapper for the specified logger. + + The logger to wrap. + + + Construct a new wrapper for the specified logger. + + + + + + Virtual method called when the configuration of the repository changes + + the repository holding the levels + + + Virtual method called when the configuration of the repository changes + + + + + + Logs a message object with the DEBUG level. + + The message object to log. + + + This method first checks if this logger is DEBUG + enabled by comparing the level of this logger with the + DEBUG level. If this logger is + DEBUG enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the DEBUG level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the DEBUG level including + the stack trace of the passed + as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the INFO level. + + The message object to log. + + + This method first checks if this logger is INFO + enabled by comparing the level of this logger with the + INFO level. If this logger is + INFO enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the INFO level. + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the INFO level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the WARN level. + + the message object to log + + + This method first checks if this logger is WARN + enabled by comparing the level of this logger with the + WARN level. If this logger is + WARN enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the WARN level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the WARN level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the ERROR level. + + The message object to log. + + + This method first checks if this logger is ERROR + enabled by comparing the level of this logger with the + ERROR level. If this logger is + ERROR enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the ERROR level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the ERROR level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the FATAL level. + + The message object to log. + + + This method first checks if this logger is FATAL + enabled by comparing the level of this logger with the + FATAL level. If this logger is + FATAL enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the FATAL level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the FATAL level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Event handler for the event + + the repository + Empty + + + + The fully qualified name of this declaring type not the type of any subclass. + + + + + Checks if this logger is enabled for the DEBUG + level. + + + true if this logger is enabled for DEBUG events, + false otherwise. + + + + This function is intended to lessen the computational cost of + disabled log debug statements. + + + For some log Logger object, when you write: + + + log.Debug("This is entry number: " + i ); + + + You incur the cost constructing the message, concatenation in + this case, regardless of whether the message is logged or not. + + + If you are worried about speed, then you should write: + + + if (log.IsDebugEnabled()) + { + log.Debug("This is entry number: " + i ); + } + + + This way you will not incur the cost of parameter + construction if debugging is disabled for log. On + the other hand, if the log is debug enabled, you + will incur the cost of evaluating whether the logger is debug + enabled twice. Once in IsDebugEnabled and once in + the Debug. This is an insignificant overhead + since evaluating a logger takes about 1% of the time it + takes to actually log. + + + + + + Checks if this logger is enabled for the INFO level. + + + true if this logger is enabled for INFO events, + false otherwise. + + + + See for more information and examples + of using this method. + + + + + + + Checks if this logger is enabled for the WARN level. + + + true if this logger is enabled for WARN events, + false otherwise. + + + + See for more information and examples + of using this method. + + + + + + + Checks if this logger is enabled for the ERROR level. + + + true if this logger is enabled for ERROR events, + false otherwise. + + + + See for more information and examples of using this method. + + + + + + + Checks if this logger is enabled for the FATAL level. + + + true if this logger is enabled for FATAL events, + false otherwise. + + + + See for more information and examples of using this method. + + + + + + + provides method information without actually referencing a System.Reflection.MethodBase + as that would require that the containing assembly is loaded. + + + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + constructs a method item for an unknown method. + + + + + constructs a method item from the name of the method. + + + + + + constructs a method item from the name of the method and its parameters. + + + + + + + constructs a method item from a method base by determining the method name and its parameters. + + + + + + The fully qualified type of the StackFrameItem class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the method name of the caller making the logging + request. + + + The method name of the caller making the logging + request. + + + + Gets the method name of the caller making the logging + request. + + + + + + Gets the method parameters of the caller making + the logging request. + + + The method parameters of the caller making + the logging request + + + + Gets the method parameters of the caller making + the logging request. + + + + + + A SecurityContext used by log4net when interacting with protected resources + + + + A SecurityContext used by log4net when interacting with protected resources + for example with operating system services. This can be used to impersonate + a principal that has been granted privileges on the system resources. + + + Nicko Cadell + + + + Impersonate this SecurityContext + + State supplied by the caller + An instance that will + revoke the impersonation of this SecurityContext, or null + + + Impersonate this security context. Further calls on the current + thread should now be made in the security context provided + by this object. When the result + method is called the security + context of the thread should be reverted to the state it was in + before was called. + + + + + + The providers default instances. + + + + A configured component that interacts with potentially protected system + resources uses a to provide the elevated + privileges required. If the object has + been not been explicitly provided to the component then the component + will request one from this . + + + By default the is + an instance of which returns only + objects. This is a reasonable default + where the privileges required are not know by the system. + + + This default behavior can be overridden by subclassing the + and overriding the method to return + the desired objects. The default provider + can be replaced by programmatically setting the value of the + property. + + + An alternative is to use the log4net.Config.SecurityContextProviderAttribute + This attribute can be applied to an assembly in the same way as the + log4net.Config.XmlConfiguratorAttribute". The attribute takes + the type to use as the as an argument. + + + Nicko Cadell + + + + The default provider + + + + + Protected default constructor to allow subclassing + + + + Protected default constructor to allow subclassing + + + + + + Create a SecurityContext for a consumer + + The consumer requesting the SecurityContext + An impersonation context + + + The default implementation is to return a . + + + Subclasses should override this method to provide their own + behavior. + + + + + + Gets or sets the default SecurityContextProvider + + + The default SecurityContextProvider + + + + The default provider is used by configured components that + require a and have not had one + given to them. + + + By default this is an instance of + that returns objects. + + + The default provider can be set programmatically by setting + the value of this property to a sub class of + that has the desired behavior. + + + + + + provides stack frame information without actually referencing a System.Diagnostics.StackFrame + as that would require that the containing assembly is loaded. + + + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + returns a stack frame item from a stack frame. This + + + + + + + The fully qualified type of the StackFrameItem class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the fully qualified class name of the caller making the logging + request. + + + The fully qualified class name of the caller making the logging + request. + + + + Gets the fully qualified class name of the caller making the logging + request. + + + + + + Gets the file name of the caller. + + + The file name of the caller. + + + + Gets the file name of the caller. + + + + + + Gets the line number of the caller. + + + The line number of the caller. + + + + Gets the line number of the caller. + + + + + + Gets the method name of the caller. + + + The method name of the caller. + + + + Gets the method name of the caller. + + + + + + Gets all available caller information + + + All available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + Gets all available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + + + An evaluator that triggers after specified number of seconds. + + + + This evaluator will trigger if the specified time period + has passed since last check. + + + Robert Sevcik + + + + The default time threshold for triggering in seconds. Zero means it won't trigger at all. + + + + + The time threshold for triggering in seconds. Zero means it won't trigger at all. + + + + + The UTC time of last check. This gets updated when the object is created and when the evaluator triggers. + + + + + Create a new evaluator using the time threshold in seconds. + + + + Create a new evaluator using the time threshold in seconds. + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Create a new evaluator using the specified time threshold in seconds. + + + The time threshold in seconds to trigger after. + Zero means it won't trigger at all. + + + + Create a new evaluator using the specified time threshold in seconds. + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Is this the triggering event? + + The event to check + This method returns true, if the specified time period + has passed since last check.. + Otherwise it returns false + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + The time threshold in seconds to trigger after + + + The time threshold in seconds to trigger after. + Zero means it won't trigger at all. + + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Delegate used to handle creation of new wrappers. + + The logger to wrap in a wrapper. + + + Delegate used to handle creation of new wrappers. This delegate + is called from the + method to construct the wrapper for the specified logger. + + + The delegate to use is supplied to the + constructor. + + + + + + Maps between logger objects and wrapper objects. + + + + This class maintains a mapping between objects and + objects. Use the method to + lookup the for the specified . + + + New wrapper instances are created by the + method. The default behavior is for this method to delegate construction + of the wrapper to the delegate supplied + to the constructor. This allows specialization of the behavior without + requiring subclassing of this type. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the + + The handler to use to create the wrapper objects. + + + Initializes a new instance of the class with + the specified handler to create the wrapper objects. + + + + + + Gets the wrapper object for the specified logger. + + The wrapper object for the specified logger + + + If the logger is null then the corresponding wrapper is null. + + + Looks up the wrapper it it has previously been requested and + returns it. If the wrapper has never been requested before then + the virtual method is + called. + + + + + + Creates the wrapper object for the specified logger. + + The logger to wrap in a wrapper. + The wrapper object for the logger. + + + This implementation uses the + passed to the constructor to create the wrapper. This method + can be overridden in a subclass. + + + + + + Called when a monitored repository shutdown event is received. + + The that is shutting down + + + This method is called when a that this + is holding loggers for has signaled its shutdown + event . The default + behavior of this method is to release the references to the loggers + and their wrappers generated for this repository. + + + + + + Event handler for repository shutdown event. + + The sender of the event. + The event args. + + + + Map of logger repositories to hashtables of ILogger to ILoggerWrapper mappings + + + + + The handler to use to create the extension wrapper objects. + + + + + Internal reference to the delegate used to register for repository shutdown events. + + + + + Gets the map of logger repositories. + + + Map of logger repositories. + + + + Gets the hashtable that is keyed on . The + values are hashtables keyed on with the + value being the corresponding . + + + + + + Formats a as "HH:mm:ss,fff". + + + + Formats a in the format "HH:mm:ss,fff" for example, "15:49:37,459". + + + Nicko Cadell + Gert Driesen + + + + Render a as a string. + + + + Interface to abstract the rendering of a + instance into a string. + + + The method is used to render the + date to a text writer. + + + Nicko Cadell + Gert Driesen + + + + Formats the specified date as a string. + + The date to format. + The writer to write to. + + + Format the as a string and write it + to the provided. + + + + + + String constant used to specify AbsoluteTimeDateFormat in layouts. Current value is ABSOLUTE. + + + + + String constant used to specify DateTimeDateFormat in layouts. Current value is DATE. + + + + + String constant used to specify ISO8601DateFormat in layouts. Current value is ISO8601. + + + + + Renders the date into a string. Format is "HH:mm:ss". + + The date to render into a string. + The string builder to write to. + + + Subclasses should override this method to render the date + into a string using a precision up to the second. This method + will be called at most once per second and the result will be + reused if it is needed again during the same second. + + + + + + Renders the date into a string. Format is "HH:mm:ss,fff". + + The date to render into a string. + The writer to write to. + + + Uses the method to generate the + time string up to the seconds and then appends the current + milliseconds. The results from are + cached and is called at most once + per second. + + + Sub classes should override + rather than . + + + + + + Last stored time with precision up to the second. + + + + + Last stored time with precision up to the second, formatted + as a string. + + + + + Last stored time with precision up to the second, formatted + as a string. + + + + + Formats a as "dd MMM yyyy HH:mm:ss,fff" + + + + Formats a in the format + "dd MMM yyyy HH:mm:ss,fff" for example, + "06 Nov 1994 15:49:37,459". + + + Nicko Cadell + Gert Driesen + Angelika Schnagl + + + + Default constructor. + + + + Initializes a new instance of the class. + + + + + + Formats the date without the milliseconds part + + The date to format. + The string builder to write to. + + + Formats a DateTime in the format "dd MMM yyyy HH:mm:ss" + for example, "06 Nov 1994 15:49:37". + + + The base class will append the ",fff" milliseconds section. + This method will only be called at most once per second. + + + + + + The format info for the invariant culture. + + + + + Formats the as "yyyy-MM-dd HH:mm:ss,fff". + + + + Formats the specified as a string: "yyyy-MM-dd HH:mm:ss,fff". + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Formats the date without the milliseconds part + + The date to format. + The string builder to write to. + + + Formats the date specified as a string: "yyyy-MM-dd HH:mm:ss". + + + The base class will append the ",fff" milliseconds section. + This method will only be called at most once per second. + + + + + + Formats the using the method. + + + + Formats the using the method. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The format string. + + + Initializes a new instance of the class + with the specified format string. + + + The format string must be compatible with the options + that can be supplied to . + + + + + + Formats the date using . + + The date to convert to a string. + The writer to write to. + + + Uses the date format string supplied to the constructor to call + the method to format the date. + + + + + + The format string used to format the . + + + + The format string must be compatible with the options + that can be supplied to . + + + + + + This filter drops all . + + + + You can add this filter to the end of a filter chain to + switch from the default "accept all unless instructed otherwise" + filtering behavior to a "deny all unless instructed otherwise" + behavior. + + + Nicko Cadell + Gert Driesen + + + + Subclass this type to implement customized logging event filtering + + + + Users should extend this class to implement customized logging + event filtering. Note that and + , the parent class of all standard + appenders, have built-in filtering rules. It is suggested that you + first use and understand the built-in rules before rushing to write + your own custom filters. + + + This abstract class assumes and also imposes that filters be + organized in a linear chain. The + method of each filter is called sequentially, in the order of their + addition to the chain. + + + The method must return one + of the integer constants , + or . + + + If the value is returned, then the log event is dropped + immediately without consulting with the remaining filters. + + + If the value is returned, then the next filter + in the chain is consulted. If there are no more filters in the + chain, then the log event is logged. Thus, in the presence of no + filters, the default behavior is to log all logging events. + + + If the value is returned, then the log + event is logged without consulting the remaining filters. + + + The philosophy of log4net filters is largely inspired from the + Linux ipchains. + + + Nicko Cadell + Gert Driesen + + + + Implement this interface to provide customized logging event filtering + + + + Users should implement this interface to implement customized logging + event filtering. Note that and + , the parent class of all standard + appenders, have built-in filtering rules. It is suggested that you + first use and understand the built-in rules before rushing to write + your own custom filters. + + + This abstract class assumes and also imposes that filters be + organized in a linear chain. The + method of each filter is called sequentially, in the order of their + addition to the chain. + + + The method must return one + of the integer constants , + or . + + + If the value is returned, then the log event is dropped + immediately without consulting with the remaining filters. + + + If the value is returned, then the next filter + in the chain is consulted. If there are no more filters in the + chain, then the log event is logged. Thus, in the presence of no + filters, the default behavior is to log all logging events. + + + If the value is returned, then the log + event is logged without consulting the remaining filters. + + + The philosophy of log4net filters is largely inspired from the + Linux ipchains. + + + Nicko Cadell + Gert Driesen + + + + Decide if the logging event should be logged through an appender. + + The LoggingEvent to decide upon + The decision of the filter + + + If the decision is , then the event will be + dropped. If the decision is , then the next + filter, if any, will be invoked. If the decision is then + the event will be logged without consulting with other filters in + the chain. + + + + + + Property to get and set the next filter + + + The next filter in the chain + + + + Filters are typically composed into chains. This property allows the next filter in + the chain to be accessed. + + + + + + Points to the next filter in the filter chain. + + + + See for more information. + + + + + + Initialize the filter with the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Typically filter's options become active immediately on set, + however this method must still be called. + + + + + + Decide if the should be logged through an appender. + + The to decide upon + The decision of the filter + + + If the decision is , then the event will be + dropped. If the decision is , then the next + filter, if any, will be invoked. If the decision is then + the event will be logged without consulting with other filters in + the chain. + + + This method is marked abstract and must be implemented + in a subclass. + + + + + + Property to get and set the next filter + + + The next filter in the chain + + + + Filters are typically composed into chains. This property allows the next filter in + the chain to be accessed. + + + + + + Default constructor + + + + + Always returns the integer constant + + the LoggingEvent to filter + Always returns + + + Ignores the event being logged and just returns + . This can be used to change the default filter + chain behavior from to . This filter + should only be used as the last filter in the chain + as any further filters will be ignored! + + + + + + The return result from + + + + The return result from + + + + + + The log event must be dropped immediately without + consulting with the remaining filters, if any, in the chain. + + + + + This filter is neutral with respect to the log event. + The remaining filters, if any, should be consulted for a final decision. + + + + + The log event must be logged immediately without + consulting with the remaining filters, if any, in the chain. + + + + + This is a very simple filter based on matching. + + + + The filter admits two options and + . If there is an exact match between the value + of the option and the of the + , then the method returns in + case the option value is set + to true, if it is false then + is returned. If the does not match then + the result will be . + + + Nicko Cadell + Gert Driesen + + + + flag to indicate if the filter should on a match + + + + + the to match against + + + + + Default constructor + + + + + Tests if the of the logging event matches that of the filter + + the event to filter + see remarks + + + If the of the event matches the level of the + filter then the result of the function depends on the + value of . If it is true then + the function will return , it it is false then it + will return . If the does not match then + the result will be . + + + + + + when matching + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + The that the filter will match + + + + The level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + This is a simple filter based on matching. + + + + The filter admits three options and + that determine the range of priorities that are matched, and + . If there is a match between the range + of priorities and the of the , then the + method returns in case the + option value is set to true, if it is false + then is returned. If there is no match, is returned. + + + Nicko Cadell + Gert Driesen + + + + Flag to indicate the behavior when matching a + + + + + the minimum value to match + + + + + the maximum value to match + + + + + Default constructor + + + + + Check if the event should be logged. + + the logging event to check + see remarks + + + If the of the logging event is outside the range + matched by this filter then + is returned. If the is matched then the value of + is checked. If it is true then + is returned, otherwise + is returned. + + + + + + when matching and + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + Set the minimum matched + + + + The minimum level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + Sets the maximum matched + + + + The maximum level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + Simple filter to match a string in the event's logger name. + + + + The works very similar to the . It admits two + options and . If the + of the starts + with the value of the option, then the + method returns in + case the option value is set to true, + if it is false then is returned. + + + Daniel Cazzulino + + + + Flag to indicate the behavior when we have a match + + + + + The logger name string to substring match against the event + + + + + Default constructor + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The rendered message is matched against the . + If the equals the beginning of + the incoming () + then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + when matching + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + The that the filter will match + + + + This filter will attempt to match this value against logger name in + the following way. The match will be done against the beginning of the + logger name (using ). The match is + case sensitive. If a match is found then + the result depends on the value of . + + + + + + Simple filter to match a keyed string in the + + + + Simple filter to match a keyed string in the + + + As the MDC has been replaced with layered properties the + should be used instead. + + + Nicko Cadell + Gert Driesen + + + + Simple filter to match a string an event property + + + + Simple filter to match a string in the value for a + specific event property + + + Nicko Cadell + + + + Simple filter to match a string in the rendered message + + + + Simple filter to match a string in the rendered message + + + Nicko Cadell + Gert Driesen + + + + Flag to indicate the behavior when we have a match + + + + + The string to substring match against the message + + + + + A string regex to match + + + + + A regex object to match (generated from m_stringRegexToMatch) + + + + + Default constructor + + + + + Initialize and precompile the Regex if required + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The rendered message is matched against the . + If the occurs as a substring within + the message then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + when matching or + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + Sets the static string to match + + + + The string that will be substring matched against + the rendered message. If the message contains this + string then the filter will match. If a match is found then + the result depends on the value of . + + + One of or + must be specified. + + + + + + Sets the regular expression to match + + + + The regular expression pattern that will be matched against + the rendered message. If the message matches this + pattern then the filter will match. If a match is found then + the result depends on the value of . + + + One of or + must be specified. + + + + + + The key to use to lookup the string from the event properties + + + + + Default constructor + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The event property for the is matched against + the . + If the occurs as a substring within + the property value then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + The key to lookup in the event properties and then match against. + + + + The key name to use to lookup in the properties map of the + . The match will be performed against + the value of this property if it exists. + + + + + + Simple filter to match a string in the + + + + Simple filter to match a string in the + + + As the MDC has been replaced with named stacks stored in the + properties collections the should + be used instead. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Sets the to "NDC". + + + + + + Write the event appdomain name to the output + + + + Writes the to the output writer. + + + Daniel Cazzulino + Nicko Cadell + + + + Abstract class that provides the formatting functionality that + derived classes need. + + + Conversion specifiers in a conversion patterns are parsed to + individual PatternConverters. Each of which is responsible for + converting a logging event in a converter specific manner. + + Nicko Cadell + + + + Abstract class that provides the formatting functionality that + derived classes need. + + + + Conversion specifiers in a conversion patterns are parsed to + individual PatternConverters. Each of which is responsible for + converting a logging event in a converter specific manner. + + + Nicko Cadell + Gert Driesen + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + Protected constructor + + + + Initializes a new instance of the class. + + + + + + Evaluate this pattern converter and write the output to a writer. + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the appropriate way. + + + + + + Set the next pattern converter in the chains + + the pattern converter that should follow this converter in the chain + the next converter + + + The PatternConverter can merge with its neighbor during this method (or a sub class). + Therefore the return value may or may not be the value of the argument passed in. + + + + + + Write the pattern converter to the writer with appropriate formatting + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + This method calls to allow the subclass to perform + appropriate conversion of the pattern converter. If formatting options have + been specified via the then this method will + apply those formattings before writing the output. + + + + + + Fast space padding method. + + to which the spaces will be appended. + The number of spaces to be padded. + + + Fast space padding method. + + + + + + The option string to the converter + + + + + Write an dictionary to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the to a writer in the form: + + + {key1=value1, key2=value2, key3=value3} + + + If the specified + is not null then it is used to render the key and value to text, otherwise + the object's ToString method is called. + + + + + + Write an dictionary to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the to a writer in the form: + + + {key1=value1, key2=value2, key3=value3} + + + If the specified + is not null then it is used to render the key and value to text, otherwise + the object's ToString method is called. + + + + + + Write an object to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the Object to a writer. If the specified + is not null then it is used to render the object to text, otherwise + the object's ToString method is called. + + + + + + Get the next pattern converter in the chain + + + the next pattern converter in the chain + + + + Get the next pattern converter in the chain + + + + + + Gets or sets the formatting info for this converter + + + The formatting info for this converter + + + + Gets or sets the formatting info for this converter + + + + + + Gets or sets the option value for this converter + + + The option for this converter + + + + Gets or sets the option value for this converter + + + + + + + + + + + Initializes a new instance of the class. + + + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the correct way. + + that will receive the formatted result. + The on which the pattern converter should be executed. + + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the correct way. + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + + Flag indicating if this converter handles exceptions + + + false if this converter handles exceptions + + + + + Flag indicating if this converter handles the logging event exception + + false if this converter handles the logging event exception + + + If this converter handles the exception object contained within + , then this property should be set to + false. Otherwise, if the layout ignores the exception + object, then the property should be set to true. + + + Set this value to override a this default setting. The default + value is true, this converter does not handle the exception. + + + + + + Write the event appdomain name to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output . + + + + + + Converter for items in the ASP.Net Cache. + + + + Outputs an item from the . + + + Ron Grabowski + + + + Abstract class that provides access to the current HttpContext () that + derived classes need. + + + This class handles the case when HttpContext.Current is null by writing + to the writer. + + Ron Grabowski + + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the correct way. + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + + Write the ASP.Net Cache item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. If no property has been set, all key value pairs from the Cache will + be written to the output. + + + + + + Converter for items in the . + + + + Outputs an item from the . + + + Ron Grabowski + + + + Write the ASP.Net HttpContext item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. + + + + + + Converter for items in the ASP.Net Cache. + + + + Outputs an item from the . + + + Ron Grabowski + + + + Write the ASP.Net Cache item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. + + + + + + Converter for items in the ASP.Net Cache. + + + + Outputs an item from the . + + + Ron Grabowski + + + + Write the ASP.Net Cache item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. If no property has been set, all key value pairs from the Session will + be written to the output. + + + + + + Date pattern converter, uses a to format + the date of a . + + + + Render the to the writer as a string. + + + The value of the determines + the formatting of the date. The following values are allowed: + + + Option value + Output + + + ISO8601 + + Uses the formatter. + Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. + + + + DATE + + Uses the formatter. + Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". + + + + ABSOLUTE + + Uses the formatter. + Formats using the "HH:mm:ss,yyyy" for example, "15:49:37,459". + + + + other + + Any other pattern string uses the formatter. + This formatter passes the pattern string to the + method. + For details on valid patterns see + DateTimeFormatInfo Class. + + + + + + The is in the local time zone and is rendered in that zone. + To output the time in Universal time see . + + + Nicko Cadell + + + + The used to render the date to a string + + + + The used to render the date to a string + + + + + + Initialize the converter pattern based on the property. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Convert the pattern into the rendered message + + that will receive the formatted result. + the event being logged + + + Pass the to the + for it to render it to the writer. + + + The passed is in the local time zone. + + + + + + The fully qualified type of the DatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the exception text to the output + + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + + + If there is no exception then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + Nicko Cadell + + + + Default constructor + + + + + Write the exception text to the output + + that will receive the formatted result. + the event being logged + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + + + If there is no exception or the exception property specified + by the Option value does not exist then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + Recognized values for the Option parameter are: + + + + Message + + + Source + + + StackTrace + + + TargetSite + + + HelpLink + + + + + + + Writes the caller location file name to the output + + + + Writes the value of the for + the event to the output writer. + + + Nicko Cadell + + + + Write the caller location file name to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the for + the to the output . + + + + + + Write the caller location info to the output + + + + Writes the to the output writer. + + + Nicko Cadell + + + + Write the caller location info to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output writer. + + + + + + Writes the event identity to the output + + + + Writes the value of the to + the output writer. + + + Daniel Cazzulino + Nicko Cadell + + + + Writes the event identity to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the + to + the output . + + + + + + Write the event level to the output + + + + Writes the display name of the event + to the writer. + + + Nicko Cadell + + + + Write the event level to the output + + that will receive the formatted result. + the event being logged + + + Writes the of the + to the . + + + + + + Write the caller location line number to the output + + + + Writes the value of the for + the event to the output writer. + + + Nicko Cadell + + + + Write the caller location line number to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the for + the to the output . + + + + + + Converter for logger name + + + + Outputs the of the event. + + + Nicko Cadell + + + + Converter to output and truncate '.' separated strings + + + + This abstract class supports truncating a '.' separated string + to show a specified number of elements from the right hand side. + This is used to truncate class names that are fully qualified. + + + Subclasses should override the method to + return the fully qualified string. + + + Nicko Cadell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Get the fully qualified string data + + the event being logged + the fully qualified name + + + Overridden by subclasses to get the fully qualified name before the + precision is applied to it. + + + Return the fully qualified '.' (dot/period) separated string. + + + + + + Convert the pattern to the rendered message + + that will receive the formatted result. + the event being logged + + Render the to the precision + specified by the property. + + + + + The fully qualified type of the NamedPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the fully qualified name of the logger + + the event being logged + The fully qualified logger name + + + Returns the of the . + + + + + + Writes the event message to the output + + + + Uses the method + to write out the event message. + + + Nicko Cadell + + + + Writes the event message to the output + + that will receive the formatted result. + the event being logged + + + Uses the method + to write out the event message. + + + + + + Write the method name to the output + + + + Writes the caller location to + the output. + + + Nicko Cadell + + + + Write the method name to the output + + that will receive the formatted result. + the event being logged + + + Writes the caller location to + the output. + + + + + + Converter to include event NDC + + + + Outputs the value of the event property named NDC. + + + The should be used instead. + + + Nicko Cadell + + + + Write the event NDC to the output + + that will receive the formatted result. + the event being logged + + + As the thread context stacks are now stored in named event properties + this converter simply looks up the value of the NDC property. + + + The should be used instead. + + + + + + Property pattern converter + + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + Nicko Cadell + + + + Write the property value to the output + + that will receive the formatted result. + the event being logged + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + Converter to output the relative time of the event + + + + Converter to output the time of the event relative to the start of the program. + + + Nicko Cadell + + + + Write the relative time to the output + + that will receive the formatted result. + the event being logged + + + Writes out the relative time of the event in milliseconds. + That is the number of milliseconds between the event + and the . + + + + + + Helper method to get the time difference between two DateTime objects + + start time (in the current local time zone) + end time (in the current local time zone) + the time difference in milliseconds + + + + Write the caller stack frames to the output + + + + Writes the to the output writer, using format: + type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) + + + Adam Davies + + + + Write the caller stack frames to the output + + + + Writes the to the output writer, using format: + type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 + + + Michael Cromwell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the strack frames to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output writer. + + + + + + Returns the Name of the method + + + This method was created, so this class could be used as a base class for StackTraceDetailPatternConverter + string + + + + The fully qualified type of the StackTracePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + The fully qualified type of the StackTraceDetailPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Converter to include event thread name + + + + Writes the to the output. + + + Nicko Cadell + + + + Write the ThreadName to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the . + + + + + + Pattern converter for the class name + + + + Outputs the of the event. + + + Nicko Cadell + + + + Gets the fully qualified name of the class + + the event being logged + The fully qualified type name for the caller location + + + Returns the of the . + + + + + + Converter to include event user name + + Douglas de la Torre + Nicko Cadell + + + + Convert the pattern to the rendered message + + that will receive the formatted result. + the event being logged + + + + Write the TimeStamp to the output + + + + Date pattern converter, uses a to format + the date of a . + + + Uses a to format the + in Universal time. + + + See the for details on the date pattern syntax. + + + + Nicko Cadell + + + + Write the TimeStamp to the output + + that will receive the formatted result. + the event being logged + + + Pass the to the + for it to render it to the writer. + + + The passed is in the local time zone, this is converted + to Universal time before it is rendered. + + + + + + + The fully qualified type of the UtcDatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + A flexible layout configurable with pattern string that re-evaluates on each call. + + + This class is built on and provides all the + features and capabilities of PatternLayout. PatternLayout is a 'static' class + in that its layout is done once at configuration time. This class will recreate + the layout on each reference. + One important difference between PatternLayout and DynamicPatternLayout is the + treatment of the Header and Footer parameters in the configuration. The Header and Footer + parameters for DynamicPatternLayout must be syntactically in the form of a PatternString, + but should not be marked as type log4net.Util.PatternString. Doing so causes the + pattern to be statically converted at configuration time and causes DynamicPatternLayout + to perform the same as PatternLayout. + Please see for complete documentation. + + <layout type="log4net.Layout.DynamicPatternLayout"> + <param name="Header" value="%newline**** Trace Opened Local: %date{yyyy-MM-dd HH:mm:ss.fff} UTC: %utcdate{yyyy-MM-dd HH:mm:ss.fff} ****%newline" /> + <param name="Footer" value="**** Trace Closed %date{yyyy-MM-dd HH:mm:ss.fff} ****%newline" /> + </layout> + + + + + + A flexible layout configurable with pattern string. + + + + The goal of this class is to a + as a string. The results + depend on the conversion pattern. + + + The conversion pattern is closely related to the conversion + pattern of the printf function in C. A conversion pattern is + composed of literal text and format control expressions called + conversion specifiers. + + + You are free to insert any literal text within the conversion + pattern. + + + Each conversion specifier starts with a percent sign (%) and is + followed by optional format modifiers and a conversion + pattern name. The conversion pattern name specifies the type of + data, e.g. logger, level, date, thread name. The format + modifiers control such things as field width, padding, left and + right justification. The following is a simple example. + + + Let the conversion pattern be "%-5level [%thread]: %message%newline" and assume + that the log4net environment was set to use a PatternLayout. Then the + statements + + + ILog log = LogManager.GetLogger(typeof(TestApp)); + log.Debug("Message 1"); + log.Warn("Message 2"); + + would yield the output + + DEBUG [main]: Message 1 + WARN [main]: Message 2 + + + Note that there is no explicit separator between text and + conversion specifiers. The pattern parser knows when it has reached + the end of a conversion specifier when it reads a conversion + character. In the example above the conversion specifier + %-5level means the level of the logging event should be left + justified to a width of five characters. + + + The recognized conversion pattern names are: + + + + Conversion Pattern Name + Effect + + + a + Equivalent to appdomain + + + appdomain + + Used to output the friendly name of the AppDomain where the + logging event was generated. + + + + aspnet-cache + + + Used to output all cache items in the case of %aspnet-cache or just one named item if used as %aspnet-cache{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-context + + + Used to output all context items in the case of %aspnet-context or just one named item if used as %aspnet-context{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-request + + + Used to output all request parameters in the case of %aspnet-request or just one named param if used as %aspnet-request{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-session + + + Used to output all session items in the case of %aspnet-session or just one named item if used as %aspnet-session{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + c + Equivalent to logger + + + C + Equivalent to type + + + class + Equivalent to type + + + d + Equivalent to date + + + date + + + Used to output the date of the logging event in the local time zone. + To output the date in universal time use the %utcdate pattern. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %date{HH:mm:ss,fff} or + %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %date{ISO8601} or %date{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + exception + + + Used to output the exception passed in with the log message. + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + If there is no exception then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + + + F + Equivalent to file + + + file + + + Used to output the file name where the logging request was + issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + identity + + + Used to output the user name for the currently active user + (Principal.Identity.Name). + + + WARNING Generating caller information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + + + l + Equivalent to location + + + L + Equivalent to line + + + location + + + Used to output location information of the caller which generated + the logging event. + + + The location information depends on the CLI implementation but + usually consists of the fully qualified name of the calling + method followed by the callers source the file name and line + number between parentheses. + + + The location information can be very useful. However, its + generation is extremely slow. Its use should be avoided + unless execution speed is not an issue. + + + See the note below on the availability of caller location information. + + + + + level + + + Used to output the level of the logging event. + + + + + line + + + Used to output the line number from where the logging request + was issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + logger + + + Used to output the logger of the logging event. The + logger conversion specifier can be optionally followed by + precision specifier, that is a decimal constant in + brackets. + + + If a precision specifier is given, then only the corresponding + number of right most components of the logger name will be + printed. By default the logger name is printed in full. + + + For example, for the logger name "a.b.c" the pattern + %logger{2} will output "b.c". + + + + + m + Equivalent to message + + + M + Equivalent to method + + + message + + + Used to output the application supplied message associated with + the logging event. + + + + + mdc + + + The MDC (old name for the ThreadContext.Properties) is now part of the + combined event properties. This pattern is supported for compatibility + but is equivalent to property. + + + + + method + + + Used to output the method name where the logging request was + issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + n + Equivalent to newline + + + newline + + + Outputs the platform dependent line separator character or + characters. + + + This conversion pattern offers the same performance as using + non-portable line separator strings such as "\n", or "\r\n". + Thus, it is the preferred way of specifying a line separator. + + + + + ndc + + + Used to output the NDC (nested diagnostic context) associated + with the thread that generated the logging event. + + + + + p + Equivalent to level + + + P + Equivalent to property + + + properties + Equivalent to property + + + property + + + Used to output the an event specific property. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %property{user} would include the value + from the property that is keyed by the string 'user'. Each property value + that is to be included in the log must be specified separately. + Properties are added to events by loggers or appenders. By default + the log4net:HostName property is set to the name of machine on + which the event was originally logged. + + + If no key is specified, e.g. %property then all the keys and their + values are printed in a comma separated list. + + + The properties of an event are combined from a number of different + contexts. These are listed below in the order in which they are searched. + + + + the event properties + + The event has that can be set. These + properties are specific to this event only. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + + r + Equivalent to timestamp + + + stacktrace + + + Used to output the stack trace of the logging event + The stack trace level specifier may be enclosed + between braces. For example, %stacktrace{level}. + If no stack trace level specifier is given then 1 is assumed + + + Output uses the format: + type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 + + + This pattern is not available for Compact Framework assemblies. + + + + + stacktracedetail + + + Used to output the stack trace of the logging event + The stack trace level specifier may be enclosed + between braces. For example, %stacktracedetail{level}. + If no stack trace level specifier is given then 1 is assumed + + + Output uses the format: + type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) + + + This pattern is not available for Compact Framework assemblies. + + + + + t + Equivalent to thread + + + timestamp + + + Used to output the number of milliseconds elapsed since the start + of the application until the creation of the logging event. + + + + + thread + + + Used to output the name of the thread that generated the + logging event. Uses the thread number if no name is available. + + + + + type + + + Used to output the fully qualified type name of the caller + issuing the logging request. This conversion specifier + can be optionally followed by precision specifier, that + is a decimal constant in brackets. + + + If a precision specifier is given, then only the corresponding + number of right most components of the class name will be + printed. By default the class name is output in fully qualified form. + + + For example, for the class name "log4net.Layout.PatternLayout", the + pattern %type{1} will output "PatternLayout". + + + WARNING Generating the caller class information is + slow. Thus, its use should be avoided unless execution speed is + not an issue. + + + See the note below on the availability of caller location information. + + + + + u + Equivalent to identity + + + username + + + Used to output the WindowsIdentity for the currently + active user. + + + WARNING Generating caller WindowsIdentity information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + + + utcdate + + + Used to output the date of the logging event in universal time. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %utcdate{HH:mm:ss,fff} or + %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %utcdate{ISO8601} or %utcdate{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + w + Equivalent to username + + + x + Equivalent to ndc + + + X + Equivalent to mdc + + + % + + + The sequence %% outputs a single percent sign. + + + + + + The single letter patterns are deprecated in favor of the + longer more descriptive pattern names. + + + By default the relevant information is output as is. However, + with the aid of format modifiers it is possible to change the + minimum field width, the maximum field width and justification. + + + The optional format modifier is placed between the percent sign + and the conversion pattern name. + + + The first optional format modifier is the left justification + flag which is just the minus (-) character. Then comes the + optional minimum field width modifier. This is a decimal + constant that represents the minimum number of characters to + output. If the data item requires fewer characters, it is padded on + either the left or the right until the minimum width is + reached. The default is to pad on the left (right justify) but you + can specify right padding with the left justification flag. The + padding character is space. If the data item is larger than the + minimum field width, the field is expanded to accommodate the + data. The value is never truncated. + + + This behavior can be changed using the maximum field + width modifier which is designated by a period followed by a + decimal constant. If the data item is longer than the maximum + field, then the extra characters are removed from the + beginning of the data item and not from the end. For + example, it the maximum field width is eight and the data item is + ten characters long, then the first two characters of the data item + are dropped. This behavior deviates from the printf function in C + where truncation is done from the end. + + + Below are various format modifier examples for the logger + conversion specifier. + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Format modifierleft justifyminimum widthmaximum widthcomment
%20loggerfalse20none + + Left pad with spaces if the logger name is less than 20 + characters long. + +
%-20loggertrue20none + + Right pad with spaces if the logger + name is less than 20 characters long. + +
%.30loggerNAnone30 + + Truncate from the beginning if the logger + name is longer than 30 characters. + +
%20.30loggerfalse2030 + + Left pad with spaces if the logger name is shorter than 20 + characters. However, if logger name is longer than 30 characters, + then truncate from the beginning. + +
%-20.30loggertrue2030 + + Right pad with spaces if the logger name is shorter than 20 + characters. However, if logger name is longer than 30 characters, + then truncate from the beginning. + +
+
+ + Note about caller location information.
+ The following patterns %type %file %line %method %location %class %C %F %L %l %M + all generate caller location information. + Location information uses the System.Diagnostics.StackTrace class to generate + a call stack. The caller's information is then extracted from this stack. +
+ + + The System.Diagnostics.StackTrace class is not supported on the + .NET Compact Framework 1.0 therefore caller location information is not + available on that framework. + + + + + The System.Diagnostics.StackTrace class has this to say about Release builds: + + + "StackTrace information will be most informative with Debug build configurations. + By default, Debug builds include debug symbols, while Release builds do not. The + debug symbols contain most of the file, method name, line number, and column + information used in constructing StackFrame and StackTrace objects. StackTrace + might not report as many method calls as expected, due to code transformations + that occur during optimization." + + + This means that in a Release build the caller information may be incomplete or may + not exist at all! Therefore caller location information cannot be relied upon in a Release build. + + + + Additional pattern converters may be registered with a specific + instance using the method. + +
+ + This is a more detailed pattern. + %timestamp [%thread] %level %logger %ndc - %message%newline + + + A similar pattern except that the relative time is + right padded if less than 6 digits, thread name is right padded if + less than 15 characters and truncated if longer and the logger + name is left padded if shorter than 30 characters and truncated if + longer. + %-6timestamp [%15.15thread] %-5level %30.30logger %ndc - %message%newline + + Nicko Cadell + Gert Driesen + Douglas de la Torre + Daniel Cazzulino +
+ + + Extend this abstract class to create your own log layout format. + + + + This is the base implementation of the + interface. Most layout objects should extend this class. + + + + + + Subclasses must implement the + method. + + + Subclasses should set the in their default + constructor. + + + + Nicko Cadell + Gert Driesen + + + + Interface implemented by layout objects + + + + An object is used to format a + as text. The method is called by an + appender to transform the into a string. + + + The layout can also supply and + text that is appender before any events and after all the events respectively. + + + Nicko Cadell + Gert Driesen + + + + Implement this method to create your own layout format. + + The TextWriter to write the formatted event to + The event to format + + + This method is called by an appender to format + the as text and output to a writer. + + + If the caller does not have a and prefers the + event to be formatted as a then the following + code can be used to format the event into a . + + + StringWriter writer = new StringWriter(); + Layout.Format(writer, loggingEvent); + string formattedEvent = writer.ToString(); + + + + + + The content type output by this layout. + + The content type + + + The content type output by this layout. + + + This is a MIME type e.g. "text/plain". + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + + + + + Flag indicating if this layout handle exceptions + + false if this layout handles exceptions + + + If this layout handles the exception object contained within + , then the layout should return + false. Otherwise, if the layout ignores the exception + object, then the layout should return true. + + + + + + The header text + + + + See for more information. + + + + + + The footer text + + + + See for more information. + + + + + + Flag indicating if this layout handles exceptions + + + + false if this layout handles exceptions + + + + + + Empty default constructor + + + + Empty default constructor + + + + + + Activate component options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + This method must be implemented by the subclass. + + + + + + Implement this method to create your own layout format. + + The TextWriter to write the formatted event to + The event to format + + + This method is called by an appender to format + the as text. + + + + + + Convenience method for easily formatting the logging event into a string variable. + + + + Creates a new StringWriter instance to store the formatted logging event. + + + + + The content type output by this layout. + + The content type is "text/plain" + + + The content type output by this layout. + + + This base class uses the value "text/plain". + To change this value a subclass must override this + property. + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + + + + + Flag indicating if this layout handles exceptions + + false if this layout handles exceptions + + + If this layout handles the exception object contained within + , then the layout should return + false. Otherwise, if the layout ignores the exception + object, then the layout should return true. + + + Set this value to override a this default setting. The default + value is true, this layout does not handle the exception. + + + + + + Default pattern string for log output. + + + + Default pattern string for log output. + Currently set to the string "%message%newline" + which just prints the application supplied message. + + + + + + A detailed conversion pattern + + + + A conversion pattern which includes Time, Thread, Logger, and Nested Context. + Current value is %timestamp [%thread] %level %logger %ndc - %message%newline. + + + + + + Internal map of converter identifiers to converter types. + + + + This static map is overridden by the m_converterRegistry instance map + + + + + + the pattern + + + + + the head of the pattern converter chain + + + + + patterns defined on this PatternLayout only + + + + + Initialize the global registry + + + + Defines the builtin global rules. + + + + + + Constructs a PatternLayout using the DefaultConversionPattern + + + + The default pattern just produces the application supplied message. + + + Note to Inheritors: This constructor calls the virtual method + . If you override this method be + aware that it will be called before your is called constructor. + + + As per the contract the + method must be called after the properties on this object have been + configured. + + + + + + Constructs a PatternLayout using the supplied conversion pattern + + the pattern to use + + + Note to Inheritors: This constructor calls the virtual method + . If you override this method be + aware that it will be called before your is called constructor. + + + When using this constructor the method + need not be called. This may not be the case when using a subclass. + + + + + + Create the pattern parser instance + + the pattern to parse + The that will format the event + + + Creates the used to parse the conversion string. Sets the + global and instance rules on the . + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a formatted string as specified by the conversion pattern. + + the event being logged + The TextWriter to write the formatted event to + + + Parse the using the patter format + specified in the property. + + + + + + Add a converter to this PatternLayout + + the converter info + + + This version of the method is used by the configurator. + Programmatic users should use the alternative method. + + + + + + Add a converter to this PatternLayout + + the name of the conversion pattern for this converter + the type of the converter + + + Add a named pattern converter to this instance. This + converter will be used in the formatting of the event. + This method must be called before . + + + The specified must extend the + type. + + + + + + The pattern formatting string + + + + The ConversionPattern option. This is the string which + controls formatting and consists of a mix of literal content and + conversion specifiers. + + + + + + The header PatternString + + + + + The footer PatternString + + + + + Constructs a DynamicPatternLayout using the DefaultConversionPattern + + + + The default pattern just produces the application supplied message. + + + + + + Constructs a DynamicPatternLayout using the supplied conversion pattern + + the pattern to use + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + The pattern will be formatted on each get operation. + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + The pattern will be formatted on each get operation. + + + + + A Layout that renders only the Exception text from the logging event + + + + A Layout that renders only the Exception text from the logging event. + + + This Layout should only be used with appenders that utilize multiple + layouts (e.g. ). + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Constructs a ExceptionLayout + + + + + + Activate component options + + + + Part of the component activation + framework. + + + This method does nothing as options become effective immediately. + + + + + + Gets the exception text from the logging event + + The TextWriter to write the formatted event to + the event being logged + + + Write the exception string to the . + The exception string is retrieved from . + + + + + + Interface for raw layout objects + + + + Interface used to format a + to an object. + + + This interface should not be confused with the + interface. This interface is used in + only certain specialized situations where a raw object is + required rather than a formatted string. The + is not generally useful than this interface. + + + Nicko Cadell + Gert Driesen + + + + Implement this method to create your own layout format. + + The event to format + returns the formatted event + + + Implement this method to create your own layout format. + + + + + + Adapts any to a + + + + Where an is required this adapter + allows a to be specified. + + + Nicko Cadell + Gert Driesen + + + + The layout to adapt + + + + + Construct a new adapter + + the layout to adapt + + + Create the adapter for the specified . + + + + + + Format the logging event as an object. + + The event to format + returns the formatted event + + + Format the logging event as an object. + + + Uses the object supplied to + the constructor to perform the formatting. + + + + + + Type converter for the interface + + + + Used to convert objects to the interface. + Supports converting from the interface to + the interface using the . + + + Nicko Cadell + Gert Driesen + + + + Interface supported by type converters + + + + This interface supports conversion from arbitrary types + to a single target type. See . + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Test if the can be converted to the + type supported by this converter. + + + + + + Convert the source object to the type supported by this object + + the object to convert + the converted object + + + Converts the to the type supported + by this converter. + + + + + + Can the sourceType be converted to an + + the source to be to be converted + true if the source type can be converted to + + + Test if the can be converted to a + . Only is supported + as the . + + + + + + Convert the value to a object + + the value to convert + the object + + + Convert the object to a + object. If the object + is a then the + is used to adapt between the two interfaces, otherwise an + exception is thrown. + + + + + + Extract the value of a property from the + + + + Extract the value of a property from the + + + Nicko Cadell + + + + Constructs a RawPropertyLayout + + + + + Lookup the property for + + The event to format + returns property value + + + Looks up and returns the object value of the property + named . If there is no property defined + with than name then null will be returned. + + + + + + The name of the value to lookup in the LoggingEvent Properties collection. + + + Value to lookup in the LoggingEvent Properties collection + + + + String name of the property to lookup in the . + + + + + + Extract the date from the + + + + Extract the date from the + + + Nicko Cadell + Gert Driesen + + + + Constructs a RawTimeStampLayout + + + + + Gets the as a . + + The event to format + returns the time stamp + + + Gets the as a . + + + The time stamp is in local time. To format the time stamp + in universal time use . + + + + + + Extract the date from the + + + + Extract the date from the + + + Nicko Cadell + Gert Driesen + + + + Constructs a RawUtcTimeStampLayout + + + + + Gets the as a . + + The event to format + returns the time stamp + + + Gets the as a . + + + The time stamp is in universal time. To format the time stamp + in local time use . + + + + + + A very simple layout + + + + SimpleLayout consists of the level of the log statement, + followed by " - " and then the log message itself. For example, + + DEBUG - Hello world + + + + Nicko Cadell + Gert Driesen + + + + Constructs a SimpleLayout + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a simple formatted output. + + the event being logged + The TextWriter to write the formatted event to + + + Formats the event as the level of the even, + followed by " - " and then the log message itself. The + output is terminated by a newline. + + + + + + Layout that formats the log events as XML elements. + + + + The output of the consists of a series of + log4net:event elements. It does not output a complete well-formed XML + file. The output is designed to be included as an external entity + in a separate file to form a correct XML file. + + + For example, if abc is the name of the file where + the output goes, then a well-formed XML file would + be: + + + <?xml version="1.0" ?> + + <!DOCTYPE log4net:events SYSTEM "log4net-events.dtd" [<!ENTITY data SYSTEM "abc">]> + + <log4net:events version="1.2" xmlns:log4net="http://logging.apache.org/log4net/schemas/log4net-events-1.2> + &data; + </log4net:events> + + + This approach enforces the independence of the + and the appender where it is embedded. + + + The version attribute helps components to correctly + interpret output generated by . The value of + this attribute should be "1.2" for release 1.2 and later. + + + Alternatively the Header and Footer properties can be + configured to output the correct XML header, open tag and close tag. + When setting the Header and Footer properties it is essential + that the underlying data store not be appendable otherwise the data + will become invalid XML. + + + Nicko Cadell + Gert Driesen + + + + Layout that formats the log events as XML elements. + + + + This is an abstract class that must be subclassed by an implementation + to conform to a specific schema. + + + Deriving classes must implement the method. + + + Nicko Cadell + Gert Driesen + + + + Protected constructor to support subclasses + + + + Initializes a new instance of the class + with no location info. + + + + + + Protected constructor to support subclasses + + + + The parameter determines whether + location information will be output by the layout. If + is set to true, then the + file name and line number of the statement at the origin of the log + statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a formatted string. + + The event being logged. + The TextWriter to write the formatted event to + + + Format the and write it to the . + + + This method creates an that writes to the + . The is passed + to the method. Subclasses should override the + method rather than this method. + + + + + + Does the actual writing of the XML. + + The writer to use to output the event to. + The event to write. + + + Subclasses should override this method to format + the as XML. + + + + + + Flag to indicate if location information should be included in + the XML events. + + + + + The string to replace invalid chars with + + + + + Gets a value indicating whether to include location information in + the XML events. + + + true if location information should be included in the XML + events; otherwise, false. + + + + If is set to true, then the file + name and line number of the statement at the origin of the log + statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + The string to replace characters that can not be expressed in XML with. + + + Not all characters may be expressed in XML. This property contains the + string to replace those that can not with. This defaults to a ?. Set it + to the empty string to simply remove offending characters. For more + details on the allowed character ranges see http://www.w3.org/TR/REC-xml/#charsets + Character replacement will occur in the log message, the property names + and the property values. + + + + + + + Gets the content type output by this layout. + + + As this is the XML layout, the value is always "text/xml". + + + + As this is the XML layout, the value is always "text/xml". + + + + + + Constructs an XmlLayout + + + + + Constructs an XmlLayout. + + + + The LocationInfo option takes a boolean value. By + default, it is set to false which means there will be no location + information output by this layout. If the the option is set to + true, then the file name and line number of the statement + at the origin of the log statement will be output. + + + If you are embedding this layout within an SmtpAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Builds a cache of the element names + + + + + + Does the actual writing of the XML. + + The writer to use to output the event to. + The event to write. + + + Override the base class method + to write the to the . + + + + + + The prefix to use for all generated element names + + + + + The prefix to use for all element names + + + + The default prefix is log4net. Set this property + to change the prefix. If the prefix is set to an empty string + then no prefix will be written. + + + + + + Set whether or not to base64 encode the message. + + + + By default the log message will be written as text to the xml + output. This can cause problems when the message contains binary + data. By setting this to true the contents of the message will be + base64 encoded. If this is set then invalid character replacement + (see ) will not be performed + on the log message. + + + + + + Set whether or not to base64 encode the property values. + + + + By default the properties will be written as text to the xml + output. This can cause problems when one or more properties contain + binary data. By setting this to true the values of the properties + will be base64 encoded. If this is set then invalid character replacement + (see ) will not be performed + on the property values. + + + + + + Layout that formats the log events as XML elements compatible with the log4j schema + + + + Formats the log events according to the http://logging.apache.org/log4j schema. + + + Nicko Cadell + + + + The 1st of January 1970 in UTC + + + + + Constructs an XMLLayoutSchemaLog4j + + + + + Constructs an XMLLayoutSchemaLog4j. + + + + The LocationInfo option takes a boolean value. By + default, it is set to false which means there will be no location + information output by this layout. If the the option is set to + true, then the file name and line number of the statement + at the origin of the log statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + Actually do the writing of the xml + + the writer to use + the event to write + + + Generate XML that is compatible with the log4j schema. + + + + + + The version of the log4j schema to use. + + + + Only version 1.2 of the log4j schema is supported. + + + + + + The default object Renderer. + + + + The default renderer supports rendering objects and collections to strings. + + + See the method for details of the output. + + + Nicko Cadell + Gert Driesen + + + + Implement this interface in order to render objects as strings + + + + Certain types require special case conversion to + string form. This conversion is done by an object renderer. + Object renderers implement the + interface. + + + Nicko Cadell + Gert Driesen + + + + Render the object to a string + + The map used to lookup renderers + The object to render + The writer to render to + + + Render the object to a + string. + + + The parameter is + provided to lookup and render other objects. This is + very useful where contains + nested objects of unknown type. The + method can be used to render these objects. + + + + + + Default constructor + + + + Default constructor + + + + + + Render the object to a string + + The map used to lookup renderers + The object to render + The writer to render to + + + Render the object to a string. + + + The parameter is + provided to lookup and render other objects. This is + very useful where contains + nested objects of unknown type. The + method can be used to render these objects. + + + The default renderer supports rendering objects to strings as follows: + + + + Value + Rendered String + + + null + + "(null)" + + + + + + + For a one dimensional array this is the + array type name, an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. + + + For example: int[] {1, 2, 3}. + + + If the array is not one dimensional the + Array.ToString() is returned. + + + + + , & + + + Rendered as an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. + + + For example: {a, b, c}. + + + All collection classes that implement its subclasses, + or generic equivalents all implement the interface. + + + + + + + + Rendered as the key, an equals sign ('='), and the value (using the appropriate + renderer). + + + For example: key=value. + + + + + other + + Object.ToString() + + + + + + + + Render the array argument into a string + + The map used to lookup renderers + the array to render + The writer to render to + + + For a one dimensional array this is the + array type name, an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. For example: + int[] {1, 2, 3}. + + + If the array is not one dimensional the + Array.ToString() is returned. + + + + + + Render the enumerator argument into a string + + The map used to lookup renderers + the enumerator to render + The writer to render to + + + Rendered as an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. For example: + {a, b, c}. + + + + + + Render the DictionaryEntry argument into a string + + The map used to lookup renderers + the DictionaryEntry to render + The writer to render to + + + Render the key, an equals sign ('='), and the value (using the appropriate + renderer). For example: key=value. + + + + + + Map class objects to an . + + + + Maintains a mapping between types that require special + rendering and the that + is used to render them. + + + The method is used to render an + object using the appropriate renderers defined in this map. + + + Nicko Cadell + Gert Driesen + + + + Default Constructor + + + + Default constructor. + + + + + + Render using the appropriate renderer. + + the object to render to a string + the object rendered as a string + + + This is a convenience method used to render an object to a string. + The alternative method + should be used when streaming output to a . + + + + + + Render using the appropriate renderer. + + the object to render to a string + The writer to render to + + + Find the appropriate renderer for the type of the + parameter. This is accomplished by calling the + method. Once a renderer is found, it is + applied on the object and the result is returned + as a . + + + + + + Gets the renderer for the specified object type + + the object to lookup the renderer for + the renderer for + + + Gets the renderer for the specified object type. + + + Syntactic sugar method that calls + with the type of the object parameter. + + + + + + Gets the renderer for the specified type + + the type to lookup the renderer for + the renderer for the specified type + + + Returns the renderer for the specified type. + If no specific renderer has been defined the + will be returned. + + + + + + Internal function to recursively search interfaces + + the type to lookup the renderer for + the renderer for the specified type + + + + Clear the map of renderers + + + + Clear the custom renderers defined by using + . The + cannot be removed. + + + + + + Register an for . + + the type that will be rendered by + the renderer for + + + Register an object renderer for a specific source type. + This renderer will be returned from a call to + specifying the same as an argument. + + + + + + Get the default renderer instance + + the default renderer + + + Get the default renderer + + + + + + Interface implemented by logger repository plugins. + + + + Plugins define additional behavior that can be associated + with a . + The held by the + property is used to store the plugins for a repository. + + + The log4net.Config.PluginAttribute can be used to + attach plugins to repositories created using configuration + attributes. + + + Nicko Cadell + Gert Driesen + + + + Attaches the plugin to the specified . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + This method is called to notify the plugin that + it should stop operating and should detach from + the repository. + + + + + + Gets the name of the plugin. + + + The name of the plugin. + + + + Plugins are stored in the + keyed by name. Each plugin instance attached to a + repository must be a unique name. + + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Creates a read-only wrapper for a PluginCollection instance. + + list to create a readonly wrapper arround + + A PluginCollection wrapper that is read-only. + + + + + Initializes a new instance of the PluginCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the PluginCollection class + that has the specified initial capacity. + + + The number of elements that the new PluginCollection is initially capable of storing. + + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified PluginCollection. + + The PluginCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Allow subclasses to avoid our default constructors + + + + + + + Copies the entire PluginCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire PluginCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Adds a to the end of the PluginCollection. + + The to be added to the end of the PluginCollection. + The index at which the value has been added. + + + + Removes all elements from the PluginCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the PluginCollection. + + The to check for. + true if is found in the PluginCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the PluginCollection. + + The to locate in the PluginCollection. + + The zero-based index of the first occurrence of + in the entire PluginCollection, if found; otherwise, -1. + + + + + Inserts an element into the PluginCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the PluginCollection. + + The to remove from the PluginCollection. + + The specified was not found in the PluginCollection. + + + + + Removes the element at the specified index of the PluginCollection. + + The zero-based index of the element to remove. + + is less than zero. + -or- + is equal to or greater than . + + + + + Returns an enumerator that can iterate through the PluginCollection. + + An for the entire PluginCollection. + + + + Adds the elements of another PluginCollection to the current PluginCollection. + + The PluginCollection whose elements should be added to the end of the current PluginCollection. + The new of the PluginCollection. + + + + Adds the elements of a array to the current PluginCollection. + + The array whose elements should be added to the end of the PluginCollection. + The new of the PluginCollection. + + + + Adds the elements of a collection to the current PluginCollection. + + The collection whose elements should be added to the end of the PluginCollection. + The new of the PluginCollection. + + + + Sets the capacity to the actual number of elements. + + + + + is less than zero. + -or- + is equal to or greater than . + + + + + is less than zero. + -or- + is equal to or greater than . + + + + + Gets the number of elements actually contained in the PluginCollection. + + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + An object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + + The at the specified index. + + The zero-based index of the element to get or set. + + is less than zero. + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false. + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false. + + + + Gets or sets the number of elements the PluginCollection can contain. + + + The number of elements the PluginCollection can contain. + + + + + Supports type-safe iteration over a . + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + + A value + + + + + Supports simple iteration over a . + + + + + + Initializes a new instance of the Enumerator class. + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + The current element in the collection. + + + + + + + + Map of repository plugins. + + + + This class is a name keyed map of the plugins that are + attached to a repository. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The repository that the plugins should be attached to. + + + Initialize a new instance of the class with a + repository that the plugins should be attached to. + + + + + + Adds a to the map. + + The to add to the map. + + + The will be attached to the repository when added. + + + If there already exists a plugin with the same name + attached to the repository then the old plugin will + be and replaced with + the new plugin. + + + + + + Removes a from the map. + + The to remove from the map. + + + Remove a specific plugin from this map. + + + + + + Gets a by name. + + The name of the to lookup. + + The from the map with the name specified, or + null if no plugin is found. + + + + Lookup a plugin by name. If the plugin is not found null + will be returned. + + + + + + Gets all possible plugins as a list of objects. + + All possible plugins as a list of objects. + + + Get a collection of all the plugins defined in this map. + + + + + + Base implementation of + + + + Default abstract implementation of the + interface. This base class can be used by implementors + of the interface. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + the name of the plugin + + Initializes a new Plugin with the specified name. + + + + + Attaches this plugin to a . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + This method is called to notify the plugin that + it should stop operating and should detach from + the repository. + + + + + + The name of this plugin. + + + + + The repository this plugin is attached to. + + + + + Gets or sets the name of the plugin. + + + The name of the plugin. + + + + Plugins are stored in the + keyed by name. Each plugin instance attached to a + repository must be a unique name. + + + The name of the plugin must not change one the + plugin has been attached to a repository. + + + + + + The repository for this plugin + + + The that this plugin is attached to. + + + + Gets or sets the that this plugin is + attached to. + + + + + + Plugin that listens for events from the + + + + This plugin publishes an instance of + on a specified . This listens for logging events delivered from + a remote . + + + When an event is received it is relogged within the attached repository + as if it had been raised locally. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Initializes a new instance of the class. + + + The property must be set. + + + + + + Construct with sink Uri. + + The name to publish the sink under in the remoting infrastructure. + See for more details. + + + Initializes a new instance of the class + with specified name. + + + + + + Attaches this plugin to a . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + When the plugin is shutdown the remote logging + sink is disconnected. + + + + + + The fully qualified type of the RemoteLoggingServerPlugin class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the URI of this sink. + + + The URI of this sink. + + + + This is the name under which the object is marshaled. + + + + + + + Delivers objects to a remote sink. + + + + Internal class used to listen for logging events + and deliver them to the local repository. + + + + + + Constructor + + The repository to log to. + + + Initializes a new instance of the for the + specified . + + + + + + Logs the events to the repository. + + The events to log. + + + The events passed are logged to the + + + + + + Obtains a lifetime service object to control the lifetime + policy for this instance. + + null to indicate that this instance should live forever. + + + Obtains a lifetime service object to control the lifetime + policy for this instance. This object should live forever + therefore this implementation returns null. + + + + + + The underlying that events should + be logged to. + + + + + Default implementation of + + + + This default implementation of the + interface is used to create the default subclass + of the object. + + + Nicko Cadell + Gert Driesen + + + + Interface abstracts creation of instances + + + + This interface is used by the to + create new objects. + + + The method is called + to create a named . + + + Implement this interface to create new subclasses of . + + + Nicko Cadell + Gert Driesen + + + + Create a new instance + + The that will own the . + The name of the . + The instance for the specified name. + + + Create a new instance with the + specified name. + + + Called by the to create + new named instances. + + + If the is null then the root logger + must be returned. + + + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Create a new instance + + The that will own the . + The name of the . + The instance for the specified name. + + + Create a new instance with the + specified name. + + + Called by the to create + new named instances. + + + If the is null then the root logger + must be returned. + + + + + + Default internal subclass of + + + + This subclass has no additional behavior over the + class but does allow instances + to be created. + + + + + + Implementation of used by + + + + Internal class used to provide implementation of + interface. Applications should use to get + logger instances. + + + This is one of the central classes in the log4net implementation. One of the + distinctive features of log4net are hierarchical loggers and their + evaluation. The organizes the + instances into a rooted tree hierarchy. + + + The class is abstract. Only concrete subclasses of + can be created. The + is used to create instances of this type for the . + + + Nicko Cadell + Gert Driesen + Aspi Havewala + Douglas de la Torre + + + + This constructor created a new instance and + sets its name. + + The name of the . + + + This constructor is protected and designed to be used by + a subclass that is not abstract. + + + Loggers are constructed by + objects. See for the default + logger creator. + + + + + + Add to the list of appenders of this + Logger instance. + + An appender to add to this logger + + + Add to the list of appenders of this + Logger instance. + + + If is already in the list of + appenders, then it won't be added again. + + + + + + Look for the appender named as name + + The name of the appender to lookup + The appender with the name specified, or null. + + + Returns the named appender, or null if the appender is not found. + + + + + + Remove all previously added appenders from this Logger instance. + + + + Remove all previously added appenders from this Logger instance. + + + This is useful when re-reading configuration information. + + + + + + Remove the appender passed as parameter form the list of appenders. + + The appender to remove + The appender removed from the list + + + Remove the appender passed as parameter form the list of appenders. + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Remove the appender passed as parameter form the list of appenders. + + The name of the appender to remove + The appender removed from the list + + + Remove the named appender passed as parameter form the list of appenders. + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + This generic form is intended to be used by wrappers. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generate a logging event for the specified using + the and . + + + This method must not throw any exception to the caller. + + + + + + This is the most generic printing method that is intended to be used + by wrappers. + + The event being logged. + + + Logs the specified logging event through this logger. + + + This method must not throw any exception to the caller. + + + + + + Checks if this logger is enabled for a given passed as parameter. + + The level to check. + + true if this logger is enabled for level, otherwise false. + + + + Test if this logger is going to log events of the specified . + + + This method must not throw any exception to the caller. + + + + + + Deliver the to the attached appenders. + + The event to log. + + + Call the appenders in the hierarchy starting at + this. If no appenders could be found, emit a + warning. + + + This method calls all the appenders inherited from the + hierarchy circumventing any evaluation of whether to log or not + to log the particular log request. + + + + + + Closes all attached appenders implementing the interface. + + + + Used to ensure that the appenders are correctly shutdown. + + + + + + This is the most generic printing method. This generic form is intended to be used by wrappers + + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generate a logging event for the specified using + the . + + + + + + Creates a new logging event and logs the event without further checks. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generates a logging event and delivers it to the attached + appenders. + + + + + + Creates a new logging event and logs the event without further checks. + + The event being logged. + + + Delivers the logging event to the attached appenders. + + + + + + The fully qualified type of the Logger class. + + + + + The name of this logger. + + + + + The assigned level of this logger. + + + + The level variable need not be + assigned a value in which case it is inherited + form the hierarchy. + + + + + + The parent of this logger. + + + + The parent of this logger. + All loggers have at least one ancestor which is the root logger. + + + + + + Loggers need to know what Hierarchy they are in. + + + + Loggers need to know what Hierarchy they are in. + The hierarchy that this logger is a member of is stored + here. + + + + + + Helper implementation of the interface + + + + + Flag indicating if child loggers inherit their parents appenders + + + + Additivity is set to true by default, that is children inherit + the appenders of their ancestors by default. If this variable is + set to false then the appenders found in the + ancestors of this logger are not used. However, the children + of this logger will inherit its appenders, unless the children + have their additivity flag set to false too. See + the user manual for more details. + + + + + + Lock to protect AppenderAttachedImpl variable m_appenderAttachedImpl + + + + + Gets or sets the parent logger in the hierarchy. + + + The parent logger in the hierarchy. + + + + Part of the Composite pattern that makes the hierarchy. + The hierarchy is parent linked rather than child linked. + + + + + + Gets or sets a value indicating if child loggers inherit their parent's appenders. + + + true if child loggers inherit their parent's appenders. + + + + Additivity is set to true by default, that is children inherit + the appenders of their ancestors by default. If this variable is + set to false then the appenders found in the + ancestors of this logger are not used. However, the children + of this logger will inherit its appenders, unless the children + have their additivity flag set to false too. See + the user manual for more details. + + + + + + Gets the effective level for this logger. + + The nearest level in the logger hierarchy. + + + Starting from this logger, searches the logger hierarchy for a + non-null level and returns it. Otherwise, returns the level of the + root logger. + + The Logger class is designed so that this method executes as + quickly as possible. + + + + + Gets or sets the where this + Logger instance is attached to. + + The hierarchy that this logger belongs to. + + + This logger must be attached to a single . + + + + + + Gets or sets the assigned , if any, for this Logger. + + + The of this logger. + + + + The assigned can be null. + + + + + + Get the appenders contained in this logger as an + . + + A collection of the appenders in this logger + + + Get the appenders contained in this logger as an + . If no appenders + can be found, then a is returned. + + + + + + Gets the logger name. + + + The name of the logger. + + + + The name of this logger + + + + + + Gets the where this + Logger instance is attached to. + + + The that this logger belongs to. + + + + Gets the where this + Logger instance is attached to. + + + + + + Construct a new Logger + + the name of the logger + + + Initializes a new instance of the class + with the specified name. + + + + + + Delegate used to handle logger creation event notifications. + + The in which the has been created. + The event args that hold the instance that has been created. + + + Delegate used to handle logger creation event notifications. + + + + + + Provides data for the event. + + + + A event is raised every time a + is created. + + + + + + The created + + + + + Constructor + + The that has been created. + + + Initializes a new instance of the event argument + class,with the specified . + + + + + + Gets the that has been created. + + + The that has been created. + + + + The that has been created. + + + + + + Hierarchical organization of loggers + + + + The casual user should not have to deal with this class + directly. + + + This class is specialized in retrieving loggers by name and + also maintaining the logger hierarchy. Implements the + interface. + + + The structure of the logger hierarchy is maintained by the + method. The hierarchy is such that children + link to their parent but parents do not have any references to their + children. Moreover, loggers can be instantiated in any order, in + particular descendant before ancestor. + + + In case a descendant is created before a particular ancestor, + then it creates a provision node for the ancestor and adds itself + to the provision node. Other descendants of the same ancestor add + themselves to the previously created provision node. + + + Nicko Cadell + Gert Driesen + + + + Base implementation of + + + + Default abstract implementation of the interface. + + + Skeleton implementation of the interface. + All types can extend this type. + + + Nicko Cadell + Gert Driesen + + + + Interface implemented by logger repositories. + + + + This interface is implemented by logger repositories. e.g. + . + + + This interface is used by the + to obtain interfaces. + + + Nicko Cadell + Gert Driesen + + + + Check if the named logger exists in the repository. If so return + its reference, otherwise returns null. + + The name of the logger to lookup + The Logger object with the name specified + + + If the names logger exists it is returned, otherwise + null is returned. + + + + + + Returns all the currently defined loggers as an Array. + + All the defined loggers + + + Returns all the currently defined loggers as an Array. + + + + + + Returns a named logger instance + + The name of the logger to retrieve + The logger object with the name specified + + + Returns a named logger instance. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + + + Shutdown the repository + + + Shutting down a repository will safely close and remove + all appenders in all loggers including the root logger. + + + Some appenders need to be closed before the + application exists. Otherwise, pending logging events might be + lost. + + + The method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Reset the repositories configuration to a default state + + + + Reset all values contained in this instance to their + default state. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the through this repository. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Returns all the Appenders that are configured as an Array. + + All the Appenders + + + Returns all the Appenders that are configured as an Array. + + + + + + The name of the repository + + + The name of the repository + + + + The name of the repository. + + + + + + RendererMap accesses the object renderer map for this repository. + + + RendererMap accesses the object renderer map for this repository. + + + + RendererMap accesses the object renderer map for this repository. + + + The RendererMap holds a mapping between types and + objects. + + + + + + The plugin map for this repository. + + + The plugin map for this repository. + + + + The plugin map holds the instances + that have been attached to this repository. + + + + + + Get the level map for the Repository. + + + + Get the level map for the Repository. + + + The level map defines the mappings between + level names and objects in + this repository. + + + + + + The threshold for all events in this repository + + + The threshold for all events in this repository + + + + The threshold for all events in this repository. + + + + + + Flag indicates if this repository has been configured. + + + Flag indicates if this repository has been configured. + + + + Flag indicates if this repository has been configured. + + + + + + Collection of internal messages captured during the most + recent configuration process. + + + + + Event to notify that the repository has been shutdown. + + + Event to notify that the repository has been shutdown. + + + + Event raised when the repository has been shutdown. + + + + + + Event to notify that the repository has had its configuration reset. + + + Event to notify that the repository has had its configuration reset. + + + + Event raised when the repository's configuration has been + reset to default. + + + + + + Event to notify that the repository has had its configuration changed. + + + Event to notify that the repository has had its configuration changed. + + + + Event raised when the repository's configuration has been changed. + + + + + + Repository specific properties + + + Repository specific properties + + + + These properties can be specified on a repository specific basis. + + + + + + Default Constructor + + + + Initializes the repository with default (empty) properties. + + + + + + Construct the repository using specific properties + + the properties to set for this repository + + + Initializes the repository with specified properties. + + + + + + Test if logger exists + + The name of the logger to lookup + The Logger object with the name specified + + + Check if the named logger exists in the repository. If so return + its reference, otherwise returns null. + + + + + + Returns all the currently defined loggers in the repository + + All the defined loggers + + + Returns all the currently defined loggers in the repository as an Array. + + + + + + Return a new logger instance + + The name of the logger to retrieve + The logger object with the name specified + + + Return a new logger instance. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + + + + Shutdown the repository + + + + Shutdown the repository. Can be overridden in a subclass. + This base class implementation notifies the + listeners and all attached plugins of the shutdown event. + + + + + + Reset the repositories configuration to a default state + + + + Reset all values contained in this instance to their + default state. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the logEvent through this repository. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Returns all the Appenders that are configured as an Array. + + All the Appenders + + + Returns all the Appenders that are configured as an Array. + + + + + + The fully qualified type of the LoggerRepositorySkeleton class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Adds an object renderer for a specific class. + + The type that will be rendered by the renderer supplied. + The object renderer used to render the object. + + + Adds an object renderer for a specific class. + + + + + + Notify the registered listeners that the repository is shutting down + + Empty EventArgs + + + Notify any listeners that this repository is shutting down. + + + + + + Notify the registered listeners that the repository has had its configuration reset + + Empty EventArgs + + + Notify any listeners that this repository's configuration has been reset. + + + + + + Notify the registered listeners that the repository has had its configuration changed + + Empty EventArgs + + + Notify any listeners that this repository's configuration has changed. + + + + + + Raise a configuration changed event on this repository + + EventArgs.Empty + + + Applications that programmatically change the configuration of the repository should + raise this event notification to notify listeners. + + + + + + Flushes all configured Appenders that implement . + + The maximum time in milliseconds to wait for logging events from asycnhronous appenders to be flushed, + or to wait indefinitely. + True if all logging events were flushed successfully, else false. + + + + The name of the repository + + + The string name of the repository + + + + The name of this repository. The name is + used to store and lookup the repositories + stored by the . + + + + + + The threshold for all events in this repository + + + The threshold for all events in this repository + + + + The threshold for all events in this repository + + + + + + RendererMap accesses the object renderer map for this repository. + + + RendererMap accesses the object renderer map for this repository. + + + + RendererMap accesses the object renderer map for this repository. + + + The RendererMap holds a mapping between types and + objects. + + + + + + The plugin map for this repository. + + + The plugin map for this repository. + + + + The plugin map holds the instances + that have been attached to this repository. + + + + + + Get the level map for the Repository. + + + + Get the level map for the Repository. + + + The level map defines the mappings between + level names and objects in + this repository. + + + + + + Flag indicates if this repository has been configured. + + + Flag indicates if this repository has been configured. + + + + Flag indicates if this repository has been configured. + + + + + + Contains a list of internal messages captures during the + last configuration. + + + + + Event to notify that the repository has been shutdown. + + + Event to notify that the repository has been shutdown. + + + + Event raised when the repository has been shutdown. + + + + + + Event to notify that the repository has had its configuration reset. + + + Event to notify that the repository has had its configuration reset. + + + + Event raised when the repository's configuration has been + reset to default. + + + + + + Event to notify that the repository has had its configuration changed. + + + Event to notify that the repository has had its configuration changed. + + + + Event raised when the repository's configuration has been changed. + + + + + + Repository specific properties + + + Repository specific properties + + + These properties can be specified on a repository specific basis + + + + + Basic Configurator interface for repositories + + + + Interface used by basic configurator to configure a + with a default . + + + A should implement this interface to support + configuration by the . + + + Nicko Cadell + Gert Driesen + + + + Initialize the repository using the specified appender + + the appender to use to log all logging events + + + Configure the repository to route all logging events to the + specified appender. + + + + + + Initialize the repository using the specified appenders + + the appenders to use to log all logging events + + + Configure the repository to route all logging events to the + specified appenders. + + + + + + Configure repository using XML + + + + Interface used by Xml configurator to configure a . + + + A should implement this interface to support + configuration by the . + + + Nicko Cadell + Gert Driesen + + + + Initialize the repository using the specified config + + the element containing the root of the config + + + The schema for the XML configuration data is defined by + the implementation. + + + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Construct with properties + + The properties to pass to this repository. + + + Initializes a new instance of the class. + + + + + + Construct with a logger factory + + The factory to use to create new logger instances. + + + Initializes a new instance of the class with + the specified . + + + + + + Construct with properties and a logger factory + + The properties to pass to this repository. + The factory to use to create new logger instances. + + + Initializes a new instance of the class with + the specified . + + + + + + Test if a logger exists + + The name of the logger to lookup + The Logger object with the name specified + + + Check if the named logger exists in the hierarchy. If so return + its reference, otherwise returns null. + + + + + + Returns all the currently defined loggers in the hierarchy as an Array + + All the defined loggers + + + Returns all the currently defined loggers in the hierarchy as an Array. + The root logger is not included in the returned + enumeration. + + + + + + Return a new logger instance named as the first parameter using + the default factory. + + + + Return a new logger instance named as the first parameter using + the default factory. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + The name of the logger to retrieve + The logger object with the name specified + + + + Shutting down a hierarchy will safely close and remove + all appenders in all loggers including the root logger. + + + + Shutting down a hierarchy will safely close and remove + all appenders in all loggers including the root logger. + + + Some appenders need to be closed before the + application exists. Otherwise, pending logging events might be + lost. + + + The Shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Reset all values contained in this hierarchy instance to their default. + + + + Reset all values contained in this hierarchy instance to their + default. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the logEvent through this hierarchy. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Returns all the Appenders that are currently configured + + An array containing all the currently configured appenders + + + Returns all the instances that are currently configured. + All the loggers are searched for appenders. The appenders may also be containers + for appenders and these are also searched for additional loggers. + + + The list returned is unordered but does not contain duplicates. + + + + + + Collect the appenders from an . + The appender may also be a container. + + + + + + + Collect the appenders from an container + + + + + + + Initialize the log4net system using the specified appender + + the appender to use to log all logging events + + + + Initialize the log4net system using the specified appenders + + the appenders to use to log all logging events + + + + Initialize the log4net system using the specified appenders + + the appenders to use to log all logging events + + + This method provides the same functionality as the + method implemented + on this object, but it is protected and therefore can be called by subclasses. + + + + + + Initialize the log4net system using the specified config + + the element containing the root of the config + + + + Initialize the log4net system using the specified config + + the element containing the root of the config + + + This method provides the same functionality as the + method implemented + on this object, but it is protected and therefore can be called by subclasses. + + + + + + Test if this hierarchy is disabled for the specified . + + The level to check against. + + true if the repository is disabled for the level argument, false otherwise. + + + + If this hierarchy has not been configured then this method will + always return true. + + + This method will return true if this repository is + disabled for level object passed as parameter and + false otherwise. + + + See also the property. + + + + + + Clear all logger definitions from the internal hashtable + + + + This call will clear all logger definitions from the internal + hashtable. Invoking this method will irrevocably mess up the + logger hierarchy. + + + You should really know what you are doing before + invoking this method. + + + + + + Return a new logger instance named as the first parameter using + . + + The name of the logger to retrieve + The factory that will make the new logger instance + The logger object with the name specified + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated by the + parameter and linked with its existing + ancestors as well as children. + + + + + + Sends a logger creation event to all registered listeners + + The newly created logger + + Raises the logger creation event. + + + + + Updates all the parents of the specified logger + + The logger to update the parents for + + + This method loops through all the potential parents of + . There 3 possible cases: + + + + No entry for the potential parent of exists + + We create a ProvisionNode for this potential + parent and insert in that provision node. + + + + The entry is of type Logger for the potential parent. + + The entry is 's nearest existing parent. We + update 's parent field with this entry. We also break from + he loop because updating our parent's parent is our parent's + responsibility. + + + + The entry is of type ProvisionNode for this potential parent. + + We add to the list of children for this + potential parent. + + + + + + + + Replace a with a in the hierarchy. + + + + + + We update the links for all the children that placed themselves + in the provision node 'pn'. The second argument 'log' is a + reference for the newly created Logger, parent of all the + children in 'pn'. + + + We loop on all the children 'c' in 'pn'. + + + If the child 'c' has been already linked to a child of + 'log' then there is no need to update 'c'. + + + Otherwise, we set log's parent field to c's parent and set + c's parent field to log. + + + + + + Define or redefine a Level using the values in the argument + + the level values + + + Define or redefine a Level using the values in the argument + + + Supports setting levels via the configuration file. + + + + + + Set a Property using the values in the argument + + the property value + + + Set a Property using the values in the argument. + + + Supports setting property values via the configuration file. + + + + + + The fully qualified type of the Hierarchy class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Event used to notify that a logger has been created. + + + + Event raised when a logger is created. + + + + + + Has no appender warning been emitted + + + + Flag to indicate if we have already issued a warning + about not having an appender warning. + + + + + + Get the root of this hierarchy + + + + Get the root of this hierarchy. + + + + + + Gets or sets the default instance. + + The default + + + The logger factory is used to create logger instances. + + + + + + A class to hold the value, name and display name for a level + + + + A class to hold the value, name and display name for a level + + + + + + Override Object.ToString to return sensible debug info + + string info about this object + + + + Value of the level + + + + If the value is not set (defaults to -1) the value will be looked + up for the current level with the same name. + + + + + + Name of the level + + + The name of the level + + + + The name of the level. + + + + + + Display name for the level + + + The display name of the level + + + + The display name of the level. + + + + + + Used internally to accelerate hash table searches. + + + + Internal class used to improve performance of + string keyed hashtables. + + + The hashcode of the string is cached for reuse. + The string is stored as an interned value. + When comparing two objects for equality + the reference equality of the interned strings is compared. + + + Nicko Cadell + Gert Driesen + + + + Construct key with string name + + + + Initializes a new instance of the class + with the specified name. + + + Stores the hashcode of the string and interns + the string key to optimize comparisons. + + + The Compact Framework 1.0 the + method does not work. On the Compact Framework + the string keys are not interned nor are they + compared by reference. + + + The name of the logger. + + + + Returns a hash code for the current instance. + + A hash code for the current instance. + + + Returns the cached hashcode. + + + + + + Determines whether two instances + are equal. + + The to compare with the current . + + true if the specified is equal to the current ; otherwise, false. + + + + Compares the references of the interned strings. + + + + + + Provision nodes are used where no logger instance has been specified + + + + instances are used in the + when there is no specified + for that node. + + + A provision node holds a list of child loggers on behalf of + a logger that does not exist. + + + Nicko Cadell + Gert Driesen + + + + Create a new provision node with child node + + A child logger to add to this node. + + + Initializes a new instance of the class + with the specified child logger. + + + + + + The sits at the root of the logger hierarchy tree. + + + + The is a regular except + that it provides several guarantees. + + + First, it cannot be assigned a null + level. Second, since the root logger cannot have a parent, the + property always returns the value of the + level field without walking the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Construct a + + The level to assign to the root logger. + + + Initializes a new instance of the class with + the specified logging level. + + + The root logger names itself as "root". However, the root + logger cannot be retrieved by name. + + + + + + The fully qualified type of the RootLogger class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the assigned level value without walking the logger hierarchy. + + The assigned level value without walking the logger hierarchy. + + + Because the root logger cannot have a parent and its level + must not be null this property just returns the + value of . + + + + + + Gets or sets the assigned for the root logger. + + + The of the root logger. + + + + Setting the level of the root logger to a null reference + may have catastrophic results. We prevent this here. + + + + + + Initializes the log4net environment using an XML DOM. + + + + Configures a using an XML DOM. + + + Nicko Cadell + Gert Driesen + + + + Construct the configurator for a hierarchy + + The hierarchy to build. + + + Initializes a new instance of the class + with the specified . + + + + + + Configure the hierarchy by parsing a DOM tree of XML elements. + + The root element to parse. + + + Configure the hierarchy by parsing a DOM tree of XML elements. + + + + + + Parse appenders by IDREF. + + The appender ref element. + The instance of the appender that the ref refers to. + + + Parse an XML element that represents an appender and return + the appender. + + + + + + Parses an appender element. + + The appender element. + The appender instance or null when parsing failed. + + + Parse an XML element that represents an appender and return + the appender instance. + + + + + + Parses a logger element. + + The logger element. + + + Parse an XML element that represents a logger. + + + + + + Parses the root logger element. + + The root element. + + + Parse an XML element that represents the root logger. + + + + + + Parses the children of a logger element. + + The category element. + The logger instance. + Flag to indicate if the logger is the root logger. + + + Parse the child elements of a <logger> element. + + + + + + Parses an object renderer. + + The renderer element. + + + Parse an XML element that represents a renderer. + + + + + + Parses a level element. + + The level element. + The logger object to set the level on. + Flag to indicate if the logger is the root logger. + + + Parse an XML element that represents a level. + + + + + + Sets a parameter on an object. + + The parameter element. + The object to set the parameter on. + + The parameter name must correspond to a writable property + on the object. The value of the parameter is a string, + therefore this function will attempt to set a string + property first. If unable to set a string property it + will inspect the property and its argument type. It will + attempt to call a static method called Parse on the + type of the property. This method will take a single + string argument and return a value that can be used to + set the property. + + + + + Test if an element has no attributes or child elements + + the element to inspect + true if the element has any attributes or child elements, false otherwise + + + + Test if a is constructible with Activator.CreateInstance. + + the type to inspect + true if the type is creatable using a default constructor, false otherwise + + + + Look for a method on the that matches the supplied + + the type that has the method + the name of the method + the method info found + + + The method must be a public instance method on the . + The method must be named or "Add" followed by . + The method must take a single parameter. + + + + + + Converts a string value to a target type. + + The type of object to convert the string to. + The string value to use as the value of the object. + + + An object of type with value or + null when the conversion could not be performed. + + + + + + Creates an object as specified in XML. + + The XML element that contains the definition of the object. + The object type to use if not explicitly specified. + The type that the returned object must be or must inherit from. + The object or null + + + Parse an XML element and create an object instance based on the configuration + data. + + + The type of the instance may be specified in the XML. If not + specified then the is used + as the type. However the type is specified it must support the + type. + + + + + + key: appenderName, value: appender. + + + + + The Hierarchy being configured. + + + + + The fully qualified type of the XmlHierarchyConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + + + + + + + + + + + + + + + + + Delegate used to handle logger repository shutdown event notifications + + The that is shutting down. + Empty event args + + + Delegate used to handle logger repository shutdown event notifications. + + + + + + Delegate used to handle logger repository configuration reset event notifications + + The that has had its configuration reset. + Empty event args + + + Delegate used to handle logger repository configuration reset event notifications. + + + + + + Delegate used to handle event notifications for logger repository configuration changes. + + The that has had its configuration changed. + Empty event arguments. + + + Delegate used to handle event notifications for logger repository configuration changes. + + + + + + Write the name of the current AppDomain to the output + + + + Write the name of the current AppDomain to the output writer + + + Nicko Cadell + + + + Write the name of the current AppDomain to the output + + the writer to write to + null, state is not set + + + Writes name of the current AppDomain to the output . + + + + + + AppSetting pattern converter + + + + This pattern converter reads appSettings from the application configuration file. + + + If the is specified then that will be used to + lookup a single appSettings value. If no is specified + then all appSettings will be dumped as a list of key value pairs. + + + A typical use is to specify a base directory for log files, e.g. + + + + + ... + + + ]]> + + + + + + + Write the property value to the output + + that will receive the formatted result. + null, state is not set + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + Write the current date to the output + + + + Date pattern converter, uses a to format + the current date and time to the writer as a string. + + + The value of the determines + the formatting of the date. The following values are allowed: + + + Option value + Output + + + ISO8601 + + Uses the formatter. + Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. + + + + DATE + + Uses the formatter. + Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". + + + + ABSOLUTE + + Uses the formatter. + Formats using the "HH:mm:ss,fff" for example, "15:49:37,459". + + + + other + + Any other pattern string uses the formatter. + This formatter passes the pattern string to the + method. + For details on valid patterns see + DateTimeFormatInfo Class. + + + + + + The date and time is in the local time zone and is rendered in that zone. + To output the time in Universal time see . + + + Nicko Cadell + + + + The used to render the date to a string + + + + The used to render the date to a string + + + + + + Initialize the converter options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the current date to the output + + that will receive the formatted result. + null, state is not set + + + Pass the current date and time to the + for it to render it to the writer. + + + The date and time passed is in the local time zone. + + + + + + The fully qualified type of the DatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write an folder path to the output + + + + Write an special path environment folder path to the output writer. + The value of the determines + the name of the variable to output. + should be a value in the enumeration. + + + Ron Grabowski + + + + Write an special path environment folder path to the output + + the writer to write to + null, state is not set + + + Writes the special path environment folder path to the output . + The name of the special path environment folder path to output must be set + using the + property. + + + + + + The fully qualified type of the EnvironmentFolderPathPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write an environment variable to the output + + + + Write an environment variable to the output writer. + The value of the determines + the name of the variable to output. + + + Nicko Cadell + + + + Write an environment variable to the output + + the writer to write to + null, state is not set + + + Writes the environment variable to the output . + The name of the environment variable to output must be set + using the + property. + + + + + + The fully qualified type of the EnvironmentPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the current thread identity to the output + + + + Write the current thread identity to the output writer + + + Nicko Cadell + + + + Write the current thread identity to the output + + the writer to write to + null, state is not set + + + Writes the current thread identity to the output . + + + + + + The fully qualified type of the IdentityPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Pattern converter for literal string instances in the pattern + + + + Writes the literal string value specified in the + property to + the output. + + + Nicko Cadell + + + + Set the next converter in the chain + + The next pattern converter in the chain + The next pattern converter + + + Special case the building of the pattern converter chain + for instances. Two adjacent + literals in the pattern can be represented by a single combined + pattern converter. This implementation detects when a + is added to the chain + after this converter and combines its value with this converter's + literal value. + + + + + + Write the literal to the output + + the writer to write to + null, not set + + + Override the formatting behavior to ignore the FormattingInfo + because we have a literal instead. + + + Writes the value of + to the output . + + + + + + Convert this pattern into the rendered message + + that will receive the formatted result. + null, not set + + + This method is not used. + + + + + + Writes a newline to the output + + + + Writes the system dependent line terminator to the output. + This behavior can be overridden by setting the : + + + + Option Value + Output + + + DOS + DOS or Windows line terminator "\r\n" + + + UNIX + UNIX line terminator "\n" + + + + Nicko Cadell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the current process ID to the output + + + + Write the current process ID to the output writer + + + Nicko Cadell + + + + Write the current process ID to the output + + the writer to write to + null, state is not set + + + Write the current process ID to the output . + + + + + + The fully qualified type of the ProcessIdPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Property pattern converter + + + + This pattern converter reads the thread and global properties. + The thread properties take priority over global properties. + See for details of the + thread properties. See for + details of the global properties. + + + If the is specified then that will be used to + lookup a single property. If no is specified + then all properties will be dumped as a list of key value pairs. + + + Nicko Cadell + + + + Write the property value to the output + + that will receive the formatted result. + null, state is not set + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + A Pattern converter that generates a string of random characters + + + + The converter generates a string of random characters. By default + the string is length 4. This can be changed by setting the + to the string value of the length required. + + + The random characters in the string are limited to uppercase letters + and numbers only. + + + The random number generator used by this class is not cryptographically secure. + + + Nicko Cadell + + + + Shared random number generator + + + + + Length of random string to generate. Default length 4. + + + + + Initialize the converter options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write a randoim string to the output + + the writer to write to + null, state is not set + + + Write a randoim string to the output . + + + + + + The fully qualified type of the RandomStringPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the current threads username to the output + + + + Write the current threads username to the output writer + + + Nicko Cadell + + + + Write the current threads username to the output + + the writer to write to + null, state is not set + + + Write the current threads username to the output . + + + + + + The fully qualified type of the UserNamePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the UTC date time to the output + + + + Date pattern converter, uses a to format + the current date and time in Universal time. + + + See the for details on the date pattern syntax. + + + + Nicko Cadell + + + + Write the current date and time to the output + + that will receive the formatted result. + null, state is not set + + + Pass the current date and time to the + for it to render it to the writer. + + + The date is in Universal time when it is rendered. + + + + + + + The fully qualified type of the UtcDatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Type converter for Boolean. + + + + Supports conversion from string to bool type. + + + + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Convert the source object to the type supported by this object + + the object to convert + the converted object + + + Uses the method to convert the + argument to a . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Exception base type for conversion errors. + + + + This type extends . It + does not add any new functionality but does differentiate the + type of exception being thrown. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + A message to include with the exception. + + + Initializes a new instance of the class + with the specified message. + + + + + + Constructor + + A message to include with the exception. + A nested exception to include. + + + Initializes a new instance of the class + with the specified message and inner exception. + + + + + + Serialization constructor + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Creates a new instance of the class. + + The conversion destination type. + The value to convert. + An instance of the . + + + Creates a new instance of the class. + + + + + + Creates a new instance of the class. + + The conversion destination type. + The value to convert. + A nested exception to include. + An instance of the . + + + Creates a new instance of the class. + + + + + + Register of type converters for specific types. + + + + Maintains a registry of type converters used to convert between + types. + + + Use the and + methods to register new converters. + The and methods + lookup appropriate converters to use. + + + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + Initializes a new instance of the class. + + + + + Static constructor. + + + + This constructor defines the intrinsic type converters. + + + + + + Adds a converter for a specific type. + + The type being converted to. + The type converter to use to convert to the destination type. + + + Adds a converter instance for a specific type. + + + + + + Adds a converter for a specific type. + + The type being converted to. + The type of the type converter to use to convert to the destination type. + + + Adds a converter for a specific type. + + + + + + Gets the type converter to use to convert values to the destination type. + + The type being converted from. + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + Gets the type converter to use to convert values to the destination type. + + + + + + Gets the type converter to use to convert values to the destination type. + + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + Gets the type converter to use to convert values to the destination type. + + + + + + Lookups the type converter to use as specified by the attributes on the + destination type. + + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + + Creates the instance of the type converter. + + The type of the type converter. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + The type specified for the type converter must implement + the or interfaces + and must have a public default (no argument) constructor. + + + + + + The fully qualified type of the ConverterRegistry class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Mapping from to type converter. + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to an encoding + the encoding + + + Uses the method to + convert the argument to an . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Interface supported by type converters + + + + This interface supports conversion from a single type to arbitrary types. + See . + + + Nicko Cadell + + + + Returns whether this converter can convert the object to the specified type + + A Type that represents the type you want to convert to + true if the conversion is possible + + + Test if the type supported by this converter can be converted to the + . + + + + + + Converts the given value object to the specified type, using the arguments + + the object to convert + The Type to convert the value parameter to + the converted object + + + Converts the (which must be of the type supported + by this converter) to the specified.. + + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to an IPAddress + the IPAddress + + + Uses the method to convert the + argument to an . + If that fails then the string is resolved as a DNS hostname. + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Valid characters in an IPv4 or IPv6 address string. (Does not support subnets) + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + The string is used as the + of the . + + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a PatternLayout + the PatternLayout + + + Creates and returns a new using + the as the + . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Convert between string and + + + + Supports conversion from string to type, + and from a type to a string. + + + The string is used as the + of the . + + + + + + Nicko Cadell + + + + Can the target type be converted to the type supported by this object + + A that represents the type you want to convert to + true if the conversion is possible + + + Returns true if the is + assignable from a type. + + + + + + Converts the given value object to the specified type, using the arguments + + the object to convert + The Type to convert the value parameter to + the converted object + + + Uses the method to convert the + argument to a . + + + + The object cannot be converted to the + . To check for this condition use the + method. + + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a PatternString + the PatternString + + + Creates and returns a new using + the as the + . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a Type + the Type + + + Uses the method to convert the + argument to a . + Additional effort is made to locate partially specified types + by searching the loaded assemblies. + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Attribute used to associate a type converter + + + + Class and Interface level attribute that specifies a type converter + to use with the associated type. + + + To associate a type converter with a target type apply a + TypeConverterAttribute to the target type. Specify the + type of the type converter on the attribute. + + + Nicko Cadell + Gert Driesen + + + + The string type name of the type converter + + + + + Default constructor + + + + Default constructor + + + + + + Create a new type converter attribute for the specified type name + + The string type name of the type converter + + + The type specified must implement the + or the interfaces. + + + + + + Create a new type converter attribute for the specified type + + The type of the type converter + + + The type specified must implement the + or the interfaces. + + + + + + The string type name of the type converter + + + The string type name of the type converter + + + + The type specified must implement the + or the interfaces. + + + + + + A straightforward implementation of the interface. + + + + This is the default implementation of the + interface. Implementors of the interface + should aggregate an instance of this type. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Append on on all attached appenders. + + The event being logged. + The number of appenders called. + + + Calls the method on all + attached appenders. + + + + + + Append on on all attached appenders. + + The array of events being logged. + The number of appenders called. + + + Calls the method on all + attached appenders. + + + + + + Calls the DoAppende method on the with + the objects supplied. + + The appender + The events + + + If the supports the + interface then the will be passed + through using that interface. Otherwise the + objects in the array will be passed one at a time. + + + + + + Attaches an appender. + + The appender to add. + + + If the appender is already in the list it won't be added again. + + + + + + Gets an attached appender with the specified name. + + The name of the appender to get. + + The appender with the name specified, or null if no appender with the + specified name is found. + + + + Lookup an attached appender by name. + + + + + + Removes all attached appenders. + + + + Removes and closes all attached appenders + + + + + + Removes the specified appender from the list of attached appenders. + + The appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + List of appenders + + + + + Array of appenders, used to cache the m_appenderList + + + + + The fully qualified type of the AppenderAttachedImpl class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets all attached appenders. + + + A collection of attached appenders, or null if there + are no attached appenders. + + + + The read only collection of all currently attached appenders. + + + + + + This class aggregates several PropertiesDictionary collections together. + + + + Provides a dictionary style lookup over an ordered list of + collections. + + + Nicko Cadell + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Add a Properties Dictionary to this composite collection + + the properties to add + + + Properties dictionaries added first take precedence over dictionaries added + later. + + + + + + Flatten this composite collection into a single properties dictionary + + the flattened dictionary + + + Reduces the collection of ordered dictionaries to a single dictionary + containing the resultant values for the keys. + + + + + + Gets the value of a property + + + The value for the property with the specified key + + + + Looks up the value for the specified. + The collections are searched + in the order in which they were added to this collection. The value + returned is the value held by the first collection that contains + the specified key. + + + If none of the collections contain the specified key then + null is returned. + + + + + + Base class for Context Properties implementations + + + + This class defines a basic property get set accessor + + + Nicko Cadell + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Gets or sets the value of a property + + + + + + Wrapper class used to map converter names to converter types + + + + Pattern converter info class used during configuration by custom + PatternString and PatternLayer converters. + + + + + + default constructor + + + + + + + + + + + Gets or sets the name of the conversion pattern + + + + The name of the pattern in the format string + + + + + + Gets or sets the type of the converter + + + + The value specified must extend the + type. + + + + + + + + + + + Subclass of that maintains a count of + the number of bytes written. + + + + This writer counts the number of bytes written. + + + Nicko Cadell + Gert Driesen + + + + that does not leak exceptions + + + + does not throw exceptions when things go wrong. + Instead, it delegates error handling to its . + + + Nicko Cadell + Gert Driesen + + + + Adapter that extends and forwards all + messages to an instance of . + + + + Adapter that extends and forwards all + messages to an instance of . + + + Nicko Cadell + + + + The writer to forward messages to + + + + + Create an instance of that forwards all + messages to a . + + The to forward to + + + Create an instance of that forwards all + messages to a . + + + + + + Closes the writer and releases any system resources associated with the writer + + + + + + + + + Dispose this writer + + flag indicating if we are being disposed + + + Dispose this writer + + + + + + Flushes any buffered output + + + + Clears all buffers for the writer and causes any buffered data to be written + to the underlying device + + + + + + Writes a character to the wrapped TextWriter + + the value to write to the TextWriter + + + Writes a character to the wrapped TextWriter + + + + + + Writes a character buffer to the wrapped TextWriter + + the data buffer + the start index + the number of characters to write + + + Writes a character buffer to the wrapped TextWriter + + + + + + Writes a string to the wrapped TextWriter + + the value to write to the TextWriter + + + Writes a string to the wrapped TextWriter + + + + + + Gets or sets the underlying . + + + The underlying . + + + + Gets or sets the underlying . + + + + + + The Encoding in which the output is written + + + The + + + + The Encoding in which the output is written + + + + + + Gets an object that controls formatting + + + The format provider + + + + Gets an object that controls formatting + + + + + + Gets or sets the line terminator string used by the TextWriter + + + The line terminator to use + + + + Gets or sets the line terminator string used by the TextWriter + + + + + + Constructor + + the writer to actually write to + the error handler to report error to + + + Create a new QuietTextWriter using a writer and error handler + + + + + + Writes a character to the underlying writer + + the char to write + + + Writes a character to the underlying writer + + + + + + Writes a buffer to the underlying writer + + the buffer to write + the start index to write from + the number of characters to write + + + Writes a buffer to the underlying writer + + + + + + Writes a string to the output. + + The string data to write to the output. + + + Writes a string to the output. + + + + + + Closes the underlying output writer. + + + + Closes the underlying output writer. + + + + + + The error handler instance to pass all errors to + + + + + Flag to indicate if this writer is closed + + + + + Gets or sets the error handler that all errors are passed to. + + + The error handler that all errors are passed to. + + + + Gets or sets the error handler that all errors are passed to. + + + + + + Gets a value indicating whether this writer is closed. + + + true if this writer is closed, otherwise false. + + + + Gets a value indicating whether this writer is closed. + + + + + + Constructor + + The to actually write to. + The to report errors to. + + + Creates a new instance of the class + with the specified and . + + + + + + Writes a character to the underlying writer and counts the number of bytes written. + + the char to write + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Writes a buffer to the underlying writer and counts the number of bytes written. + + the buffer to write + the start index to write from + the number of characters to write + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Writes a string to the output and counts the number of bytes written. + + The string data to write to the output. + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Total number of bytes written. + + + + + Gets or sets the total number of bytes written. + + + The total number of bytes written. + + + + Gets or sets the total number of bytes written. + + + + + + A fixed size rolling buffer of logging events. + + + + An array backed fixed size leaky bucket. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The maximum number of logging events in the buffer. + + + Initializes a new instance of the class with + the specified maximum number of buffered logging events. + + + The argument is not a positive integer. + + + + Appends a to the buffer. + + The event to append to the buffer. + The event discarded from the buffer, if the buffer is full, otherwise null. + + + Append an event to the buffer. If the buffer still contains free space then + null is returned. If the buffer is full then an event will be dropped + to make space for the new event, the event dropped is returned. + + + + + + Get and remove the oldest event in the buffer. + + The oldest logging event in the buffer + + + Gets the oldest (first) logging event in the buffer and removes it + from the buffer. + + + + + + Pops all the logging events from the buffer into an array. + + An array of all the logging events in the buffer. + + + Get all the events in the buffer and clear the buffer. + + + + + + Clear the buffer + + + + Clear the buffer of all events. The events in the buffer are lost. + + + + + + Gets the th oldest event currently in the buffer. + + The th oldest event currently in the buffer. + + + If is outside the range 0 to the number of events + currently in the buffer, then null is returned. + + + + + + Gets the maximum size of the buffer. + + The maximum size of the buffer. + + + Gets the maximum size of the buffer + + + + + + Gets the number of logging events in the buffer. + + The number of logging events in the buffer. + + + This number is guaranteed to be in the range 0 to + (inclusive). + + + + + + An always empty . + + + + A singleton implementation of the + interface that always represents an empty collection. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Copies the elements of the to an + , starting at a particular Array index. + + The one-dimensional + that is the destination of the elements copied from + . The Array must have zero-based + indexing. + The zero-based index in array at which + copying begins. + + + As the collection is empty no values are copied into the array. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + The singleton instance of the empty collection. + + + + + Gets the singleton instance of the empty collection. + + The singleton instance of the empty collection. + + + Gets the singleton instance of the empty collection. + + + + + + Gets a value indicating if access to the is synchronized (thread-safe). + + + true if access to the is synchronized (thread-safe); otherwise, false. + + + + For the this property is always true. + + + + + + Gets the number of elements contained in the . + + + The number of elements contained in the . + + + + As the collection is empty the is always 0. + + + + + + Gets an object that can be used to synchronize access to the . + + + An object that can be used to synchronize access to the . + + + + As the collection is empty and thread safe and synchronized this instance is also + the object. + + + + + + An always empty . + + + + A singleton implementation of the + interface that always represents an empty collection. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Copies the elements of the to an + , starting at a particular Array index. + + The one-dimensional + that is the destination of the elements copied from + . The Array must have zero-based + indexing. + The zero-based index in array at which + copying begins. + + + As the collection is empty no values are copied into the array. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + Adds an element with the provided key and value to the + . + + The to use as the key of the element to add. + The to use as the value of the element to add. + + + As the collection is empty no new values can be added. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + Removes all elements from the . + + + + As the collection is empty no values can be removed. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + Determines whether the contains an element + with the specified key. + + The key to locate in the . + false + + + As the collection is empty the method always returns false. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + Removes the element with the specified key from the . + + The key of the element to remove. + + + As the collection is empty no values can be removed. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + The singleton instance of the empty dictionary. + + + + + Gets the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets a value indicating if access to the is synchronized (thread-safe). + + + true if access to the is synchronized (thread-safe); otherwise, false. + + + + For the this property is always true. + + + + + + Gets the number of elements contained in the + + + The number of elements contained in the . + + + + As the collection is empty the is always 0. + + + + + + Gets an object that can be used to synchronize access to the . + + + An object that can be used to synchronize access to the . + + + + As the collection is empty and thread safe and synchronized this instance is also + the object. + + + + + + Gets a value indicating whether the has a fixed size. + + true + + + As the collection is empty always returns true. + + + + + + Gets a value indicating whether the is read-only. + + true + + + As the collection is empty always returns true. + + + + + + Gets an containing the keys of the . + + An containing the keys of the . + + + As the collection is empty a is returned. + + + + + + Gets an containing the values of the . + + An containing the values of the . + + + As the collection is empty a is returned. + + + + + + Gets or sets the element with the specified key. + + The key of the element to get or set. + null + + + As the collection is empty no values can be looked up or stored. + If the index getter is called then null is returned. + A is thrown if the setter is called. + + + This dictionary is always empty and cannot be modified. + + + + Contain the information obtained when parsing formatting modifiers + in conversion modifiers. + + + + Holds the formatting information extracted from the format string by + the . This is used by the + objects when rendering the output. + + + Nicko Cadell + Gert Driesen + + + + Defaut Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + + + Initializes a new instance of the class + with the specified parameters. + + + + + + Gets or sets the minimum value. + + + The minimum value. + + + + Gets or sets the minimum value. + + + + + + Gets or sets the maximum value. + + + The maximum value. + + + + Gets or sets the maximum value. + + + + + + Gets or sets a flag indicating whether left align is enabled + or not. + + + A flag indicating whether left align is enabled or not. + + + + Gets or sets a flag indicating whether left align is enabled or not. + + + + + + Implementation of Properties collection for the + + + + This class implements a properties collection that is thread safe and supports both + storing properties and capturing a read only copy of the current propertied. + + + This class is optimized to the scenario where the properties are read frequently + and are modified infrequently. + + + Nicko Cadell + + + + The read only copy of the properties. + + + + This variable is declared volatile to prevent the compiler and JIT from + reordering reads and writes of this thread performed on different threads. + + + + + + Lock object used to synchronize updates within this instance + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Remove a property from the global context + + the key for the entry to remove + + + Removing an entry from the global context properties is relatively expensive compared + with reading a value. + + + + + + Clear the global context properties + + + + + Get a readonly immutable copy of the properties + + the current global context properties + + + This implementation is fast because the GlobalContextProperties class + stores a readonly copy of the properties. + + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Reading the value for a key is faster than setting the value. + When the value is written a new read only copy of + the properties is created. + + + + + + The static class ILogExtensions contains a set of widely used + methods that ease the interaction with the ILog interface implementations. + + + + This class contains methods for logging at different levels and checks the + properties for determining if those logging levels are enabled in the current + configuration. + + + Simple example of logging messages + + using log4net.Util; + + ILog log = LogManager.GetLogger("application-log"); + + log.InfoExt("Application Start"); + log.DebugExt("This is a debug message"); + + + + + + The fully qualified type of the Logger class. + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is WARN + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is WARN enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is WARN + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is WARN enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is ERROR + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is ERROR enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is ERROR + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is ERROR enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is FATAL + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is FATAL enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is FATAL + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is FATAL enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Manages a mapping from levels to + + + + Manages an ordered mapping from instances + to subclasses. + + + Nicko Cadell + + + + Default constructor + + + + Initialise a new instance of . + + + + + + Add a to this mapping + + the entry to add + + + If a has previously been added + for the same then that entry will be + overwritten. + + + + + + Lookup the mapping for the specified level + + the level to lookup + the for the level or null if no mapping found + + + Lookup the value for the specified level. Finds the nearest + mapping value for the level that is equal to or less than the + specified. + + + If no mapping could be found then null is returned. + + + + + + Initialize options + + + + Caches the sorted list of in an array + + + + + + Implementation of Properties collection for the + + + + Class implements a collection of properties that is specific to each thread. + The class is not synchronized as each thread has its own . + + + This class stores its properties in a slot on the named + log4net.Util.LogicalThreadContextProperties. + + + For .NET Standard 1.3 this class uses + System.Threading.AsyncLocal rather than . + + + The requires a link time + for the + . + If the calling code does not have this permission then this context will be disabled. + It will not store any property values set on it. + + + Nicko Cadell + + + + Flag used to disable this context if we don't have permission to access the CallContext. + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Remove a property + + the key for the entry to remove + + + Remove the value for the specified from the context. + + + + + + Clear all the context properties + + + + Clear all the context properties + + + + + + Get the PropertiesDictionary stored in the LocalDataStoreSlot for this thread. + + create the dictionary if it does not exist, otherwise return null if is does not exist + the properties for this thread + + + The collection returned is only to be used on the calling thread. If the + caller needs to share the collection between different threads then the + caller must clone the collection before doings so. + + + + + + Gets the call context get data. + + The peroperties dictionary stored in the call context + + The method has a + security link demand, therfore we must put the method call in a seperate method + that we can wrap in an exception handler. + + + + + Sets the call context data. + + The properties. + + The method has a + security link demand, therfore we must put the method call in a seperate method + that we can wrap in an exception handler. + + + + + The fully qualified type of the LogicalThreadContextProperties class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Get or set the property value for the specified. + + + + + + Delegate type used for LogicalThreadContextStack's callbacks. + + + + + Implementation of Stack for the + + + + Implementation of Stack for the + + + Nicko Cadell + + + + The stack store. + + + + + The name of this within the + . + + + + + The callback used to let the register a + new instance of a . + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Clears all the contextual information held in this stack. + + + + Clears all the contextual information held in this stack. + Only call this if you think that this thread is being reused after + a previous call execution which may not have completed correctly. + You do not need to use this method if you always guarantee to call + the method of the + returned from even in exceptional circumstances, + for example by using the using(log4net.LogicalThreadContext.Stacks["NDC"].Push("Stack_Message")) + syntax. + + + + + + Removes the top context from this stack. + + The message in the context that was removed from the top of this stack. + + + Remove the top context from this stack, and return + it to the caller. If this stack is empty then an + empty string (not ) is returned. + + + + + + Pushes a new context message into this stack. + + The new context message. + + An that can be used to clean up the context stack. + + + + Pushes a new context onto this stack. An + is returned that can be used to clean up this stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.LogicalThreadContext.Stacks["NDC"].Push("Stack_Message")) + { + log.Warn("This should have an ThreadContext Stack message"); + } + + + + + + Gets the current context information for this stack. + + The current context information. + + + + Gets the current context information for this stack. + + Gets the current context information + + + Gets the current context information for this stack. + + + + + + Get a portable version of this object + + the portable instance of this object + + + Get a cross thread portable version of this object + + + + + + The number of messages in the stack + + + The current number of messages in the stack + + + + The current number of messages in the stack. That is + the number of times has been called + minus the number of times has been called. + + + + + + Gets and sets the internal stack used by this + + The internal storage stack + + + This property is provided only to support backward compatability + of the . Tytpically the internal stack should not + be modified. + + + + + + Inner class used to represent a single context frame in the stack. + + + + Inner class used to represent a single context frame in the stack. + + + + + + Constructor + + The message for this context. + The parent context in the chain. + + + Initializes a new instance of the class + with the specified message and parent context. + + + + + + Get the message. + + The message. + + + Get the message. + + + + + + Gets the full text of the context down to the root level. + + + The full text of the context down to the root level. + + + + Gets the full text of the context down to the root level. + + + + + + Struct returned from the method. + + + + This struct implements the and is designed to be used + with the pattern to remove the stack frame at the end of the scope. + + + + + + The depth to trim the stack to when this instance is disposed + + + + + The outer LogicalThreadContextStack. + + + + + Constructor + + The internal stack used by the ThreadContextStack. + The depth to return the stack to when this object is disposed. + + + Initializes a new instance of the class with + the specified stack and return depth. + + + + + + Returns the stack to the correct depth. + + + + Returns the stack to the correct depth. + + + + + + Implementation of Stacks collection for the + + + + Implementation of Stacks collection for the + + + Nicko Cadell + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + The fully qualified type of the ThreadContextStacks class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the named thread context stack + + + The named stack + + + + Gets the named thread context stack + + + + + + + + + + + + + Outputs log statements from within the log4net assembly. + + + + Log4net components cannot make log4net logging calls. However, it is + sometimes useful for the user to learn about what log4net is + doing. + + + All log4net internal debug calls go to the standard output stream + whereas internal error messages are sent to the standard error output + stream. + + + Nicko Cadell + Gert Driesen + + + + Formats Prefix, Source, and Message in the same format as the value + sent to Console.Out and Trace.Write. + + + + + + Initializes a new instance of the class. + + + + + + + + + Static constructor that initializes logging by reading + settings from the application configuration file. + + + + The log4net.Internal.Debug application setting + controls internal debugging. This setting should be set + to true to enable debugging. + + + The log4net.Internal.Quiet application setting + suppresses all internal logging including error messages. + This setting should be set to true to enable message + suppression. + + + + + + Raises the LogReceived event when an internal messages is received. + + + + + + + + + Writes log4net internal debug messages to the + standard output stream. + + + The message to log. + + + All internal debug messages are prepended with + the string "log4net: ". + + + + + + Writes log4net internal debug messages to the + standard output stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal debug messages are prepended with + the string "log4net: ". + + + + + + Writes log4net internal warning messages to the + standard error stream. + + The Type that generated this message. + The message to log. + + + All internal warning messages are prepended with + the string "log4net:WARN ". + + + + + + Writes log4net internal warning messages to the + standard error stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal warning messages are prepended with + the string "log4net:WARN ". + + + + + + Writes log4net internal error messages to the + standard error stream. + + The Type that generated this message. + The message to log. + + + All internal error messages are prepended with + the string "log4net:ERROR ". + + + + + + Writes log4net internal error messages to the + standard error stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal debug messages are prepended with + the string "log4net:ERROR ". + + + + + + Writes output to the standard output stream. + + The message to log. + + + Writes to both Console.Out and System.Diagnostics.Trace. + Note that the System.Diagnostics.Trace is not supported + on the Compact Framework. + + + If the AppDomain is not configured with a config file then + the call to System.Diagnostics.Trace may fail. This is only + an issue if you are programmatically creating your own AppDomains. + + + + + + Writes output to the standard error stream. + + The message to log. + + + Writes to both Console.Error and System.Diagnostics.Trace. + Note that the System.Diagnostics.Trace is not supported + on the Compact Framework. + + + If the AppDomain is not configured with a config file then + the call to System.Diagnostics.Trace may fail. This is only + an issue if you are programmatically creating your own AppDomains. + + + + + + Default debug level + + + + + In quietMode not even errors generate any output. + + + + + The event raised when an internal message has been received. + + + + + The Type that generated the internal message. + + + + + The DateTime stamp of when the internal message was received. + + + + + The UTC DateTime stamp of when the internal message was received. + + + + + A string indicating the severity of the internal message. + + + "log4net: ", + "log4net:ERROR ", + "log4net:WARN " + + + + + The internal log message. + + + + + The Exception related to the message. + + + Optional. Will be null if no Exception was passed. + + + + + Gets or sets a value indicating whether log4net internal logging + is enabled or disabled. + + + true if log4net internal logging is enabled, otherwise + false. + + + + When set to true, internal debug level logging will be + displayed. + + + This value can be set by setting the application setting + log4net.Internal.Debug in the application configuration + file. + + + The default value is false, i.e. debugging is + disabled. + + + + + The following example enables internal debugging using the + application configuration file : + + + + + + + + + + + + + Gets or sets a value indicating whether log4net should generate no output + from internal logging, not even for errors. + + + true if log4net should generate no output at all from internal + logging, otherwise false. + + + + When set to true will cause internal logging at all levels to be + suppressed. This means that no warning or error reports will be logged. + This option overrides the setting and + disables all debug also. + + This value can be set by setting the application setting + log4net.Internal.Quiet in the application configuration file. + + + The default value is false, i.e. internal logging is not + disabled. + + + + The following example disables internal logging using the + application configuration file : + + + + + + + + + + + + + + + + + Test if LogLog.Debug is enabled for output. + + + true if Debug is enabled + + + + Test if LogLog.Debug is enabled for output. + + + + + + Test if LogLog.Warn is enabled for output. + + + true if Warn is enabled + + + + Test if LogLog.Warn is enabled for output. + + + + + + Test if LogLog.Error is enabled for output. + + + true if Error is enabled + + + + Test if LogLog.Error is enabled for output. + + + + + + Subscribes to the LogLog.LogReceived event and stores messages + to the supplied IList instance. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a native error code and message. + + + + Represents a Win32 platform native error. + + + Nicko Cadell + Gert Driesen + + + + Create an instance of the class with the specified + error number and message. + + The number of the native error. + The message of the native error. + + + Create an instance of the class with the specified + error number and message. + + + + + + Create a new instance of the class for the last Windows error. + + + An instance of the class for the last windows error. + + + + The message for the error number is lookup up using the + native Win32 FormatMessage function. + + + + + + Create a new instance of the class. + + the error number for the native error + + An instance of the class for the specified + error number. + + + + The message for the specified error number is lookup up using the + native Win32 FormatMessage function. + + + + + + Retrieves the message corresponding with a Win32 message identifier. + + Message identifier for the requested message. + + The message corresponding with the specified message identifier. + + + + The message will be searched for in system message-table resource(s) + using the native FormatMessage function. + + + + + + Return error information string + + error information string + + + Return error information string + + + + + + Formats a message string. + + Formatting options, and how to interpret the parameter. + Location of the message definition. + Message identifier for the requested message. + Language identifier for the requested message. + If includes FORMAT_MESSAGE_ALLOCATE_BUFFER, the function allocates a buffer using the LocalAlloc function, and places the pointer to the buffer at the address specified in . + If the FORMAT_MESSAGE_ALLOCATE_BUFFER flag is not set, this parameter specifies the maximum number of TCHARs that can be stored in the output buffer. If FORMAT_MESSAGE_ALLOCATE_BUFFER is set, this parameter specifies the minimum number of TCHARs to allocate for an output buffer. + Pointer to an array of values that are used as insert values in the formatted message. + + + The function requires a message definition as input. The message definition can come from a + buffer passed into the function. It can come from a message table resource in an + already-loaded module. Or the caller can ask the function to search the system's message + table resource(s) for the message definition. The function finds the message definition + in a message table resource based on a message identifier and a language identifier. + The function copies the formatted message text to an output buffer, processing any embedded + insert sequences if requested. + + + To prevent the usage of unsafe code, this stub does not support inserting values in the formatted message. + + + + + If the function succeeds, the return value is the number of TCHARs stored in the output + buffer, excluding the terminating null character. + + + If the function fails, the return value is zero. To get extended error information, + call . + + + + + + Gets the number of the native error. + + + The number of the native error. + + + + Gets the number of the native error. + + + + + + Gets the message of the native error. + + + The message of the native error. + + + + + Gets the message of the native error. + + + + + An always empty . + + + + A singleton implementation of the over a collection + that is empty and not modifiable. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Test if the enumerator can advance, if so advance. + + false as the cannot advance. + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will always return false. + + + + + + Resets the enumerator back to the start. + + + + As the enumerator is over an empty collection does nothing. + + + + + + The singleton instance of the . + + + + + Gets the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets the current object from the enumerator. + + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current key from the enumerator. + + + Throws an exception because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current value from the enumerator. + + The current value from the enumerator. + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current entry from the enumerator. + + + Throws an because the + never has a current entry. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + An always empty . + + + + A singleton implementation of the over a collection + that is empty and not modifiable. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Test if the enumerator can advance, if so advance + + false as the cannot advance. + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will always return false. + + + + + + Resets the enumerator back to the start. + + + + As the enumerator is over an empty collection does nothing. + + + + + + The singleton instance of the . + + + + + Get the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets the current object from the enumerator. + + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + A SecurityContext used when a SecurityContext is not required + + + + The is a no-op implementation of the + base class. It is used where a + is required but one has not been provided. + + + Nicko Cadell + + + + Singleton instance of + + + + Singleton instance of + + + + + + Private constructor + + + + Private constructor for singleton pattern. + + + + + + Impersonate this SecurityContext + + State supplied by the caller + null + + + No impersonation is done and null is always returned. + + + + + + Implements log4net's default error handling policy which consists + of emitting a message for the first error in an appender and + ignoring all subsequent errors. + + + + The error message is processed using the LogLog sub-system by default. + + + This policy aims at protecting an otherwise working application + from being flooded with error messages when logging fails. + + + Nicko Cadell + Gert Driesen + Ron Grabowski + + + + Default Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + The prefix to use for each message. + + + Initializes a new instance of the class + with the specified prefix. + + + + + + Reset the error handler back to its initial disabled state. + + + + + Log an Error + + The error message. + The exception. + The internal error code. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + Log the very first error + + The error message. + The exception. + The internal error code. + + + Sends the error information to 's Error method. + + + + + + Log an Error + + The error message. + The exception. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + Log an error + + The error message. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + The UTC date the error was recorded. + + + + + Flag to indicate if it is the first error + + + + + The message recorded during the first error. + + + + + The exception recorded during the first error. + + + + + The error code recorded during the first error. + + + + + String to prefix each message with + + + + + The fully qualified type of the OnlyOnceErrorHandler class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Is error logging enabled + + + + Is error logging enabled. Logging is only enabled for the + first error delivered to the . + + + + + + The date the first error that trigged this error handler occurred, or if it has not been triggered. + + + + + The UTC date the first error that trigged this error handler occured, or if it has not been triggered. + + + + + The message from the first error that trigged this error handler. + + + + + The exception from the first error that trigged this error handler. + + + May be . + + + + + The error code from the first error that trigged this error handler. + + + Defaults to + + + + + A convenience class to convert property values to specific types. + + + + Utility functions for converting types and parsing values. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Converts a string to a value. + + String to convert. + The default value. + The value of . + + + If is "true", then true is returned. + If is "false", then false is returned. + Otherwise, is returned. + + + + + + Parses a file size into a number. + + String to parse. + The default value. + The value of . + + + Parses a file size of the form: number[KB|MB|GB] into a + long value. It is scaled with the appropriate multiplier. + + + is returned when + cannot be converted to a value. + + + + + + Converts a string to an object. + + The target type to convert to. + The string to convert to an object. + + The object converted from a string or null when the + conversion failed. + + + + Converts a string to an object. Uses the converter registry to try + to convert the string value into the specified target type. + + + + + + Checks if there is an appropriate type conversion from the source type to the target type. + + The type to convert from. + The type to convert to. + true if there is a conversion from the source type to the target type. + + Checks if there is an appropriate type conversion from the source type to the target type. + + + + + + + Converts an object to the target type. + + The object to convert to the target type. + The type to convert to. + The converted object. + + + Converts an object to the target type. + + + + + + Instantiates an object given a class name. + + The fully qualified class name of the object to instantiate. + The class to which the new object should belong. + The object to return in case of non-fulfillment. + + An instance of the or + if the object could not be instantiated. + + + + Checks that the is a subclass of + . If that test fails or the object could + not be instantiated, then is returned. + + + + + + Performs variable substitution in string from the + values of keys found in . + + The string on which variable substitution is performed. + The dictionary to use to lookup variables. + The result of the substitutions. + + + The variable substitution delimiters are ${ and }. + + + For example, if props contains key=value, then the call + + + + string s = OptionConverter.SubstituteVariables("Value of key is ${key}."); + + + + will set the variable s to "Value of key is value.". + + + If no value could be found for the specified key, then substitution + defaults to an empty string. + + + For example, if system properties contains no value for the key + "nonExistentKey", then the call + + + + string s = OptionConverter.SubstituteVariables("Value of nonExistentKey is [${nonExistentKey}]"); + + + + will set s to "Value of nonExistentKey is []". + + + An Exception is thrown if contains a start + delimiter "${" which is not balanced by a stop delimiter "}". + + + + + + Converts the string representation of the name or numeric value of one or + more enumerated constants to an equivalent enumerated object. + + The type to convert to. + The enum string value. + If true, ignore case; otherwise, regard case. + An object of type whose value is represented by . + + + + The fully qualified type of the OptionConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Most of the work of the class + is delegated to the PatternParser class. + + + + The PatternParser processes a pattern string and + returns a chain of objects. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The pattern to parse. + + + Initializes a new instance of the class + with the specified pattern string. + + + + + + Parses the pattern into a chain of pattern converters. + + The head of a chain of pattern converters. + + + Parses the pattern into a chain of pattern converters. + + + + + + Build the unified cache of converters from the static and instance maps + + the list of all the converter names + + + Build the unified cache of converters from the static and instance maps + + + + + + Internal method to parse the specified pattern to find specified matches + + the pattern to parse + the converter names to match in the pattern + + + The matches param must be sorted such that longer strings come before shorter ones. + + + + + + Process a parsed literal + + the literal text + + + + Process a parsed converter pattern + + the name of the converter + the optional option for the converter + the formatting info for the converter + + + + Resets the internal state of the parser and adds the specified pattern converter + to the chain. + + The pattern converter to add. + + + + The first pattern converter in the chain + + + + + the last pattern converter in the chain + + + + + The pattern + + + + + Internal map of converter identifiers to converter types + + + + This map overrides the static s_globalRulesRegistry map. + + + + + + The fully qualified type of the PatternParser class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Get the converter registry used by this parser + + + The converter registry used by this parser + + + + Get the converter registry used by this parser + + + + + + Sort strings by length + + + + that orders strings by string length. + The longest strings are placed first + + + + + + This class implements a patterned string. + + + + This string has embedded patterns that are resolved and expanded + when the string is formatted. + + + This class functions similarly to the + in that it accepts a pattern and renders it to a string. Unlike the + however the PatternString + does not render the properties of a specific but + of the process in general. + + + The recognized conversion pattern names are: + + + + Conversion Pattern Name + Effect + + + appdomain + + + Used to output the friendly name of the current AppDomain. + + + + + appsetting + + + Used to output the value of a specific appSetting key in the application + configuration file. + + + + + date + + + Used to output the current date and time in the local time zone. + To output the date in universal time use the %utcdate pattern. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %date{HH:mm:ss,fff} or + %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %date{ISO8601} or %date{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + env + + + Used to output the a specific environment variable. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %env{COMPUTERNAME} would include the value + of the COMPUTERNAME environment variable. + + + The env pattern is not supported on the .NET Compact Framework. + + + + + identity + + + Used to output the user name for the currently active user + (Principal.Identity.Name). + + + + + newline + + + Outputs the platform dependent line separator character or + characters. + + + This conversion pattern name offers the same performance as using + non-portable line separator strings such as "\n", or "\r\n". + Thus, it is the preferred way of specifying a line separator. + + + + + processid + + + Used to output the system process ID for the current process. + + + + + property + + + Used to output a specific context property. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %property{user} would include the value + from the property that is keyed by the string 'user'. Each property value + that is to be included in the log must be specified separately. + Properties are stored in logging contexts. By default + the log4net:HostName property is set to the name of machine on + which the event was originally logged. + + + If no key is specified, e.g. %property then all the keys and their + values are printed in a comma separated list. + + + The properties of an event are combined from a number of different + contexts. These are listed below in the order in which they are searched. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + random + + + Used to output a random string of characters. The string is made up of + uppercase letters and numbers. By default the string is 4 characters long. + The length of the string can be specified within braces directly following the + pattern specifier, e.g. %random{8} would output an 8 character string. + + + + + username + + + Used to output the WindowsIdentity for the currently + active user. + + + + + utcdate + + + Used to output the date of the logging event in universal time. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %utcdate{HH:mm:ss,fff} or + %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %utcdate{ISO8601} or %utcdate{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + % + + + The sequence %% outputs a single percent sign. + + + + + + Additional pattern converters may be registered with a specific + instance using or + . + + + See the for details on the + format modifiers supported by the patterns. + + + Nicko Cadell + + + + Internal map of converter identifiers to converter types. + + + + + the pattern + + + + + the head of the pattern converter chain + + + + + patterns defined on this PatternString only + + + + + Initialize the global registry + + + + + Default constructor + + + + Initialize a new instance of + + + + + + Constructs a PatternString + + The pattern to use with this PatternString + + + Initialize a new instance of with the pattern specified. + + + + + + Initialize object options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Create the used to parse the pattern + + the pattern to parse + The + + + Returns PatternParser used to parse the conversion string. Subclasses + may override this to return a subclass of PatternParser which recognize + custom conversion pattern name. + + + + + + Produces a formatted string as specified by the conversion pattern. + + The TextWriter to write the formatted event to + + + Format the pattern to the . + + + + + + Format the pattern as a string + + the pattern formatted as a string + + + Format the pattern to a string. + + + + + + Add a converter to this PatternString + + the converter info + + + This version of the method is used by the configurator. + Programmatic users should use the alternative method. + + + + + + Add a converter to this PatternString + + the name of the conversion pattern for this converter + the type of the converter + + + Add a converter to this PatternString + + + + + + Gets or sets the pattern formatting string + + + The pattern formatting string + + + + The ConversionPattern option. This is the string which + controls formatting and consists of a mix of literal content and + conversion specifiers. + + + + + + String keyed object map. + + + + While this collection is serializable only member + objects that are serializable will + be serialized along with this collection. + + + Nicko Cadell + Gert Driesen + + + + String keyed object map that is read only. + + + + This collection is readonly and cannot be modified. + + + While this collection is serializable only member + objects that are serializable will + be serialized along with this collection. + + + Nicko Cadell + Gert Driesen + + + + The Hashtable used to store the properties data + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Copy Constructor + + properties to copy + + + Initializes a new instance of the class. + + + + + + Deserialization constructor + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Gets the key names. + + An array of all the keys. + + + Gets the key names. + + + + + + Test if the dictionary contains a specified key + + the key to look for + true if the dictionary contains the specified key + + + Test if the dictionary contains a specified key + + + + + + Serializes this object into the provided. + + The to populate with data. + The destination for this serialization. + + + Serializes this object into the provided. + + + + + + See + + + + + See + + + + + + See + + + + + + + Remove all properties from the properties collection + + + + + See + + + + + + + See + + + + + + + See + + + + + Gets or sets the value of the property with the specified key. + + + The value of the property with the specified key. + + The key of the property to get or set. + + + The property value will only be serialized if it is serializable. + If it cannot be serialized it will be silently ignored if + a serialization operation is performed. + + + + + + The hashtable used to store the properties + + + The internal collection used to store the properties + + + + The hashtable used to store the properties + + + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + The number of properties in this collection + + + + + See + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + properties to copy + + + Initializes a new instance of the class. + + + + + + Initializes a new instance of the class + with serialized data. + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Because this class is sealed the serialization constructor is private. + + + + + + Remove the entry with the specified key from this dictionary + + the key for the entry to remove + + + Remove the entry with the specified key from this dictionary + + + + + + See + + an enumerator + + + Returns a over the contest of this collection. + + + + + + See + + the key to remove + + + Remove the entry with the specified key from this dictionary + + + + + + See + + the key to lookup in the collection + true if the collection contains the specified key + + + Test if this collection contains a specified key. + + + + + + Remove all properties from the properties collection + + + + Remove all properties from the properties collection + + + + + + See + + the key + the value to store for the key + + + Store a value for the specified . + + + Thrown if the is not a string + + + + See + + + + + + + See + + + + + Gets or sets the value of the property with the specified key. + + + The value of the property with the specified key. + + The key of the property to get or set. + + + The property value will only be serialized if it is serializable. + If it cannot be serialized it will be silently ignored if + a serialization operation is performed. + + + + + + See + + + false + + + + This collection is modifiable. This property always + returns false. + + + + + + See + + + The value for the key specified. + + + + Get or set a value for the specified . + + + Thrown if the is not a string + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + A class to hold the key and data for a property set in the config file + + + + A class to hold the key and data for a property set in the config file + + + + + + Override Object.ToString to return sensible debug info + + string info about this object + + + + Property Key + + + Property Key + + + + Property Key. + + + + + + Property Value + + + Property Value + + + + Property Value. + + + + + + A that ignores the message + + + + This writer is used in special cases where it is necessary + to protect a writer from being closed by a client. + + + Nicko Cadell + + + + Constructor + + the writer to actually write to + + + Create a new ProtectCloseTextWriter using a writer + + + + + + Attach this instance to a different underlying + + the writer to attach to + + + Attach this instance to a different underlying + + + + + + Does not close the underlying output writer. + + + + Does not close the underlying output writer. + This method does nothing. + + + + + + Defines a lock that supports single writers and multiple readers + + + + ReaderWriterLock is used to synchronize access to a resource. + At any given time, it allows either concurrent read access for + multiple threads, or write access for a single thread. In a + situation where a resource is changed infrequently, a + ReaderWriterLock provides better throughput than a simple + one-at-a-time lock, such as . + + + If a platform does not support a System.Threading.ReaderWriterLock + implementation then all readers and writers are serialized. Therefore + the caller must not rely on multiple simultaneous readers. + + + Nicko Cadell + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Acquires a reader lock + + + + blocks if a different thread has the writer + lock, or if at least one thread is waiting for the writer lock. + + + + + + Decrements the lock count + + + + decrements the lock count. When the count + reaches zero, the lock is released. + + + + + + Acquires the writer lock + + + + This method blocks if another thread has a reader lock or writer lock. + + + + + + Decrements the lock count on the writer lock + + + + ReleaseWriterLock decrements the writer lock count. + When the count reaches zero, the writer lock is released. + + + + + + A that can be and reused + + + + A that can be and reused. + This uses a single buffer for string operations. + + + Nicko Cadell + + + + Create an instance of + + the format provider to use + + + Create an instance of + + + + + + Override Dispose to prevent closing of writer + + flag + + + Override Dispose to prevent closing of writer + + + + + + Reset this string writer so that it can be reused. + + the maximum buffer capacity before it is trimmed + the default size to make the buffer + + + Reset this string writer so that it can be reused. + The internal buffers are cleared and reset. + + + + + + Utility class for system specific information. + + + + Utility class of static methods for system specific information. + + + Nicko Cadell + Gert Driesen + Alexey Solofnenko + + + + Private constructor to prevent instances. + + + + Only static methods are exposed from this type. + + + + + + Initialize default values for private static fields. + + + + Only static methods are exposed from this type. + + + + + + Gets the assembly location path for the specified assembly. + + The assembly to get the location for. + The location of the assembly. + + + This method does not guarantee to return the correct path + to the assembly. If only tries to give an indication as to + where the assembly was loaded from. + + + + + + Gets the fully qualified name of the , including + the name of the assembly from which the was + loaded. + + The to get the fully qualified name for. + The fully qualified name for the . + + + This is equivalent to the Type.AssemblyQualifiedName property, + but this method works on the .NET Compact Framework 1.0 as well as + the full .NET runtime. + + + + + + Gets the short name of the . + + The to get the name for. + The short name of the . + + + The short name of the assembly is the + without the version, culture, or public key. i.e. it is just the + assembly's file name without the extension. + + + Use this rather than Assembly.GetName().Name because that + is not available on the Compact Framework. + + + Because of a FileIOPermission security demand we cannot do + the obvious Assembly.GetName().Name. We are allowed to get + the of the assembly so we + start from there and strip out just the assembly name. + + + + + + Gets the file name portion of the , including the extension. + + The to get the file name for. + The file name of the assembly. + + + Gets the file name portion of the , including the extension. + + + + + + Loads the type specified in the type string. + + A sibling type to use to load the type. + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified, it will be loaded from the assembly + containing the specified relative type. If the type is not found in the assembly + then all the loaded assemblies will be searched for the type. + + + + + + Loads the type specified in the type string. + + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified it will be loaded from the + assembly that is directly calling this method. If the type is not found + in the assembly then all the loaded assemblies will be searched for the type. + + + + + + Loads the type specified in the type string. + + An assembly to load the type from. + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified it will be loaded from the specified + assembly. If the type is not found in the assembly then all the loaded assemblies + will be searched for the type. + + + + + + Generate a new guid + + A new Guid + + + Generate a new guid + + + + + + Create an + + The name of the parameter that caused the exception + The value of the argument that causes this exception + The message that describes the error + the ArgumentOutOfRangeException object + + + Create a new instance of the class + with a specified error message, the parameter name, and the value + of the argument. + + + The Compact Framework does not support the 3 parameter constructor for the + type. This method provides an + implementation that works for all platforms. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Lookup an application setting + + the application settings key to lookup + the value for the key, or null + + + Configuration APIs are not supported under the Compact Framework + + + + + + Convert a path into a fully qualified local file path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + The path specified must be a local file path, a URI is not supported. + + + + + + Creates a new case-insensitive instance of the class with the default initial capacity. + + A new case-insensitive instance of the class with the default initial capacity + + + The new Hashtable instance uses the default load factor, the CaseInsensitiveHashCodeProvider, and the CaseInsensitiveComparer. + + + + + + Tests two strings for equality, the ignoring case. + + + If the platform permits, culture information is ignored completely (ordinal comparison). + The aim of this method is to provide a fast comparison that deals with null and ignores different casing. + It is not supposed to deal with various, culture-specific habits. + Use it to compare against pure ASCII constants, like keywords etc. + + The one string. + The other string. + true if the strings are equal, false otherwise. + + + + Gets an empty array of types. + + + + The Type.EmptyTypes field is not available on + the .NET Compact Framework 1.0. + + + + + + The fully qualified type of the SystemInfo class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Cache the host name for the current machine + + + + + Cache the application friendly name + + + + + Text to output when a null is encountered. + + + + + Text to output when an unsupported feature is requested. + + + + + Start time for the current process. + + + + + Gets the system dependent line terminator. + + + The system dependent line terminator. + + + + Gets the system dependent line terminator. + + + + + + Gets the base directory for this . + + The base directory path for the current . + + + Gets the base directory for this . + + + The value returned may be either a local file path or a URI. + + + + + + Gets the path to the configuration file for the current . + + The path to the configuration file for the current . + + + The .NET Compact Framework 1.0 does not have a concept of a configuration + file. For this runtime, we use the entry assembly location as the root for + the configuration file name. + + + The value returned may be either a local file path or a URI. + + + + + + Gets the path to the file that first executed in the current . + + The path to the entry assembly. + + + Gets the path to the file that first executed in the current . + + + + + + Gets the ID of the current thread. + + The ID of the current thread. + + + On the .NET framework, the AppDomain.GetCurrentThreadId method + is used to obtain the thread ID for the current thread. This is the + operating system ID for the thread. + + + On the .NET Compact Framework 1.0 it is not possible to get the + operating system thread ID for the current thread. The native method + GetCurrentThreadId is implemented inline in a header file + and cannot be called. + + + On the .NET Framework 2.0 the Thread.ManagedThreadId is used as this + gives a stable id unrelated to the operating system thread ID which may + change if the runtime is using fibers. + + + + + + Get the host name or machine name for the current machine + + + The hostname or machine name + + + + Get the host name or machine name for the current machine + + + The host name () or + the machine name (Environment.MachineName) for + the current machine, or if neither of these are available + then NOT AVAILABLE is returned. + + + + + + Get this application's friendly name + + + The friendly name of this application as a string + + + + If available the name of the application is retrieved from + the AppDomain using AppDomain.CurrentDomain.FriendlyName. + + + Otherwise the file name of the entry assembly is used. + + + + + + Get the start time for the current process. + + + + This is the time at which the log4net library was loaded into the + AppDomain. Due to reports of a hang in the call to System.Diagnostics.Process.StartTime + this is not the start time for the current process. + + + The log4net library should be loaded by an application early during its + startup, therefore this start time should be a good approximation for + the actual start time. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating, however this start time + will be set per AppDomain. + + + + + + Get the UTC start time for the current process. + + + + This is the UTC time at which the log4net library was loaded into the + AppDomain. Due to reports of a hang in the call to System.Diagnostics.Process.StartTime + this is not the start time for the current process. + + + The log4net library should be loaded by an application early during its + startup, therefore this start time should be a good approximation for + the actual start time. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating, however this start time + will be set per AppDomain. + + + + + + Text to output when a null is encountered. + + + + Use this value to indicate a null has been encountered while + outputting a string representation of an item. + + + The default value is (null). This value can be overridden by specifying + a value for the log4net.NullText appSetting in the application's + .config file. + + + + + + Text to output when an unsupported feature is requested. + + + + Use this value when an unsupported feature is requested. + + + The default value is NOT AVAILABLE. This value can be overridden by specifying + a value for the log4net.NotAvailableText appSetting in the application's + .config file. + + + + + + Utility class that represents a format string. + + + + Utility class that represents a format string. + + + Nicko Cadell + + + + Initialise the + + An that supplies culture-specific formatting information. + A containing zero or more format items. + An array containing zero or more objects to format. + + + + Format the string and arguments + + the formatted string + + + + Replaces the format item in a specified with the text equivalent + of the value of a corresponding instance in a specified array. + A specified parameter supplies culture-specific formatting information. + + An that supplies culture-specific formatting information. + A containing zero or more format items. + An array containing zero or more objects to format. + + A copy of format in which the format items have been replaced by the + equivalent of the corresponding instances of in args. + + + + This method does not throw exceptions. If an exception thrown while formatting the result the + exception and arguments are returned in the result string. + + + + + + Process an error during StringFormat + + + + + Dump the contents of an array into a string builder + + + + + Dump an object to a string + + + + + The fully qualified type of the SystemStringFormat class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Implementation of Properties collection for the + + + + Class implements a collection of properties that is specific to each thread. + The class is not synchronized as each thread has its own . + + + Nicko Cadell + + + + Each thread will automatically have its instance. + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Remove a property + + the key for the entry to remove + + + Remove a property + + + + + + Get the keys stored in the properties. + + + Gets the keys stored in the properties. + + a set of the defined keys + + + + Clear all properties + + + + Clear all properties + + + + + + Get the PropertiesDictionary for this thread. + + create the dictionary if it does not exist, otherwise return null if does not exist + the properties for this thread + + + The collection returned is only to be used on the calling thread. If the + caller needs to share the collection between different threads then the + caller must clone the collection before doing so. + + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Gets or sets the value of a property + + + + + + Implementation of Stack for the + + + + Implementation of Stack for the + + + Nicko Cadell + + + + The stack store. + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Clears all the contextual information held in this stack. + + + + Clears all the contextual information held in this stack. + Only call this if you think that this tread is being reused after + a previous call execution which may not have completed correctly. + You do not need to use this method if you always guarantee to call + the method of the + returned from even in exceptional circumstances, + for example by using the using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) + syntax. + + + + + + Removes the top context from this stack. + + The message in the context that was removed from the top of this stack. + + + Remove the top context from this stack, and return + it to the caller. If this stack is empty then an + empty string (not ) is returned. + + + + + + Pushes a new context message into this stack. + + The new context message. + + An that can be used to clean up the context stack. + + + + Pushes a new context onto this stack. An + is returned that can be used to clean up this stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) + { + log.Warn("This should have an ThreadContext Stack message"); + } + + + + + + Gets the current context information for this stack. + + The current context information. + + + + Gets the current context information for this stack. + + Gets the current context information + + + Gets the current context information for this stack. + + + + + + Get a portable version of this object + + the portable instance of this object + + + Get a cross thread portable version of this object + + + + + + The number of messages in the stack + + + The current number of messages in the stack + + + + The current number of messages in the stack. That is + the number of times has been called + minus the number of times has been called. + + + + + + Gets and sets the internal stack used by this + + The internal storage stack + + + This property is provided only to support backward compatability + of the . Tytpically the internal stack should not + be modified. + + + + + + Inner class used to represent a single context frame in the stack. + + + + Inner class used to represent a single context frame in the stack. + + + + + + Constructor + + The message for this context. + The parent context in the chain. + + + Initializes a new instance of the class + with the specified message and parent context. + + + + + + Get the message. + + The message. + + + Get the message. + + + + + + Gets the full text of the context down to the root level. + + + The full text of the context down to the root level. + + + + Gets the full text of the context down to the root level. + + + + + + Struct returned from the method. + + + + This struct implements the and is designed to be used + with the pattern to remove the stack frame at the end of the scope. + + + + + + The ThreadContextStack internal stack + + + + + The depth to trim the stack to when this instance is disposed + + + + + Constructor + + The internal stack used by the ThreadContextStack. + The depth to return the stack to when this object is disposed. + + + Initializes a new instance of the class with + the specified stack and return depth. + + + + + + Returns the stack to the correct depth. + + + + Returns the stack to the correct depth. + + + + + + Implementation of Stacks collection for the + + + + Implementation of Stacks collection for the + + + Nicko Cadell + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + The fully qualified type of the ThreadContextStacks class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the named thread context stack + + + The named stack + + + + Gets the named thread context stack + + + + + + Utility class for transforming strings. + + + + Utility class for transforming strings. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Write a string to an + + the writer to write to + the string to write + The string to replace non XML compliant chars with + + + The test is escaped either using XML escape entities + or using CDATA sections. + + + + + + Replace invalid XML characters in text string + + the XML text input string + the string to use in place of invalid characters + A string that does not contain invalid XML characters. + + + Certain Unicode code points are not allowed in the XML InfoSet, for + details see: http://www.w3.org/TR/REC-xml/#charsets. + + + This method replaces any illegal characters in the input string + with the mask string specified. + + + + + + Count the number of times that the substring occurs in the text + + the text to search + the substring to find + the number of times the substring occurs in the text + + + The substring is assumed to be non repeating within itself. + + + + + + Characters illegal in XML 1.0 + + + + + Impersonate a Windows Account + + + + This impersonates a Windows account. + + + How the impersonation is done depends on the value of . + This allows the context to either impersonate a set of user credentials specified + using username, domain name and password or to revert to the process credentials. + + + + + + Default constructor + + + + Default constructor + + + + + + Initialize the SecurityContext based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The security context will try to Logon the specified user account and + capture a primary token for impersonation. + + + The required , + or properties were not specified. + + + + Impersonate the Windows account specified by the and properties. + + caller provided state + + An instance that will revoke the impersonation of this SecurityContext + + + + Depending on the property either + impersonate a user using credentials supplied or revert + to the process credentials. + + + + + + Create a given the userName, domainName and password. + + the user name + the domain name + the password + the for the account specified + + + Uses the Windows API call LogonUser to get a principal token for the account. This + token is used to initialize the WindowsIdentity. + + + + + + Gets or sets the impersonation mode for this security context + + + The impersonation mode for this security context + + + + Impersonate either a user with user credentials or + revert this thread to the credentials of the process. + The value is one of the + enum. + + + The default value is + + + When the mode is set to + the user's credentials are established using the + , and + values. + + + When the mode is set to + no other properties need to be set. If the calling thread is + impersonating then it will be reverted back to the process credentials. + + + + + + Gets or sets the Windows username for this security context + + + The Windows username for this security context + + + + This property must be set if + is set to (the default setting). + + + + + + Gets or sets the Windows domain name for this security context + + + The Windows domain name for this security context + + + + The default value for is the local machine name + taken from the property. + + + This property must be set if + is set to (the default setting). + + + + + + Sets the password for the Windows account specified by the and properties. + + + The password for the Windows account specified by the and properties. + + + + This property must be set if + is set to (the default setting). + + + + + + The impersonation modes for the + + + + See the property for + details. + + + + + + Impersonate a user using the credentials supplied + + + + + Revert this the thread to the credentials of the process + + + + + Adds to + + + + Helper class to expose the + through the interface. + + + + + + Constructor + + the impersonation context being wrapped + + + Constructor + + + + + + Revert the impersonation + + + + Revert the impersonation + + + + + + The log4net Global Context. + + + + The GlobalContext provides a location for global debugging + information to be stored. + + + The global context has a properties map and these properties can + be included in the output of log messages. The + supports selecting and outputing these properties. + + + By default the log4net:HostName property is set to the name of + the current machine. + + + + + GlobalContext.Properties["hostname"] = Environment.MachineName; + + + + Nicko Cadell + + + + Private Constructor. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + The global context properties instance + + + + + The global properties map. + + + The global properties map. + + + + The global properties map. + + + + + + Provides information about the environment the assembly has + been built for. + + + + Version of the assembly + + + Version of the framework targeted + + + Type of framework targeted + + + Does it target a client profile? + + + + Identifies the version and target for this assembly. + + + + + The log4net Logical Thread Context. + + + + The LogicalThreadContext provides a location for specific debugging + information to be stored. + The LogicalThreadContext properties override any or + properties with the same name. + + + For .NET Standard 1.3 this class uses + System.Threading.AsyncLocal rather than . + + + The Logical Thread Context has a properties map and a stack. + The properties and stack can + be included in the output of log messages. The + supports selecting and outputting these properties. + + + The Logical Thread Context provides a diagnostic context for the current call context. + This is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The Logical Thread Context is managed on a per basis. + + + The requires a link time + for the + . + If the calling code does not have this permission then this context will be disabled. + It will not store any property values set on it. + + + Example of using the thread context properties to store a username. + + LogicalThreadContext.Properties["user"] = userName; + log.Info("This log message has a LogicalThreadContext Property called 'user'"); + + + Example of how to push a message into the context stack + + using(LogicalThreadContext.Stacks["LDC"].Push("my context message")) + { + log.Info("This log message has a LogicalThreadContext Stack message that includes 'my context message'"); + + } // at the end of the using block the message is automatically popped + + + + Nicko Cadell + + + + Private Constructor. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + The thread context properties instance + + + + + The thread context stacks instance + + + + + The thread properties map + + + The thread properties map + + + + The LogicalThreadContext properties override any + or properties with the same name. + + + + + + The thread stacks + + + stack map + + + + The logical thread stacks. + + + + + + This class is used by client applications to request logger instances. + + + + This class has static methods that are used by a client to request + a logger instance. The method is + used to retrieve a logger. + + + See the interface for more details. + + + Simple example of logging messages + + ILog log = LogManager.GetLogger("application-log"); + + log.Info("Application Start"); + log.Debug("This is a debug message"); + + if (log.IsDebugEnabled) + { + log.Debug("This is another debug message"); + } + + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + Returns the named logger if it exists. + + Returns the named logger if it exists. + + + + If the named logger exists (in the default repository) then it + returns a reference to the logger, otherwise it returns null. + + + The fully qualified logger name to look for. + The logger found, or null if no logger could be found. + + + Get the currently defined loggers. + + Returns all the currently defined loggers in the default repository. + + + The root logger is not included in the returned array. + + All the defined loggers. + + + Get or create a logger. + + Retrieves or creates a named logger. + + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The name of the logger to retrieve. + The logger with the name specified. + + + + Returns the named logger if it exists. + + + + If the named logger exists (in the specified repository) then it + returns a reference to the logger, otherwise it returns + null. + + + The repository to lookup in. + The fully qualified logger name to look for. + + The logger found, or null if the logger doesn't exist in the specified + repository. + + + + + Returns the named logger if it exists. + + + + If the named logger exists (in the repository for the specified assembly) then it + returns a reference to the logger, otherwise it returns + null. + + + The assembly to use to lookup the repository. + The fully qualified logger name to look for. + + The logger, or null if the logger doesn't exist in the specified + assembly's repository. + + + + + Returns all the currently defined loggers in the specified repository. + + The repository to lookup in. + + The root logger is not included in the returned array. + + All the defined loggers. + + + + Returns all the currently defined loggers in the specified assembly's repository. + + The assembly to use to lookup the repository. + + The root logger is not included in the returned array. + + All the defined loggers. + + + + Retrieves or creates a named logger. + + + + Retrieve a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The repository to lookup in. + The name of the logger to retrieve. + The logger with the name specified. + + + + Retrieves or creates a named logger. + + + + Retrieve a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The assembly to use to lookup the repository. + The name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Get the logger for the fully qualified name of the type specified. + + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Gets the logger for the fully qualified name of the type specified. + + The repository to lookup in. + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Gets the logger for the fully qualified name of the type specified. + + The assembly to use to lookup the repository. + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shuts down the log4net system. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in all the + default repositories. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + Shutdown a logger repository. + + Shuts down the default repository. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + default repository. + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + The repository to shutdown. + + + + Shuts down the repository specified. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository. The repository is looked up using + the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + The assembly to use to lookup the repository. + + + Reset the configuration of a repository + + Resets all values contained in this repository instance to their defaults. + + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + + + + Resets all values contained in this repository instance to their defaults. + + + + Reset all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + The repository to reset. + + + + Resets all values contained in this repository instance to their defaults. + + + + Reset all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + The assembly to use to lookup the repository to reset. + + + Get the logger repository. + + Returns the default instance. + + + + Gets the for the repository specified + by the callers assembly (). + + + The instance for the default repository. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The repository to lookup in. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The assembly to use to lookup the repository. + + + Get a logger repository. + + Returns the default instance. + + + + Gets the for the repository specified + by the callers assembly (). + + + The instance for the default repository. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The repository to lookup in. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The assembly to use to lookup the repository. + + + Create a domain + + Creates a repository with the specified repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to will return + the same repository instance. + + + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + Create a logger repository. + + Creates a repository with the specified repository type. + + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The created will be associated with the repository + specified such that a call to will return + the same repository instance. + + + + + + Creates a repository with the specified name. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name. + + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + The specified repository already exists. + + + + Creates a repository for the specified assembly and repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + + Creates a repository for the specified assembly and repository type. + + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + + Gets the list of currently defined repositories. + + + + Get an array of all the objects that have been created. + + + An array of all the known objects. + + + + Flushes logging events buffered in all configured appenders in the default repository. + + The maximum time in milliseconds to wait for logging events from asycnhronous appenders to be flushed. + True if all logging events were flushed successfully, else false. + + + + Looks up the wrapper object for the logger specified. + + The logger to get the wrapper for. + The wrapper for the logger specified. + + + + Looks up the wrapper objects for the loggers specified. + + The loggers to get the wrappers for. + The wrapper objects for the loggers specified. + + + + Create the objects used by + this manager. + + The logger to wrap. + The wrapper for the logger specified. + + + + The wrapper map to use to hold the objects. + + + + + Implementation of Mapped Diagnostic Contexts. + + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + The MDC class is similar to the class except that it is + based on a map instead of a stack. It provides mapped + diagnostic contexts. A Mapped Diagnostic Context, or + MDC in short, is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The MDC is managed on a per thread basis. + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + Gets the context value identified by the parameter. + + The key to lookup in the MDC. + The string value held for the key, or a null reference if no corresponding value is found. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + If the parameter does not look up to a + previously defined context then null will be returned. + + + + + + Add an entry to the MDC + + The key to store the value under. + The value to store. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Puts a context value (the parameter) as identified + with the parameter into the current thread's + context map. + + + If a value is already defined for the + specified then the value will be replaced. If the + is specified as null then the key value mapping will be removed. + + + + + + Removes the key value mapping for the key specified. + + The key to remove. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Remove the specified entry from this thread's MDC + + + + + + Clear all entries in the MDC + + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Remove all the entries from this thread's MDC + + + + + + Implementation of Nested Diagnostic Contexts. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + A Nested Diagnostic Context, or NDC in short, is an instrument + to distinguish interleaved log output from different sources. Log + output is typically interleaved when a server handles multiple + clients near-simultaneously. + + + Interleaved log output can still be meaningful if each log entry + from different contexts had a distinctive stamp. This is where NDCs + come into play. + + + Note that NDCs are managed on a per thread basis. The NDC class + is made up of static methods that operate on the context of the + calling thread. + + + How to push a message into the context + + using(NDC.Push("my context message")) + { + ... all log calls will have 'my context message' included ... + + } // at the end of the using block the message is automatically removed + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + Clears all the contextual information held on the current thread. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Clears the stack of NDC data held on the current thread. + + + + + + Creates a clone of the stack of context information. + + A clone of the context info for this thread. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + The results of this method can be passed to the + method to allow child threads to inherit the context of their + parent thread. + + + + + + Inherits the contextual information from another thread. + + The context stack to inherit. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + This thread will use the context information from the stack + supplied. This can be used to initialize child threads with + the same contextual information as their parent threads. These + contexts will NOT be shared. Any further contexts that + are pushed onto the stack will not be visible to the other. + Call to obtain a stack to pass to + this method. + + + + + + Removes the top context from the stack. + + + The message in the context that was removed from the top + of the stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Remove the top context from the stack, and return + it to the caller. If the stack is empty then an + empty string (not null) is returned. + + + + + + Pushes a new context message. + + The new context message. + + An that can be used to clean up + the context stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Pushes a new context onto the context stack. An + is returned that can be used to clean up the context stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.NDC.Push("NDC_Message")) + { + log.Warn("This should have an NDC message"); + } + + + + + + Pushes a new context message. + + The new context message string format. + Arguments to be passed into messageFormat. + + An that can be used to clean up + the context stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Pushes a new context onto the context stack. An + is returned that can be used to clean up the context stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + var someValue = "ExampleContext" + using(log4net.NDC.PushFormat("NDC_Message {0}", someValue)) + { + log.Warn("This should have an NDC message"); + } + + + + + + Removes the context information for this thread. It is + not required to call this method. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + This method is not implemented. + + + + + + Forces the stack depth to be at most . + + The maximum depth of the stack + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Forces the stack depth to be at most . + This may truncate the head of the stack. This only affects the + stack in the current thread. Also it does not prevent it from + growing, it only sets the maximum depth at the time of the + call. This can be used to return to a known context depth. + + + + + + Gets the current context depth. + + The current context depth. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + The number of context values pushed onto the context stack. + + + Used to record the current depth of the context. This can then + be restored using the method. + + + + + + + The log4net Thread Context. + + + + The ThreadContext provides a location for thread specific debugging + information to be stored. + The ThreadContext properties override any + properties with the same name. + + + The thread context has a properties map and a stack. + The properties and stack can + be included in the output of log messages. The + supports selecting and outputting these properties. + + + The Thread Context provides a diagnostic context for the current thread. + This is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The Thread Context is managed on a per thread basis. + + + Example of using the thread context properties to store a username. + + ThreadContext.Properties["user"] = userName; + log.Info("This log message has a ThreadContext Property called 'user'"); + + + Example of how to push a message into the context stack + + using(ThreadContext.Stacks["NDC"].Push("my context message")) + { + log.Info("This log message has a ThreadContext Stack message that includes 'my context message'"); + + } // at the end of the using block the message is automatically popped + + + + Nicko Cadell + + + + Private Constructor. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + The thread context properties instance + + + + + The thread context stacks instance + + + + + The thread properties map + + + The thread properties map + + + + The ThreadContext properties override any + properties with the same name. + + + + + + The thread stacks + + + stack map + + + + The thread local stacks. + + + + + diff --git a/bin/Release/zh-Hans/Microsoft.Expression.Interactions.resources.dll b/bin/Release/zh-Hans/Microsoft.Expression.Interactions.resources.dll new file mode 100644 index 0000000..7ebf073 Binary files /dev/null and b/bin/Release/zh-Hans/Microsoft.Expression.Interactions.resources.dll differ diff --git a/bin/Release/zh-Hans/System.Windows.Interactivity.resources.dll b/bin/Release/zh-Hans/System.Windows.Interactivity.resources.dll new file mode 100644 index 0000000..3f37822 Binary files /dev/null and b/bin/Release/zh-Hans/System.Windows.Interactivity.resources.dll differ diff --git a/bin/Release/zh-Hant/Microsoft.Expression.Interactions.resources.dll b/bin/Release/zh-Hant/Microsoft.Expression.Interactions.resources.dll new file mode 100644 index 0000000..e436c01 Binary files /dev/null and b/bin/Release/zh-Hant/Microsoft.Expression.Interactions.resources.dll differ diff --git a/bin/Release/zh-Hant/System.Windows.Interactivity.resources.dll b/bin/Release/zh-Hant/System.Windows.Interactivity.resources.dll new file mode 100644 index 0000000..3ad989e Binary files /dev/null and b/bin/Release/zh-Hant/System.Windows.Interactivity.resources.dll differ diff --git a/obj/Debug/About.baml b/obj/Debug/About.baml new file mode 100644 index 0000000..cb8def7 Binary files /dev/null and b/obj/Debug/About.baml differ diff --git a/obj/Debug/About.g.cs b/obj/Debug/About.g.cs new file mode 100644 index 0000000..e43cbce --- /dev/null +++ b/obj/Debug/About.g.cs @@ -0,0 +1,193 @@ +#pragma checksum "..\..\About.xaml" "{406ea660-64cf-4c82-b6f0-42d48172a799}" "DC63D37AD819FC33C7090B1900A2CB02" +//------------------------------------------------------------------------------ +// +// Ce code a été généré par un outil. +// Version du runtime :4.0.30319.42000 +// +// Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si +// le code est régénéré. +// +//------------------------------------------------------------------------------ + +using Microsoft.Expression.Media.Effects; +using System; +using System.Diagnostics; +using System.Windows; +using System.Windows.Automation; +using System.Windows.Controls; +using System.Windows.Controls.Primitives; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Ink; +using System.Windows.Input; +using System.Windows.Markup; +using System.Windows.Media; +using System.Windows.Media.Animation; +using System.Windows.Media.Effects; +using System.Windows.Media.Imaging; +using System.Windows.Media.Media3D; +using System.Windows.Media.TextFormatting; +using System.Windows.Navigation; +using System.Windows.Shapes; +using System.Windows.Shell; + + +namespace LogViewer { + + + /// + /// About + /// + public partial class About : System.Windows.Window, System.Windows.Markup.IComponentConnector { + + + #line 59 "..\..\About.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.StackPanel stackPanel; + + #line default + #line hidden + + + #line 64 "..\..\About.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label LabelAssemblyName; + + #line default + #line hidden + + + #line 70 "..\..\About.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label LabelAssemblyVersion; + + #line default + #line hidden + + + #line 77 "..\..\About.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label LabelAssembly; + + #line default + #line hidden + + + #line 79 "..\..\About.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label label; + + #line default + #line hidden + + + #line 82 "..\..\About.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.RichTextBox RichTextBox1; + + #line default + #line hidden + + + #line 131 "..\..\About.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Button ButtonOk; + + #line default + #line hidden + + private bool _contentLoaded; + + /// + /// InitializeComponent + /// + [System.Diagnostics.DebuggerNonUserCodeAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")] + public void InitializeComponent() { + if (_contentLoaded) { + return; + } + _contentLoaded = true; + System.Uri resourceLocater = new System.Uri("/LogViewer;component/about.xaml", System.UriKind.Relative); + + #line 1 "..\..\About.xaml" + System.Windows.Application.LoadComponent(this, resourceLocater); + + #line default + #line hidden + } + + [System.Diagnostics.DebuggerNonUserCodeAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")] + void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) { + switch (connectionId) + { + case 1: + + #line 8 "..\..\About.xaml" + ((LogViewer.About)(target)).Loaded += new System.Windows.RoutedEventHandler(this.window_Loaded); + + #line default + #line hidden + return; + case 2: + this.stackPanel = ((System.Windows.Controls.StackPanel)(target)); + return; + case 3: + this.LabelAssemblyName = ((System.Windows.Controls.Label)(target)); + return; + case 4: + this.LabelAssemblyVersion = ((System.Windows.Controls.Label)(target)); + return; + case 5: + this.LabelAssembly = ((System.Windows.Controls.Label)(target)); + return; + case 6: + this.label = ((System.Windows.Controls.Label)(target)); + return; + case 7: + this.RichTextBox1 = ((System.Windows.Controls.RichTextBox)(target)); + return; + case 8: + this.ButtonOk = ((System.Windows.Controls.Button)(target)); + + #line 131 "..\..\About.xaml" + this.ButtonOk.Click += new System.Windows.RoutedEventHandler(this.buttonOK_Click); + + #line default + #line hidden + return; + case 9: + + #line 132 "..\..\About.xaml" + ((System.Windows.Documents.Hyperlink)(target)).RequestNavigate += new System.Windows.Navigation.RequestNavigateEventHandler(this.hyperlink_RequestNavigate); + + #line default + #line hidden + return; + case 10: + + #line 133 "..\..\About.xaml" + ((System.Windows.Documents.Hyperlink)(target)).RequestNavigate += new System.Windows.Navigation.RequestNavigateEventHandler(this.hyperlink_RequestNavigate); + + #line default + #line hidden + return; + case 11: + + #line 134 "..\..\About.xaml" + ((System.Windows.Documents.Hyperlink)(target)).RequestNavigate += new System.Windows.Navigation.RequestNavigateEventHandler(this.hyperlink_RequestNavigate); + + #line default + #line hidden + return; + } + this._contentLoaded = true; + } + } +} + diff --git a/obj/Debug/About.g.i.cs b/obj/Debug/About.g.i.cs new file mode 100644 index 0000000..e43cbce --- /dev/null +++ b/obj/Debug/About.g.i.cs @@ -0,0 +1,193 @@ +#pragma checksum "..\..\About.xaml" "{406ea660-64cf-4c82-b6f0-42d48172a799}" "DC63D37AD819FC33C7090B1900A2CB02" +//------------------------------------------------------------------------------ +// +// Ce code a été généré par un outil. +// Version du runtime :4.0.30319.42000 +// +// Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si +// le code est régénéré. +// +//------------------------------------------------------------------------------ + +using Microsoft.Expression.Media.Effects; +using System; +using System.Diagnostics; +using System.Windows; +using System.Windows.Automation; +using System.Windows.Controls; +using System.Windows.Controls.Primitives; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Ink; +using System.Windows.Input; +using System.Windows.Markup; +using System.Windows.Media; +using System.Windows.Media.Animation; +using System.Windows.Media.Effects; +using System.Windows.Media.Imaging; +using System.Windows.Media.Media3D; +using System.Windows.Media.TextFormatting; +using System.Windows.Navigation; +using System.Windows.Shapes; +using System.Windows.Shell; + + +namespace LogViewer { + + + /// + /// About + /// + public partial class About : System.Windows.Window, System.Windows.Markup.IComponentConnector { + + + #line 59 "..\..\About.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.StackPanel stackPanel; + + #line default + #line hidden + + + #line 64 "..\..\About.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label LabelAssemblyName; + + #line default + #line hidden + + + #line 70 "..\..\About.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label LabelAssemblyVersion; + + #line default + #line hidden + + + #line 77 "..\..\About.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label LabelAssembly; + + #line default + #line hidden + + + #line 79 "..\..\About.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label label; + + #line default + #line hidden + + + #line 82 "..\..\About.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.RichTextBox RichTextBox1; + + #line default + #line hidden + + + #line 131 "..\..\About.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Button ButtonOk; + + #line default + #line hidden + + private bool _contentLoaded; + + /// + /// InitializeComponent + /// + [System.Diagnostics.DebuggerNonUserCodeAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")] + public void InitializeComponent() { + if (_contentLoaded) { + return; + } + _contentLoaded = true; + System.Uri resourceLocater = new System.Uri("/LogViewer;component/about.xaml", System.UriKind.Relative); + + #line 1 "..\..\About.xaml" + System.Windows.Application.LoadComponent(this, resourceLocater); + + #line default + #line hidden + } + + [System.Diagnostics.DebuggerNonUserCodeAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")] + void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) { + switch (connectionId) + { + case 1: + + #line 8 "..\..\About.xaml" + ((LogViewer.About)(target)).Loaded += new System.Windows.RoutedEventHandler(this.window_Loaded); + + #line default + #line hidden + return; + case 2: + this.stackPanel = ((System.Windows.Controls.StackPanel)(target)); + return; + case 3: + this.LabelAssemblyName = ((System.Windows.Controls.Label)(target)); + return; + case 4: + this.LabelAssemblyVersion = ((System.Windows.Controls.Label)(target)); + return; + case 5: + this.LabelAssembly = ((System.Windows.Controls.Label)(target)); + return; + case 6: + this.label = ((System.Windows.Controls.Label)(target)); + return; + case 7: + this.RichTextBox1 = ((System.Windows.Controls.RichTextBox)(target)); + return; + case 8: + this.ButtonOk = ((System.Windows.Controls.Button)(target)); + + #line 131 "..\..\About.xaml" + this.ButtonOk.Click += new System.Windows.RoutedEventHandler(this.buttonOK_Click); + + #line default + #line hidden + return; + case 9: + + #line 132 "..\..\About.xaml" + ((System.Windows.Documents.Hyperlink)(target)).RequestNavigate += new System.Windows.Navigation.RequestNavigateEventHandler(this.hyperlink_RequestNavigate); + + #line default + #line hidden + return; + case 10: + + #line 133 "..\..\About.xaml" + ((System.Windows.Documents.Hyperlink)(target)).RequestNavigate += new System.Windows.Navigation.RequestNavigateEventHandler(this.hyperlink_RequestNavigate); + + #line default + #line hidden + return; + case 11: + + #line 134 "..\..\About.xaml" + ((System.Windows.Documents.Hyperlink)(target)).RequestNavigate += new System.Windows.Navigation.RequestNavigateEventHandler(this.hyperlink_RequestNavigate); + + #line default + #line hidden + return; + } + this._contentLoaded = true; + } + } +} + diff --git a/obj/Debug/App.g.cs b/obj/Debug/App.g.cs new file mode 100644 index 0000000..f3dec87 --- /dev/null +++ b/obj/Debug/App.g.cs @@ -0,0 +1,69 @@ +#pragma checksum "..\..\App.xaml" "{406ea660-64cf-4c82-b6f0-42d48172a799}" "EA2C0E376D8ECAA59354CBFAE19DD05F" +//------------------------------------------------------------------------------ +// +// Ce code a été généré par un outil. +// Version du runtime :4.0.30319.42000 +// +// Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si +// le code est régénéré. +// +//------------------------------------------------------------------------------ + +using System; +using System.Diagnostics; +using System.Windows; +using System.Windows.Automation; +using System.Windows.Controls; +using System.Windows.Controls.Primitives; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Ink; +using System.Windows.Input; +using System.Windows.Markup; +using System.Windows.Media; +using System.Windows.Media.Animation; +using System.Windows.Media.Effects; +using System.Windows.Media.Imaging; +using System.Windows.Media.Media3D; +using System.Windows.Media.TextFormatting; +using System.Windows.Navigation; +using System.Windows.Shapes; +using System.Windows.Shell; + + +namespace LogViewer { + + + /// + /// App + /// + public partial class App : System.Windows.Application { + + /// + /// InitializeComponent + /// + [System.Diagnostics.DebuggerNonUserCodeAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")] + public void InitializeComponent() { + + #line 4 "..\..\App.xaml" + this.StartupUri = new System.Uri("MainWindow.xaml", System.UriKind.Relative); + + #line default + #line hidden + } + + /// + /// Application Entry Point. + /// + [System.STAThreadAttribute()] + [System.Diagnostics.DebuggerNonUserCodeAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")] + public static void Main() { + LogViewer.App app = new LogViewer.App(); + app.InitializeComponent(); + app.Run(); + } + } +} + diff --git a/obj/Debug/App.g.i.cs b/obj/Debug/App.g.i.cs new file mode 100644 index 0000000..f3dec87 --- /dev/null +++ b/obj/Debug/App.g.i.cs @@ -0,0 +1,69 @@ +#pragma checksum "..\..\App.xaml" "{406ea660-64cf-4c82-b6f0-42d48172a799}" "EA2C0E376D8ECAA59354CBFAE19DD05F" +//------------------------------------------------------------------------------ +// +// Ce code a été généré par un outil. +// Version du runtime :4.0.30319.42000 +// +// Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si +// le code est régénéré. +// +//------------------------------------------------------------------------------ + +using System; +using System.Diagnostics; +using System.Windows; +using System.Windows.Automation; +using System.Windows.Controls; +using System.Windows.Controls.Primitives; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Ink; +using System.Windows.Input; +using System.Windows.Markup; +using System.Windows.Media; +using System.Windows.Media.Animation; +using System.Windows.Media.Effects; +using System.Windows.Media.Imaging; +using System.Windows.Media.Media3D; +using System.Windows.Media.TextFormatting; +using System.Windows.Navigation; +using System.Windows.Shapes; +using System.Windows.Shell; + + +namespace LogViewer { + + + /// + /// App + /// + public partial class App : System.Windows.Application { + + /// + /// InitializeComponent + /// + [System.Diagnostics.DebuggerNonUserCodeAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")] + public void InitializeComponent() { + + #line 4 "..\..\App.xaml" + this.StartupUri = new System.Uri("MainWindow.xaml", System.UriKind.Relative); + + #line default + #line hidden + } + + /// + /// Application Entry Point. + /// + [System.STAThreadAttribute()] + [System.Diagnostics.DebuggerNonUserCodeAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")] + public static void Main() { + LogViewer.App app = new LogViewer.App(); + app.InitializeComponent(); + app.Run(); + } + } +} + diff --git a/obj/Debug/CoreCompileInputs.cache b/obj/Debug/CoreCompileInputs.cache new file mode 100644 index 0000000..7760c0f --- /dev/null +++ b/obj/Debug/CoreCompileInputs.cache @@ -0,0 +1 @@ +d9aaf3c9ec62f13780d48ab0fa75320500d85c25 diff --git a/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache new file mode 100644 index 0000000..7304dc5 Binary files /dev/null and b/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ diff --git a/obj/Debug/Filter.baml b/obj/Debug/Filter.baml new file mode 100644 index 0000000..c155bef Binary files /dev/null and b/obj/Debug/Filter.baml differ diff --git a/obj/Debug/Filter.g.cs b/obj/Debug/Filter.g.cs new file mode 100644 index 0000000..19db410 --- /dev/null +++ b/obj/Debug/Filter.g.cs @@ -0,0 +1,315 @@ +#pragma checksum "..\..\Filter.xaml" "{406ea660-64cf-4c82-b6f0-42d48172a799}" "E1228C874C7BD1F5F433E24ECBAF3E7D" +//------------------------------------------------------------------------------ +// +// Ce code a été généré par un outil. +// Version du runtime :4.0.30319.42000 +// +// Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si +// le code est régénéré. +// +//------------------------------------------------------------------------------ + +using System; +using System.Diagnostics; +using System.Windows; +using System.Windows.Automation; +using System.Windows.Controls; +using System.Windows.Controls.Primitives; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Ink; +using System.Windows.Input; +using System.Windows.Markup; +using System.Windows.Media; +using System.Windows.Media.Animation; +using System.Windows.Media.Effects; +using System.Windows.Media.Imaging; +using System.Windows.Media.Media3D; +using System.Windows.Media.TextFormatting; +using System.Windows.Navigation; +using System.Windows.Shapes; +using System.Windows.Shell; + + +namespace LogViewer { + + + /// + /// Filter + /// + public partial class Filter : System.Windows.Window, System.Windows.Markup.IComponentConnector { + + + #line 1 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal LogViewer.Filter window; + + #line default + #line hidden + + + #line 20 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Button buttonClear; + + #line default + #line hidden + + + #line 21 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Button buttonCancel; + + #line default + #line hidden + + + #line 22 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Button buttonOK; + + #line default + #line hidden + + + #line 24 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Grid MainGrid; + + #line default + #line hidden + + + #line 51 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ComboBox comboBoxUserName; + + #line default + #line hidden + + + #line 57 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ComboBox comboBoxIdentity; + + #line default + #line hidden + + + #line 63 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ComboBox comboBoxLevel; + + #line default + #line hidden + + + #line 69 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxMessage; + + #line default + #line hidden + + + #line 75 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ComboBox comboBoxThread; + + #line default + #line hidden + + + #line 81 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ComboBox comboBoxNDC; + + #line default + #line hidden + + + #line 87 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ComboBox comboBoxMachineName; + + #line default + #line hidden + + + #line 93 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ComboBox comboBoxHostName; + + #line default + #line hidden + + + #line 99 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ComboBox comboBoxApplication; + + #line default + #line hidden + + + #line 105 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxThrowable; + + #line default + #line hidden + + + #line 111 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ComboBox comboBoxClass; + + #line default + #line hidden + + + #line 117 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ComboBox comboBoxMethod; + + #line default + #line hidden + + + #line 123 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ComboBox comboBoxFile; + + #line default + #line hidden + + + #line 129 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ComboBox comboLogFile; + + #line default + #line hidden + + + #line 135 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ComboBox comboLogger; + + #line default + #line hidden + + private bool _contentLoaded; + + /// + /// InitializeComponent + /// + [System.Diagnostics.DebuggerNonUserCodeAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")] + public void InitializeComponent() { + if (_contentLoaded) { + return; + } + _contentLoaded = true; + System.Uri resourceLocater = new System.Uri("/LogViewer;component/filter.xaml", System.UriKind.Relative); + + #line 1 "..\..\Filter.xaml" + System.Windows.Application.LoadComponent(this, resourceLocater); + + #line default + #line hidden + } + + [System.Diagnostics.DebuggerNonUserCodeAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")] + void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) { + switch (connectionId) + { + case 1: + this.window = ((LogViewer.Filter)(target)); + return; + case 2: + this.buttonClear = ((System.Windows.Controls.Button)(target)); + + #line 20 "..\..\Filter.xaml" + this.buttonClear.Click += new System.Windows.RoutedEventHandler(this.buttonClear_Click); + + #line default + #line hidden + return; + case 3: + this.buttonCancel = ((System.Windows.Controls.Button)(target)); + + #line 21 "..\..\Filter.xaml" + this.buttonCancel.Click += new System.Windows.RoutedEventHandler(this.buttonCancel_Click); + + #line default + #line hidden + return; + case 4: + this.buttonOK = ((System.Windows.Controls.Button)(target)); + + #line 22 "..\..\Filter.xaml" + this.buttonOK.Click += new System.Windows.RoutedEventHandler(this.buttonOK_Click); + + #line default + #line hidden + return; + case 5: + this.MainGrid = ((System.Windows.Controls.Grid)(target)); + return; + case 6: + this.comboBoxUserName = ((System.Windows.Controls.ComboBox)(target)); + return; + case 7: + this.comboBoxIdentity = ((System.Windows.Controls.ComboBox)(target)); + return; + case 8: + this.comboBoxLevel = ((System.Windows.Controls.ComboBox)(target)); + return; + case 9: + this.textBoxMessage = ((System.Windows.Controls.TextBox)(target)); + return; + case 10: + this.comboBoxThread = ((System.Windows.Controls.ComboBox)(target)); + return; + case 11: + this.comboBoxNDC = ((System.Windows.Controls.ComboBox)(target)); + return; + case 12: + this.comboBoxMachineName = ((System.Windows.Controls.ComboBox)(target)); + return; + case 13: + this.comboBoxHostName = ((System.Windows.Controls.ComboBox)(target)); + return; + case 14: + this.comboBoxApplication = ((System.Windows.Controls.ComboBox)(target)); + return; + case 15: + this.textBoxThrowable = ((System.Windows.Controls.TextBox)(target)); + return; + case 16: + this.comboBoxClass = ((System.Windows.Controls.ComboBox)(target)); + return; + case 17: + this.comboBoxMethod = ((System.Windows.Controls.ComboBox)(target)); + return; + case 18: + this.comboBoxFile = ((System.Windows.Controls.ComboBox)(target)); + return; + case 19: + this.comboLogFile = ((System.Windows.Controls.ComboBox)(target)); + return; + case 20: + this.comboLogger = ((System.Windows.Controls.ComboBox)(target)); + return; + } + this._contentLoaded = true; + } + } +} + diff --git a/obj/Debug/Filter.g.i.cs b/obj/Debug/Filter.g.i.cs new file mode 100644 index 0000000..19db410 --- /dev/null +++ b/obj/Debug/Filter.g.i.cs @@ -0,0 +1,315 @@ +#pragma checksum "..\..\Filter.xaml" "{406ea660-64cf-4c82-b6f0-42d48172a799}" "E1228C874C7BD1F5F433E24ECBAF3E7D" +//------------------------------------------------------------------------------ +// +// Ce code a été généré par un outil. +// Version du runtime :4.0.30319.42000 +// +// Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si +// le code est régénéré. +// +//------------------------------------------------------------------------------ + +using System; +using System.Diagnostics; +using System.Windows; +using System.Windows.Automation; +using System.Windows.Controls; +using System.Windows.Controls.Primitives; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Ink; +using System.Windows.Input; +using System.Windows.Markup; +using System.Windows.Media; +using System.Windows.Media.Animation; +using System.Windows.Media.Effects; +using System.Windows.Media.Imaging; +using System.Windows.Media.Media3D; +using System.Windows.Media.TextFormatting; +using System.Windows.Navigation; +using System.Windows.Shapes; +using System.Windows.Shell; + + +namespace LogViewer { + + + /// + /// Filter + /// + public partial class Filter : System.Windows.Window, System.Windows.Markup.IComponentConnector { + + + #line 1 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal LogViewer.Filter window; + + #line default + #line hidden + + + #line 20 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Button buttonClear; + + #line default + #line hidden + + + #line 21 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Button buttonCancel; + + #line default + #line hidden + + + #line 22 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Button buttonOK; + + #line default + #line hidden + + + #line 24 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Grid MainGrid; + + #line default + #line hidden + + + #line 51 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ComboBox comboBoxUserName; + + #line default + #line hidden + + + #line 57 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ComboBox comboBoxIdentity; + + #line default + #line hidden + + + #line 63 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ComboBox comboBoxLevel; + + #line default + #line hidden + + + #line 69 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxMessage; + + #line default + #line hidden + + + #line 75 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ComboBox comboBoxThread; + + #line default + #line hidden + + + #line 81 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ComboBox comboBoxNDC; + + #line default + #line hidden + + + #line 87 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ComboBox comboBoxMachineName; + + #line default + #line hidden + + + #line 93 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ComboBox comboBoxHostName; + + #line default + #line hidden + + + #line 99 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ComboBox comboBoxApplication; + + #line default + #line hidden + + + #line 105 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxThrowable; + + #line default + #line hidden + + + #line 111 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ComboBox comboBoxClass; + + #line default + #line hidden + + + #line 117 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ComboBox comboBoxMethod; + + #line default + #line hidden + + + #line 123 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ComboBox comboBoxFile; + + #line default + #line hidden + + + #line 129 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ComboBox comboLogFile; + + #line default + #line hidden + + + #line 135 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ComboBox comboLogger; + + #line default + #line hidden + + private bool _contentLoaded; + + /// + /// InitializeComponent + /// + [System.Diagnostics.DebuggerNonUserCodeAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")] + public void InitializeComponent() { + if (_contentLoaded) { + return; + } + _contentLoaded = true; + System.Uri resourceLocater = new System.Uri("/LogViewer;component/filter.xaml", System.UriKind.Relative); + + #line 1 "..\..\Filter.xaml" + System.Windows.Application.LoadComponent(this, resourceLocater); + + #line default + #line hidden + } + + [System.Diagnostics.DebuggerNonUserCodeAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")] + void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) { + switch (connectionId) + { + case 1: + this.window = ((LogViewer.Filter)(target)); + return; + case 2: + this.buttonClear = ((System.Windows.Controls.Button)(target)); + + #line 20 "..\..\Filter.xaml" + this.buttonClear.Click += new System.Windows.RoutedEventHandler(this.buttonClear_Click); + + #line default + #line hidden + return; + case 3: + this.buttonCancel = ((System.Windows.Controls.Button)(target)); + + #line 21 "..\..\Filter.xaml" + this.buttonCancel.Click += new System.Windows.RoutedEventHandler(this.buttonCancel_Click); + + #line default + #line hidden + return; + case 4: + this.buttonOK = ((System.Windows.Controls.Button)(target)); + + #line 22 "..\..\Filter.xaml" + this.buttonOK.Click += new System.Windows.RoutedEventHandler(this.buttonOK_Click); + + #line default + #line hidden + return; + case 5: + this.MainGrid = ((System.Windows.Controls.Grid)(target)); + return; + case 6: + this.comboBoxUserName = ((System.Windows.Controls.ComboBox)(target)); + return; + case 7: + this.comboBoxIdentity = ((System.Windows.Controls.ComboBox)(target)); + return; + case 8: + this.comboBoxLevel = ((System.Windows.Controls.ComboBox)(target)); + return; + case 9: + this.textBoxMessage = ((System.Windows.Controls.TextBox)(target)); + return; + case 10: + this.comboBoxThread = ((System.Windows.Controls.ComboBox)(target)); + return; + case 11: + this.comboBoxNDC = ((System.Windows.Controls.ComboBox)(target)); + return; + case 12: + this.comboBoxMachineName = ((System.Windows.Controls.ComboBox)(target)); + return; + case 13: + this.comboBoxHostName = ((System.Windows.Controls.ComboBox)(target)); + return; + case 14: + this.comboBoxApplication = ((System.Windows.Controls.ComboBox)(target)); + return; + case 15: + this.textBoxThrowable = ((System.Windows.Controls.TextBox)(target)); + return; + case 16: + this.comboBoxClass = ((System.Windows.Controls.ComboBox)(target)); + return; + case 17: + this.comboBoxMethod = ((System.Windows.Controls.ComboBox)(target)); + return; + case 18: + this.comboBoxFile = ((System.Windows.Controls.ComboBox)(target)); + return; + case 19: + this.comboLogFile = ((System.Windows.Controls.ComboBox)(target)); + return; + case 20: + this.comboLogger = ((System.Windows.Controls.ComboBox)(target)); + return; + } + this._contentLoaded = true; + } + } +} + diff --git a/obj/Debug/FilterActivity.baml b/obj/Debug/FilterActivity.baml new file mode 100644 index 0000000..d575da2 Binary files /dev/null and b/obj/Debug/FilterActivity.baml differ diff --git a/obj/Debug/FilterActivity.g.cs b/obj/Debug/FilterActivity.g.cs new file mode 100644 index 0000000..9732d66 --- /dev/null +++ b/obj/Debug/FilterActivity.g.cs @@ -0,0 +1,165 @@ +#pragma checksum "..\..\FilterActivity.xaml" "{406ea660-64cf-4c82-b6f0-42d48172a799}" "327E93C949085E16BCE308E9134B6455" +//------------------------------------------------------------------------------ +// +// Ce code a été généré par un outil. +// Version du runtime :4.0.30319.42000 +// +// Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si +// le code est régénéré. +// +//------------------------------------------------------------------------------ + +using System; +using System.Diagnostics; +using System.Windows; +using System.Windows.Automation; +using System.Windows.Controls; +using System.Windows.Controls.Primitives; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Ink; +using System.Windows.Input; +using System.Windows.Markup; +using System.Windows.Media; +using System.Windows.Media.Animation; +using System.Windows.Media.Effects; +using System.Windows.Media.Imaging; +using System.Windows.Media.Media3D; +using System.Windows.Media.TextFormatting; +using System.Windows.Navigation; +using System.Windows.Shapes; +using System.Windows.Shell; + + +namespace LogViewer { + + + /// + /// FilterActivity + /// + public partial class FilterActivity : System.Windows.Controls.UserControl, System.Windows.Markup.IComponentConnector { + + + #line 8 "..\..\FilterActivity.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal LogViewer.FilterActivity UserControl; + + #line default + #line hidden + + + #line 12 "..\..\FilterActivity.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Grid LayoutRoot; + + #line default + #line hidden + + + #line 14 "..\..\FilterActivity.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.VisualStateGroup FilterStateGroup; + + #line default + #line hidden + + + #line 18 "..\..\FilterActivity.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.VisualState Filtered; + + #line default + #line hidden + + + #line 40 "..\..\FilterActivity.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.VisualState NotFiltered; + + #line default + #line hidden + + + #line 43 "..\..\FilterActivity.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Canvas Group; + + #line default + #line hidden + + + #line 44 "..\..\FilterActivity.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Shapes.Path Path; + + #line default + #line hidden + + + #line 45 "..\..\FilterActivity.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Shapes.Path Path_0; + + #line default + #line hidden + + private bool _contentLoaded; + + /// + /// InitializeComponent + /// + [System.Diagnostics.DebuggerNonUserCodeAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")] + public void InitializeComponent() { + if (_contentLoaded) { + return; + } + _contentLoaded = true; + System.Uri resourceLocater = new System.Uri("/LogViewer;component/filteractivity.xaml", System.UriKind.Relative); + + #line 1 "..\..\FilterActivity.xaml" + System.Windows.Application.LoadComponent(this, resourceLocater); + + #line default + #line hidden + } + + [System.Diagnostics.DebuggerNonUserCodeAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")] + void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) { + switch (connectionId) + { + case 1: + this.UserControl = ((LogViewer.FilterActivity)(target)); + return; + case 2: + this.LayoutRoot = ((System.Windows.Controls.Grid)(target)); + return; + case 3: + this.FilterStateGroup = ((System.Windows.VisualStateGroup)(target)); + return; + case 4: + this.Filtered = ((System.Windows.VisualState)(target)); + return; + case 5: + this.NotFiltered = ((System.Windows.VisualState)(target)); + return; + case 6: + this.Group = ((System.Windows.Controls.Canvas)(target)); + return; + case 7: + this.Path = ((System.Windows.Shapes.Path)(target)); + return; + case 8: + this.Path_0 = ((System.Windows.Shapes.Path)(target)); + return; + } + this._contentLoaded = true; + } + } +} + diff --git a/obj/Debug/FilterActivity.g.i.cs b/obj/Debug/FilterActivity.g.i.cs new file mode 100644 index 0000000..9732d66 --- /dev/null +++ b/obj/Debug/FilterActivity.g.i.cs @@ -0,0 +1,165 @@ +#pragma checksum "..\..\FilterActivity.xaml" "{406ea660-64cf-4c82-b6f0-42d48172a799}" "327E93C949085E16BCE308E9134B6455" +//------------------------------------------------------------------------------ +// +// Ce code a été généré par un outil. +// Version du runtime :4.0.30319.42000 +// +// Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si +// le code est régénéré. +// +//------------------------------------------------------------------------------ + +using System; +using System.Diagnostics; +using System.Windows; +using System.Windows.Automation; +using System.Windows.Controls; +using System.Windows.Controls.Primitives; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Ink; +using System.Windows.Input; +using System.Windows.Markup; +using System.Windows.Media; +using System.Windows.Media.Animation; +using System.Windows.Media.Effects; +using System.Windows.Media.Imaging; +using System.Windows.Media.Media3D; +using System.Windows.Media.TextFormatting; +using System.Windows.Navigation; +using System.Windows.Shapes; +using System.Windows.Shell; + + +namespace LogViewer { + + + /// + /// FilterActivity + /// + public partial class FilterActivity : System.Windows.Controls.UserControl, System.Windows.Markup.IComponentConnector { + + + #line 8 "..\..\FilterActivity.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal LogViewer.FilterActivity UserControl; + + #line default + #line hidden + + + #line 12 "..\..\FilterActivity.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Grid LayoutRoot; + + #line default + #line hidden + + + #line 14 "..\..\FilterActivity.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.VisualStateGroup FilterStateGroup; + + #line default + #line hidden + + + #line 18 "..\..\FilterActivity.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.VisualState Filtered; + + #line default + #line hidden + + + #line 40 "..\..\FilterActivity.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.VisualState NotFiltered; + + #line default + #line hidden + + + #line 43 "..\..\FilterActivity.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Canvas Group; + + #line default + #line hidden + + + #line 44 "..\..\FilterActivity.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Shapes.Path Path; + + #line default + #line hidden + + + #line 45 "..\..\FilterActivity.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Shapes.Path Path_0; + + #line default + #line hidden + + private bool _contentLoaded; + + /// + /// InitializeComponent + /// + [System.Diagnostics.DebuggerNonUserCodeAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")] + public void InitializeComponent() { + if (_contentLoaded) { + return; + } + _contentLoaded = true; + System.Uri resourceLocater = new System.Uri("/LogViewer;component/filteractivity.xaml", System.UriKind.Relative); + + #line 1 "..\..\FilterActivity.xaml" + System.Windows.Application.LoadComponent(this, resourceLocater); + + #line default + #line hidden + } + + [System.Diagnostics.DebuggerNonUserCodeAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")] + void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) { + switch (connectionId) + { + case 1: + this.UserControl = ((LogViewer.FilterActivity)(target)); + return; + case 2: + this.LayoutRoot = ((System.Windows.Controls.Grid)(target)); + return; + case 3: + this.FilterStateGroup = ((System.Windows.VisualStateGroup)(target)); + return; + case 4: + this.Filtered = ((System.Windows.VisualState)(target)); + return; + case 5: + this.NotFiltered = ((System.Windows.VisualState)(target)); + return; + case 6: + this.Group = ((System.Windows.Controls.Canvas)(target)); + return; + case 7: + this.Path = ((System.Windows.Shapes.Path)(target)); + return; + case 8: + this.Path_0 = ((System.Windows.Shapes.Path)(target)); + return; + } + this._contentLoaded = true; + } + } +} + diff --git a/obj/Debug/GeneratedInternalTypeHelper.g.cs b/obj/Debug/GeneratedInternalTypeHelper.g.cs new file mode 100644 index 0000000..9712922 --- /dev/null +++ b/obj/Debug/GeneratedInternalTypeHelper.g.cs @@ -0,0 +1,62 @@ +//------------------------------------------------------------------------------ +// +// Ce code a été généré par un outil. +// Version du runtime :4.0.30319.42000 +// +// Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si +// le code est régénéré. +// +//------------------------------------------------------------------------------ + +namespace XamlGeneratedNamespace { + + + /// + /// GeneratedInternalTypeHelper + /// + [System.Diagnostics.DebuggerNonUserCodeAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public sealed class GeneratedInternalTypeHelper : System.Windows.Markup.InternalTypeHelper { + + /// + /// CreateInstance + /// + protected override object CreateInstance(System.Type type, System.Globalization.CultureInfo culture) { + return System.Activator.CreateInstance(type, ((System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.NonPublic) + | (System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.CreateInstance)), null, null, culture); + } + + /// + /// GetPropertyValue + /// + protected override object GetPropertyValue(System.Reflection.PropertyInfo propertyInfo, object target, System.Globalization.CultureInfo culture) { + return propertyInfo.GetValue(target, System.Reflection.BindingFlags.Default, null, null, culture); + } + + /// + /// SetPropertyValue + /// + protected override void SetPropertyValue(System.Reflection.PropertyInfo propertyInfo, object target, object value, System.Globalization.CultureInfo culture) { + propertyInfo.SetValue(target, value, System.Reflection.BindingFlags.Default, null, null, culture); + } + + /// + /// CreateDelegate + /// + protected override System.Delegate CreateDelegate(System.Type delegateType, object target, string handler) { + return ((System.Delegate)(target.GetType().InvokeMember("_CreateDelegate", (System.Reflection.BindingFlags.InvokeMethod + | (System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance)), null, target, new object[] { + delegateType, + handler}, null))); + } + + /// + /// AddEventHandler + /// + protected override void AddEventHandler(System.Reflection.EventInfo eventInfo, object target, System.Delegate handler) { + eventInfo.AddEventHandler(target, handler); + } + } +} + diff --git a/obj/Debug/GeneratedInternalTypeHelper.g.i.cs b/obj/Debug/GeneratedInternalTypeHelper.g.i.cs new file mode 100644 index 0000000..9712922 --- /dev/null +++ b/obj/Debug/GeneratedInternalTypeHelper.g.i.cs @@ -0,0 +1,62 @@ +//------------------------------------------------------------------------------ +// +// Ce code a été généré par un outil. +// Version du runtime :4.0.30319.42000 +// +// Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si +// le code est régénéré. +// +//------------------------------------------------------------------------------ + +namespace XamlGeneratedNamespace { + + + /// + /// GeneratedInternalTypeHelper + /// + [System.Diagnostics.DebuggerNonUserCodeAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public sealed class GeneratedInternalTypeHelper : System.Windows.Markup.InternalTypeHelper { + + /// + /// CreateInstance + /// + protected override object CreateInstance(System.Type type, System.Globalization.CultureInfo culture) { + return System.Activator.CreateInstance(type, ((System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.NonPublic) + | (System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.CreateInstance)), null, null, culture); + } + + /// + /// GetPropertyValue + /// + protected override object GetPropertyValue(System.Reflection.PropertyInfo propertyInfo, object target, System.Globalization.CultureInfo culture) { + return propertyInfo.GetValue(target, System.Reflection.BindingFlags.Default, null, null, culture); + } + + /// + /// SetPropertyValue + /// + protected override void SetPropertyValue(System.Reflection.PropertyInfo propertyInfo, object target, object value, System.Globalization.CultureInfo culture) { + propertyInfo.SetValue(target, value, System.Reflection.BindingFlags.Default, null, null, culture); + } + + /// + /// CreateDelegate + /// + protected override System.Delegate CreateDelegate(System.Type delegateType, object target, string handler) { + return ((System.Delegate)(target.GetType().InvokeMember("_CreateDelegate", (System.Reflection.BindingFlags.InvokeMethod + | (System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance)), null, target, new object[] { + delegateType, + handler}, null))); + } + + /// + /// AddEventHandler + /// + protected override void AddEventHandler(System.Reflection.EventInfo eventInfo, object target, System.Delegate handler) { + eventInfo.AddEventHandler(target, handler); + } + } +} + diff --git a/obj/Debug/LogViewer.Properties.Resources.resources b/obj/Debug/LogViewer.Properties.Resources.resources new file mode 100644 index 0000000..511d1cc Binary files /dev/null and b/obj/Debug/LogViewer.Properties.Resources.resources differ diff --git a/obj/Debug/LogViewer.csproj.FileListAbsolute.txt b/obj/Debug/LogViewer.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..0701fb1 --- /dev/null +++ b/obj/Debug/LogViewer.csproj.FileListAbsolute.txt @@ -0,0 +1,47 @@ +D:\EnCours\LogViewerForLog4Net\bin\Debug\LogViewer.exe.config +D:\EnCours\LogViewerForLog4Net\bin\Debug\LogViewer.exe +D:\EnCours\LogViewerForLog4Net\bin\Debug\LogViewer.pdb +D:\EnCours\LogViewerForLog4Net\bin\Debug\log4net.dll +D:\EnCours\LogViewerForLog4Net\bin\Debug\Microsoft.Expression.Effects.dll +D:\EnCours\LogViewerForLog4Net\bin\Debug\Microsoft.Expression.Interactions.dll +D:\EnCours\LogViewerForLog4Net\bin\Debug\System.Windows.Interactivity.dll +D:\EnCours\LogViewerForLog4Net\bin\Debug\log4net.xml +D:\EnCours\LogViewerForLog4Net\bin\Debug\Microsoft.Expression.Effects.xml +D:\EnCours\LogViewerForLog4Net\bin\Debug\Microsoft.Expression.Interactions.xml +D:\EnCours\LogViewerForLog4Net\bin\Debug\System.Windows.Interactivity.xml +D:\EnCours\LogViewerForLog4Net\bin\Debug\de\Microsoft.Expression.Interactions.resources.dll +D:\EnCours\LogViewerForLog4Net\bin\Debug\en\Microsoft.Expression.Interactions.resources.dll +D:\EnCours\LogViewerForLog4Net\bin\Debug\es\Microsoft.Expression.Interactions.resources.dll +D:\EnCours\LogViewerForLog4Net\bin\Debug\fr\Microsoft.Expression.Interactions.resources.dll +D:\EnCours\LogViewerForLog4Net\bin\Debug\it\Microsoft.Expression.Interactions.resources.dll +D:\EnCours\LogViewerForLog4Net\bin\Debug\ja\Microsoft.Expression.Interactions.resources.dll +D:\EnCours\LogViewerForLog4Net\bin\Debug\ko\Microsoft.Expression.Interactions.resources.dll +D:\EnCours\LogViewerForLog4Net\bin\Debug\zh-Hans\Microsoft.Expression.Interactions.resources.dll +D:\EnCours\LogViewerForLog4Net\bin\Debug\zh-Hant\Microsoft.Expression.Interactions.resources.dll +D:\EnCours\LogViewerForLog4Net\bin\Debug\de\System.Windows.Interactivity.resources.dll +D:\EnCours\LogViewerForLog4Net\bin\Debug\en\System.Windows.Interactivity.resources.dll +D:\EnCours\LogViewerForLog4Net\bin\Debug\es\System.Windows.Interactivity.resources.dll +D:\EnCours\LogViewerForLog4Net\bin\Debug\fr\System.Windows.Interactivity.resources.dll +D:\EnCours\LogViewerForLog4Net\bin\Debug\it\System.Windows.Interactivity.resources.dll +D:\EnCours\LogViewerForLog4Net\bin\Debug\ja\System.Windows.Interactivity.resources.dll +D:\EnCours\LogViewerForLog4Net\bin\Debug\ko\System.Windows.Interactivity.resources.dll +D:\EnCours\LogViewerForLog4Net\bin\Debug\zh-Hans\System.Windows.Interactivity.resources.dll +D:\EnCours\LogViewerForLog4Net\bin\Debug\zh-Hant\System.Windows.Interactivity.resources.dll +D:\EnCours\LogViewerForLog4Net\obj\Debug\About.baml +D:\EnCours\LogViewerForLog4Net\obj\Debug\Filter.baml +D:\EnCours\LogViewerForLog4Net\obj\Debug\FilterActivity.baml +D:\EnCours\LogViewerForLog4Net\obj\Debug\About.g.cs +D:\EnCours\LogViewerForLog4Net\obj\Debug\Filter.g.cs +D:\EnCours\LogViewerForLog4Net\obj\Debug\FilterActivity.g.cs +D:\EnCours\LogViewerForLog4Net\obj\Debug\App.g.cs +D:\EnCours\LogViewerForLog4Net\obj\Debug\GeneratedInternalTypeHelper.g.cs +D:\EnCours\LogViewerForLog4Net\obj\Debug\LogViewer_MarkupCompile.cache +D:\EnCours\LogViewerForLog4Net\obj\Debug\LogViewer_MarkupCompile.lref +D:\EnCours\LogViewerForLog4Net\obj\Debug\LogViewer.g.resources +D:\EnCours\LogViewerForLog4Net\obj\Debug\LogViewer.Properties.Resources.resources +D:\EnCours\LogViewerForLog4Net\obj\Debug\LogViewer.csproj.GenerateResource.Cache +D:\EnCours\LogViewerForLog4Net\obj\Debug\LogViewer.exe +D:\EnCours\LogViewerForLog4Net\obj\Debug\LogViewer.pdb +D:\EnCours\LogViewerForLog4Net\obj\Debug\LogViewer.csprojResolveAssemblyReference.cache +D:\EnCours\LogViewerForLog4Net\obj\Debug\MainWindow.g.cs +D:\EnCours\LogViewerForLog4Net\obj\Debug\MainWindow.baml diff --git a/obj/Debug/LogViewer.csproj.GenerateResource.Cache b/obj/Debug/LogViewer.csproj.GenerateResource.Cache new file mode 100644 index 0000000..3ce68a9 Binary files /dev/null and b/obj/Debug/LogViewer.csproj.GenerateResource.Cache differ diff --git a/obj/Debug/LogViewer.csprojResolveAssemblyReference.cache b/obj/Debug/LogViewer.csprojResolveAssemblyReference.cache new file mode 100644 index 0000000..db99141 Binary files /dev/null and b/obj/Debug/LogViewer.csprojResolveAssemblyReference.cache differ diff --git a/obj/Debug/LogViewer.exe b/obj/Debug/LogViewer.exe new file mode 100644 index 0000000..7b73be9 Binary files /dev/null and b/obj/Debug/LogViewer.exe differ diff --git a/obj/Debug/LogViewer.g.resources b/obj/Debug/LogViewer.g.resources new file mode 100644 index 0000000..e4e537c Binary files /dev/null and b/obj/Debug/LogViewer.g.resources differ diff --git a/obj/Debug/LogViewer.pdb b/obj/Debug/LogViewer.pdb new file mode 100644 index 0000000..1f073b3 Binary files /dev/null and b/obj/Debug/LogViewer.pdb differ diff --git a/obj/Debug/LogViewer_Content.g.i.cs b/obj/Debug/LogViewer_Content.g.i.cs new file mode 100644 index 0000000..7e1c79a --- /dev/null +++ b/obj/Debug/LogViewer_Content.g.i.cs @@ -0,0 +1,14 @@ +//------------------------------------------------------------------------------ +// +// Ce code a été généré par un outil. +// Version du runtime :4.0.30319.42000 +// +// Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si +// le code est régénéré. +// +//------------------------------------------------------------------------------ + +[assembly: System.Windows.Resources.AssemblyAssociatedContentFileAttribute("libs/wpf.themes.dll")] +[assembly: System.Windows.Resources.AssemblyAssociatedContentFileAttribute("libs/wpf.themes.pdb")] + + diff --git a/obj/Debug/LogViewer_MarkupCompile.cache b/obj/Debug/LogViewer_MarkupCompile.cache new file mode 100644 index 0000000..a07a23f --- /dev/null +++ b/obj/Debug/LogViewer_MarkupCompile.cache @@ -0,0 +1,20 @@ +LogViewer + + +winexe +C# +.cs +D:\EnCours\LogViewerForLog4Net\obj\Debug\ +LogViewer +none +false +DEBUG;TRACE +D:\EnCours\LogViewerForLog4Net\App.xaml +4-1243422802 + +14-905081002 +20-818907814 +About.xaml;Filter.xaml;FilterActivity.xaml;MainWindow.xaml; + +False + diff --git a/obj/Debug/LogViewer_MarkupCompile.i.cache b/obj/Debug/LogViewer_MarkupCompile.i.cache new file mode 100644 index 0000000..725d415 --- /dev/null +++ b/obj/Debug/LogViewer_MarkupCompile.i.cache @@ -0,0 +1,20 @@ +LogViewer + + +winexe +C# +.cs +D:\EnCours\LogViewerForLog4Net\obj\Debug\ +LogViewer +none +false +DEBUG;TRACE +D:\EnCours\LogViewerForLog4Net\App.xaml +4-1243422802 + +181585456075 +20-818907814 +About.xaml;Filter.xaml;FilterActivity.xaml;MainWindow.xaml; + +True + diff --git a/obj/Debug/LogViewer_MarkupCompile.i.lref b/obj/Debug/LogViewer_MarkupCompile.i.lref new file mode 100644 index 0000000..27b8eb8 --- /dev/null +++ b/obj/Debug/LogViewer_MarkupCompile.i.lref @@ -0,0 +1,4 @@ + + +FD:\EnCours\LogViewerForLog4Net\MainWindow.xaml;; + diff --git a/obj/Debug/LogViewer_MarkupCompile.lref b/obj/Debug/LogViewer_MarkupCompile.lref new file mode 100644 index 0000000..27b8eb8 --- /dev/null +++ b/obj/Debug/LogViewer_MarkupCompile.lref @@ -0,0 +1,4 @@ + + +FD:\EnCours\LogViewerForLog4Net\MainWindow.xaml;; + diff --git a/obj/Debug/MainWindow.baml b/obj/Debug/MainWindow.baml new file mode 100644 index 0000000..f310292 Binary files /dev/null and b/obj/Debug/MainWindow.baml differ diff --git a/obj/Debug/MainWindow.g.cs b/obj/Debug/MainWindow.g.cs new file mode 100644 index 0000000..edbb3ab --- /dev/null +++ b/obj/Debug/MainWindow.g.cs @@ -0,0 +1,1000 @@ +#pragma checksum "..\..\MainWindow.xaml" "{406ea660-64cf-4c82-b6f0-42d48172a799}" "C1B3918A1C907E0D16763BA2AF37EBE8" +//------------------------------------------------------------------------------ +// +// Ce code a été généré par un outil. +// Version du runtime :4.0.30319.42000 +// +// Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si +// le code est régénéré. +// +//------------------------------------------------------------------------------ + +using LogViewer; +using Microsoft.Expression.Interactivity.Core; +using Microsoft.Expression.Interactivity.Input; +using Microsoft.Expression.Interactivity.Layout; +using Microsoft.Expression.Interactivity.Media; +using System; +using System.Diagnostics; +using System.Windows; +using System.Windows.Automation; +using System.Windows.Controls; +using System.Windows.Controls.Primitives; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Ink; +using System.Windows.Input; +using System.Windows.Interactivity; +using System.Windows.Markup; +using System.Windows.Media; +using System.Windows.Media.Animation; +using System.Windows.Media.Effects; +using System.Windows.Media.Imaging; +using System.Windows.Media.Media3D; +using System.Windows.Media.TextFormatting; +using System.Windows.Navigation; +using System.Windows.Shapes; +using System.Windows.Shell; + + +namespace LogViewer { + + + /// + /// MainWindow + /// + public partial class MainWindow : System.Windows.Window, System.Windows.Markup.IComponentConnector { + + + #line 31 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Grid gridMenu; + + #line default + #line hidden + + + #line 35 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Menu menu1; + + #line default + #line hidden + + + #line 39 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal LogViewer.RecentFileList RecentFileList; + + #line default + #line hidden + + + #line 42 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.MenuItem MenuMergeItem; + + #line default + #line hidden + + + #line 44 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.MenuItem ResetSeparator; + + #line default + #line hidden + + + #line 51 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Grid gridTopBar; + + #line default + #line hidden + + + #line 56 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Grid spPath; + + #line default + #line hidden + + + #line 67 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBlock textboxFileName; + + #line default + #line hidden + + + #line 73 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.StackPanel spCountAndSearch; + + #line default + #line hidden + + + #line 74 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.StackPanel spGlobalInfo; + + #line default + #line hidden + + + #line 75 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal LogViewer.FilterActivity FilterIndicator; + + #line default + #line hidden + + + #line 76 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBlock tbFiltered; + + #line default + #line hidden + + + #line 78 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.StackPanel spCounters; + + #line default + #line hidden + + + #line 80 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Image imageError; + + #line default + #line hidden + + + #line 81 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBlock labelErrorCount; + + #line default + #line hidden + + + #line 88 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Image imageWarn; + + #line default + #line hidden + + + #line 89 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBlock labelWarnCount; + + #line default + #line hidden + + + #line 96 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Image imageDebug; + + #line default + #line hidden + + + #line 97 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBlock labelDebugCount; + + #line default + #line hidden + + + #line 104 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Image imageInfo; + + #line default + #line hidden + + + #line 105 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBlock labelInfoCount; + + #line default + #line hidden + + + #line 112 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.StackPanel spFind; + + #line default + #line hidden + + + #line 113 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Image image2; + + #line default + #line hidden + + + #line 114 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBlock label3; + + #line default + #line hidden + + + #line 119 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxFind; + + #line default + #line hidden + + + #line 120 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Button buttonFindNext; + + #line default + #line hidden + + + #line 164 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Button buttonFindPrevious; + + #line default + #line hidden + + + #line 217 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Grid MainGrid; + + #line default + #line hidden + + + #line 224 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Border borderTop; + + #line default + #line hidden + + + #line 225 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ListView listView1; + + #line default + #line hidden + + + #line 258 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.GridView GridView1; + + #line default + #line hidden + + + #line 282 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.GridSplitter gridSplitter1; + + #line default + #line hidden + + + #line 283 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Grid bottomGrid; + + #line default + #line hidden + + + #line 318 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Image image1; + + #line default + #line hidden + + + #line 319 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxLevel; + + #line default + #line hidden + + + #line 320 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label label1; + + #line default + #line hidden + + + #line 325 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxTimeStamp; + + #line default + #line hidden + + + #line 326 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label label2; + + #line default + #line hidden + + + #line 331 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxMachineName; + + #line default + #line hidden + + + #line 332 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label labelThread; + + #line default + #line hidden + + + #line 337 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxThread; + + #line default + #line hidden + + + #line 339 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label labelNDC; + + #line default + #line hidden + + + #line 344 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxNDC; + + #line default + #line hidden + + + #line 345 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label label4; + + #line default + #line hidden + + + #line 350 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxHostName; + + #line default + #line hidden + + + #line 351 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label label5; + + #line default + #line hidden + + + #line 356 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxUserName; + + #line default + #line hidden + + + #line 357 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label label6; + + #line default + #line hidden + + + #line 362 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxApp; + + #line default + #line hidden + + + #line 364 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label label7; + + #line default + #line hidden + + + #line 369 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxClass; + + #line default + #line hidden + + + #line 370 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label label8; + + #line default + #line hidden + + + #line 375 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxMethod; + + #line default + #line hidden + + + #line 376 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label label10; + + #line default + #line hidden + + + #line 381 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxIdentity; + + #line default + #line hidden + + + #line 384 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label label6b; + + #line default + #line hidden + + + #line 389 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxLog; + + #line default + #line hidden + + + #line 392 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label labelFile; + + #line default + #line hidden + + + #line 397 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxfile; + + #line default + #line hidden + + + #line 399 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label label9; + + #line default + #line hidden + + + #line 404 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxLine; + + #line default + #line hidden + + + #line 406 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label labelLogger; + + #line default + #line hidden + + + #line 411 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxLogger; + + #line default + #line hidden + + + #line 413 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label labelItem; + + #line default + #line hidden + + + #line 418 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxItem; + + #line default + #line hidden + + + #line 422 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TabControl tabControl1; + + #line default + #line hidden + + + #line 424 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxMessage; + + #line default + #line hidden + + + #line 427 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxThrowable; + + #line default + #line hidden + + private bool _contentLoaded; + + /// + /// InitializeComponent + /// + [System.Diagnostics.DebuggerNonUserCodeAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")] + public void InitializeComponent() { + if (_contentLoaded) { + return; + } + _contentLoaded = true; + System.Uri resourceLocater = new System.Uri("/LogViewer;component/mainwindow.xaml", System.UriKind.Relative); + + #line 1 "..\..\MainWindow.xaml" + System.Windows.Application.LoadComponent(this, resourceLocater); + + #line default + #line hidden + } + + [System.Diagnostics.DebuggerNonUserCodeAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal System.Delegate _CreateDelegate(System.Type delegateType, string handler) { + return System.Delegate.CreateDelegate(delegateType, this, handler); + } + + [System.Diagnostics.DebuggerNonUserCodeAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")] + void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) { + switch (connectionId) + { + case 1: + + #line 13 "..\..\MainWindow.xaml" + ((LogViewer.MainWindow)(target)).Closed += new System.EventHandler(this.window_Closed); + + #line default + #line hidden + return; + case 2: + + #line 18 "..\..\MainWindow.xaml" + ((System.Windows.Input.CommandBinding)(target)).CanExecute += new System.Windows.Input.CanExecuteRoutedEventHandler(this.openCanExecute); + + #line default + #line hidden + + #line 18 "..\..\MainWindow.xaml" + ((System.Windows.Input.CommandBinding)(target)).Executed += new System.Windows.Input.ExecutedRoutedEventHandler(this.openExecuted); + + #line default + #line hidden + return; + case 3: + + #line 19 "..\..\MainWindow.xaml" + ((System.Windows.Input.CommandBinding)(target)).CanExecute += new System.Windows.Input.CanExecuteRoutedEventHandler(this.exitCanExecute); + + #line default + #line hidden + + #line 19 "..\..\MainWindow.xaml" + ((System.Windows.Input.CommandBinding)(target)).Executed += new System.Windows.Input.ExecutedRoutedEventHandler(this.exitExecuted); + + #line default + #line hidden + return; + case 4: + + #line 20 "..\..\MainWindow.xaml" + ((System.Windows.Input.CommandBinding)(target)).CanExecute += new System.Windows.Input.CanExecuteRoutedEventHandler(this.refreshCanExecute); + + #line default + #line hidden + + #line 20 "..\..\MainWindow.xaml" + ((System.Windows.Input.CommandBinding)(target)).Executed += new System.Windows.Input.ExecutedRoutedEventHandler(this.refreshExecuted); + + #line default + #line hidden + return; + case 5: + + #line 21 "..\..\MainWindow.xaml" + ((System.Windows.Input.CommandBinding)(target)).CanExecute += new System.Windows.Input.CanExecuteRoutedEventHandler(this.filterCanExexute); + + #line default + #line hidden + + #line 21 "..\..\MainWindow.xaml" + ((System.Windows.Input.CommandBinding)(target)).Executed += new System.Windows.Input.ExecutedRoutedEventHandler(this.filterExecuted); + + #line default + #line hidden + return; + case 6: + + #line 22 "..\..\MainWindow.xaml" + ((System.Windows.Input.CommandBinding)(target)).CanExecute += new System.Windows.Input.CanExecuteRoutedEventHandler(this.aboutCanExecute); + + #line default + #line hidden + + #line 22 "..\..\MainWindow.xaml" + ((System.Windows.Input.CommandBinding)(target)).Executed += new System.Windows.Input.ExecutedRoutedEventHandler(this.aboutExecuted); + + #line default + #line hidden + return; + case 7: + this.gridMenu = ((System.Windows.Controls.Grid)(target)); + return; + case 8: + this.menu1 = ((System.Windows.Controls.Menu)(target)); + return; + case 9: + this.RecentFileList = ((LogViewer.RecentFileList)(target)); + return; + case 10: + this.MenuMergeItem = ((System.Windows.Controls.MenuItem)(target)); + + #line 42 "..\..\MainWindow.xaml" + this.MenuMergeItem.Click += new System.Windows.RoutedEventHandler(this.mergeFile_Click); + + #line default + #line hidden + return; + case 11: + this.ResetSeparator = ((System.Windows.Controls.MenuItem)(target)); + + #line 44 "..\..\MainWindow.xaml" + this.ResetSeparator.Click += new System.Windows.RoutedEventHandler(this.resetSeparator_Click); + + #line default + #line hidden + return; + case 12: + this.gridTopBar = ((System.Windows.Controls.Grid)(target)); + return; + case 13: + this.spPath = ((System.Windows.Controls.Grid)(target)); + return; + case 14: + this.textboxFileName = ((System.Windows.Controls.TextBlock)(target)); + return; + case 15: + this.spCountAndSearch = ((System.Windows.Controls.StackPanel)(target)); + return; + case 16: + this.spGlobalInfo = ((System.Windows.Controls.StackPanel)(target)); + return; + case 17: + this.FilterIndicator = ((LogViewer.FilterActivity)(target)); + return; + case 18: + this.tbFiltered = ((System.Windows.Controls.TextBlock)(target)); + + #line 76 "..\..\MainWindow.xaml" + this.tbFiltered.MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.filterIndicator_MouseLeftButtonDown); + + #line default + #line hidden + return; + case 19: + this.spCounters = ((System.Windows.Controls.StackPanel)(target)); + return; + case 20: + this.imageError = ((System.Windows.Controls.Image)(target)); + + #line 80 "..\..\MainWindow.xaml" + this.imageError.MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.imageError_MouseLeftButtonDown); + + #line default + #line hidden + return; + case 21: + this.labelErrorCount = ((System.Windows.Controls.TextBlock)(target)); + return; + case 22: + this.imageWarn = ((System.Windows.Controls.Image)(target)); + + #line 88 "..\..\MainWindow.xaml" + this.imageWarn.MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.imageWarn_MouseLeftButtonDown); + + #line default + #line hidden + return; + case 23: + this.labelWarnCount = ((System.Windows.Controls.TextBlock)(target)); + return; + case 24: + this.imageDebug = ((System.Windows.Controls.Image)(target)); + + #line 96 "..\..\MainWindow.xaml" + this.imageDebug.MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.imageDebug_MouseLeftButtonDown); + + #line default + #line hidden + return; + case 25: + this.labelDebugCount = ((System.Windows.Controls.TextBlock)(target)); + return; + case 26: + this.imageInfo = ((System.Windows.Controls.Image)(target)); + + #line 104 "..\..\MainWindow.xaml" + this.imageInfo.MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.imageInfo_MouseLeftButtonDown); + + #line default + #line hidden + return; + case 27: + this.labelInfoCount = ((System.Windows.Controls.TextBlock)(target)); + return; + case 28: + this.spFind = ((System.Windows.Controls.StackPanel)(target)); + return; + case 29: + this.image2 = ((System.Windows.Controls.Image)(target)); + return; + case 30: + this.label3 = ((System.Windows.Controls.TextBlock)(target)); + return; + case 31: + this.textBoxFind = ((System.Windows.Controls.TextBox)(target)); + + #line 119 "..\..\MainWindow.xaml" + this.textBoxFind.KeyDown += new System.Windows.Input.KeyEventHandler(this.textBoxFind_KeyDown); + + #line default + #line hidden + + #line 119 "..\..\MainWindow.xaml" + this.textBoxFind.PreviewKeyDown += new System.Windows.Input.KeyEventHandler(this.textBoxFind_PreviewKeyDown); + + #line default + #line hidden + return; + case 32: + this.buttonFindNext = ((System.Windows.Controls.Button)(target)); + + #line 120 "..\..\MainWindow.xaml" + this.buttonFindNext.Click += new System.Windows.RoutedEventHandler(this.buttonFindNext_Click); + + #line default + #line hidden + return; + case 33: + this.buttonFindPrevious = ((System.Windows.Controls.Button)(target)); + + #line 164 "..\..\MainWindow.xaml" + this.buttonFindPrevious.Click += new System.Windows.RoutedEventHandler(this.buttonFindPrevious_Click); + + #line default + #line hidden + return; + case 34: + this.MainGrid = ((System.Windows.Controls.Grid)(target)); + return; + case 35: + this.borderTop = ((System.Windows.Controls.Border)(target)); + return; + case 36: + this.listView1 = ((System.Windows.Controls.ListView)(target)); + + #line 229 "..\..\MainWindow.xaml" + this.listView1.SelectionChanged += new System.Windows.Controls.SelectionChangedEventHandler(this.listView1_SelectionChanged); + + #line default + #line hidden + + #line 230 "..\..\MainWindow.xaml" + this.listView1.Drop += new System.Windows.DragEventHandler(this.listView1_Drop); + + #line default + #line hidden + return; + case 37: + this.GridView1 = ((System.Windows.Controls.GridView)(target)); + return; + case 38: + this.gridSplitter1 = ((System.Windows.Controls.GridSplitter)(target)); + return; + case 39: + this.bottomGrid = ((System.Windows.Controls.Grid)(target)); + return; + case 40: + this.image1 = ((System.Windows.Controls.Image)(target)); + return; + case 41: + this.textBoxLevel = ((System.Windows.Controls.TextBox)(target)); + return; + case 42: + this.label1 = ((System.Windows.Controls.Label)(target)); + return; + case 43: + this.textBoxTimeStamp = ((System.Windows.Controls.TextBox)(target)); + return; + case 44: + this.label2 = ((System.Windows.Controls.Label)(target)); + return; + case 45: + this.textBoxMachineName = ((System.Windows.Controls.TextBox)(target)); + return; + case 46: + this.labelThread = ((System.Windows.Controls.Label)(target)); + return; + case 47: + this.textBoxThread = ((System.Windows.Controls.TextBox)(target)); + return; + case 48: + this.labelNDC = ((System.Windows.Controls.Label)(target)); + return; + case 49: + this.textBoxNDC = ((System.Windows.Controls.TextBox)(target)); + return; + case 50: + this.label4 = ((System.Windows.Controls.Label)(target)); + return; + case 51: + this.textBoxHostName = ((System.Windows.Controls.TextBox)(target)); + return; + case 52: + this.label5 = ((System.Windows.Controls.Label)(target)); + return; + case 53: + this.textBoxUserName = ((System.Windows.Controls.TextBox)(target)); + return; + case 54: + this.label6 = ((System.Windows.Controls.Label)(target)); + return; + case 55: + this.textBoxApp = ((System.Windows.Controls.TextBox)(target)); + return; + case 56: + this.label7 = ((System.Windows.Controls.Label)(target)); + return; + case 57: + this.textBoxClass = ((System.Windows.Controls.TextBox)(target)); + return; + case 58: + this.label8 = ((System.Windows.Controls.Label)(target)); + return; + case 59: + this.textBoxMethod = ((System.Windows.Controls.TextBox)(target)); + return; + case 60: + this.label10 = ((System.Windows.Controls.Label)(target)); + return; + case 61: + this.textBoxIdentity = ((System.Windows.Controls.TextBox)(target)); + return; + case 62: + this.label6b = ((System.Windows.Controls.Label)(target)); + + #line 384 "..\..\MainWindow.xaml" + this.label6b.MouseDoubleClick += new System.Windows.Input.MouseButtonEventHandler(this.label6b_MouseDoubleClick); + + #line default + #line hidden + return; + case 63: + this.textBoxLog = ((System.Windows.Controls.TextBox)(target)); + return; + case 64: + this.labelFile = ((System.Windows.Controls.Label)(target)); + return; + case 65: + this.textBoxfile = ((System.Windows.Controls.TextBox)(target)); + return; + case 66: + this.label9 = ((System.Windows.Controls.Label)(target)); + return; + case 67: + this.textBoxLine = ((System.Windows.Controls.TextBox)(target)); + return; + case 68: + this.labelLogger = ((System.Windows.Controls.Label)(target)); + return; + case 69: + this.textBoxLogger = ((System.Windows.Controls.TextBox)(target)); + return; + case 70: + this.labelItem = ((System.Windows.Controls.Label)(target)); + return; + case 71: + this.textBoxItem = ((System.Windows.Controls.TextBox)(target)); + return; + case 72: + this.tabControl1 = ((System.Windows.Controls.TabControl)(target)); + return; + case 73: + this.textBoxMessage = ((System.Windows.Controls.TextBox)(target)); + return; + case 74: + this.textBoxThrowable = ((System.Windows.Controls.TextBox)(target)); + return; + } + this._contentLoaded = true; + } + } +} + diff --git a/obj/Debug/MainWindow.g.i.cs b/obj/Debug/MainWindow.g.i.cs new file mode 100644 index 0000000..edbb3ab --- /dev/null +++ b/obj/Debug/MainWindow.g.i.cs @@ -0,0 +1,1000 @@ +#pragma checksum "..\..\MainWindow.xaml" "{406ea660-64cf-4c82-b6f0-42d48172a799}" "C1B3918A1C907E0D16763BA2AF37EBE8" +//------------------------------------------------------------------------------ +// +// Ce code a été généré par un outil. +// Version du runtime :4.0.30319.42000 +// +// Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si +// le code est régénéré. +// +//------------------------------------------------------------------------------ + +using LogViewer; +using Microsoft.Expression.Interactivity.Core; +using Microsoft.Expression.Interactivity.Input; +using Microsoft.Expression.Interactivity.Layout; +using Microsoft.Expression.Interactivity.Media; +using System; +using System.Diagnostics; +using System.Windows; +using System.Windows.Automation; +using System.Windows.Controls; +using System.Windows.Controls.Primitives; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Ink; +using System.Windows.Input; +using System.Windows.Interactivity; +using System.Windows.Markup; +using System.Windows.Media; +using System.Windows.Media.Animation; +using System.Windows.Media.Effects; +using System.Windows.Media.Imaging; +using System.Windows.Media.Media3D; +using System.Windows.Media.TextFormatting; +using System.Windows.Navigation; +using System.Windows.Shapes; +using System.Windows.Shell; + + +namespace LogViewer { + + + /// + /// MainWindow + /// + public partial class MainWindow : System.Windows.Window, System.Windows.Markup.IComponentConnector { + + + #line 31 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Grid gridMenu; + + #line default + #line hidden + + + #line 35 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Menu menu1; + + #line default + #line hidden + + + #line 39 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal LogViewer.RecentFileList RecentFileList; + + #line default + #line hidden + + + #line 42 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.MenuItem MenuMergeItem; + + #line default + #line hidden + + + #line 44 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.MenuItem ResetSeparator; + + #line default + #line hidden + + + #line 51 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Grid gridTopBar; + + #line default + #line hidden + + + #line 56 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Grid spPath; + + #line default + #line hidden + + + #line 67 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBlock textboxFileName; + + #line default + #line hidden + + + #line 73 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.StackPanel spCountAndSearch; + + #line default + #line hidden + + + #line 74 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.StackPanel spGlobalInfo; + + #line default + #line hidden + + + #line 75 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal LogViewer.FilterActivity FilterIndicator; + + #line default + #line hidden + + + #line 76 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBlock tbFiltered; + + #line default + #line hidden + + + #line 78 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.StackPanel spCounters; + + #line default + #line hidden + + + #line 80 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Image imageError; + + #line default + #line hidden + + + #line 81 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBlock labelErrorCount; + + #line default + #line hidden + + + #line 88 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Image imageWarn; + + #line default + #line hidden + + + #line 89 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBlock labelWarnCount; + + #line default + #line hidden + + + #line 96 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Image imageDebug; + + #line default + #line hidden + + + #line 97 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBlock labelDebugCount; + + #line default + #line hidden + + + #line 104 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Image imageInfo; + + #line default + #line hidden + + + #line 105 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBlock labelInfoCount; + + #line default + #line hidden + + + #line 112 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.StackPanel spFind; + + #line default + #line hidden + + + #line 113 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Image image2; + + #line default + #line hidden + + + #line 114 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBlock label3; + + #line default + #line hidden + + + #line 119 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxFind; + + #line default + #line hidden + + + #line 120 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Button buttonFindNext; + + #line default + #line hidden + + + #line 164 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Button buttonFindPrevious; + + #line default + #line hidden + + + #line 217 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Grid MainGrid; + + #line default + #line hidden + + + #line 224 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Border borderTop; + + #line default + #line hidden + + + #line 225 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ListView listView1; + + #line default + #line hidden + + + #line 258 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.GridView GridView1; + + #line default + #line hidden + + + #line 282 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.GridSplitter gridSplitter1; + + #line default + #line hidden + + + #line 283 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Grid bottomGrid; + + #line default + #line hidden + + + #line 318 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Image image1; + + #line default + #line hidden + + + #line 319 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxLevel; + + #line default + #line hidden + + + #line 320 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label label1; + + #line default + #line hidden + + + #line 325 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxTimeStamp; + + #line default + #line hidden + + + #line 326 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label label2; + + #line default + #line hidden + + + #line 331 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxMachineName; + + #line default + #line hidden + + + #line 332 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label labelThread; + + #line default + #line hidden + + + #line 337 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxThread; + + #line default + #line hidden + + + #line 339 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label labelNDC; + + #line default + #line hidden + + + #line 344 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxNDC; + + #line default + #line hidden + + + #line 345 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label label4; + + #line default + #line hidden + + + #line 350 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxHostName; + + #line default + #line hidden + + + #line 351 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label label5; + + #line default + #line hidden + + + #line 356 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxUserName; + + #line default + #line hidden + + + #line 357 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label label6; + + #line default + #line hidden + + + #line 362 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxApp; + + #line default + #line hidden + + + #line 364 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label label7; + + #line default + #line hidden + + + #line 369 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxClass; + + #line default + #line hidden + + + #line 370 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label label8; + + #line default + #line hidden + + + #line 375 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxMethod; + + #line default + #line hidden + + + #line 376 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label label10; + + #line default + #line hidden + + + #line 381 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxIdentity; + + #line default + #line hidden + + + #line 384 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label label6b; + + #line default + #line hidden + + + #line 389 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxLog; + + #line default + #line hidden + + + #line 392 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label labelFile; + + #line default + #line hidden + + + #line 397 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxfile; + + #line default + #line hidden + + + #line 399 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label label9; + + #line default + #line hidden + + + #line 404 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxLine; + + #line default + #line hidden + + + #line 406 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label labelLogger; + + #line default + #line hidden + + + #line 411 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxLogger; + + #line default + #line hidden + + + #line 413 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label labelItem; + + #line default + #line hidden + + + #line 418 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxItem; + + #line default + #line hidden + + + #line 422 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TabControl tabControl1; + + #line default + #line hidden + + + #line 424 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxMessage; + + #line default + #line hidden + + + #line 427 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxThrowable; + + #line default + #line hidden + + private bool _contentLoaded; + + /// + /// InitializeComponent + /// + [System.Diagnostics.DebuggerNonUserCodeAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")] + public void InitializeComponent() { + if (_contentLoaded) { + return; + } + _contentLoaded = true; + System.Uri resourceLocater = new System.Uri("/LogViewer;component/mainwindow.xaml", System.UriKind.Relative); + + #line 1 "..\..\MainWindow.xaml" + System.Windows.Application.LoadComponent(this, resourceLocater); + + #line default + #line hidden + } + + [System.Diagnostics.DebuggerNonUserCodeAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal System.Delegate _CreateDelegate(System.Type delegateType, string handler) { + return System.Delegate.CreateDelegate(delegateType, this, handler); + } + + [System.Diagnostics.DebuggerNonUserCodeAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")] + void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) { + switch (connectionId) + { + case 1: + + #line 13 "..\..\MainWindow.xaml" + ((LogViewer.MainWindow)(target)).Closed += new System.EventHandler(this.window_Closed); + + #line default + #line hidden + return; + case 2: + + #line 18 "..\..\MainWindow.xaml" + ((System.Windows.Input.CommandBinding)(target)).CanExecute += new System.Windows.Input.CanExecuteRoutedEventHandler(this.openCanExecute); + + #line default + #line hidden + + #line 18 "..\..\MainWindow.xaml" + ((System.Windows.Input.CommandBinding)(target)).Executed += new System.Windows.Input.ExecutedRoutedEventHandler(this.openExecuted); + + #line default + #line hidden + return; + case 3: + + #line 19 "..\..\MainWindow.xaml" + ((System.Windows.Input.CommandBinding)(target)).CanExecute += new System.Windows.Input.CanExecuteRoutedEventHandler(this.exitCanExecute); + + #line default + #line hidden + + #line 19 "..\..\MainWindow.xaml" + ((System.Windows.Input.CommandBinding)(target)).Executed += new System.Windows.Input.ExecutedRoutedEventHandler(this.exitExecuted); + + #line default + #line hidden + return; + case 4: + + #line 20 "..\..\MainWindow.xaml" + ((System.Windows.Input.CommandBinding)(target)).CanExecute += new System.Windows.Input.CanExecuteRoutedEventHandler(this.refreshCanExecute); + + #line default + #line hidden + + #line 20 "..\..\MainWindow.xaml" + ((System.Windows.Input.CommandBinding)(target)).Executed += new System.Windows.Input.ExecutedRoutedEventHandler(this.refreshExecuted); + + #line default + #line hidden + return; + case 5: + + #line 21 "..\..\MainWindow.xaml" + ((System.Windows.Input.CommandBinding)(target)).CanExecute += new System.Windows.Input.CanExecuteRoutedEventHandler(this.filterCanExexute); + + #line default + #line hidden + + #line 21 "..\..\MainWindow.xaml" + ((System.Windows.Input.CommandBinding)(target)).Executed += new System.Windows.Input.ExecutedRoutedEventHandler(this.filterExecuted); + + #line default + #line hidden + return; + case 6: + + #line 22 "..\..\MainWindow.xaml" + ((System.Windows.Input.CommandBinding)(target)).CanExecute += new System.Windows.Input.CanExecuteRoutedEventHandler(this.aboutCanExecute); + + #line default + #line hidden + + #line 22 "..\..\MainWindow.xaml" + ((System.Windows.Input.CommandBinding)(target)).Executed += new System.Windows.Input.ExecutedRoutedEventHandler(this.aboutExecuted); + + #line default + #line hidden + return; + case 7: + this.gridMenu = ((System.Windows.Controls.Grid)(target)); + return; + case 8: + this.menu1 = ((System.Windows.Controls.Menu)(target)); + return; + case 9: + this.RecentFileList = ((LogViewer.RecentFileList)(target)); + return; + case 10: + this.MenuMergeItem = ((System.Windows.Controls.MenuItem)(target)); + + #line 42 "..\..\MainWindow.xaml" + this.MenuMergeItem.Click += new System.Windows.RoutedEventHandler(this.mergeFile_Click); + + #line default + #line hidden + return; + case 11: + this.ResetSeparator = ((System.Windows.Controls.MenuItem)(target)); + + #line 44 "..\..\MainWindow.xaml" + this.ResetSeparator.Click += new System.Windows.RoutedEventHandler(this.resetSeparator_Click); + + #line default + #line hidden + return; + case 12: + this.gridTopBar = ((System.Windows.Controls.Grid)(target)); + return; + case 13: + this.spPath = ((System.Windows.Controls.Grid)(target)); + return; + case 14: + this.textboxFileName = ((System.Windows.Controls.TextBlock)(target)); + return; + case 15: + this.spCountAndSearch = ((System.Windows.Controls.StackPanel)(target)); + return; + case 16: + this.spGlobalInfo = ((System.Windows.Controls.StackPanel)(target)); + return; + case 17: + this.FilterIndicator = ((LogViewer.FilterActivity)(target)); + return; + case 18: + this.tbFiltered = ((System.Windows.Controls.TextBlock)(target)); + + #line 76 "..\..\MainWindow.xaml" + this.tbFiltered.MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.filterIndicator_MouseLeftButtonDown); + + #line default + #line hidden + return; + case 19: + this.spCounters = ((System.Windows.Controls.StackPanel)(target)); + return; + case 20: + this.imageError = ((System.Windows.Controls.Image)(target)); + + #line 80 "..\..\MainWindow.xaml" + this.imageError.MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.imageError_MouseLeftButtonDown); + + #line default + #line hidden + return; + case 21: + this.labelErrorCount = ((System.Windows.Controls.TextBlock)(target)); + return; + case 22: + this.imageWarn = ((System.Windows.Controls.Image)(target)); + + #line 88 "..\..\MainWindow.xaml" + this.imageWarn.MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.imageWarn_MouseLeftButtonDown); + + #line default + #line hidden + return; + case 23: + this.labelWarnCount = ((System.Windows.Controls.TextBlock)(target)); + return; + case 24: + this.imageDebug = ((System.Windows.Controls.Image)(target)); + + #line 96 "..\..\MainWindow.xaml" + this.imageDebug.MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.imageDebug_MouseLeftButtonDown); + + #line default + #line hidden + return; + case 25: + this.labelDebugCount = ((System.Windows.Controls.TextBlock)(target)); + return; + case 26: + this.imageInfo = ((System.Windows.Controls.Image)(target)); + + #line 104 "..\..\MainWindow.xaml" + this.imageInfo.MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.imageInfo_MouseLeftButtonDown); + + #line default + #line hidden + return; + case 27: + this.labelInfoCount = ((System.Windows.Controls.TextBlock)(target)); + return; + case 28: + this.spFind = ((System.Windows.Controls.StackPanel)(target)); + return; + case 29: + this.image2 = ((System.Windows.Controls.Image)(target)); + return; + case 30: + this.label3 = ((System.Windows.Controls.TextBlock)(target)); + return; + case 31: + this.textBoxFind = ((System.Windows.Controls.TextBox)(target)); + + #line 119 "..\..\MainWindow.xaml" + this.textBoxFind.KeyDown += new System.Windows.Input.KeyEventHandler(this.textBoxFind_KeyDown); + + #line default + #line hidden + + #line 119 "..\..\MainWindow.xaml" + this.textBoxFind.PreviewKeyDown += new System.Windows.Input.KeyEventHandler(this.textBoxFind_PreviewKeyDown); + + #line default + #line hidden + return; + case 32: + this.buttonFindNext = ((System.Windows.Controls.Button)(target)); + + #line 120 "..\..\MainWindow.xaml" + this.buttonFindNext.Click += new System.Windows.RoutedEventHandler(this.buttonFindNext_Click); + + #line default + #line hidden + return; + case 33: + this.buttonFindPrevious = ((System.Windows.Controls.Button)(target)); + + #line 164 "..\..\MainWindow.xaml" + this.buttonFindPrevious.Click += new System.Windows.RoutedEventHandler(this.buttonFindPrevious_Click); + + #line default + #line hidden + return; + case 34: + this.MainGrid = ((System.Windows.Controls.Grid)(target)); + return; + case 35: + this.borderTop = ((System.Windows.Controls.Border)(target)); + return; + case 36: + this.listView1 = ((System.Windows.Controls.ListView)(target)); + + #line 229 "..\..\MainWindow.xaml" + this.listView1.SelectionChanged += new System.Windows.Controls.SelectionChangedEventHandler(this.listView1_SelectionChanged); + + #line default + #line hidden + + #line 230 "..\..\MainWindow.xaml" + this.listView1.Drop += new System.Windows.DragEventHandler(this.listView1_Drop); + + #line default + #line hidden + return; + case 37: + this.GridView1 = ((System.Windows.Controls.GridView)(target)); + return; + case 38: + this.gridSplitter1 = ((System.Windows.Controls.GridSplitter)(target)); + return; + case 39: + this.bottomGrid = ((System.Windows.Controls.Grid)(target)); + return; + case 40: + this.image1 = ((System.Windows.Controls.Image)(target)); + return; + case 41: + this.textBoxLevel = ((System.Windows.Controls.TextBox)(target)); + return; + case 42: + this.label1 = ((System.Windows.Controls.Label)(target)); + return; + case 43: + this.textBoxTimeStamp = ((System.Windows.Controls.TextBox)(target)); + return; + case 44: + this.label2 = ((System.Windows.Controls.Label)(target)); + return; + case 45: + this.textBoxMachineName = ((System.Windows.Controls.TextBox)(target)); + return; + case 46: + this.labelThread = ((System.Windows.Controls.Label)(target)); + return; + case 47: + this.textBoxThread = ((System.Windows.Controls.TextBox)(target)); + return; + case 48: + this.labelNDC = ((System.Windows.Controls.Label)(target)); + return; + case 49: + this.textBoxNDC = ((System.Windows.Controls.TextBox)(target)); + return; + case 50: + this.label4 = ((System.Windows.Controls.Label)(target)); + return; + case 51: + this.textBoxHostName = ((System.Windows.Controls.TextBox)(target)); + return; + case 52: + this.label5 = ((System.Windows.Controls.Label)(target)); + return; + case 53: + this.textBoxUserName = ((System.Windows.Controls.TextBox)(target)); + return; + case 54: + this.label6 = ((System.Windows.Controls.Label)(target)); + return; + case 55: + this.textBoxApp = ((System.Windows.Controls.TextBox)(target)); + return; + case 56: + this.label7 = ((System.Windows.Controls.Label)(target)); + return; + case 57: + this.textBoxClass = ((System.Windows.Controls.TextBox)(target)); + return; + case 58: + this.label8 = ((System.Windows.Controls.Label)(target)); + return; + case 59: + this.textBoxMethod = ((System.Windows.Controls.TextBox)(target)); + return; + case 60: + this.label10 = ((System.Windows.Controls.Label)(target)); + return; + case 61: + this.textBoxIdentity = ((System.Windows.Controls.TextBox)(target)); + return; + case 62: + this.label6b = ((System.Windows.Controls.Label)(target)); + + #line 384 "..\..\MainWindow.xaml" + this.label6b.MouseDoubleClick += new System.Windows.Input.MouseButtonEventHandler(this.label6b_MouseDoubleClick); + + #line default + #line hidden + return; + case 63: + this.textBoxLog = ((System.Windows.Controls.TextBox)(target)); + return; + case 64: + this.labelFile = ((System.Windows.Controls.Label)(target)); + return; + case 65: + this.textBoxfile = ((System.Windows.Controls.TextBox)(target)); + return; + case 66: + this.label9 = ((System.Windows.Controls.Label)(target)); + return; + case 67: + this.textBoxLine = ((System.Windows.Controls.TextBox)(target)); + return; + case 68: + this.labelLogger = ((System.Windows.Controls.Label)(target)); + return; + case 69: + this.textBoxLogger = ((System.Windows.Controls.TextBox)(target)); + return; + case 70: + this.labelItem = ((System.Windows.Controls.Label)(target)); + return; + case 71: + this.textBoxItem = ((System.Windows.Controls.TextBox)(target)); + return; + case 72: + this.tabControl1 = ((System.Windows.Controls.TabControl)(target)); + return; + case 73: + this.textBoxMessage = ((System.Windows.Controls.TextBox)(target)); + return; + case 74: + this.textBoxThrowable = ((System.Windows.Controls.TextBox)(target)); + return; + } + this._contentLoaded = true; + } + } +} + diff --git a/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll b/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll new file mode 100644 index 0000000..e69de29 diff --git a/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs b/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs new file mode 100644 index 0000000..e69de29 diff --git a/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs b/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs new file mode 100644 index 0000000..e69de29 diff --git a/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs b/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs new file mode 100644 index 0000000..e69de29 diff --git a/obj/Debug/Window1.g.i.cs b/obj/Debug/Window1.g.i.cs new file mode 100644 index 0000000..017d14f --- /dev/null +++ b/obj/Debug/Window1.g.i.cs @@ -0,0 +1,1000 @@ +#pragma checksum "..\..\Window1.xaml" "{406ea660-64cf-4c82-b6f0-42d48172a799}" "59FAC0422E8D4B91E0739110853535D8" +//------------------------------------------------------------------------------ +// +// Ce code a été généré par un outil. +// Version du runtime :4.0.30319.42000 +// +// Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si +// le code est régénéré. +// +//------------------------------------------------------------------------------ + +using LogViewer; +using Microsoft.Expression.Interactivity.Core; +using Microsoft.Expression.Interactivity.Input; +using Microsoft.Expression.Interactivity.Layout; +using Microsoft.Expression.Interactivity.Media; +using System; +using System.Diagnostics; +using System.Windows; +using System.Windows.Automation; +using System.Windows.Controls; +using System.Windows.Controls.Primitives; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Ink; +using System.Windows.Input; +using System.Windows.Interactivity; +using System.Windows.Markup; +using System.Windows.Media; +using System.Windows.Media.Animation; +using System.Windows.Media.Effects; +using System.Windows.Media.Imaging; +using System.Windows.Media.Media3D; +using System.Windows.Media.TextFormatting; +using System.Windows.Navigation; +using System.Windows.Shapes; +using System.Windows.Shell; + + +namespace LogViewer { + + + /// + /// Window1 + /// + public partial class MainWindow : System.Windows.Window, System.Windows.Markup.IComponentConnector { + + + #line 32 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Grid gridMenu; + + #line default + #line hidden + + + #line 36 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Menu menu1; + + #line default + #line hidden + + + #line 40 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal LogViewer.RecentFileList RecentFileList; + + #line default + #line hidden + + + #line 43 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.MenuItem MenuMergeItem; + + #line default + #line hidden + + + #line 45 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.MenuItem ResetSeparator; + + #line default + #line hidden + + + #line 52 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Grid gridTopBar; + + #line default + #line hidden + + + #line 57 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Grid spPath; + + #line default + #line hidden + + + #line 68 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBlock textboxFileName; + + #line default + #line hidden + + + #line 74 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.StackPanel spCountAndSearch; + + #line default + #line hidden + + + #line 75 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.StackPanel spGlobalInfo; + + #line default + #line hidden + + + #line 76 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal LogViewer.FilterActivity FilterIndicator; + + #line default + #line hidden + + + #line 77 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBlock tbFiltered; + + #line default + #line hidden + + + #line 79 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.StackPanel spCounters; + + #line default + #line hidden + + + #line 81 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Image imageError; + + #line default + #line hidden + + + #line 82 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBlock labelErrorCount; + + #line default + #line hidden + + + #line 89 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Image imageWarn; + + #line default + #line hidden + + + #line 90 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBlock labelWarnCount; + + #line default + #line hidden + + + #line 97 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Image imageDebug; + + #line default + #line hidden + + + #line 98 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBlock labelDebugCount; + + #line default + #line hidden + + + #line 105 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Image imageInfo; + + #line default + #line hidden + + + #line 106 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBlock labelInfoCount; + + #line default + #line hidden + + + #line 113 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.StackPanel spFind; + + #line default + #line hidden + + + #line 114 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Image image2; + + #line default + #line hidden + + + #line 115 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBlock label3; + + #line default + #line hidden + + + #line 120 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxFind; + + #line default + #line hidden + + + #line 121 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Button buttonFindNext; + + #line default + #line hidden + + + #line 165 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Button buttonFindPrevious; + + #line default + #line hidden + + + #line 218 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Grid MainGrid; + + #line default + #line hidden + + + #line 225 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Border borderTop; + + #line default + #line hidden + + + #line 226 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ListView listView1; + + #line default + #line hidden + + + #line 259 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.GridView GridView1; + + #line default + #line hidden + + + #line 283 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.GridSplitter gridSplitter1; + + #line default + #line hidden + + + #line 291 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Grid bottomGrid; + + #line default + #line hidden + + + #line 326 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Image image1; + + #line default + #line hidden + + + #line 327 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxLevel; + + #line default + #line hidden + + + #line 328 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label label1; + + #line default + #line hidden + + + #line 333 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxTimeStamp; + + #line default + #line hidden + + + #line 334 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label label2; + + #line default + #line hidden + + + #line 339 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxMachineName; + + #line default + #line hidden + + + #line 340 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label labelThread; + + #line default + #line hidden + + + #line 345 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxThread; + + #line default + #line hidden + + + #line 347 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label labelNDC; + + #line default + #line hidden + + + #line 352 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxNDC; + + #line default + #line hidden + + + #line 353 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label label4; + + #line default + #line hidden + + + #line 358 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxHostName; + + #line default + #line hidden + + + #line 359 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label label5; + + #line default + #line hidden + + + #line 364 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxUserName; + + #line default + #line hidden + + + #line 365 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label label6; + + #line default + #line hidden + + + #line 370 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxApp; + + #line default + #line hidden + + + #line 372 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label label7; + + #line default + #line hidden + + + #line 377 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxClass; + + #line default + #line hidden + + + #line 378 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label label8; + + #line default + #line hidden + + + #line 383 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxMethod; + + #line default + #line hidden + + + #line 384 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label label10; + + #line default + #line hidden + + + #line 389 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxIdentity; + + #line default + #line hidden + + + #line 392 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label label6b; + + #line default + #line hidden + + + #line 397 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxLog; + + #line default + #line hidden + + + #line 400 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label labelFile; + + #line default + #line hidden + + + #line 405 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxfile; + + #line default + #line hidden + + + #line 407 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label label9; + + #line default + #line hidden + + + #line 412 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxLine; + + #line default + #line hidden + + + #line 414 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label labelLogger; + + #line default + #line hidden + + + #line 419 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxLogger; + + #line default + #line hidden + + + #line 421 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label labelItem; + + #line default + #line hidden + + + #line 426 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxItem; + + #line default + #line hidden + + + #line 430 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TabControl tabControl1; + + #line default + #line hidden + + + #line 432 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxMessage; + + #line default + #line hidden + + + #line 435 "..\..\Window1.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxThrowable; + + #line default + #line hidden + + private bool _contentLoaded; + + /// + /// InitializeComponent + /// + [System.Diagnostics.DebuggerNonUserCodeAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")] + public void InitializeComponent() { + if (_contentLoaded) { + return; + } + _contentLoaded = true; + System.Uri resourceLocater = new System.Uri("/LogViewer;component/window1.xaml", System.UriKind.Relative); + + #line 1 "..\..\Window1.xaml" + System.Windows.Application.LoadComponent(this, resourceLocater); + + #line default + #line hidden + } + + [System.Diagnostics.DebuggerNonUserCodeAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal System.Delegate _CreateDelegate(System.Type delegateType, string handler) { + return System.Delegate.CreateDelegate(delegateType, this, handler); + } + + [System.Diagnostics.DebuggerNonUserCodeAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")] + void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) { + switch (connectionId) + { + case 1: + + #line 14 "..\..\Window1.xaml" + ((LogViewer.MainWindow)(target)).Closed += new System.EventHandler(this.window_Closed); + + #line default + #line hidden + return; + case 2: + + #line 19 "..\..\Window1.xaml" + ((System.Windows.Input.CommandBinding)(target)).CanExecute += new System.Windows.Input.CanExecuteRoutedEventHandler(this.openCanExecute); + + #line default + #line hidden + + #line 19 "..\..\Window1.xaml" + ((System.Windows.Input.CommandBinding)(target)).Executed += new System.Windows.Input.ExecutedRoutedEventHandler(this.openExecuted); + + #line default + #line hidden + return; + case 3: + + #line 20 "..\..\Window1.xaml" + ((System.Windows.Input.CommandBinding)(target)).CanExecute += new System.Windows.Input.CanExecuteRoutedEventHandler(this.exitCanExecute); + + #line default + #line hidden + + #line 20 "..\..\Window1.xaml" + ((System.Windows.Input.CommandBinding)(target)).Executed += new System.Windows.Input.ExecutedRoutedEventHandler(this.exitExecuted); + + #line default + #line hidden + return; + case 4: + + #line 21 "..\..\Window1.xaml" + ((System.Windows.Input.CommandBinding)(target)).CanExecute += new System.Windows.Input.CanExecuteRoutedEventHandler(this.refreshCanExecute); + + #line default + #line hidden + + #line 21 "..\..\Window1.xaml" + ((System.Windows.Input.CommandBinding)(target)).Executed += new System.Windows.Input.ExecutedRoutedEventHandler(this.refreshExecuted); + + #line default + #line hidden + return; + case 5: + + #line 22 "..\..\Window1.xaml" + ((System.Windows.Input.CommandBinding)(target)).CanExecute += new System.Windows.Input.CanExecuteRoutedEventHandler(this.filterCanExexute); + + #line default + #line hidden + + #line 22 "..\..\Window1.xaml" + ((System.Windows.Input.CommandBinding)(target)).Executed += new System.Windows.Input.ExecutedRoutedEventHandler(this.filterExecuted); + + #line default + #line hidden + return; + case 6: + + #line 23 "..\..\Window1.xaml" + ((System.Windows.Input.CommandBinding)(target)).CanExecute += new System.Windows.Input.CanExecuteRoutedEventHandler(this.aboutCanExecute); + + #line default + #line hidden + + #line 23 "..\..\Window1.xaml" + ((System.Windows.Input.CommandBinding)(target)).Executed += new System.Windows.Input.ExecutedRoutedEventHandler(this.aboutExecuted); + + #line default + #line hidden + return; + case 7: + this.gridMenu = ((System.Windows.Controls.Grid)(target)); + return; + case 8: + this.menu1 = ((System.Windows.Controls.Menu)(target)); + return; + case 9: + this.RecentFileList = ((LogViewer.RecentFileList)(target)); + return; + case 10: + this.MenuMergeItem = ((System.Windows.Controls.MenuItem)(target)); + + #line 43 "..\..\Window1.xaml" + this.MenuMergeItem.Click += new System.Windows.RoutedEventHandler(this.mergeFile_Click); + + #line default + #line hidden + return; + case 11: + this.ResetSeparator = ((System.Windows.Controls.MenuItem)(target)); + + #line 45 "..\..\Window1.xaml" + this.ResetSeparator.Click += new System.Windows.RoutedEventHandler(this.resetSeparator_Click); + + #line default + #line hidden + return; + case 12: + this.gridTopBar = ((System.Windows.Controls.Grid)(target)); + return; + case 13: + this.spPath = ((System.Windows.Controls.Grid)(target)); + return; + case 14: + this.textboxFileName = ((System.Windows.Controls.TextBlock)(target)); + return; + case 15: + this.spCountAndSearch = ((System.Windows.Controls.StackPanel)(target)); + return; + case 16: + this.spGlobalInfo = ((System.Windows.Controls.StackPanel)(target)); + return; + case 17: + this.FilterIndicator = ((LogViewer.FilterActivity)(target)); + return; + case 18: + this.tbFiltered = ((System.Windows.Controls.TextBlock)(target)); + + #line 77 "..\..\Window1.xaml" + this.tbFiltered.MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.filterIndicator_MouseLeftButtonDown); + + #line default + #line hidden + return; + case 19: + this.spCounters = ((System.Windows.Controls.StackPanel)(target)); + return; + case 20: + this.imageError = ((System.Windows.Controls.Image)(target)); + + #line 81 "..\..\Window1.xaml" + this.imageError.MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.imageError_MouseLeftButtonDown); + + #line default + #line hidden + return; + case 21: + this.labelErrorCount = ((System.Windows.Controls.TextBlock)(target)); + return; + case 22: + this.imageWarn = ((System.Windows.Controls.Image)(target)); + + #line 89 "..\..\Window1.xaml" + this.imageWarn.MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.imageWarn_MouseLeftButtonDown); + + #line default + #line hidden + return; + case 23: + this.labelWarnCount = ((System.Windows.Controls.TextBlock)(target)); + return; + case 24: + this.imageDebug = ((System.Windows.Controls.Image)(target)); + + #line 97 "..\..\Window1.xaml" + this.imageDebug.MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.imageDebug_MouseLeftButtonDown); + + #line default + #line hidden + return; + case 25: + this.labelDebugCount = ((System.Windows.Controls.TextBlock)(target)); + return; + case 26: + this.imageInfo = ((System.Windows.Controls.Image)(target)); + + #line 105 "..\..\Window1.xaml" + this.imageInfo.MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.imageInfo_MouseLeftButtonDown); + + #line default + #line hidden + return; + case 27: + this.labelInfoCount = ((System.Windows.Controls.TextBlock)(target)); + return; + case 28: + this.spFind = ((System.Windows.Controls.StackPanel)(target)); + return; + case 29: + this.image2 = ((System.Windows.Controls.Image)(target)); + return; + case 30: + this.label3 = ((System.Windows.Controls.TextBlock)(target)); + return; + case 31: + this.textBoxFind = ((System.Windows.Controls.TextBox)(target)); + + #line 120 "..\..\Window1.xaml" + this.textBoxFind.KeyDown += new System.Windows.Input.KeyEventHandler(this.textBoxFind_KeyDown); + + #line default + #line hidden + + #line 120 "..\..\Window1.xaml" + this.textBoxFind.PreviewKeyDown += new System.Windows.Input.KeyEventHandler(this.textBoxFind_PreviewKeyDown); + + #line default + #line hidden + return; + case 32: + this.buttonFindNext = ((System.Windows.Controls.Button)(target)); + + #line 121 "..\..\Window1.xaml" + this.buttonFindNext.Click += new System.Windows.RoutedEventHandler(this.buttonFindNext_Click); + + #line default + #line hidden + return; + case 33: + this.buttonFindPrevious = ((System.Windows.Controls.Button)(target)); + + #line 165 "..\..\Window1.xaml" + this.buttonFindPrevious.Click += new System.Windows.RoutedEventHandler(this.buttonFindPrevious_Click); + + #line default + #line hidden + return; + case 34: + this.MainGrid = ((System.Windows.Controls.Grid)(target)); + return; + case 35: + this.borderTop = ((System.Windows.Controls.Border)(target)); + return; + case 36: + this.listView1 = ((System.Windows.Controls.ListView)(target)); + + #line 230 "..\..\Window1.xaml" + this.listView1.SelectionChanged += new System.Windows.Controls.SelectionChangedEventHandler(this.listView1_SelectionChanged); + + #line default + #line hidden + + #line 231 "..\..\Window1.xaml" + this.listView1.Drop += new System.Windows.DragEventHandler(this.listView1_Drop); + + #line default + #line hidden + return; + case 37: + this.GridView1 = ((System.Windows.Controls.GridView)(target)); + return; + case 38: + this.gridSplitter1 = ((System.Windows.Controls.GridSplitter)(target)); + return; + case 39: + this.bottomGrid = ((System.Windows.Controls.Grid)(target)); + return; + case 40: + this.image1 = ((System.Windows.Controls.Image)(target)); + return; + case 41: + this.textBoxLevel = ((System.Windows.Controls.TextBox)(target)); + return; + case 42: + this.label1 = ((System.Windows.Controls.Label)(target)); + return; + case 43: + this.textBoxTimeStamp = ((System.Windows.Controls.TextBox)(target)); + return; + case 44: + this.label2 = ((System.Windows.Controls.Label)(target)); + return; + case 45: + this.textBoxMachineName = ((System.Windows.Controls.TextBox)(target)); + return; + case 46: + this.labelThread = ((System.Windows.Controls.Label)(target)); + return; + case 47: + this.textBoxThread = ((System.Windows.Controls.TextBox)(target)); + return; + case 48: + this.labelNDC = ((System.Windows.Controls.Label)(target)); + return; + case 49: + this.textBoxNDC = ((System.Windows.Controls.TextBox)(target)); + return; + case 50: + this.label4 = ((System.Windows.Controls.Label)(target)); + return; + case 51: + this.textBoxHostName = ((System.Windows.Controls.TextBox)(target)); + return; + case 52: + this.label5 = ((System.Windows.Controls.Label)(target)); + return; + case 53: + this.textBoxUserName = ((System.Windows.Controls.TextBox)(target)); + return; + case 54: + this.label6 = ((System.Windows.Controls.Label)(target)); + return; + case 55: + this.textBoxApp = ((System.Windows.Controls.TextBox)(target)); + return; + case 56: + this.label7 = ((System.Windows.Controls.Label)(target)); + return; + case 57: + this.textBoxClass = ((System.Windows.Controls.TextBox)(target)); + return; + case 58: + this.label8 = ((System.Windows.Controls.Label)(target)); + return; + case 59: + this.textBoxMethod = ((System.Windows.Controls.TextBox)(target)); + return; + case 60: + this.label10 = ((System.Windows.Controls.Label)(target)); + return; + case 61: + this.textBoxIdentity = ((System.Windows.Controls.TextBox)(target)); + return; + case 62: + this.label6b = ((System.Windows.Controls.Label)(target)); + + #line 392 "..\..\Window1.xaml" + this.label6b.MouseDoubleClick += new System.Windows.Input.MouseButtonEventHandler(this.label6b_MouseDoubleClick); + + #line default + #line hidden + return; + case 63: + this.textBoxLog = ((System.Windows.Controls.TextBox)(target)); + return; + case 64: + this.labelFile = ((System.Windows.Controls.Label)(target)); + return; + case 65: + this.textBoxfile = ((System.Windows.Controls.TextBox)(target)); + return; + case 66: + this.label9 = ((System.Windows.Controls.Label)(target)); + return; + case 67: + this.textBoxLine = ((System.Windows.Controls.TextBox)(target)); + return; + case 68: + this.labelLogger = ((System.Windows.Controls.Label)(target)); + return; + case 69: + this.textBoxLogger = ((System.Windows.Controls.TextBox)(target)); + return; + case 70: + this.labelItem = ((System.Windows.Controls.Label)(target)); + return; + case 71: + this.textBoxItem = ((System.Windows.Controls.TextBox)(target)); + return; + case 72: + this.tabControl1 = ((System.Windows.Controls.TabControl)(target)); + return; + case 73: + this.textBoxMessage = ((System.Windows.Controls.TextBox)(target)); + return; + case 74: + this.textBoxThrowable = ((System.Windows.Controls.TextBox)(target)); + return; + } + this._contentLoaded = true; + } + } +} + diff --git a/obj/Release/About.baml b/obj/Release/About.baml new file mode 100644 index 0000000..be71a16 Binary files /dev/null and b/obj/Release/About.baml differ diff --git a/obj/Release/About.g.cs b/obj/Release/About.g.cs new file mode 100644 index 0000000..e43cbce --- /dev/null +++ b/obj/Release/About.g.cs @@ -0,0 +1,193 @@ +#pragma checksum "..\..\About.xaml" "{406ea660-64cf-4c82-b6f0-42d48172a799}" "DC63D37AD819FC33C7090B1900A2CB02" +//------------------------------------------------------------------------------ +// +// Ce code a été généré par un outil. +// Version du runtime :4.0.30319.42000 +// +// Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si +// le code est régénéré. +// +//------------------------------------------------------------------------------ + +using Microsoft.Expression.Media.Effects; +using System; +using System.Diagnostics; +using System.Windows; +using System.Windows.Automation; +using System.Windows.Controls; +using System.Windows.Controls.Primitives; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Ink; +using System.Windows.Input; +using System.Windows.Markup; +using System.Windows.Media; +using System.Windows.Media.Animation; +using System.Windows.Media.Effects; +using System.Windows.Media.Imaging; +using System.Windows.Media.Media3D; +using System.Windows.Media.TextFormatting; +using System.Windows.Navigation; +using System.Windows.Shapes; +using System.Windows.Shell; + + +namespace LogViewer { + + + /// + /// About + /// + public partial class About : System.Windows.Window, System.Windows.Markup.IComponentConnector { + + + #line 59 "..\..\About.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.StackPanel stackPanel; + + #line default + #line hidden + + + #line 64 "..\..\About.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label LabelAssemblyName; + + #line default + #line hidden + + + #line 70 "..\..\About.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label LabelAssemblyVersion; + + #line default + #line hidden + + + #line 77 "..\..\About.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label LabelAssembly; + + #line default + #line hidden + + + #line 79 "..\..\About.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label label; + + #line default + #line hidden + + + #line 82 "..\..\About.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.RichTextBox RichTextBox1; + + #line default + #line hidden + + + #line 131 "..\..\About.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Button ButtonOk; + + #line default + #line hidden + + private bool _contentLoaded; + + /// + /// InitializeComponent + /// + [System.Diagnostics.DebuggerNonUserCodeAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")] + public void InitializeComponent() { + if (_contentLoaded) { + return; + } + _contentLoaded = true; + System.Uri resourceLocater = new System.Uri("/LogViewer;component/about.xaml", System.UriKind.Relative); + + #line 1 "..\..\About.xaml" + System.Windows.Application.LoadComponent(this, resourceLocater); + + #line default + #line hidden + } + + [System.Diagnostics.DebuggerNonUserCodeAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")] + void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) { + switch (connectionId) + { + case 1: + + #line 8 "..\..\About.xaml" + ((LogViewer.About)(target)).Loaded += new System.Windows.RoutedEventHandler(this.window_Loaded); + + #line default + #line hidden + return; + case 2: + this.stackPanel = ((System.Windows.Controls.StackPanel)(target)); + return; + case 3: + this.LabelAssemblyName = ((System.Windows.Controls.Label)(target)); + return; + case 4: + this.LabelAssemblyVersion = ((System.Windows.Controls.Label)(target)); + return; + case 5: + this.LabelAssembly = ((System.Windows.Controls.Label)(target)); + return; + case 6: + this.label = ((System.Windows.Controls.Label)(target)); + return; + case 7: + this.RichTextBox1 = ((System.Windows.Controls.RichTextBox)(target)); + return; + case 8: + this.ButtonOk = ((System.Windows.Controls.Button)(target)); + + #line 131 "..\..\About.xaml" + this.ButtonOk.Click += new System.Windows.RoutedEventHandler(this.buttonOK_Click); + + #line default + #line hidden + return; + case 9: + + #line 132 "..\..\About.xaml" + ((System.Windows.Documents.Hyperlink)(target)).RequestNavigate += new System.Windows.Navigation.RequestNavigateEventHandler(this.hyperlink_RequestNavigate); + + #line default + #line hidden + return; + case 10: + + #line 133 "..\..\About.xaml" + ((System.Windows.Documents.Hyperlink)(target)).RequestNavigate += new System.Windows.Navigation.RequestNavigateEventHandler(this.hyperlink_RequestNavigate); + + #line default + #line hidden + return; + case 11: + + #line 134 "..\..\About.xaml" + ((System.Windows.Documents.Hyperlink)(target)).RequestNavigate += new System.Windows.Navigation.RequestNavigateEventHandler(this.hyperlink_RequestNavigate); + + #line default + #line hidden + return; + } + this._contentLoaded = true; + } + } +} + diff --git a/obj/Release/About.g.i.cs b/obj/Release/About.g.i.cs new file mode 100644 index 0000000..e43cbce --- /dev/null +++ b/obj/Release/About.g.i.cs @@ -0,0 +1,193 @@ +#pragma checksum "..\..\About.xaml" "{406ea660-64cf-4c82-b6f0-42d48172a799}" "DC63D37AD819FC33C7090B1900A2CB02" +//------------------------------------------------------------------------------ +// +// Ce code a été généré par un outil. +// Version du runtime :4.0.30319.42000 +// +// Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si +// le code est régénéré. +// +//------------------------------------------------------------------------------ + +using Microsoft.Expression.Media.Effects; +using System; +using System.Diagnostics; +using System.Windows; +using System.Windows.Automation; +using System.Windows.Controls; +using System.Windows.Controls.Primitives; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Ink; +using System.Windows.Input; +using System.Windows.Markup; +using System.Windows.Media; +using System.Windows.Media.Animation; +using System.Windows.Media.Effects; +using System.Windows.Media.Imaging; +using System.Windows.Media.Media3D; +using System.Windows.Media.TextFormatting; +using System.Windows.Navigation; +using System.Windows.Shapes; +using System.Windows.Shell; + + +namespace LogViewer { + + + /// + /// About + /// + public partial class About : System.Windows.Window, System.Windows.Markup.IComponentConnector { + + + #line 59 "..\..\About.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.StackPanel stackPanel; + + #line default + #line hidden + + + #line 64 "..\..\About.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label LabelAssemblyName; + + #line default + #line hidden + + + #line 70 "..\..\About.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label LabelAssemblyVersion; + + #line default + #line hidden + + + #line 77 "..\..\About.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label LabelAssembly; + + #line default + #line hidden + + + #line 79 "..\..\About.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label label; + + #line default + #line hidden + + + #line 82 "..\..\About.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.RichTextBox RichTextBox1; + + #line default + #line hidden + + + #line 131 "..\..\About.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Button ButtonOk; + + #line default + #line hidden + + private bool _contentLoaded; + + /// + /// InitializeComponent + /// + [System.Diagnostics.DebuggerNonUserCodeAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")] + public void InitializeComponent() { + if (_contentLoaded) { + return; + } + _contentLoaded = true; + System.Uri resourceLocater = new System.Uri("/LogViewer;component/about.xaml", System.UriKind.Relative); + + #line 1 "..\..\About.xaml" + System.Windows.Application.LoadComponent(this, resourceLocater); + + #line default + #line hidden + } + + [System.Diagnostics.DebuggerNonUserCodeAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")] + void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) { + switch (connectionId) + { + case 1: + + #line 8 "..\..\About.xaml" + ((LogViewer.About)(target)).Loaded += new System.Windows.RoutedEventHandler(this.window_Loaded); + + #line default + #line hidden + return; + case 2: + this.stackPanel = ((System.Windows.Controls.StackPanel)(target)); + return; + case 3: + this.LabelAssemblyName = ((System.Windows.Controls.Label)(target)); + return; + case 4: + this.LabelAssemblyVersion = ((System.Windows.Controls.Label)(target)); + return; + case 5: + this.LabelAssembly = ((System.Windows.Controls.Label)(target)); + return; + case 6: + this.label = ((System.Windows.Controls.Label)(target)); + return; + case 7: + this.RichTextBox1 = ((System.Windows.Controls.RichTextBox)(target)); + return; + case 8: + this.ButtonOk = ((System.Windows.Controls.Button)(target)); + + #line 131 "..\..\About.xaml" + this.ButtonOk.Click += new System.Windows.RoutedEventHandler(this.buttonOK_Click); + + #line default + #line hidden + return; + case 9: + + #line 132 "..\..\About.xaml" + ((System.Windows.Documents.Hyperlink)(target)).RequestNavigate += new System.Windows.Navigation.RequestNavigateEventHandler(this.hyperlink_RequestNavigate); + + #line default + #line hidden + return; + case 10: + + #line 133 "..\..\About.xaml" + ((System.Windows.Documents.Hyperlink)(target)).RequestNavigate += new System.Windows.Navigation.RequestNavigateEventHandler(this.hyperlink_RequestNavigate); + + #line default + #line hidden + return; + case 11: + + #line 134 "..\..\About.xaml" + ((System.Windows.Documents.Hyperlink)(target)).RequestNavigate += new System.Windows.Navigation.RequestNavigateEventHandler(this.hyperlink_RequestNavigate); + + #line default + #line hidden + return; + } + this._contentLoaded = true; + } + } +} + diff --git a/obj/Release/App.g.cs b/obj/Release/App.g.cs new file mode 100644 index 0000000..f3dec87 --- /dev/null +++ b/obj/Release/App.g.cs @@ -0,0 +1,69 @@ +#pragma checksum "..\..\App.xaml" "{406ea660-64cf-4c82-b6f0-42d48172a799}" "EA2C0E376D8ECAA59354CBFAE19DD05F" +//------------------------------------------------------------------------------ +// +// Ce code a été généré par un outil. +// Version du runtime :4.0.30319.42000 +// +// Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si +// le code est régénéré. +// +//------------------------------------------------------------------------------ + +using System; +using System.Diagnostics; +using System.Windows; +using System.Windows.Automation; +using System.Windows.Controls; +using System.Windows.Controls.Primitives; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Ink; +using System.Windows.Input; +using System.Windows.Markup; +using System.Windows.Media; +using System.Windows.Media.Animation; +using System.Windows.Media.Effects; +using System.Windows.Media.Imaging; +using System.Windows.Media.Media3D; +using System.Windows.Media.TextFormatting; +using System.Windows.Navigation; +using System.Windows.Shapes; +using System.Windows.Shell; + + +namespace LogViewer { + + + /// + /// App + /// + public partial class App : System.Windows.Application { + + /// + /// InitializeComponent + /// + [System.Diagnostics.DebuggerNonUserCodeAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")] + public void InitializeComponent() { + + #line 4 "..\..\App.xaml" + this.StartupUri = new System.Uri("MainWindow.xaml", System.UriKind.Relative); + + #line default + #line hidden + } + + /// + /// Application Entry Point. + /// + [System.STAThreadAttribute()] + [System.Diagnostics.DebuggerNonUserCodeAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")] + public static void Main() { + LogViewer.App app = new LogViewer.App(); + app.InitializeComponent(); + app.Run(); + } + } +} + diff --git a/obj/Release/App.g.i.cs b/obj/Release/App.g.i.cs new file mode 100644 index 0000000..f3dec87 --- /dev/null +++ b/obj/Release/App.g.i.cs @@ -0,0 +1,69 @@ +#pragma checksum "..\..\App.xaml" "{406ea660-64cf-4c82-b6f0-42d48172a799}" "EA2C0E376D8ECAA59354CBFAE19DD05F" +//------------------------------------------------------------------------------ +// +// Ce code a été généré par un outil. +// Version du runtime :4.0.30319.42000 +// +// Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si +// le code est régénéré. +// +//------------------------------------------------------------------------------ + +using System; +using System.Diagnostics; +using System.Windows; +using System.Windows.Automation; +using System.Windows.Controls; +using System.Windows.Controls.Primitives; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Ink; +using System.Windows.Input; +using System.Windows.Markup; +using System.Windows.Media; +using System.Windows.Media.Animation; +using System.Windows.Media.Effects; +using System.Windows.Media.Imaging; +using System.Windows.Media.Media3D; +using System.Windows.Media.TextFormatting; +using System.Windows.Navigation; +using System.Windows.Shapes; +using System.Windows.Shell; + + +namespace LogViewer { + + + /// + /// App + /// + public partial class App : System.Windows.Application { + + /// + /// InitializeComponent + /// + [System.Diagnostics.DebuggerNonUserCodeAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")] + public void InitializeComponent() { + + #line 4 "..\..\App.xaml" + this.StartupUri = new System.Uri("MainWindow.xaml", System.UriKind.Relative); + + #line default + #line hidden + } + + /// + /// Application Entry Point. + /// + [System.STAThreadAttribute()] + [System.Diagnostics.DebuggerNonUserCodeAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")] + public static void Main() { + LogViewer.App app = new LogViewer.App(); + app.InitializeComponent(); + app.Run(); + } + } +} + diff --git a/obj/Release/CoreCompileInputs.cache b/obj/Release/CoreCompileInputs.cache new file mode 100644 index 0000000..279b5be --- /dev/null +++ b/obj/Release/CoreCompileInputs.cache @@ -0,0 +1 @@ +4db234451affa0a9bd37933818a6454860f67e70 diff --git a/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache b/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache new file mode 100644 index 0000000..9f55757 Binary files /dev/null and b/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache differ diff --git a/obj/Release/Filter.baml b/obj/Release/Filter.baml new file mode 100644 index 0000000..50105a5 Binary files /dev/null and b/obj/Release/Filter.baml differ diff --git a/obj/Release/Filter.g.cs b/obj/Release/Filter.g.cs new file mode 100644 index 0000000..19db410 --- /dev/null +++ b/obj/Release/Filter.g.cs @@ -0,0 +1,315 @@ +#pragma checksum "..\..\Filter.xaml" "{406ea660-64cf-4c82-b6f0-42d48172a799}" "E1228C874C7BD1F5F433E24ECBAF3E7D" +//------------------------------------------------------------------------------ +// +// Ce code a été généré par un outil. +// Version du runtime :4.0.30319.42000 +// +// Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si +// le code est régénéré. +// +//------------------------------------------------------------------------------ + +using System; +using System.Diagnostics; +using System.Windows; +using System.Windows.Automation; +using System.Windows.Controls; +using System.Windows.Controls.Primitives; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Ink; +using System.Windows.Input; +using System.Windows.Markup; +using System.Windows.Media; +using System.Windows.Media.Animation; +using System.Windows.Media.Effects; +using System.Windows.Media.Imaging; +using System.Windows.Media.Media3D; +using System.Windows.Media.TextFormatting; +using System.Windows.Navigation; +using System.Windows.Shapes; +using System.Windows.Shell; + + +namespace LogViewer { + + + /// + /// Filter + /// + public partial class Filter : System.Windows.Window, System.Windows.Markup.IComponentConnector { + + + #line 1 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal LogViewer.Filter window; + + #line default + #line hidden + + + #line 20 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Button buttonClear; + + #line default + #line hidden + + + #line 21 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Button buttonCancel; + + #line default + #line hidden + + + #line 22 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Button buttonOK; + + #line default + #line hidden + + + #line 24 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Grid MainGrid; + + #line default + #line hidden + + + #line 51 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ComboBox comboBoxUserName; + + #line default + #line hidden + + + #line 57 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ComboBox comboBoxIdentity; + + #line default + #line hidden + + + #line 63 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ComboBox comboBoxLevel; + + #line default + #line hidden + + + #line 69 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxMessage; + + #line default + #line hidden + + + #line 75 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ComboBox comboBoxThread; + + #line default + #line hidden + + + #line 81 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ComboBox comboBoxNDC; + + #line default + #line hidden + + + #line 87 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ComboBox comboBoxMachineName; + + #line default + #line hidden + + + #line 93 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ComboBox comboBoxHostName; + + #line default + #line hidden + + + #line 99 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ComboBox comboBoxApplication; + + #line default + #line hidden + + + #line 105 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxThrowable; + + #line default + #line hidden + + + #line 111 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ComboBox comboBoxClass; + + #line default + #line hidden + + + #line 117 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ComboBox comboBoxMethod; + + #line default + #line hidden + + + #line 123 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ComboBox comboBoxFile; + + #line default + #line hidden + + + #line 129 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ComboBox comboLogFile; + + #line default + #line hidden + + + #line 135 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ComboBox comboLogger; + + #line default + #line hidden + + private bool _contentLoaded; + + /// + /// InitializeComponent + /// + [System.Diagnostics.DebuggerNonUserCodeAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")] + public void InitializeComponent() { + if (_contentLoaded) { + return; + } + _contentLoaded = true; + System.Uri resourceLocater = new System.Uri("/LogViewer;component/filter.xaml", System.UriKind.Relative); + + #line 1 "..\..\Filter.xaml" + System.Windows.Application.LoadComponent(this, resourceLocater); + + #line default + #line hidden + } + + [System.Diagnostics.DebuggerNonUserCodeAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")] + void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) { + switch (connectionId) + { + case 1: + this.window = ((LogViewer.Filter)(target)); + return; + case 2: + this.buttonClear = ((System.Windows.Controls.Button)(target)); + + #line 20 "..\..\Filter.xaml" + this.buttonClear.Click += new System.Windows.RoutedEventHandler(this.buttonClear_Click); + + #line default + #line hidden + return; + case 3: + this.buttonCancel = ((System.Windows.Controls.Button)(target)); + + #line 21 "..\..\Filter.xaml" + this.buttonCancel.Click += new System.Windows.RoutedEventHandler(this.buttonCancel_Click); + + #line default + #line hidden + return; + case 4: + this.buttonOK = ((System.Windows.Controls.Button)(target)); + + #line 22 "..\..\Filter.xaml" + this.buttonOK.Click += new System.Windows.RoutedEventHandler(this.buttonOK_Click); + + #line default + #line hidden + return; + case 5: + this.MainGrid = ((System.Windows.Controls.Grid)(target)); + return; + case 6: + this.comboBoxUserName = ((System.Windows.Controls.ComboBox)(target)); + return; + case 7: + this.comboBoxIdentity = ((System.Windows.Controls.ComboBox)(target)); + return; + case 8: + this.comboBoxLevel = ((System.Windows.Controls.ComboBox)(target)); + return; + case 9: + this.textBoxMessage = ((System.Windows.Controls.TextBox)(target)); + return; + case 10: + this.comboBoxThread = ((System.Windows.Controls.ComboBox)(target)); + return; + case 11: + this.comboBoxNDC = ((System.Windows.Controls.ComboBox)(target)); + return; + case 12: + this.comboBoxMachineName = ((System.Windows.Controls.ComboBox)(target)); + return; + case 13: + this.comboBoxHostName = ((System.Windows.Controls.ComboBox)(target)); + return; + case 14: + this.comboBoxApplication = ((System.Windows.Controls.ComboBox)(target)); + return; + case 15: + this.textBoxThrowable = ((System.Windows.Controls.TextBox)(target)); + return; + case 16: + this.comboBoxClass = ((System.Windows.Controls.ComboBox)(target)); + return; + case 17: + this.comboBoxMethod = ((System.Windows.Controls.ComboBox)(target)); + return; + case 18: + this.comboBoxFile = ((System.Windows.Controls.ComboBox)(target)); + return; + case 19: + this.comboLogFile = ((System.Windows.Controls.ComboBox)(target)); + return; + case 20: + this.comboLogger = ((System.Windows.Controls.ComboBox)(target)); + return; + } + this._contentLoaded = true; + } + } +} + diff --git a/obj/Release/Filter.g.i.cs b/obj/Release/Filter.g.i.cs new file mode 100644 index 0000000..19db410 --- /dev/null +++ b/obj/Release/Filter.g.i.cs @@ -0,0 +1,315 @@ +#pragma checksum "..\..\Filter.xaml" "{406ea660-64cf-4c82-b6f0-42d48172a799}" "E1228C874C7BD1F5F433E24ECBAF3E7D" +//------------------------------------------------------------------------------ +// +// Ce code a été généré par un outil. +// Version du runtime :4.0.30319.42000 +// +// Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si +// le code est régénéré. +// +//------------------------------------------------------------------------------ + +using System; +using System.Diagnostics; +using System.Windows; +using System.Windows.Automation; +using System.Windows.Controls; +using System.Windows.Controls.Primitives; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Ink; +using System.Windows.Input; +using System.Windows.Markup; +using System.Windows.Media; +using System.Windows.Media.Animation; +using System.Windows.Media.Effects; +using System.Windows.Media.Imaging; +using System.Windows.Media.Media3D; +using System.Windows.Media.TextFormatting; +using System.Windows.Navigation; +using System.Windows.Shapes; +using System.Windows.Shell; + + +namespace LogViewer { + + + /// + /// Filter + /// + public partial class Filter : System.Windows.Window, System.Windows.Markup.IComponentConnector { + + + #line 1 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal LogViewer.Filter window; + + #line default + #line hidden + + + #line 20 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Button buttonClear; + + #line default + #line hidden + + + #line 21 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Button buttonCancel; + + #line default + #line hidden + + + #line 22 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Button buttonOK; + + #line default + #line hidden + + + #line 24 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Grid MainGrid; + + #line default + #line hidden + + + #line 51 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ComboBox comboBoxUserName; + + #line default + #line hidden + + + #line 57 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ComboBox comboBoxIdentity; + + #line default + #line hidden + + + #line 63 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ComboBox comboBoxLevel; + + #line default + #line hidden + + + #line 69 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxMessage; + + #line default + #line hidden + + + #line 75 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ComboBox comboBoxThread; + + #line default + #line hidden + + + #line 81 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ComboBox comboBoxNDC; + + #line default + #line hidden + + + #line 87 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ComboBox comboBoxMachineName; + + #line default + #line hidden + + + #line 93 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ComboBox comboBoxHostName; + + #line default + #line hidden + + + #line 99 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ComboBox comboBoxApplication; + + #line default + #line hidden + + + #line 105 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxThrowable; + + #line default + #line hidden + + + #line 111 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ComboBox comboBoxClass; + + #line default + #line hidden + + + #line 117 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ComboBox comboBoxMethod; + + #line default + #line hidden + + + #line 123 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ComboBox comboBoxFile; + + #line default + #line hidden + + + #line 129 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ComboBox comboLogFile; + + #line default + #line hidden + + + #line 135 "..\..\Filter.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ComboBox comboLogger; + + #line default + #line hidden + + private bool _contentLoaded; + + /// + /// InitializeComponent + /// + [System.Diagnostics.DebuggerNonUserCodeAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")] + public void InitializeComponent() { + if (_contentLoaded) { + return; + } + _contentLoaded = true; + System.Uri resourceLocater = new System.Uri("/LogViewer;component/filter.xaml", System.UriKind.Relative); + + #line 1 "..\..\Filter.xaml" + System.Windows.Application.LoadComponent(this, resourceLocater); + + #line default + #line hidden + } + + [System.Diagnostics.DebuggerNonUserCodeAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")] + void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) { + switch (connectionId) + { + case 1: + this.window = ((LogViewer.Filter)(target)); + return; + case 2: + this.buttonClear = ((System.Windows.Controls.Button)(target)); + + #line 20 "..\..\Filter.xaml" + this.buttonClear.Click += new System.Windows.RoutedEventHandler(this.buttonClear_Click); + + #line default + #line hidden + return; + case 3: + this.buttonCancel = ((System.Windows.Controls.Button)(target)); + + #line 21 "..\..\Filter.xaml" + this.buttonCancel.Click += new System.Windows.RoutedEventHandler(this.buttonCancel_Click); + + #line default + #line hidden + return; + case 4: + this.buttonOK = ((System.Windows.Controls.Button)(target)); + + #line 22 "..\..\Filter.xaml" + this.buttonOK.Click += new System.Windows.RoutedEventHandler(this.buttonOK_Click); + + #line default + #line hidden + return; + case 5: + this.MainGrid = ((System.Windows.Controls.Grid)(target)); + return; + case 6: + this.comboBoxUserName = ((System.Windows.Controls.ComboBox)(target)); + return; + case 7: + this.comboBoxIdentity = ((System.Windows.Controls.ComboBox)(target)); + return; + case 8: + this.comboBoxLevel = ((System.Windows.Controls.ComboBox)(target)); + return; + case 9: + this.textBoxMessage = ((System.Windows.Controls.TextBox)(target)); + return; + case 10: + this.comboBoxThread = ((System.Windows.Controls.ComboBox)(target)); + return; + case 11: + this.comboBoxNDC = ((System.Windows.Controls.ComboBox)(target)); + return; + case 12: + this.comboBoxMachineName = ((System.Windows.Controls.ComboBox)(target)); + return; + case 13: + this.comboBoxHostName = ((System.Windows.Controls.ComboBox)(target)); + return; + case 14: + this.comboBoxApplication = ((System.Windows.Controls.ComboBox)(target)); + return; + case 15: + this.textBoxThrowable = ((System.Windows.Controls.TextBox)(target)); + return; + case 16: + this.comboBoxClass = ((System.Windows.Controls.ComboBox)(target)); + return; + case 17: + this.comboBoxMethod = ((System.Windows.Controls.ComboBox)(target)); + return; + case 18: + this.comboBoxFile = ((System.Windows.Controls.ComboBox)(target)); + return; + case 19: + this.comboLogFile = ((System.Windows.Controls.ComboBox)(target)); + return; + case 20: + this.comboLogger = ((System.Windows.Controls.ComboBox)(target)); + return; + } + this._contentLoaded = true; + } + } +} + diff --git a/obj/Release/FilterActivity.baml b/obj/Release/FilterActivity.baml new file mode 100644 index 0000000..36b911e Binary files /dev/null and b/obj/Release/FilterActivity.baml differ diff --git a/obj/Release/FilterActivity.g.cs b/obj/Release/FilterActivity.g.cs new file mode 100644 index 0000000..9732d66 --- /dev/null +++ b/obj/Release/FilterActivity.g.cs @@ -0,0 +1,165 @@ +#pragma checksum "..\..\FilterActivity.xaml" "{406ea660-64cf-4c82-b6f0-42d48172a799}" "327E93C949085E16BCE308E9134B6455" +//------------------------------------------------------------------------------ +// +// Ce code a été généré par un outil. +// Version du runtime :4.0.30319.42000 +// +// Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si +// le code est régénéré. +// +//------------------------------------------------------------------------------ + +using System; +using System.Diagnostics; +using System.Windows; +using System.Windows.Automation; +using System.Windows.Controls; +using System.Windows.Controls.Primitives; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Ink; +using System.Windows.Input; +using System.Windows.Markup; +using System.Windows.Media; +using System.Windows.Media.Animation; +using System.Windows.Media.Effects; +using System.Windows.Media.Imaging; +using System.Windows.Media.Media3D; +using System.Windows.Media.TextFormatting; +using System.Windows.Navigation; +using System.Windows.Shapes; +using System.Windows.Shell; + + +namespace LogViewer { + + + /// + /// FilterActivity + /// + public partial class FilterActivity : System.Windows.Controls.UserControl, System.Windows.Markup.IComponentConnector { + + + #line 8 "..\..\FilterActivity.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal LogViewer.FilterActivity UserControl; + + #line default + #line hidden + + + #line 12 "..\..\FilterActivity.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Grid LayoutRoot; + + #line default + #line hidden + + + #line 14 "..\..\FilterActivity.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.VisualStateGroup FilterStateGroup; + + #line default + #line hidden + + + #line 18 "..\..\FilterActivity.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.VisualState Filtered; + + #line default + #line hidden + + + #line 40 "..\..\FilterActivity.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.VisualState NotFiltered; + + #line default + #line hidden + + + #line 43 "..\..\FilterActivity.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Canvas Group; + + #line default + #line hidden + + + #line 44 "..\..\FilterActivity.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Shapes.Path Path; + + #line default + #line hidden + + + #line 45 "..\..\FilterActivity.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Shapes.Path Path_0; + + #line default + #line hidden + + private bool _contentLoaded; + + /// + /// InitializeComponent + /// + [System.Diagnostics.DebuggerNonUserCodeAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")] + public void InitializeComponent() { + if (_contentLoaded) { + return; + } + _contentLoaded = true; + System.Uri resourceLocater = new System.Uri("/LogViewer;component/filteractivity.xaml", System.UriKind.Relative); + + #line 1 "..\..\FilterActivity.xaml" + System.Windows.Application.LoadComponent(this, resourceLocater); + + #line default + #line hidden + } + + [System.Diagnostics.DebuggerNonUserCodeAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")] + void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) { + switch (connectionId) + { + case 1: + this.UserControl = ((LogViewer.FilterActivity)(target)); + return; + case 2: + this.LayoutRoot = ((System.Windows.Controls.Grid)(target)); + return; + case 3: + this.FilterStateGroup = ((System.Windows.VisualStateGroup)(target)); + return; + case 4: + this.Filtered = ((System.Windows.VisualState)(target)); + return; + case 5: + this.NotFiltered = ((System.Windows.VisualState)(target)); + return; + case 6: + this.Group = ((System.Windows.Controls.Canvas)(target)); + return; + case 7: + this.Path = ((System.Windows.Shapes.Path)(target)); + return; + case 8: + this.Path_0 = ((System.Windows.Shapes.Path)(target)); + return; + } + this._contentLoaded = true; + } + } +} + diff --git a/obj/Release/FilterActivity.g.i.cs b/obj/Release/FilterActivity.g.i.cs new file mode 100644 index 0000000..9732d66 --- /dev/null +++ b/obj/Release/FilterActivity.g.i.cs @@ -0,0 +1,165 @@ +#pragma checksum "..\..\FilterActivity.xaml" "{406ea660-64cf-4c82-b6f0-42d48172a799}" "327E93C949085E16BCE308E9134B6455" +//------------------------------------------------------------------------------ +// +// Ce code a été généré par un outil. +// Version du runtime :4.0.30319.42000 +// +// Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si +// le code est régénéré. +// +//------------------------------------------------------------------------------ + +using System; +using System.Diagnostics; +using System.Windows; +using System.Windows.Automation; +using System.Windows.Controls; +using System.Windows.Controls.Primitives; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Ink; +using System.Windows.Input; +using System.Windows.Markup; +using System.Windows.Media; +using System.Windows.Media.Animation; +using System.Windows.Media.Effects; +using System.Windows.Media.Imaging; +using System.Windows.Media.Media3D; +using System.Windows.Media.TextFormatting; +using System.Windows.Navigation; +using System.Windows.Shapes; +using System.Windows.Shell; + + +namespace LogViewer { + + + /// + /// FilterActivity + /// + public partial class FilterActivity : System.Windows.Controls.UserControl, System.Windows.Markup.IComponentConnector { + + + #line 8 "..\..\FilterActivity.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal LogViewer.FilterActivity UserControl; + + #line default + #line hidden + + + #line 12 "..\..\FilterActivity.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Grid LayoutRoot; + + #line default + #line hidden + + + #line 14 "..\..\FilterActivity.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.VisualStateGroup FilterStateGroup; + + #line default + #line hidden + + + #line 18 "..\..\FilterActivity.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.VisualState Filtered; + + #line default + #line hidden + + + #line 40 "..\..\FilterActivity.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.VisualState NotFiltered; + + #line default + #line hidden + + + #line 43 "..\..\FilterActivity.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Canvas Group; + + #line default + #line hidden + + + #line 44 "..\..\FilterActivity.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Shapes.Path Path; + + #line default + #line hidden + + + #line 45 "..\..\FilterActivity.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Shapes.Path Path_0; + + #line default + #line hidden + + private bool _contentLoaded; + + /// + /// InitializeComponent + /// + [System.Diagnostics.DebuggerNonUserCodeAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")] + public void InitializeComponent() { + if (_contentLoaded) { + return; + } + _contentLoaded = true; + System.Uri resourceLocater = new System.Uri("/LogViewer;component/filteractivity.xaml", System.UriKind.Relative); + + #line 1 "..\..\FilterActivity.xaml" + System.Windows.Application.LoadComponent(this, resourceLocater); + + #line default + #line hidden + } + + [System.Diagnostics.DebuggerNonUserCodeAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")] + void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) { + switch (connectionId) + { + case 1: + this.UserControl = ((LogViewer.FilterActivity)(target)); + return; + case 2: + this.LayoutRoot = ((System.Windows.Controls.Grid)(target)); + return; + case 3: + this.FilterStateGroup = ((System.Windows.VisualStateGroup)(target)); + return; + case 4: + this.Filtered = ((System.Windows.VisualState)(target)); + return; + case 5: + this.NotFiltered = ((System.Windows.VisualState)(target)); + return; + case 6: + this.Group = ((System.Windows.Controls.Canvas)(target)); + return; + case 7: + this.Path = ((System.Windows.Shapes.Path)(target)); + return; + case 8: + this.Path_0 = ((System.Windows.Shapes.Path)(target)); + return; + } + this._contentLoaded = true; + } + } +} + diff --git a/obj/Release/GeneratedInternalTypeHelper.g.cs b/obj/Release/GeneratedInternalTypeHelper.g.cs new file mode 100644 index 0000000..9712922 --- /dev/null +++ b/obj/Release/GeneratedInternalTypeHelper.g.cs @@ -0,0 +1,62 @@ +//------------------------------------------------------------------------------ +// +// Ce code a été généré par un outil. +// Version du runtime :4.0.30319.42000 +// +// Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si +// le code est régénéré. +// +//------------------------------------------------------------------------------ + +namespace XamlGeneratedNamespace { + + + /// + /// GeneratedInternalTypeHelper + /// + [System.Diagnostics.DebuggerNonUserCodeAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public sealed class GeneratedInternalTypeHelper : System.Windows.Markup.InternalTypeHelper { + + /// + /// CreateInstance + /// + protected override object CreateInstance(System.Type type, System.Globalization.CultureInfo culture) { + return System.Activator.CreateInstance(type, ((System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.NonPublic) + | (System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.CreateInstance)), null, null, culture); + } + + /// + /// GetPropertyValue + /// + protected override object GetPropertyValue(System.Reflection.PropertyInfo propertyInfo, object target, System.Globalization.CultureInfo culture) { + return propertyInfo.GetValue(target, System.Reflection.BindingFlags.Default, null, null, culture); + } + + /// + /// SetPropertyValue + /// + protected override void SetPropertyValue(System.Reflection.PropertyInfo propertyInfo, object target, object value, System.Globalization.CultureInfo culture) { + propertyInfo.SetValue(target, value, System.Reflection.BindingFlags.Default, null, null, culture); + } + + /// + /// CreateDelegate + /// + protected override System.Delegate CreateDelegate(System.Type delegateType, object target, string handler) { + return ((System.Delegate)(target.GetType().InvokeMember("_CreateDelegate", (System.Reflection.BindingFlags.InvokeMethod + | (System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance)), null, target, new object[] { + delegateType, + handler}, null))); + } + + /// + /// AddEventHandler + /// + protected override void AddEventHandler(System.Reflection.EventInfo eventInfo, object target, System.Delegate handler) { + eventInfo.AddEventHandler(target, handler); + } + } +} + diff --git a/obj/Release/GeneratedInternalTypeHelper.g.i.cs b/obj/Release/GeneratedInternalTypeHelper.g.i.cs new file mode 100644 index 0000000..9712922 --- /dev/null +++ b/obj/Release/GeneratedInternalTypeHelper.g.i.cs @@ -0,0 +1,62 @@ +//------------------------------------------------------------------------------ +// +// Ce code a été généré par un outil. +// Version du runtime :4.0.30319.42000 +// +// Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si +// le code est régénéré. +// +//------------------------------------------------------------------------------ + +namespace XamlGeneratedNamespace { + + + /// + /// GeneratedInternalTypeHelper + /// + [System.Diagnostics.DebuggerNonUserCodeAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public sealed class GeneratedInternalTypeHelper : System.Windows.Markup.InternalTypeHelper { + + /// + /// CreateInstance + /// + protected override object CreateInstance(System.Type type, System.Globalization.CultureInfo culture) { + return System.Activator.CreateInstance(type, ((System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.NonPublic) + | (System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.CreateInstance)), null, null, culture); + } + + /// + /// GetPropertyValue + /// + protected override object GetPropertyValue(System.Reflection.PropertyInfo propertyInfo, object target, System.Globalization.CultureInfo culture) { + return propertyInfo.GetValue(target, System.Reflection.BindingFlags.Default, null, null, culture); + } + + /// + /// SetPropertyValue + /// + protected override void SetPropertyValue(System.Reflection.PropertyInfo propertyInfo, object target, object value, System.Globalization.CultureInfo culture) { + propertyInfo.SetValue(target, value, System.Reflection.BindingFlags.Default, null, null, culture); + } + + /// + /// CreateDelegate + /// + protected override System.Delegate CreateDelegate(System.Type delegateType, object target, string handler) { + return ((System.Delegate)(target.GetType().InvokeMember("_CreateDelegate", (System.Reflection.BindingFlags.InvokeMethod + | (System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance)), null, target, new object[] { + delegateType, + handler}, null))); + } + + /// + /// AddEventHandler + /// + protected override void AddEventHandler(System.Reflection.EventInfo eventInfo, object target, System.Delegate handler) { + eventInfo.AddEventHandler(target, handler); + } + } +} + diff --git a/obj/Release/LogViewer.Properties.Resources.resources b/obj/Release/LogViewer.Properties.Resources.resources new file mode 100644 index 0000000..511d1cc Binary files /dev/null and b/obj/Release/LogViewer.Properties.Resources.resources differ diff --git a/obj/Release/LogViewer.csproj.FileListAbsolute.txt b/obj/Release/LogViewer.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..40b76a0 --- /dev/null +++ b/obj/Release/LogViewer.csproj.FileListAbsolute.txt @@ -0,0 +1,46 @@ +D:\EnCours\LogViewerForLog4Net\bin\Release\LogViewer.exe.config +D:\EnCours\LogViewerForLog4Net\bin\Release\LogViewer.exe +D:\EnCours\LogViewerForLog4Net\bin\Release\LogViewer.pdb +D:\EnCours\LogViewerForLog4Net\bin\Release\log4net.dll +D:\EnCours\LogViewerForLog4Net\bin\Release\Microsoft.Expression.Effects.dll +D:\EnCours\LogViewerForLog4Net\bin\Release\Microsoft.Expression.Interactions.dll +D:\EnCours\LogViewerForLog4Net\bin\Release\System.Windows.Interactivity.dll +D:\EnCours\LogViewerForLog4Net\bin\Release\log4net.xml +D:\EnCours\LogViewerForLog4Net\bin\Release\Microsoft.Expression.Effects.xml +D:\EnCours\LogViewerForLog4Net\bin\Release\Microsoft.Expression.Interactions.xml +D:\EnCours\LogViewerForLog4Net\bin\Release\System.Windows.Interactivity.xml +D:\EnCours\LogViewerForLog4Net\bin\Release\de\Microsoft.Expression.Interactions.resources.dll +D:\EnCours\LogViewerForLog4Net\bin\Release\en\Microsoft.Expression.Interactions.resources.dll +D:\EnCours\LogViewerForLog4Net\bin\Release\es\Microsoft.Expression.Interactions.resources.dll +D:\EnCours\LogViewerForLog4Net\bin\Release\fr\Microsoft.Expression.Interactions.resources.dll +D:\EnCours\LogViewerForLog4Net\bin\Release\it\Microsoft.Expression.Interactions.resources.dll +D:\EnCours\LogViewerForLog4Net\bin\Release\ja\Microsoft.Expression.Interactions.resources.dll +D:\EnCours\LogViewerForLog4Net\bin\Release\ko\Microsoft.Expression.Interactions.resources.dll +D:\EnCours\LogViewerForLog4Net\bin\Release\zh-Hans\Microsoft.Expression.Interactions.resources.dll +D:\EnCours\LogViewerForLog4Net\bin\Release\zh-Hant\Microsoft.Expression.Interactions.resources.dll +D:\EnCours\LogViewerForLog4Net\bin\Release\de\System.Windows.Interactivity.resources.dll +D:\EnCours\LogViewerForLog4Net\bin\Release\en\System.Windows.Interactivity.resources.dll +D:\EnCours\LogViewerForLog4Net\bin\Release\es\System.Windows.Interactivity.resources.dll +D:\EnCours\LogViewerForLog4Net\bin\Release\fr\System.Windows.Interactivity.resources.dll +D:\EnCours\LogViewerForLog4Net\bin\Release\it\System.Windows.Interactivity.resources.dll +D:\EnCours\LogViewerForLog4Net\bin\Release\ja\System.Windows.Interactivity.resources.dll +D:\EnCours\LogViewerForLog4Net\bin\Release\ko\System.Windows.Interactivity.resources.dll +D:\EnCours\LogViewerForLog4Net\bin\Release\zh-Hans\System.Windows.Interactivity.resources.dll +D:\EnCours\LogViewerForLog4Net\bin\Release\zh-Hant\System.Windows.Interactivity.resources.dll +D:\EnCours\LogViewerForLog4Net\obj\Release\About.baml +D:\EnCours\LogViewerForLog4Net\obj\Release\Filter.baml +D:\EnCours\LogViewerForLog4Net\obj\Release\FilterActivity.baml +D:\EnCours\LogViewerForLog4Net\obj\Release\About.g.cs +D:\EnCours\LogViewerForLog4Net\obj\Release\Filter.g.cs +D:\EnCours\LogViewerForLog4Net\obj\Release\FilterActivity.g.cs +D:\EnCours\LogViewerForLog4Net\obj\Release\MainWindow.g.cs +D:\EnCours\LogViewerForLog4Net\obj\Release\App.g.cs +D:\EnCours\LogViewerForLog4Net\obj\Release\GeneratedInternalTypeHelper.g.cs +D:\EnCours\LogViewerForLog4Net\obj\Release\LogViewer_MarkupCompile.cache +D:\EnCours\LogViewerForLog4Net\obj\Release\LogViewer_MarkupCompile.lref +D:\EnCours\LogViewerForLog4Net\obj\Release\MainWindow.baml +D:\EnCours\LogViewerForLog4Net\obj\Release\LogViewer.g.resources +D:\EnCours\LogViewerForLog4Net\obj\Release\LogViewer.Properties.Resources.resources +D:\EnCours\LogViewerForLog4Net\obj\Release\LogViewer.csproj.GenerateResource.Cache +D:\EnCours\LogViewerForLog4Net\obj\Release\LogViewer.exe +D:\EnCours\LogViewerForLog4Net\obj\Release\LogViewer.pdb diff --git a/obj/Release/LogViewer.csproj.GenerateResource.Cache b/obj/Release/LogViewer.csproj.GenerateResource.Cache new file mode 100644 index 0000000..3ce68a9 Binary files /dev/null and b/obj/Release/LogViewer.csproj.GenerateResource.Cache differ diff --git a/obj/Release/LogViewer.exe b/obj/Release/LogViewer.exe new file mode 100644 index 0000000..e844f8a Binary files /dev/null and b/obj/Release/LogViewer.exe differ diff --git a/obj/Release/LogViewer.g.resources b/obj/Release/LogViewer.g.resources new file mode 100644 index 0000000..9720aac Binary files /dev/null and b/obj/Release/LogViewer.g.resources differ diff --git a/obj/Release/LogViewer.pdb b/obj/Release/LogViewer.pdb new file mode 100644 index 0000000..54a5c10 Binary files /dev/null and b/obj/Release/LogViewer.pdb differ diff --git a/obj/Release/LogViewer_MarkupCompile.cache b/obj/Release/LogViewer_MarkupCompile.cache new file mode 100644 index 0000000..0aa9183 --- /dev/null +++ b/obj/Release/LogViewer_MarkupCompile.cache @@ -0,0 +1,20 @@ +LogViewer + + +winexe +C# +.cs +D:\EnCours\LogViewerForLog4Net\obj\Release\ +LogViewer +none +false +TRACE +D:\EnCours\LogViewerForLog4Net\App.xaml +4-1243422802 + +14-905081002 +20-818907814 +About.xaml;Filter.xaml;FilterActivity.xaml;MainWindow.xaml; + +False + diff --git a/obj/Release/LogViewer_MarkupCompile.i.cache b/obj/Release/LogViewer_MarkupCompile.i.cache new file mode 100644 index 0000000..fe726d7 --- /dev/null +++ b/obj/Release/LogViewer_MarkupCompile.i.cache @@ -0,0 +1,20 @@ +LogViewer + + +winexe +C# +.cs +D:\EnCours\LogViewerForLog4Net\obj\Release\ +LogViewer +none +false +TRACE +D:\EnCours\LogViewerForLog4Net\App.xaml +4-1243422802 + +18-1819028706 +20-818907814 +About.xaml;Filter.xaml;FilterActivity.xaml;MainWindow.xaml; + +True + diff --git a/obj/Release/LogViewer_MarkupCompile.i.lref b/obj/Release/LogViewer_MarkupCompile.i.lref new file mode 100644 index 0000000..8fe6431 --- /dev/null +++ b/obj/Release/LogViewer_MarkupCompile.i.lref @@ -0,0 +1,4 @@ +D:\EnCours\LogViewerForLog4Net\obj\Release\GeneratedInternalTypeHelper.g.i.cs + +FD:\EnCours\LogViewerForLog4Net\MainWindow.xaml;; + diff --git a/obj/Release/LogViewer_MarkupCompile.lref b/obj/Release/LogViewer_MarkupCompile.lref new file mode 100644 index 0000000..455bd2c --- /dev/null +++ b/obj/Release/LogViewer_MarkupCompile.lref @@ -0,0 +1,4 @@ +D:\EnCours\LogViewerForLog4Net\obj\Release\GeneratedInternalTypeHelper.g.cs + +FD:\EnCours\LogViewerForLog4Net\MainWindow.xaml;; + diff --git a/obj/Release/MainWindow.baml b/obj/Release/MainWindow.baml new file mode 100644 index 0000000..aab979e Binary files /dev/null and b/obj/Release/MainWindow.baml differ diff --git a/obj/Release/MainWindow.g.cs b/obj/Release/MainWindow.g.cs new file mode 100644 index 0000000..edbb3ab --- /dev/null +++ b/obj/Release/MainWindow.g.cs @@ -0,0 +1,1000 @@ +#pragma checksum "..\..\MainWindow.xaml" "{406ea660-64cf-4c82-b6f0-42d48172a799}" "C1B3918A1C907E0D16763BA2AF37EBE8" +//------------------------------------------------------------------------------ +// +// Ce code a été généré par un outil. +// Version du runtime :4.0.30319.42000 +// +// Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si +// le code est régénéré. +// +//------------------------------------------------------------------------------ + +using LogViewer; +using Microsoft.Expression.Interactivity.Core; +using Microsoft.Expression.Interactivity.Input; +using Microsoft.Expression.Interactivity.Layout; +using Microsoft.Expression.Interactivity.Media; +using System; +using System.Diagnostics; +using System.Windows; +using System.Windows.Automation; +using System.Windows.Controls; +using System.Windows.Controls.Primitives; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Ink; +using System.Windows.Input; +using System.Windows.Interactivity; +using System.Windows.Markup; +using System.Windows.Media; +using System.Windows.Media.Animation; +using System.Windows.Media.Effects; +using System.Windows.Media.Imaging; +using System.Windows.Media.Media3D; +using System.Windows.Media.TextFormatting; +using System.Windows.Navigation; +using System.Windows.Shapes; +using System.Windows.Shell; + + +namespace LogViewer { + + + /// + /// MainWindow + /// + public partial class MainWindow : System.Windows.Window, System.Windows.Markup.IComponentConnector { + + + #line 31 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Grid gridMenu; + + #line default + #line hidden + + + #line 35 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Menu menu1; + + #line default + #line hidden + + + #line 39 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal LogViewer.RecentFileList RecentFileList; + + #line default + #line hidden + + + #line 42 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.MenuItem MenuMergeItem; + + #line default + #line hidden + + + #line 44 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.MenuItem ResetSeparator; + + #line default + #line hidden + + + #line 51 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Grid gridTopBar; + + #line default + #line hidden + + + #line 56 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Grid spPath; + + #line default + #line hidden + + + #line 67 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBlock textboxFileName; + + #line default + #line hidden + + + #line 73 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.StackPanel spCountAndSearch; + + #line default + #line hidden + + + #line 74 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.StackPanel spGlobalInfo; + + #line default + #line hidden + + + #line 75 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal LogViewer.FilterActivity FilterIndicator; + + #line default + #line hidden + + + #line 76 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBlock tbFiltered; + + #line default + #line hidden + + + #line 78 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.StackPanel spCounters; + + #line default + #line hidden + + + #line 80 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Image imageError; + + #line default + #line hidden + + + #line 81 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBlock labelErrorCount; + + #line default + #line hidden + + + #line 88 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Image imageWarn; + + #line default + #line hidden + + + #line 89 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBlock labelWarnCount; + + #line default + #line hidden + + + #line 96 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Image imageDebug; + + #line default + #line hidden + + + #line 97 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBlock labelDebugCount; + + #line default + #line hidden + + + #line 104 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Image imageInfo; + + #line default + #line hidden + + + #line 105 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBlock labelInfoCount; + + #line default + #line hidden + + + #line 112 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.StackPanel spFind; + + #line default + #line hidden + + + #line 113 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Image image2; + + #line default + #line hidden + + + #line 114 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBlock label3; + + #line default + #line hidden + + + #line 119 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxFind; + + #line default + #line hidden + + + #line 120 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Button buttonFindNext; + + #line default + #line hidden + + + #line 164 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Button buttonFindPrevious; + + #line default + #line hidden + + + #line 217 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Grid MainGrid; + + #line default + #line hidden + + + #line 224 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Border borderTop; + + #line default + #line hidden + + + #line 225 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ListView listView1; + + #line default + #line hidden + + + #line 258 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.GridView GridView1; + + #line default + #line hidden + + + #line 282 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.GridSplitter gridSplitter1; + + #line default + #line hidden + + + #line 283 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Grid bottomGrid; + + #line default + #line hidden + + + #line 318 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Image image1; + + #line default + #line hidden + + + #line 319 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxLevel; + + #line default + #line hidden + + + #line 320 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label label1; + + #line default + #line hidden + + + #line 325 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxTimeStamp; + + #line default + #line hidden + + + #line 326 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label label2; + + #line default + #line hidden + + + #line 331 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxMachineName; + + #line default + #line hidden + + + #line 332 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label labelThread; + + #line default + #line hidden + + + #line 337 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxThread; + + #line default + #line hidden + + + #line 339 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label labelNDC; + + #line default + #line hidden + + + #line 344 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxNDC; + + #line default + #line hidden + + + #line 345 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label label4; + + #line default + #line hidden + + + #line 350 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxHostName; + + #line default + #line hidden + + + #line 351 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label label5; + + #line default + #line hidden + + + #line 356 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxUserName; + + #line default + #line hidden + + + #line 357 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label label6; + + #line default + #line hidden + + + #line 362 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxApp; + + #line default + #line hidden + + + #line 364 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label label7; + + #line default + #line hidden + + + #line 369 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxClass; + + #line default + #line hidden + + + #line 370 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label label8; + + #line default + #line hidden + + + #line 375 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxMethod; + + #line default + #line hidden + + + #line 376 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label label10; + + #line default + #line hidden + + + #line 381 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxIdentity; + + #line default + #line hidden + + + #line 384 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label label6b; + + #line default + #line hidden + + + #line 389 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxLog; + + #line default + #line hidden + + + #line 392 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label labelFile; + + #line default + #line hidden + + + #line 397 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxfile; + + #line default + #line hidden + + + #line 399 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label label9; + + #line default + #line hidden + + + #line 404 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxLine; + + #line default + #line hidden + + + #line 406 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label labelLogger; + + #line default + #line hidden + + + #line 411 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxLogger; + + #line default + #line hidden + + + #line 413 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label labelItem; + + #line default + #line hidden + + + #line 418 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxItem; + + #line default + #line hidden + + + #line 422 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TabControl tabControl1; + + #line default + #line hidden + + + #line 424 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxMessage; + + #line default + #line hidden + + + #line 427 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxThrowable; + + #line default + #line hidden + + private bool _contentLoaded; + + /// + /// InitializeComponent + /// + [System.Diagnostics.DebuggerNonUserCodeAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")] + public void InitializeComponent() { + if (_contentLoaded) { + return; + } + _contentLoaded = true; + System.Uri resourceLocater = new System.Uri("/LogViewer;component/mainwindow.xaml", System.UriKind.Relative); + + #line 1 "..\..\MainWindow.xaml" + System.Windows.Application.LoadComponent(this, resourceLocater); + + #line default + #line hidden + } + + [System.Diagnostics.DebuggerNonUserCodeAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal System.Delegate _CreateDelegate(System.Type delegateType, string handler) { + return System.Delegate.CreateDelegate(delegateType, this, handler); + } + + [System.Diagnostics.DebuggerNonUserCodeAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")] + void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) { + switch (connectionId) + { + case 1: + + #line 13 "..\..\MainWindow.xaml" + ((LogViewer.MainWindow)(target)).Closed += new System.EventHandler(this.window_Closed); + + #line default + #line hidden + return; + case 2: + + #line 18 "..\..\MainWindow.xaml" + ((System.Windows.Input.CommandBinding)(target)).CanExecute += new System.Windows.Input.CanExecuteRoutedEventHandler(this.openCanExecute); + + #line default + #line hidden + + #line 18 "..\..\MainWindow.xaml" + ((System.Windows.Input.CommandBinding)(target)).Executed += new System.Windows.Input.ExecutedRoutedEventHandler(this.openExecuted); + + #line default + #line hidden + return; + case 3: + + #line 19 "..\..\MainWindow.xaml" + ((System.Windows.Input.CommandBinding)(target)).CanExecute += new System.Windows.Input.CanExecuteRoutedEventHandler(this.exitCanExecute); + + #line default + #line hidden + + #line 19 "..\..\MainWindow.xaml" + ((System.Windows.Input.CommandBinding)(target)).Executed += new System.Windows.Input.ExecutedRoutedEventHandler(this.exitExecuted); + + #line default + #line hidden + return; + case 4: + + #line 20 "..\..\MainWindow.xaml" + ((System.Windows.Input.CommandBinding)(target)).CanExecute += new System.Windows.Input.CanExecuteRoutedEventHandler(this.refreshCanExecute); + + #line default + #line hidden + + #line 20 "..\..\MainWindow.xaml" + ((System.Windows.Input.CommandBinding)(target)).Executed += new System.Windows.Input.ExecutedRoutedEventHandler(this.refreshExecuted); + + #line default + #line hidden + return; + case 5: + + #line 21 "..\..\MainWindow.xaml" + ((System.Windows.Input.CommandBinding)(target)).CanExecute += new System.Windows.Input.CanExecuteRoutedEventHandler(this.filterCanExexute); + + #line default + #line hidden + + #line 21 "..\..\MainWindow.xaml" + ((System.Windows.Input.CommandBinding)(target)).Executed += new System.Windows.Input.ExecutedRoutedEventHandler(this.filterExecuted); + + #line default + #line hidden + return; + case 6: + + #line 22 "..\..\MainWindow.xaml" + ((System.Windows.Input.CommandBinding)(target)).CanExecute += new System.Windows.Input.CanExecuteRoutedEventHandler(this.aboutCanExecute); + + #line default + #line hidden + + #line 22 "..\..\MainWindow.xaml" + ((System.Windows.Input.CommandBinding)(target)).Executed += new System.Windows.Input.ExecutedRoutedEventHandler(this.aboutExecuted); + + #line default + #line hidden + return; + case 7: + this.gridMenu = ((System.Windows.Controls.Grid)(target)); + return; + case 8: + this.menu1 = ((System.Windows.Controls.Menu)(target)); + return; + case 9: + this.RecentFileList = ((LogViewer.RecentFileList)(target)); + return; + case 10: + this.MenuMergeItem = ((System.Windows.Controls.MenuItem)(target)); + + #line 42 "..\..\MainWindow.xaml" + this.MenuMergeItem.Click += new System.Windows.RoutedEventHandler(this.mergeFile_Click); + + #line default + #line hidden + return; + case 11: + this.ResetSeparator = ((System.Windows.Controls.MenuItem)(target)); + + #line 44 "..\..\MainWindow.xaml" + this.ResetSeparator.Click += new System.Windows.RoutedEventHandler(this.resetSeparator_Click); + + #line default + #line hidden + return; + case 12: + this.gridTopBar = ((System.Windows.Controls.Grid)(target)); + return; + case 13: + this.spPath = ((System.Windows.Controls.Grid)(target)); + return; + case 14: + this.textboxFileName = ((System.Windows.Controls.TextBlock)(target)); + return; + case 15: + this.spCountAndSearch = ((System.Windows.Controls.StackPanel)(target)); + return; + case 16: + this.spGlobalInfo = ((System.Windows.Controls.StackPanel)(target)); + return; + case 17: + this.FilterIndicator = ((LogViewer.FilterActivity)(target)); + return; + case 18: + this.tbFiltered = ((System.Windows.Controls.TextBlock)(target)); + + #line 76 "..\..\MainWindow.xaml" + this.tbFiltered.MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.filterIndicator_MouseLeftButtonDown); + + #line default + #line hidden + return; + case 19: + this.spCounters = ((System.Windows.Controls.StackPanel)(target)); + return; + case 20: + this.imageError = ((System.Windows.Controls.Image)(target)); + + #line 80 "..\..\MainWindow.xaml" + this.imageError.MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.imageError_MouseLeftButtonDown); + + #line default + #line hidden + return; + case 21: + this.labelErrorCount = ((System.Windows.Controls.TextBlock)(target)); + return; + case 22: + this.imageWarn = ((System.Windows.Controls.Image)(target)); + + #line 88 "..\..\MainWindow.xaml" + this.imageWarn.MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.imageWarn_MouseLeftButtonDown); + + #line default + #line hidden + return; + case 23: + this.labelWarnCount = ((System.Windows.Controls.TextBlock)(target)); + return; + case 24: + this.imageDebug = ((System.Windows.Controls.Image)(target)); + + #line 96 "..\..\MainWindow.xaml" + this.imageDebug.MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.imageDebug_MouseLeftButtonDown); + + #line default + #line hidden + return; + case 25: + this.labelDebugCount = ((System.Windows.Controls.TextBlock)(target)); + return; + case 26: + this.imageInfo = ((System.Windows.Controls.Image)(target)); + + #line 104 "..\..\MainWindow.xaml" + this.imageInfo.MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.imageInfo_MouseLeftButtonDown); + + #line default + #line hidden + return; + case 27: + this.labelInfoCount = ((System.Windows.Controls.TextBlock)(target)); + return; + case 28: + this.spFind = ((System.Windows.Controls.StackPanel)(target)); + return; + case 29: + this.image2 = ((System.Windows.Controls.Image)(target)); + return; + case 30: + this.label3 = ((System.Windows.Controls.TextBlock)(target)); + return; + case 31: + this.textBoxFind = ((System.Windows.Controls.TextBox)(target)); + + #line 119 "..\..\MainWindow.xaml" + this.textBoxFind.KeyDown += new System.Windows.Input.KeyEventHandler(this.textBoxFind_KeyDown); + + #line default + #line hidden + + #line 119 "..\..\MainWindow.xaml" + this.textBoxFind.PreviewKeyDown += new System.Windows.Input.KeyEventHandler(this.textBoxFind_PreviewKeyDown); + + #line default + #line hidden + return; + case 32: + this.buttonFindNext = ((System.Windows.Controls.Button)(target)); + + #line 120 "..\..\MainWindow.xaml" + this.buttonFindNext.Click += new System.Windows.RoutedEventHandler(this.buttonFindNext_Click); + + #line default + #line hidden + return; + case 33: + this.buttonFindPrevious = ((System.Windows.Controls.Button)(target)); + + #line 164 "..\..\MainWindow.xaml" + this.buttonFindPrevious.Click += new System.Windows.RoutedEventHandler(this.buttonFindPrevious_Click); + + #line default + #line hidden + return; + case 34: + this.MainGrid = ((System.Windows.Controls.Grid)(target)); + return; + case 35: + this.borderTop = ((System.Windows.Controls.Border)(target)); + return; + case 36: + this.listView1 = ((System.Windows.Controls.ListView)(target)); + + #line 229 "..\..\MainWindow.xaml" + this.listView1.SelectionChanged += new System.Windows.Controls.SelectionChangedEventHandler(this.listView1_SelectionChanged); + + #line default + #line hidden + + #line 230 "..\..\MainWindow.xaml" + this.listView1.Drop += new System.Windows.DragEventHandler(this.listView1_Drop); + + #line default + #line hidden + return; + case 37: + this.GridView1 = ((System.Windows.Controls.GridView)(target)); + return; + case 38: + this.gridSplitter1 = ((System.Windows.Controls.GridSplitter)(target)); + return; + case 39: + this.bottomGrid = ((System.Windows.Controls.Grid)(target)); + return; + case 40: + this.image1 = ((System.Windows.Controls.Image)(target)); + return; + case 41: + this.textBoxLevel = ((System.Windows.Controls.TextBox)(target)); + return; + case 42: + this.label1 = ((System.Windows.Controls.Label)(target)); + return; + case 43: + this.textBoxTimeStamp = ((System.Windows.Controls.TextBox)(target)); + return; + case 44: + this.label2 = ((System.Windows.Controls.Label)(target)); + return; + case 45: + this.textBoxMachineName = ((System.Windows.Controls.TextBox)(target)); + return; + case 46: + this.labelThread = ((System.Windows.Controls.Label)(target)); + return; + case 47: + this.textBoxThread = ((System.Windows.Controls.TextBox)(target)); + return; + case 48: + this.labelNDC = ((System.Windows.Controls.Label)(target)); + return; + case 49: + this.textBoxNDC = ((System.Windows.Controls.TextBox)(target)); + return; + case 50: + this.label4 = ((System.Windows.Controls.Label)(target)); + return; + case 51: + this.textBoxHostName = ((System.Windows.Controls.TextBox)(target)); + return; + case 52: + this.label5 = ((System.Windows.Controls.Label)(target)); + return; + case 53: + this.textBoxUserName = ((System.Windows.Controls.TextBox)(target)); + return; + case 54: + this.label6 = ((System.Windows.Controls.Label)(target)); + return; + case 55: + this.textBoxApp = ((System.Windows.Controls.TextBox)(target)); + return; + case 56: + this.label7 = ((System.Windows.Controls.Label)(target)); + return; + case 57: + this.textBoxClass = ((System.Windows.Controls.TextBox)(target)); + return; + case 58: + this.label8 = ((System.Windows.Controls.Label)(target)); + return; + case 59: + this.textBoxMethod = ((System.Windows.Controls.TextBox)(target)); + return; + case 60: + this.label10 = ((System.Windows.Controls.Label)(target)); + return; + case 61: + this.textBoxIdentity = ((System.Windows.Controls.TextBox)(target)); + return; + case 62: + this.label6b = ((System.Windows.Controls.Label)(target)); + + #line 384 "..\..\MainWindow.xaml" + this.label6b.MouseDoubleClick += new System.Windows.Input.MouseButtonEventHandler(this.label6b_MouseDoubleClick); + + #line default + #line hidden + return; + case 63: + this.textBoxLog = ((System.Windows.Controls.TextBox)(target)); + return; + case 64: + this.labelFile = ((System.Windows.Controls.Label)(target)); + return; + case 65: + this.textBoxfile = ((System.Windows.Controls.TextBox)(target)); + return; + case 66: + this.label9 = ((System.Windows.Controls.Label)(target)); + return; + case 67: + this.textBoxLine = ((System.Windows.Controls.TextBox)(target)); + return; + case 68: + this.labelLogger = ((System.Windows.Controls.Label)(target)); + return; + case 69: + this.textBoxLogger = ((System.Windows.Controls.TextBox)(target)); + return; + case 70: + this.labelItem = ((System.Windows.Controls.Label)(target)); + return; + case 71: + this.textBoxItem = ((System.Windows.Controls.TextBox)(target)); + return; + case 72: + this.tabControl1 = ((System.Windows.Controls.TabControl)(target)); + return; + case 73: + this.textBoxMessage = ((System.Windows.Controls.TextBox)(target)); + return; + case 74: + this.textBoxThrowable = ((System.Windows.Controls.TextBox)(target)); + return; + } + this._contentLoaded = true; + } + } +} + diff --git a/obj/Release/MainWindow.g.i.cs b/obj/Release/MainWindow.g.i.cs new file mode 100644 index 0000000..edbb3ab --- /dev/null +++ b/obj/Release/MainWindow.g.i.cs @@ -0,0 +1,1000 @@ +#pragma checksum "..\..\MainWindow.xaml" "{406ea660-64cf-4c82-b6f0-42d48172a799}" "C1B3918A1C907E0D16763BA2AF37EBE8" +//------------------------------------------------------------------------------ +// +// Ce code a été généré par un outil. +// Version du runtime :4.0.30319.42000 +// +// Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si +// le code est régénéré. +// +//------------------------------------------------------------------------------ + +using LogViewer; +using Microsoft.Expression.Interactivity.Core; +using Microsoft.Expression.Interactivity.Input; +using Microsoft.Expression.Interactivity.Layout; +using Microsoft.Expression.Interactivity.Media; +using System; +using System.Diagnostics; +using System.Windows; +using System.Windows.Automation; +using System.Windows.Controls; +using System.Windows.Controls.Primitives; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Ink; +using System.Windows.Input; +using System.Windows.Interactivity; +using System.Windows.Markup; +using System.Windows.Media; +using System.Windows.Media.Animation; +using System.Windows.Media.Effects; +using System.Windows.Media.Imaging; +using System.Windows.Media.Media3D; +using System.Windows.Media.TextFormatting; +using System.Windows.Navigation; +using System.Windows.Shapes; +using System.Windows.Shell; + + +namespace LogViewer { + + + /// + /// MainWindow + /// + public partial class MainWindow : System.Windows.Window, System.Windows.Markup.IComponentConnector { + + + #line 31 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Grid gridMenu; + + #line default + #line hidden + + + #line 35 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Menu menu1; + + #line default + #line hidden + + + #line 39 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal LogViewer.RecentFileList RecentFileList; + + #line default + #line hidden + + + #line 42 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.MenuItem MenuMergeItem; + + #line default + #line hidden + + + #line 44 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.MenuItem ResetSeparator; + + #line default + #line hidden + + + #line 51 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Grid gridTopBar; + + #line default + #line hidden + + + #line 56 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Grid spPath; + + #line default + #line hidden + + + #line 67 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBlock textboxFileName; + + #line default + #line hidden + + + #line 73 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.StackPanel spCountAndSearch; + + #line default + #line hidden + + + #line 74 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.StackPanel spGlobalInfo; + + #line default + #line hidden + + + #line 75 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal LogViewer.FilterActivity FilterIndicator; + + #line default + #line hidden + + + #line 76 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBlock tbFiltered; + + #line default + #line hidden + + + #line 78 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.StackPanel spCounters; + + #line default + #line hidden + + + #line 80 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Image imageError; + + #line default + #line hidden + + + #line 81 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBlock labelErrorCount; + + #line default + #line hidden + + + #line 88 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Image imageWarn; + + #line default + #line hidden + + + #line 89 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBlock labelWarnCount; + + #line default + #line hidden + + + #line 96 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Image imageDebug; + + #line default + #line hidden + + + #line 97 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBlock labelDebugCount; + + #line default + #line hidden + + + #line 104 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Image imageInfo; + + #line default + #line hidden + + + #line 105 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBlock labelInfoCount; + + #line default + #line hidden + + + #line 112 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.StackPanel spFind; + + #line default + #line hidden + + + #line 113 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Image image2; + + #line default + #line hidden + + + #line 114 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBlock label3; + + #line default + #line hidden + + + #line 119 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxFind; + + #line default + #line hidden + + + #line 120 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Button buttonFindNext; + + #line default + #line hidden + + + #line 164 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Button buttonFindPrevious; + + #line default + #line hidden + + + #line 217 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Grid MainGrid; + + #line default + #line hidden + + + #line 224 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Border borderTop; + + #line default + #line hidden + + + #line 225 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.ListView listView1; + + #line default + #line hidden + + + #line 258 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.GridView GridView1; + + #line default + #line hidden + + + #line 282 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.GridSplitter gridSplitter1; + + #line default + #line hidden + + + #line 283 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Grid bottomGrid; + + #line default + #line hidden + + + #line 318 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Image image1; + + #line default + #line hidden + + + #line 319 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxLevel; + + #line default + #line hidden + + + #line 320 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label label1; + + #line default + #line hidden + + + #line 325 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxTimeStamp; + + #line default + #line hidden + + + #line 326 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label label2; + + #line default + #line hidden + + + #line 331 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxMachineName; + + #line default + #line hidden + + + #line 332 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label labelThread; + + #line default + #line hidden + + + #line 337 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxThread; + + #line default + #line hidden + + + #line 339 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label labelNDC; + + #line default + #line hidden + + + #line 344 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxNDC; + + #line default + #line hidden + + + #line 345 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label label4; + + #line default + #line hidden + + + #line 350 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxHostName; + + #line default + #line hidden + + + #line 351 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label label5; + + #line default + #line hidden + + + #line 356 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxUserName; + + #line default + #line hidden + + + #line 357 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label label6; + + #line default + #line hidden + + + #line 362 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxApp; + + #line default + #line hidden + + + #line 364 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label label7; + + #line default + #line hidden + + + #line 369 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxClass; + + #line default + #line hidden + + + #line 370 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label label8; + + #line default + #line hidden + + + #line 375 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxMethod; + + #line default + #line hidden + + + #line 376 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label label10; + + #line default + #line hidden + + + #line 381 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxIdentity; + + #line default + #line hidden + + + #line 384 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label label6b; + + #line default + #line hidden + + + #line 389 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxLog; + + #line default + #line hidden + + + #line 392 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label labelFile; + + #line default + #line hidden + + + #line 397 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxfile; + + #line default + #line hidden + + + #line 399 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label label9; + + #line default + #line hidden + + + #line 404 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxLine; + + #line default + #line hidden + + + #line 406 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label labelLogger; + + #line default + #line hidden + + + #line 411 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxLogger; + + #line default + #line hidden + + + #line 413 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.Label labelItem; + + #line default + #line hidden + + + #line 418 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxItem; + + #line default + #line hidden + + + #line 422 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TabControl tabControl1; + + #line default + #line hidden + + + #line 424 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxMessage; + + #line default + #line hidden + + + #line 427 "..\..\MainWindow.xaml" + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + internal System.Windows.Controls.TextBox textBoxThrowable; + + #line default + #line hidden + + private bool _contentLoaded; + + /// + /// InitializeComponent + /// + [System.Diagnostics.DebuggerNonUserCodeAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")] + public void InitializeComponent() { + if (_contentLoaded) { + return; + } + _contentLoaded = true; + System.Uri resourceLocater = new System.Uri("/LogViewer;component/mainwindow.xaml", System.UriKind.Relative); + + #line 1 "..\..\MainWindow.xaml" + System.Windows.Application.LoadComponent(this, resourceLocater); + + #line default + #line hidden + } + + [System.Diagnostics.DebuggerNonUserCodeAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal System.Delegate _CreateDelegate(System.Type delegateType, string handler) { + return System.Delegate.CreateDelegate(delegateType, this, handler); + } + + [System.Diagnostics.DebuggerNonUserCodeAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")] + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")] + void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) { + switch (connectionId) + { + case 1: + + #line 13 "..\..\MainWindow.xaml" + ((LogViewer.MainWindow)(target)).Closed += new System.EventHandler(this.window_Closed); + + #line default + #line hidden + return; + case 2: + + #line 18 "..\..\MainWindow.xaml" + ((System.Windows.Input.CommandBinding)(target)).CanExecute += new System.Windows.Input.CanExecuteRoutedEventHandler(this.openCanExecute); + + #line default + #line hidden + + #line 18 "..\..\MainWindow.xaml" + ((System.Windows.Input.CommandBinding)(target)).Executed += new System.Windows.Input.ExecutedRoutedEventHandler(this.openExecuted); + + #line default + #line hidden + return; + case 3: + + #line 19 "..\..\MainWindow.xaml" + ((System.Windows.Input.CommandBinding)(target)).CanExecute += new System.Windows.Input.CanExecuteRoutedEventHandler(this.exitCanExecute); + + #line default + #line hidden + + #line 19 "..\..\MainWindow.xaml" + ((System.Windows.Input.CommandBinding)(target)).Executed += new System.Windows.Input.ExecutedRoutedEventHandler(this.exitExecuted); + + #line default + #line hidden + return; + case 4: + + #line 20 "..\..\MainWindow.xaml" + ((System.Windows.Input.CommandBinding)(target)).CanExecute += new System.Windows.Input.CanExecuteRoutedEventHandler(this.refreshCanExecute); + + #line default + #line hidden + + #line 20 "..\..\MainWindow.xaml" + ((System.Windows.Input.CommandBinding)(target)).Executed += new System.Windows.Input.ExecutedRoutedEventHandler(this.refreshExecuted); + + #line default + #line hidden + return; + case 5: + + #line 21 "..\..\MainWindow.xaml" + ((System.Windows.Input.CommandBinding)(target)).CanExecute += new System.Windows.Input.CanExecuteRoutedEventHandler(this.filterCanExexute); + + #line default + #line hidden + + #line 21 "..\..\MainWindow.xaml" + ((System.Windows.Input.CommandBinding)(target)).Executed += new System.Windows.Input.ExecutedRoutedEventHandler(this.filterExecuted); + + #line default + #line hidden + return; + case 6: + + #line 22 "..\..\MainWindow.xaml" + ((System.Windows.Input.CommandBinding)(target)).CanExecute += new System.Windows.Input.CanExecuteRoutedEventHandler(this.aboutCanExecute); + + #line default + #line hidden + + #line 22 "..\..\MainWindow.xaml" + ((System.Windows.Input.CommandBinding)(target)).Executed += new System.Windows.Input.ExecutedRoutedEventHandler(this.aboutExecuted); + + #line default + #line hidden + return; + case 7: + this.gridMenu = ((System.Windows.Controls.Grid)(target)); + return; + case 8: + this.menu1 = ((System.Windows.Controls.Menu)(target)); + return; + case 9: + this.RecentFileList = ((LogViewer.RecentFileList)(target)); + return; + case 10: + this.MenuMergeItem = ((System.Windows.Controls.MenuItem)(target)); + + #line 42 "..\..\MainWindow.xaml" + this.MenuMergeItem.Click += new System.Windows.RoutedEventHandler(this.mergeFile_Click); + + #line default + #line hidden + return; + case 11: + this.ResetSeparator = ((System.Windows.Controls.MenuItem)(target)); + + #line 44 "..\..\MainWindow.xaml" + this.ResetSeparator.Click += new System.Windows.RoutedEventHandler(this.resetSeparator_Click); + + #line default + #line hidden + return; + case 12: + this.gridTopBar = ((System.Windows.Controls.Grid)(target)); + return; + case 13: + this.spPath = ((System.Windows.Controls.Grid)(target)); + return; + case 14: + this.textboxFileName = ((System.Windows.Controls.TextBlock)(target)); + return; + case 15: + this.spCountAndSearch = ((System.Windows.Controls.StackPanel)(target)); + return; + case 16: + this.spGlobalInfo = ((System.Windows.Controls.StackPanel)(target)); + return; + case 17: + this.FilterIndicator = ((LogViewer.FilterActivity)(target)); + return; + case 18: + this.tbFiltered = ((System.Windows.Controls.TextBlock)(target)); + + #line 76 "..\..\MainWindow.xaml" + this.tbFiltered.MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.filterIndicator_MouseLeftButtonDown); + + #line default + #line hidden + return; + case 19: + this.spCounters = ((System.Windows.Controls.StackPanel)(target)); + return; + case 20: + this.imageError = ((System.Windows.Controls.Image)(target)); + + #line 80 "..\..\MainWindow.xaml" + this.imageError.MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.imageError_MouseLeftButtonDown); + + #line default + #line hidden + return; + case 21: + this.labelErrorCount = ((System.Windows.Controls.TextBlock)(target)); + return; + case 22: + this.imageWarn = ((System.Windows.Controls.Image)(target)); + + #line 88 "..\..\MainWindow.xaml" + this.imageWarn.MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.imageWarn_MouseLeftButtonDown); + + #line default + #line hidden + return; + case 23: + this.labelWarnCount = ((System.Windows.Controls.TextBlock)(target)); + return; + case 24: + this.imageDebug = ((System.Windows.Controls.Image)(target)); + + #line 96 "..\..\MainWindow.xaml" + this.imageDebug.MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.imageDebug_MouseLeftButtonDown); + + #line default + #line hidden + return; + case 25: + this.labelDebugCount = ((System.Windows.Controls.TextBlock)(target)); + return; + case 26: + this.imageInfo = ((System.Windows.Controls.Image)(target)); + + #line 104 "..\..\MainWindow.xaml" + this.imageInfo.MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.imageInfo_MouseLeftButtonDown); + + #line default + #line hidden + return; + case 27: + this.labelInfoCount = ((System.Windows.Controls.TextBlock)(target)); + return; + case 28: + this.spFind = ((System.Windows.Controls.StackPanel)(target)); + return; + case 29: + this.image2 = ((System.Windows.Controls.Image)(target)); + return; + case 30: + this.label3 = ((System.Windows.Controls.TextBlock)(target)); + return; + case 31: + this.textBoxFind = ((System.Windows.Controls.TextBox)(target)); + + #line 119 "..\..\MainWindow.xaml" + this.textBoxFind.KeyDown += new System.Windows.Input.KeyEventHandler(this.textBoxFind_KeyDown); + + #line default + #line hidden + + #line 119 "..\..\MainWindow.xaml" + this.textBoxFind.PreviewKeyDown += new System.Windows.Input.KeyEventHandler(this.textBoxFind_PreviewKeyDown); + + #line default + #line hidden + return; + case 32: + this.buttonFindNext = ((System.Windows.Controls.Button)(target)); + + #line 120 "..\..\MainWindow.xaml" + this.buttonFindNext.Click += new System.Windows.RoutedEventHandler(this.buttonFindNext_Click); + + #line default + #line hidden + return; + case 33: + this.buttonFindPrevious = ((System.Windows.Controls.Button)(target)); + + #line 164 "..\..\MainWindow.xaml" + this.buttonFindPrevious.Click += new System.Windows.RoutedEventHandler(this.buttonFindPrevious_Click); + + #line default + #line hidden + return; + case 34: + this.MainGrid = ((System.Windows.Controls.Grid)(target)); + return; + case 35: + this.borderTop = ((System.Windows.Controls.Border)(target)); + return; + case 36: + this.listView1 = ((System.Windows.Controls.ListView)(target)); + + #line 229 "..\..\MainWindow.xaml" + this.listView1.SelectionChanged += new System.Windows.Controls.SelectionChangedEventHandler(this.listView1_SelectionChanged); + + #line default + #line hidden + + #line 230 "..\..\MainWindow.xaml" + this.listView1.Drop += new System.Windows.DragEventHandler(this.listView1_Drop); + + #line default + #line hidden + return; + case 37: + this.GridView1 = ((System.Windows.Controls.GridView)(target)); + return; + case 38: + this.gridSplitter1 = ((System.Windows.Controls.GridSplitter)(target)); + return; + case 39: + this.bottomGrid = ((System.Windows.Controls.Grid)(target)); + return; + case 40: + this.image1 = ((System.Windows.Controls.Image)(target)); + return; + case 41: + this.textBoxLevel = ((System.Windows.Controls.TextBox)(target)); + return; + case 42: + this.label1 = ((System.Windows.Controls.Label)(target)); + return; + case 43: + this.textBoxTimeStamp = ((System.Windows.Controls.TextBox)(target)); + return; + case 44: + this.label2 = ((System.Windows.Controls.Label)(target)); + return; + case 45: + this.textBoxMachineName = ((System.Windows.Controls.TextBox)(target)); + return; + case 46: + this.labelThread = ((System.Windows.Controls.Label)(target)); + return; + case 47: + this.textBoxThread = ((System.Windows.Controls.TextBox)(target)); + return; + case 48: + this.labelNDC = ((System.Windows.Controls.Label)(target)); + return; + case 49: + this.textBoxNDC = ((System.Windows.Controls.TextBox)(target)); + return; + case 50: + this.label4 = ((System.Windows.Controls.Label)(target)); + return; + case 51: + this.textBoxHostName = ((System.Windows.Controls.TextBox)(target)); + return; + case 52: + this.label5 = ((System.Windows.Controls.Label)(target)); + return; + case 53: + this.textBoxUserName = ((System.Windows.Controls.TextBox)(target)); + return; + case 54: + this.label6 = ((System.Windows.Controls.Label)(target)); + return; + case 55: + this.textBoxApp = ((System.Windows.Controls.TextBox)(target)); + return; + case 56: + this.label7 = ((System.Windows.Controls.Label)(target)); + return; + case 57: + this.textBoxClass = ((System.Windows.Controls.TextBox)(target)); + return; + case 58: + this.label8 = ((System.Windows.Controls.Label)(target)); + return; + case 59: + this.textBoxMethod = ((System.Windows.Controls.TextBox)(target)); + return; + case 60: + this.label10 = ((System.Windows.Controls.Label)(target)); + return; + case 61: + this.textBoxIdentity = ((System.Windows.Controls.TextBox)(target)); + return; + case 62: + this.label6b = ((System.Windows.Controls.Label)(target)); + + #line 384 "..\..\MainWindow.xaml" + this.label6b.MouseDoubleClick += new System.Windows.Input.MouseButtonEventHandler(this.label6b_MouseDoubleClick); + + #line default + #line hidden + return; + case 63: + this.textBoxLog = ((System.Windows.Controls.TextBox)(target)); + return; + case 64: + this.labelFile = ((System.Windows.Controls.Label)(target)); + return; + case 65: + this.textBoxfile = ((System.Windows.Controls.TextBox)(target)); + return; + case 66: + this.label9 = ((System.Windows.Controls.Label)(target)); + return; + case 67: + this.textBoxLine = ((System.Windows.Controls.TextBox)(target)); + return; + case 68: + this.labelLogger = ((System.Windows.Controls.Label)(target)); + return; + case 69: + this.textBoxLogger = ((System.Windows.Controls.TextBox)(target)); + return; + case 70: + this.labelItem = ((System.Windows.Controls.Label)(target)); + return; + case 71: + this.textBoxItem = ((System.Windows.Controls.TextBox)(target)); + return; + case 72: + this.tabControl1 = ((System.Windows.Controls.TabControl)(target)); + return; + case 73: + this.textBoxMessage = ((System.Windows.Controls.TextBox)(target)); + return; + case 74: + this.textBoxThrowable = ((System.Windows.Controls.TextBox)(target)); + return; + } + this._contentLoaded = true; + } + } +} + diff --git a/obj/Release/TempPE/Properties.Resources.Designer.cs.dll b/obj/Release/TempPE/Properties.Resources.Designer.cs.dll new file mode 100644 index 0000000..ac1795a Binary files /dev/null and b/obj/Release/TempPE/Properties.Resources.Designer.cs.dll differ diff --git a/obj/Release/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs b/obj/Release/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs new file mode 100644 index 0000000..e69de29 diff --git a/obj/Release/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs b/obj/Release/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs new file mode 100644 index 0000000..e69de29 diff --git a/obj/Release/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs b/obj/Release/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs new file mode 100644 index 0000000..e69de29 diff --git a/packages.config b/packages.config index dde77c0..2f95b3b 100644 --- a/packages.config +++ b/packages.config @@ -1,6 +1,5 @@  - - + \ No newline at end of file diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/Microsoft.Expression.Blend.SDK.WPF.4.0.0.nupkg b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/Microsoft.Expression.Blend.SDK.WPF.4.0.0.nupkg new file mode 100644 index 0000000..c77c74b Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/Microsoft.Expression.Blend.SDK.WPF.4.0.0.nupkg differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/Microsoft.Expression.Controls.Design.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/Microsoft.Expression.Controls.Design.dll new file mode 100644 index 0000000..f532478 Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/Microsoft.Expression.Controls.Design.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/Microsoft.Expression.Drawing.Design.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/Microsoft.Expression.Drawing.Design.dll new file mode 100644 index 0000000..56790f6 Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/Microsoft.Expression.Drawing.Design.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/Microsoft.Expression.Effects.Design.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/Microsoft.Expression.Effects.Design.dll new file mode 100644 index 0000000..8975dee Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/Microsoft.Expression.Effects.Design.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/Microsoft.Expression.Prototyping.SketchControls.design.v4.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/Microsoft.Expression.Prototyping.SketchControls.design.v4.dll new file mode 100644 index 0000000..99b83c8 Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/Microsoft.Expression.Prototyping.SketchControls.design.v4.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/de/Microsoft.Expression.Controls.Design.resources.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/de/Microsoft.Expression.Controls.Design.resources.dll new file mode 100644 index 0000000..b39832d Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/de/Microsoft.Expression.Controls.Design.resources.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/de/Microsoft.Expression.Drawing.Design.resources.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/de/Microsoft.Expression.Drawing.Design.resources.dll new file mode 100644 index 0000000..b57fa1a Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/de/Microsoft.Expression.Drawing.Design.resources.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/de/Microsoft.Expression.Effects.Design.resources.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/de/Microsoft.Expression.Effects.Design.resources.dll new file mode 100644 index 0000000..45c877b Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/de/Microsoft.Expression.Effects.Design.resources.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/en/Microsoft.Expression.Controls.Design.resources.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/en/Microsoft.Expression.Controls.Design.resources.dll new file mode 100644 index 0000000..ca70f2a Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/en/Microsoft.Expression.Controls.Design.resources.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/en/Microsoft.Expression.Drawing.Design.resources.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/en/Microsoft.Expression.Drawing.Design.resources.dll new file mode 100644 index 0000000..1c5cdb7 Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/en/Microsoft.Expression.Drawing.Design.resources.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/en/Microsoft.Expression.Effects.Design.resources.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/en/Microsoft.Expression.Effects.Design.resources.dll new file mode 100644 index 0000000..7b67bc1 Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/en/Microsoft.Expression.Effects.Design.resources.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/es/Microsoft.Expression.Controls.Design.resources.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/es/Microsoft.Expression.Controls.Design.resources.dll new file mode 100644 index 0000000..1bc0c52 Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/es/Microsoft.Expression.Controls.Design.resources.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/es/Microsoft.Expression.Drawing.Design.resources.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/es/Microsoft.Expression.Drawing.Design.resources.dll new file mode 100644 index 0000000..18d4e88 Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/es/Microsoft.Expression.Drawing.Design.resources.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/es/Microsoft.Expression.Effects.Design.resources.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/es/Microsoft.Expression.Effects.Design.resources.dll new file mode 100644 index 0000000..5c2d62c Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/es/Microsoft.Expression.Effects.Design.resources.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/fr/Microsoft.Expression.Controls.Design.resources.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/fr/Microsoft.Expression.Controls.Design.resources.dll new file mode 100644 index 0000000..09bec3b Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/fr/Microsoft.Expression.Controls.Design.resources.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/fr/Microsoft.Expression.Drawing.Design.resources.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/fr/Microsoft.Expression.Drawing.Design.resources.dll new file mode 100644 index 0000000..339171e Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/fr/Microsoft.Expression.Drawing.Design.resources.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/fr/Microsoft.Expression.Effects.Design.resources.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/fr/Microsoft.Expression.Effects.Design.resources.dll new file mode 100644 index 0000000..be48804 Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/fr/Microsoft.Expression.Effects.Design.resources.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/it/Microsoft.Expression.Controls.Design.resources.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/it/Microsoft.Expression.Controls.Design.resources.dll new file mode 100644 index 0000000..b884afb Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/it/Microsoft.Expression.Controls.Design.resources.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/it/Microsoft.Expression.Drawing.Design.resources.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/it/Microsoft.Expression.Drawing.Design.resources.dll new file mode 100644 index 0000000..c06ab67 Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/it/Microsoft.Expression.Drawing.Design.resources.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/it/Microsoft.Expression.Effects.Design.resources.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/it/Microsoft.Expression.Effects.Design.resources.dll new file mode 100644 index 0000000..77cc4f6 Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/it/Microsoft.Expression.Effects.Design.resources.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/ja/Microsoft.Expression.Controls.Design.resources.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/ja/Microsoft.Expression.Controls.Design.resources.dll new file mode 100644 index 0000000..dc42d9b Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/ja/Microsoft.Expression.Controls.Design.resources.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/ja/Microsoft.Expression.Drawing.Design.resources.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/ja/Microsoft.Expression.Drawing.Design.resources.dll new file mode 100644 index 0000000..c28b53d Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/ja/Microsoft.Expression.Drawing.Design.resources.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/ja/Microsoft.Expression.Effects.Design.resources.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/ja/Microsoft.Expression.Effects.Design.resources.dll new file mode 100644 index 0000000..b1b1713 Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/ja/Microsoft.Expression.Effects.Design.resources.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/ko/Microsoft.Expression.Controls.Design.resources.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/ko/Microsoft.Expression.Controls.Design.resources.dll new file mode 100644 index 0000000..c9d48af Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/ko/Microsoft.Expression.Controls.Design.resources.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/ko/Microsoft.Expression.Drawing.Design.resources.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/ko/Microsoft.Expression.Drawing.Design.resources.dll new file mode 100644 index 0000000..d954c67 Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/ko/Microsoft.Expression.Drawing.Design.resources.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/ko/Microsoft.Expression.Effects.Design.resources.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/ko/Microsoft.Expression.Effects.Design.resources.dll new file mode 100644 index 0000000..cabdf5e Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/ko/Microsoft.Expression.Effects.Design.resources.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/zh-Hans/Microsoft.Expression.Controls.Design.resources.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/zh-Hans/Microsoft.Expression.Controls.Design.resources.dll new file mode 100644 index 0000000..1400563 Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/zh-Hans/Microsoft.Expression.Controls.Design.resources.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/zh-Hans/Microsoft.Expression.Drawing.Design.resources.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/zh-Hans/Microsoft.Expression.Drawing.Design.resources.dll new file mode 100644 index 0000000..4178c70 Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/zh-Hans/Microsoft.Expression.Drawing.Design.resources.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/zh-Hans/Microsoft.Expression.Effects.Design.resources.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/zh-Hans/Microsoft.Expression.Effects.Design.resources.dll new file mode 100644 index 0000000..87374df Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/zh-Hans/Microsoft.Expression.Effects.Design.resources.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/zh-Hant/Microsoft.Expression.Controls.Design.resources.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/zh-Hant/Microsoft.Expression.Controls.Design.resources.dll new file mode 100644 index 0000000..c4655ba Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/zh-Hant/Microsoft.Expression.Controls.Design.resources.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/zh-Hant/Microsoft.Expression.Drawing.Design.resources.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/zh-Hant/Microsoft.Expression.Drawing.Design.resources.dll new file mode 100644 index 0000000..4cb2f4f Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/zh-Hant/Microsoft.Expression.Drawing.Design.resources.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/zh-Hant/Microsoft.Expression.Effects.Design.resources.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/zh-Hant/Microsoft.Expression.Effects.Design.resources.dll new file mode 100644 index 0000000..4f4f70e Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Design/zh-Hant/Microsoft.Expression.Effects.Design.resources.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Microsoft.Expression.Controls.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Microsoft.Expression.Controls.dll new file mode 100644 index 0000000..48e2331 Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Microsoft.Expression.Controls.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Microsoft.Expression.Controls.xml b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Microsoft.Expression.Controls.xml new file mode 100644 index 0000000..aaaf85b --- /dev/null +++ b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Microsoft.Expression.Controls.xml @@ -0,0 +1,557 @@ + + + + Microsoft.Expression.Controls + + + + + Called before the polylines are looped over. + + + + + Computes the value used when LayoutPath.Capacity is set to Auto. + + + + + Checks whether or not the polylines should continue being looped over. + + + + + Called before a new polyline is marched. + + + + + Called when a polyline is completed. + + The remaining arclength in the polyline. + + + + Called when a step is successfully completed. + + The actual step distance. + This may be different than Step if another polyline has been wrapped to. + + + + Distributes the children of a path panel along a given layout path. + + The path panel. + The index of the path in pathPanel.LayoutPaths. + The index of the first child to be laid out on this path. + The index of the next child to be distributed. If childIndex is returned, this function has done nothing. + + + + The index of the next child to be arranged. + + + + + The distance in arc length that will be used for layout. + + + + + The distance in arc length to walk along the current polyline. + + + + + The total number of elements to be arranged on the LayoutPath. + + + + + Distributes the children of a path panel along a layout path. + Even distribution means that there is equal arclength between the centers of all + the elements on the path. + + + + + Specifies which path layout properties have changed. + + + + + Provides data for the event. + + + + + Initializes a new instance of the class. + + The data for the event. + + + + Gets the properties changed in a event. + + + + + Encapsulates the data needed to update a . + + + + + Gets or sets the index of the path on which an element is arranged. + + + + + Gets or sets the index of an element in a collection of elements. + + + + + Gets or sets the index of an element on a path. + + + + + Gets or sets the offset of an element proportional to the total length of a collection of paths. + + + + + Gets or sets the offset of an element proportional to the length of a path. + + + + + Gets or sets the angle perpendicular to the path at an element's location. + + + + + Gets or sets the angle perpendicular to the path at an element's location if the element is oriented to the path. + + + + + Gets or sets whether or not an element is arranged on a path. + + + + + Represents an element that is arranged by a . + + + Implementing this interface enables to set these properties when the element is arranged. + This interface is not intended for general implementation. + + + + + Updates the properties based on the given and raises the event. + + The data needed to update the . + + + + Occurs when one or more of the properties change. + + + This event is raised whenever the item’s position along the path is updated. This can occur due to changes in the properties on the or changes to . + + + + + Gets the index of the path on which the item is arranged. + + + + + Gets the index of the item in a collection of items. + + + + + Gets the index of the item on the path on which it is arranged. + + + + + Gets the offset of the item proportional to the total length of a collection of paths. + + + + + Gets the offset of the item proportional to the length of the path on which it is arranged. + + + + + Gets the angle perpendicular to the path at the item's location. + + + + + Gets the angle perpendicular to the path at the items's location if the item is oriented to the path. + + + + + Gets or sets whether or not the item is arranged on the path. + + + + + Converts a representing whether or not an element is arranged to a value used to scale the element. + + + + + Throws a exception in all cases. + + The target data being passed to the source. + The of data expected by the source object. + An optional parameter to be used in the converter logic. + The culture of the conversion. + The value to be passed to the source object. + + + + Converts the specified to a . + + The source data being passed to the target. + The of data expected by the target dependency property. + An optional parameter to be used in the converter logic. + The culture of the conversion. + If the is true, 1 is returned. Else, 0 is returned. + + + + Specifies the distribution of a . + + + + + Specifies the orientation of elements on a . + + + + + Specifies the method for altering the on an open path. + + + + + Describes a path along which elements are arranged. + + + + + Ideally, we want to cache the Bezier curves before flattening, because transform will affect flattening. + That requires us to cache curves that we don't support very well yet. Instead, we cache the flatten points + in distribution strategy and transform them on demand. + + + + + Gets or sets the element that defines the path. + + + + + Gets or sets whether items are laid out evenly or with a fixed padding. + + + + + Gets or sets the maximum number of items displayed on the . + + + + + Gets or sets the distance in pixels along the arc length of the between two items. + + + + + Gets or sets the orientation of the items. + + + This property is supported on , but not . + + + + + Gets or sets the distance from the start of the to place the first item. + + + + + Gets or sets the percentage of the that participates in layout. + + + + + Gets or set the method to alter on an open path. + + + + + Gets the computed Capacity. + + + + + Gets whether or not the is valid in the context. + A is not valid if it is a descendant of the in which it is used. + + + + + Distributes the children of a layout path based on the size of the children and a given padding between the children. + The distance in arclength between children is determined by the padding plus the sum of the radii of the children's bounding boxes. + + + + + Contains a list of items that are laid out along one or more paths. + + + + + Initializes a new instance of the class. + + + + + Creates the element used to display a specified item. + + A corresponding to a specified item. + + + + Determines if the specified item is (or is eligible to be) its own item container. + + true if the item is its own item container; otherwise, false. + The specified item. + + + + Positions child elements. + + The size that this object should use to arrange its child elements. + The actual size used. + + + + Gets or sets a collection of objects that define the path(s) used for layout. + + + + + Gets or sets the index to use within the list of items. + + + + + Gets or sets whether the item index wraps to the beginning of the collection when StartItemIndex is greater than 0. + + + + + Represents an item in a . + + + + + Initializes a new instance of the class. + + + + + For a description of this member, see . + + + + + For a description of this member, see . + + + + + For a description of this member, see . + + + + + For a description of this member, see . + + + + + For a description of this member, see . + + + + + For a description of this member, see . + + + + + For a description of this member, see . + + + + + For a description of this member, see . + + + + + For a description of this member, see . + + + + + For a description of this member, see . + + + + + Arranges child elements along one or more path. + + + can be used as an alternative to when selection is not necessary. + The property is not supported on . + + + + + Initializes a new instance of the class. + + + + + Measures the size required for child elements. + + The available size that this element can give to child elements. + The size that this element determines it needs during layout, based on its calculations of child element sizes. + + + + Positions child elements. + + The size that this object should use to arrange its child elements. + The actual size used. + + + + Arranges the child at the given index at a particular location on a LayoutPath. + + An index from the range 0 to PathPanel.Count. + The index of the layout path on which to arrange the child. + The polyline in the layout path. + The location on the polyline. + The index of the child on the LayoutPath. + + + + Calculates the radius of the bounding circle for the child at the given index. + + An index from the range 0 to PathPanel.Count. + + + + Gets or sets a collection of objects that define the path(s) used for layout. + + + + + Gets or sets the index to use within the list of items. + + + + + Gets or sets whether the item index wraps to the beginning of the collection when is greater than 0. + + + + + The subset of LayoutPaths that are attached and not collapsed. + + + + + Count is the number of Children that the PathPanel will lay out. + If StartItemIndex > 0 and WrapItems is false, then this can be less than PathPanel.Children.Count + + + + + Gets the panel that contains the containers of an ItemsControl. + + The ItemsControl. + + The panel that contains the containers of an ItemsControl, or null + if the panel could not be found. + + + is null. + + + + + Traverses a tree by accepting an initial value and a function that + retrieves the child nodes of a node. + + The type of the stream. + The initial node. + A function that retrieves the child + nodes of a node. + A predicate that evaluates a node + and returns a value indicating whether that node and it's children + should be traversed. + A stream of nodes. + + + + Get the visual tree children of an element. + + The element. + The visual tree children of an element. + + is null. + + + + + Get the visual tree children of an element and the element itself. + + The element. + + The visual tree children of an element and the element itself. + + + + + Retrieves all the logical children of a framework element using a + breadth-first search. For performance reasons this method manually + manages the stack instead of using recursion. + + The parent framework element. + The logical children of the framework element. + + + + Retrieves all the logical descendents of a framework element using a + breadth-first search. For performance reasons this method manually + manages the stack instead of using recursion. + + The parent framework element. + The logical children of the framework element. + + + diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Microsoft.Expression.Drawing.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Microsoft.Expression.Drawing.dll new file mode 100644 index 0000000..d2a5f7b Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Microsoft.Expression.Drawing.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Microsoft.Expression.Drawing.xml b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Microsoft.Expression.Drawing.xml new file mode 100644 index 0000000..f396802 --- /dev/null +++ b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Microsoft.Expression.Drawing.xml @@ -0,0 +1,1770 @@ + + + + Microsoft.Expression.Drawing + + + + + Renders a callout shape supporting several shapes combined with a callout arrow. + + + + + Provides a base class of a composite shape that derives from and implements . + + + implements interface, + and supports rendering a geometry similar to , but the geometry can be rendered outside the layout boundary. + + A typical implementation has a customized default template in generic.xaml which template-binds most shape properties to a . + It should also extend the property to customize the appearance of the . + + This class also supports showing content together with the shape. + + + + + Provides an interface to describe the parameters of a Shape. + + + This interface is the data for communication between Shape and GeometrySource. + Typically, a concrete implementation of IShape will implement this interface and pass it into + GeometrySource.UpdateGeometry(), which will then consume the shape as a read-only data provider. + + + + + Provides the necessary interface to define a Shape. + Both primitive and composite shapes need to match this interface, although they might derive from different types of FrameworkElement. + + + + + Invalidates the geometry for a . After the invalidation, the will recompute the geometry, which will occur asynchronously. + + + + Gets or sets the that specifies how to paint the interior of the shape. + A that describes how the shape's interior is painted. The default is null. + + + Gets or sets the that specifies how the outline is painted. + A that specifies how the outline is painted. + + + Gets or sets the width of the stroke outline. + The width of the outline, in pixels. + + + Gets or sets a enumeration value that describes how the shape fills its allocated space. + One of the enumeration values. The default value at runtime depends on the type of . + + + + Gets the rendered geometry presented by the rendering engine. + + + + + Gets the margin between logical bounds and actual geometry bounds. + This can be either positive (as in ) or negative (as in ). + + + + + Occurs when RenderedGeometry is changed. + + + + + Extends how the shape is drawn with creating geometry source. + + + + + Invalidates the geometry for a . After the invalidation, the will recompute the geometry, which will occur asynchronously. + + + + Provides the behavior for the Arrange portion of a Silverlight layout pass. Classes can override this method to define their own Arrange pass behavior. + The actual size used once the element is arranged in layout. + The final area within the parent that this object should use to arrange itself and its children. + will recompute the Geometry when it's invalidated and update the RenderedGeometry and GeometryMargin. + + + + Transforms a string content into with center alignment and multiple line support. + + + Use template-binding to instead of to enable this method. + + + + + Gets or sets the that specifies how to paint the interior of the shape. + + A that describes how the shape's interior is painted. + + + Gets or sets the that specifies how the outline is painted. + A that specifies how the outline is painted. + + + Gets or sets the width of the stroke outline. + The width of the outline, in pixels. + + + Gets or sets a enumeration value that describes how the shape fills its allocated space. + One of the enumeration values. + + + Gets or sets a enumeration value that describes the at the start of a . + A value of the enumeration that specifies the shape at the start of a . + + + Gets or sets a enumeration value that describes the at the end of a line. + One of the enumeration values for . + + + Gets or sets a enumeration value that specifies the type of join that is used at the vertices of a . + A value of the enumeration that specifies the join appearance. + + + Gets or sets a limit on the ratio of the miter length to half the of a element. + The limit on the ratio of the miter length to the of a element. This value is always a positive number that is greater than or equal to 1. + + + Gets or sets a collection of values that indicate the pattern of dashes and gaps that is used to outline shapes. + A collection of values that specify the pattern of dashes and gaps. + + + Gets or sets a enumeration value that specifies how the ends of a dash are drawn. + One of the enumeration values for . The default is . + + + Gets or sets a that specifies the distance within the dash pattern where a dash begins. + A that represents the distance within the dash pattern where a dash begins. The default value is 0. + + + + Gets the rendered geometry presented by the rendering engine. + + + + + Gets the margin between the logical bounds and the actual geometry bounds. + This can be either positive (as in ) or negative (as in ). + + + + + Gets or sets the internal content that converts a string into a center-aligned, multiple-line TextBlock. + + + + + Occurs when RenderedGeometry is changed. + + + + + Gets or sets the position of the callout relative to the top and left corner. + + + + + Gets or sets the callout style. + + + + + Provides a base class of a composite shape that derives from and implements . + + + implements interface, + and supports rendering a geometry similar to , but the geometry can be rendered outside the layout boundary. + + A typical implementation has a customized default template in generic.xaml which template-binds most shape properties to a . + It should also extend the property to customize the appearance of the . + + + + + Extends how the shape is drawn with creating geometry source. + + + + + Invalidates the geometry for a . After the invalidation, the will recompute the geometry, which will occur asynchronously. + + + + Provides the behavior for the Arrange portion of a Silverlight layout pass. Classes can override this method to define their own Arrange pass behavior. + The actual size used once the element is arranged in layout. + The final area within the parent that this object should use to arrange itself and its children. + will recompute the Geometry when it's invalidated and update the RenderedGeometry and GeometryMargin. + + + + Gets or sets the that specifies how to paint the interior of the shape. + + A that describes how the shape's interior is painted. + + + Gets or sets the that specifies how the outline is painted. + A that specifies how the outline is painted. + + + Gets or sets the width of the stroke outline. + The width of the outline, in pixels. + + + Gets or sets a enumeration value that describes how the shape fills its allocated space. + One of the enumeration values. + + + Gets or sets a enumeration value that describes the at the start of a . + A value of the enumeration that specifies the shape at the start of a . + + + Gets or sets a enumeration value that describes the at the end of a line. + One of the enumeration values for . + + + Gets or sets a enumeration value that specifies the type of join that is used at the vertices of a . + A value of the enumeration that specifies the join appearance. + + + Gets or sets a limit on the ratio of the miter length to half the of a element. + The limit on the ratio of the miter length to the of a element. This value is always a positive number that is greater than or equal to 1. + + + Gets or sets a collection of values that indicate the pattern of dashes and gaps that is used to outline shapes. + A collection of values that specify the pattern of dashes and gaps. + + + Gets or sets a enumeration value that specifies how the ends of a dash are drawn. + One of the enumeration values for . The default is . + + + Gets or sets a that specifies the distance within the dash pattern where a dash begins. + A that represents the distance within the dash pattern where a dash begins. The default value is 0. + + + + Gets the rendered geometry presented by the rendering engine. + + + + + Gets the margin between the logical bounds and the actual geometry bounds. + This can be either positive (as in ) or negative (as in ). + + + + + Occurs when RenderedGeometry is changed. + + + + + Renders a bent line segment with optional arrow heads on both ends. + + + + Provides the behavior for the Measure pass of Silverlight layout. Classes can override this method to define their own Measure pass behavior. + The size that this object determines it requires during layout, based on its calculations of child object allotted sizes, or possibly on other considerations such as fixed container size. + The available size that this object can give to child objects. Infinity () can be specified as a value to indicate that the object will size to whatever content is available. + + A default can render at anysize. + The will stretch to the layout boundary and render to the outside if necessary. + + + + + Gets or sets the amount of bend for the arrow. + + The bend amount between 0 and 1. + + + + Gets or sets how the arrow head is rendered at the start of the line. + + + + + Gets or sets how the arrow head is rendered at the end of the line. + + + + + Gets or sets from which corner to start drawing the arrow. + + + + + Gets or sets the length of the arrow in pixels. + + + + + Provides an items control that displays one selected item, and allows panning between items using touch gestures. + + + + + The constructor for PanningItems. + + + + + Called when the PanningItems template is applied. + + + + + Gets or sets the orientation of items in the control. + + + + + Gets or sets the flick tolerance. This can be a value between 0 and 1. + It represents the percentage of the size of the PanningItems needed to be covered by the flick gesture to trigger an items change. + + + + + Gets or sets the item before the selected item. + + + + + Gets or sets the item after the selected item. + + + + + Gets or sets whether the contents of the items control will loop, so that the first item will follow the last item. + + + + + Gets or sets the value of the slider controlling the panning motion. + + + + + Helper class to work with PathGeometry. + + + + + Converts a string in the path mini-language into a PathGeometry. + + A string in the path mini-language. + + + + Converts the given geometry into a single PathGeometry. + + + + + Updates the given geometry as PathGeometry with a polyline matching a given point list. + + + + + Parses abbreviated geometry sytax. + + + + + Helper class to convert an ArcSegment to BezierSegment(s). + + + Helper class to work with PathSegment and all variations. + + + Strategy classes to handle different types of PathSegment. + + + + + Converts an arc segment into Bezier format. + Returns BezierSegment, PolyBezierSegment, LineSegment, or null. + When returning null, the arc degenerates into the start point. + + + + + Avoid calling the three-parameter constructor, since it always sets a local value for IsStroked. + + + + + + + Updates the SegmentCollection with a given polyline matching a given point list. + Tries to keep changes minimum and returns false if nothing has been changed. + + + + + Updates the collection[index] segment with a poly-Bezier segment matching a given point list. + A given point list must contain 3*N points for N Bezier segments. + + + + + Tests if a given path segment is empty. + + + + + Gets the point count in a given path segment. + + + + + Gets the last point of a given path segment. + + + + + Gets the point of a given index in a given segment. + If input is (-1), returns the last point. + + + + + Flattens a given segment and adds resulting points into a given point list. + + The segment to be flatten. + The resulting points list. + The start point of the segment. + The error tolerance. Must be positive. Can be zero. Fallback to default tolerance. + + + + ArcToBezier, computes the Bezier approximation of an arc. + + + This utility computes the Bezier approximation for an elliptical arc as + it is defined in the SVG arc spec. The ellipse from which the arc is + carved is axis-aligned in its own coordinates, and defined there by its + x and y radii. The rotation angle defines how the ellipse's axes are + rotated relative to the x axis. The start and end points define one of 4 + possible arcs; the sweep and large-arc flags determine which one of + these arcs will be chosen. + + Returning cPieces = 0 indicates a line instead of an arc + cPieces = -1 indicates that the arc degenerates to a point + + + + + Gets the number of Bezier arcs, and sine/cosine of each. + + + This is a private utility used by ArcToBezier. Breaks the arc into + pieces so that no piece will span more than 90 degrees. The input + points are on the unit circle. + + + + + GetBezierDistance returns the distance as a fraction of the radius. + + + Get the distance from a circular arc's end points to the control points + of the Bezier arc that approximates it, as a fraction of the arc's + radius. + + Since the result is relative to the arc's radius, it depends strictly on + the arc's angle. The arc is assumed to be of 90 degrees or less, so the + angle is determined by the cosine of that angle, which is derived from + rDot = the dot product of two radius vectors. We need the Bezier curve + that agrees with the arc's points and tangents at the ends and midpoint. + Here we compute the distance from the curve's endpoints to its control + points. + + Since we are looking for the relative distance, we can work on the unit + circle. Place the center of the circle at the origin, and put the X axis + as the bisector between the 2 vectors. Let a be the angle between the + vectors. Then the X coordinates of the 1st and last points are cos(a/2). + Let x be the X coordinate of the 2nd and 3rd points. At t=1/2 we have a + point at (1,0). But the terms of the polynomial there are all equal: + + (1-t)^3 = t*(1-t)^2 = t^2*(1-t) = t^3 = 1/8, + + so from the Bezier formula there we have: + + 1 = (1/8) * (cos(a/2) + 3x + 3x + cos(a/2)), + + hence + + x = (4 - cos(a/2)) / 3 + + The X difference between that and the 1st point is: + + DX = x - cos(a/2) = 4(1 - cos(a/2)) / 3. + + But DX = distance / sin(a/2), hence the distance is + + dist = (4/3)*(1 - cos(a/2)) / sin(a/2). + + Rather than the angle a, we are given rDot = R^2 * cos(a), so we + multiply top and bottom by R: + + dist = (4/3)*(R - Rcos(a/2)) / Rsin(a/2) + + and use some trig: + ________________ + cos(a/2) = \/(1 + cos(a)) / 2 + ______________________ + R*cos(a/2) = \/(R^2 + R^2 cos(a)) / 2 + ________________ + = \/(R^2 + rDot) / 2 + + Let A = (R^2 + rDot)/2. + ____________________ + R*sin(a/2) = \/R^2 - R^2 cos^2(a/2) + _______ + = \/R^2 - A + + so: + _ + 4 R - \/A + dist = - * ------------ + 3 _______ + \/R^2 - A + + History: + 5/29/2001 MichKa + Created it. + + + + + Returns false if the radius is too small compared to the chord length (returns true on NaNs) + radius is modified to the value that is accepted. + + + + + A utility class to flatten Bezier curves. + + + + + Flattens a Bezier cubic curve and adds the resulting polyline to the third parameter. + + The four Bezier cubic control points. + The maximum distance between two corresponding points on the true curve + and on the flattened polyline. Must be strictly positive. + Where to add the flattened polyline. + True to skip the first control point when adding the flattened polyline. + Where to add the value of the Bezier curve parameter associated with + each of the polyline vertices. + If is empty, the first control point + and its associated parameter are always added. + + + + Flattens a Bezier quadratic curve and adds the resulting polyline to the third parameter. + Uses degree elevation for Bezier curves to reuse the code for the cubic case. + + The three Bezier quadratic control points. + The maximum distance between two corresponding points on the true curve + and on the flattened polyline. Must be strictly positive. + Where to add the flattened polyline. + Whether to skip the first control point when adding the flattened polyline. + Where to add the value of the Bezier curve parameter associated with + each of the polyline vertices. + If is empty, the first control point and + its associated parameter are always added. + + + + Extension methods that support non-geometry types. + + + + + Allows the application of an action delegate (often a very simple lambda) against an entire sequence. + + + + + Allows the application of an action delegate (often a very simple lambda) against an entire sequence. + + + + + Allows the application of an action delegate (often a very simple lambda) against an entire sequence with the index of each item. + + + + + Ensures the count of a list to a given count. Creates with a given factory or removes items when necessary. + If Input IList is a List, AddRange or RemoveRange is used when there's no factory. + + + + + Ensures the count of a list is at least the given count. Creates with a given factory. + + + + + Add a range of items to the end of a collection. + If a collection is a list, List.AddRange is used. + + + + + Gets the last item of a given list. + + + + + Removes the last item from the given list. + + + + + Makes a copy of obj and all it's public properties, including all collection properties. + + + + + Sets the value if different. Avoids setting a local value if possible. + Returns true when the value has been changed. + + + + + Clears the dependency property when it is locally set on the given dependency object. + Returns false if the dependeny property is not locally set. + + + + + Finds all visual descendants of a given type and condition using breadth-first search. + + + + + Gets all visual children in IEnumerable. + + + + + Unifies the interface of PropertyMetadata in WPF and Silverlight. + Provides the necessary notification about render, arrange, or measure. + + + + + This private Ctor should only be used by AttachCallback. + + + + + Chain InternalCallback() to attach the instance of DrawingPropertyMetadata on property callback. + In Silverlight, the property metadata is thrown away after setting. Use callback to remember it. + + + + + Before chaining the original callback, trigger DrawingPropertyChangedEvent. + + + + + Extension methods for geometry-related data structures (Point/Vector/Size/Rect). + + + + + Resizes the rectangle to a relative size while keeping the center invariant. + + + + + Gets the difference vector between two points. + + + + + Memberwise plus for Point. + + + + + Memberwise minus for Point. + + + + + Converts a string of mini-languages to a . + + See: Path Markup Syntax(http://msdn.microsoft.com/en-us/library/cc189041(VS.95).aspx) + The string of path mini-languages for describing geometric paths. + A converted from the the path mini-languages. + + + + Flattens a and adds result points to a given . + + The input . + The point list to which result points will append. + A positive number specifying the maximum allowed error from the result points to the input path figure. A Value of zero allows the algorithm to pick the tolerance automatically. + + + + Gets the normalized arc in a (0,0)(1,1) box. + Zero degrees is mapped to [0.5, 0] (up), and clockwise. + + + + + Gets the absolute arc point in a given bound with a given relative radius. + + + + + Gets the angle on an arc relative to a (0,0)(1,1) box. + Zero degrees is mapped to [0.5, 0] (up), and clockwise. + + + + + Gets the angle on an arc from a given absolute point relative to a bound. + + + + + Computes the transform that moves "Rect from" to "Rect to". + + + + + Computes the transform from the coordinate space of one UIElement to another. + + The source element. + The destination element. + The transform between the UIElements, or null if it cannot be computed. + + + + Maps a relative point to an absolute point using the mapping from a given bound to a (0,0)(1,1) box. + + + + + Maps an absolute point to a relative point using the mapping from a (0,0)(1,1) box to a given bound. + + + + + Computes the bound after stretching within a given logical bound. + If stretch to uniform, use given aspectRatio. + If aspectRatio is empty, it's equivalent to Fill. + If stretch is None, it's equivalent to Fill or Uniform. + + + + + Returns the mid point of two points. + + The first point. + The second point. + The mid point between and . + + + + Returns the dot product of two vectors. + + The first vector. + The second vector. + The dot product of and . + + + + Returns the dot product of two points. + + + + + Returns the distance between two points. + + The first point. + The second point. + The distance between and . + + + + Returns the square of the distance between two points. + + The first point. + The second point. + The square of the distance between and . + + + + Determinant of the cross product. Equivalent to directional area. + + + + + Computes the normal direction vector of given line segments. + + + + + Computes the perpendicular vector, 90-degrees, counter-clockwise. + Vector to the right perpendicular results in a vector to up. + + + + + Returns whether the two geometries are identical. + + + + + Ensures the value is an instance of result type (T). If not, replace with a new instance of type (T). + + + + + Ensures the list[index] is an instance of result type (T). If not, replace with a new instance of type (T). + + + + + Helper class that provides static properties and methods related to floating point arithmetic. + + + + + The minimum distance to consider that two values are same. + Note: internal floating point in MIL/SL is float, not double. + + + + + The value of the angle of a full circle. + + + + + The inner radius for a pentagram polygon shape, at precision of three digits in percentage. + (1 - Sin36 * Sin72 / Sin54) / (Cos36) ^ 2, which is 0.47210998990512996761913067272407 + + + + + Determines whether a System.Double value is small enough to be considered + equivalent to zero. + + + True if value is smaller than DoubleTolerance; + otherwise, False. + + + + Returns the value that's within the given range. + A given min/max that is null equals no limit. + + + + + Computes the Euclidean norm of the vector (x, y). + + The first component. + The second component. + The Euclidean norm of the vector (x, y). + + + + Computes a real number from the mantissa and exponent. + + + + The value of x * 2^exp if successful. + + + + Tests a double. + + The double to test. + True if x is not a NaN and is not equal to plus or minus infinity; + otherwise, False. + + + + Helper class to work with PathFigure. + + + + + Flattens the given figure and adds result points to the given point list. + + The error tolerance. Must be positive. Can be zero. Fallback to default tolerance. + + + + Iterates all segments inside a given figure, and returns the correct start point for each segment. + + + + + Synchronizes the figure to the given list of points as a single polyline segment. + Tries to keep the change to a minimum and returns false if nothing has been changed. + + + + + Synchronizes the given figure to be a closed ellipse with two arc segments. + + + + + A Tuple data structure for PathSegment and the corresponding StartPoint. + + + + + Represents a polyline with a list of connecting points. + A closed polygon is represented by repeating the first point at the end. + The differences, normals, angles, and lengths are computed on demand. + + + + + Constructs a polyline with two or more points. + + + + + The forward difference vector of polyline. + Points[i] + Differences[i] = Points[i+1] + + + + Compute the normal vector of given location (lerp(index, index+1, fraction). + If the location is within range of cornerRadius, interpolate the normal direction. + + The range of normal smoothless. If zero, no smoothness and return the exact normal on index. + + + + The polyline is closed when the first and last points are repeated. + + + + + The count of points in this polyline. + + + + + The total arc length of this polyline. + + + + + The point array of this polyline. + + + + + The length between line segments, Points[i] to Points[i+1]. + + + + + The list of normal vectors for each segment. + Normals[i] is the normal of segment p[i] to p[i + 1]. + Normals[N-1] == Normals[N-2]. + + + + + The list of Cos(angle) between two line segments on point p[i]. + Note: The value is cos(angle) = Dot(u, v). Not in degrees. + + + + + The list of accumulated length from points[i] to points[0]. + + + + + The data structure to communicate with the PathMarch algorithm. + + + + + Gets the interpolated position of this MarchLocation on a given point list. + + + + + Get the interpolated normal direction of this MarchLocation on a given normal vector list. + + + + + Gets the arc length of this MarchLocation to the start of the entire polyline. + + + + + The reason why this location is sampled. + + + + + The index of the point on a polyline point list. + + + + + Ratio: [0, 1], which is always before / (before + after). + + + + + Arc length before a stop point. Non-negative and less than Length[index]. + + + + + Arc length after the stop point. Non-negative and less than Length[index]. + + + + + Remaining length within a step to hit next stop. Positive to go forward. Negative to go backward. + + + + + Helper class to work with list of points + + + + + March the given polyline with a given interval and output each stop through callback. + + The polyline points to march on. + The arc length to march before stopping at the first point. + The max angle between edges to be considered a corner vertex. + Callback when marching algorithm stop at a point. The callback returns the arc length for next stop. + If the asked length is negative, march backwards. If callback returns NaN, finish marching. + + + + Reorders the given list of polylines so that the polyline with a given arc length in the list is the first. + Polylines that preceded this line are concatenated to the end of the list, with the first polyline at the very end. + + A list of polylines. + The arc length in the entire list of polylines at which to find the start line. + The arc length into that line is returned in this variable. + The reordered and wrapped list. + + + + A random generator that supports uniform and Gaussian distributions. + + + + + Generates a pair of independent, standard, normally distributed random numbers, + zero expectation, unit variance, using polar form of the Box-Muller transformation. + + + + + Private constructor. Force to use factory methods. + + + + + Creates a line segment + + + + + Creates a cubic bezier segment from quatratic curve (3 control points) + + + + + Creates a cubic bezier segment with 4 control points. + + + + + Control points of path segment. Length is variant. + Line segment has 2 points, Cubic bezier has 4 points. + + + + + Compares two transforms for an exact match. Transforms with the same value but different structure (e.g. Translate(0,0) and Rotate(0) are not considered equivalent). + + The first transform. + The second transform. + + + + + Specifies the unit of thickness. + + + + + Unit in pixels. + + + + + Unit in percentage relative to the bounding box. + + + + + Provides the base class of a source of geometry. + Generates and caches the geometry based on the input parameters and the layout bounds. + + + A typical implementation will extend the UpdateCachedGeometry() to update this.cachedGeometry. + This base class will then handle the invalidation, pipeline to the geometry effects, and then cache relative to the layout bounds. + An implementation should try to reuse the cached geometry as much as possible to avoid reconstruction in the rendering thread. + An implementation can extend the ComputeLogicalBounds to handle Stretch differently. + + The type of geometry source parameter on which the base class is working on. + + + + Provides an interface to describe the source of a geometry. + + + This interface is designed to expose the geometry source in a non-generic way. + Typical implementation should subclass GeometrySource instead of implementing this interface directly. + + + + + Notifies that the geometry has been invalidated because of external changes. + + + Geometry is typically invalidated when parameters are changed. + If any geometry has been invalidated externally, the geometry will be recomputed even if the layout bounds change. + + + + + Update the geometry using the given parameters and the layout bounds. + Returns false if nothing has been updated. + + + + + Gets or sets the resulting geometry after the latest UpdateGeometry(). + + + + + Gets the bounding box where the geometry should stretch to. + The actual geometry might be smaller or larger than this. + should already take stroke thickness and stretch into consideration. + + + + + Gets the actual bounds of FrameworkElement. + includes logical bounds, stretch, and stroke thickness. + + + + + Specifics the geometry from the previous geometry effect process. + + + + + Notifies that the geometry has been invalidated because of external changes. + + + The geometry is typically invalidated when parameters are changed. + If any geometry has been invalidated externally, the geometry will be recomputed regardless if the layout bounds change. + + + + + Update the geometry based on the given parameters and layoutBounds. + Returns false if the geometry hasn't been changed. + + + + + Extends the way to provide geometry by implementing this function. + Returns true when any of the geometry is changed. + + + + + Extends the way to handle stretch mode. + The default is to always use Stretch.Fill and center stroke. + + + + + Apply the geometry effect when dirty or forced and update this.Geometry. + Otherwise, keep this.Geometry as this.cachedGeometry. + + + + + Gets or sets the resulting geometry after the latest UpdateGeometry(). + + + + + Gets the bounding box that the geometry should stretch to. + The actual geometry might be smaller or larger than this. + should already take stroke thickness and stretch into consideration. + + + + + + Gets the actual bounds of FrameworkElement. + includes logical bounds, stretch and stroke thickness. + + + + + + Arc recognizes Stretch.None as the same as Stretch.Fill, assuming aspect ratio = 1:1. + + + + + Normalize thickness, both relative to the bounding box and the absolute pixel. + Relative thickness = 0 -> full circle radius or clamped. + Relative thickness = 1 -> shrank to a dot, or degenerated. + + + + + The arc is degenerated to a line pointing to center / normal inward. + + + + + Compute a list of angle pairs, defining the ranges in which arc sample should locate. + The return value have 2, 4, or 6 double values, each pair defines a range and they are in the order + to span the angles from given start to end angles. The ranges will break at the self-intersect angle. + If input start/end are within the invalid range between self intersect angle, it will be moved to neighboring self intersect. + + + + + Move angle to 0-90 range. + + + + + Compute all pieces of inner curves with each pair of input angles, and connect them with poly Bezier segments. + The new segments are output to given figure.Segments list from the given index. The start point is output seperately. + + + + + Compute one piece of inner curve with given angle range, and output one piece of smooth curve in format of poly Beizer semgents. + + + + + Compute the parameter (angle) of the self-intersect point for given ellipse with given thickness. + The result is always in first quadrant, and might be 0 or 90 indicating no self-intersect. + Basic algorithm is to binary search for the angle that sample point is not in first quadrant. + + + + + Specifies the direction the arrow points. + + + + + The arrow points to the left. + + + + + The arrow points to the right. + + + + + The arrow points up. + + + + + The arrow points down. + + + + + B + /| + / C--D + A | + \ C--D + \| + B + Algorithm only uses Width/Height assuming top-left at 0,0. + + + + + Specifies the rendering style of a callout shape. + + + + + A rectangular callout. + + + + + A rectangular callout with rounded corners. + + + + + A oval-shaped callout. + + + + + A cloud-shaped callout. + + + + + Updates the edge line, and then connects to the anchor point if necessary. + + + + + Updates the polyline segment, and then connects start, anchor, and end points with the callout style. + + + + + Updates the line segment to a given point. + + + + + Computes the corner points in a clockwise direction, with eight points for the four corners. + + + + + The corner arc is always smaller than a 90-degree arc. + + + + + Provides the base class for GeometryEffect that transforms a geometry into another geometry. + + + This class provides the basic implementation of processing the rendered geometry of a IShape before it's passed to rendering. + A typical implementation will extend the virtual function to transform the input geometry. + is typically attached to as an attached property and activated when geometry is updated. + The of a will replace the rendered geometry in . + + + + + Gets the geometry effect as an attached property on a given dependency object. + + + + + Sets the geometry effect as an attached property on a given dependency object. + + + + + Makes a deep copy of the using its current values. + + + + + Makes a deep copy of the geometry effect. Implements CloneCurrentValue in Silverlight. + + A clone of the current instance of the geometry effect. + + + + Tests if the given geometry effect is equivalent to the current instance. + + A geometry effect to compare with. + Returns true when two effects render with the same appearance. + + + + Specifics the geometry from the previous geometry effect process. + + + + + Invalidates the geometry effect without actually computing the geometry. + Notifies all parent shapes or effects to invalidate accordingly. + + + + + Processes the geometry effect on a given input geometry. + Stores the result in GeometryEffect.OutputGeometry. + + Returns false if nothing has been changed. + + + + Extends the way of updating cachedGeometry based on a given input geometry. + + + + + Notified when detached from a parent chain. + + + + + Notified when attached to a parent chain. + + + + + Invalidates the geometry on a given dependency object when + the object is a valid parent type (IShape or GeometryEffect). + + + + + Implement the Freezable in WPF. + + + + + The default geometry effect that only passes through the input geometry. + + + + + Gets the output geometry of this geometry effect. + + + + + Parent can be either IShape or GeometryEffectGroup. + + + + + Provides the conversion between string and geometry effects. + + + This class enables the brief syntax in XAML like GeometryEffect="Sketch". + Creates a clone of the instance of the geometry effect so it can be used as a resource. + + + + + Builds a preset list of supported geometry effects. + + + + + A GeometryEffect that can be converted from a string type. + + + + + A GeometryEffect that can be converted to a string type. + + + + + Converts a string to a geometry effect. The fallback value is null. + + + + + Converts a geometry effect into a string. The fallback value is null. + + + + + Specifies the reason of being called. + + + + + Geometry has been invalidated because a property has been changed. + + + + + Geometry has been invalidated because a property is being animated. + + + + + Geometry has been invalidated because a child has been invalidated. + + + + + Geometry has been invalidated because a parent has been invalidated. + + + + + Geometry has been invalidated because a new template has been applied. + + + + + Provides helper extension methods to work with IGeometrySource and parameters. + + + + + Specifies the arrow head type. + + + + + No arrow head. + + + + + A triangle arrow head. + + + + + A stealth triangle arrow head. + + + + + An open triangle arrow head. + + + + + An oval arrow head. + + + + + Specifies the corner location. + + + + + On the top left of the bounding box. + + + + + On the top right of the bounding box. + + + + + On the bottom right of the bounding box. + + + + + On the bottom left of the bounding box. + + + + + Polygon recognizes Stretch.None as the same as Stretch.Fill. + + + + + A geometry effect that transforms any geometry into a Sketch style as in SketchFlow. + + + + + Makes a deep copy of the geometry effect. + + A clone of the current instance of the geometry effect. + + + + Tests if the given geometry effect is equivalent to the current instance. + + A geometry effect to compare with. + Returns true when two effects render with the same appearance. + + + + Updating cachedGeometry based on the given input geometry. + + An input geometry. + Returns true when anything on cachedGeometry has been updated. + + + + Use the same random seed on creation to keep visual flickering to a minimum. + + + + + Iterates all simple segments in given path figure including the closing chord. + + + + + Renders an arc shape supporting Arc, Ring, and Pie mode controlled by ArcThickness. + + + + + Platform-neutral implementation of Shape deriving from WPF:Shape or SL:Path. + + + Provides the WPF implementation of Shape that derives from the platform Shape. + + + + + Extends how the shape is drawn with creating geometry source. + + + + + Invalidates the geometry for a . After the invalidation, the will recompute the geometry, which will occur asynchronously. + + + + Provides the behavior for the Measure portion of Silverlight layout pass. Classes can override this method to define their own Measure pass behavior. + The size that this object determines it requires during layout, based on its calculations of child object allotted sizes, or possibly on other considerations such as fixed container size. + The available size that this object can provide to child objects. Infinity () can be specified as a value to indicate that the object will size to whatever content is available. + + In WPF, measure override works from Shape.DefiningGeometry which is not always as expected + see bug 99497 for details where WPF is not having correct measure by default. + + In Silverlight, measure override on Path does not work the same as primitive shape works. + + We should return the smallest size this shape can correctly render without clipping. + By default a shape can render as small as a dot, therefore returning the strokethickness. + + + + Provides the behavior for the Arrange portion of Silverlight layout pass. Classes can override this method to define their own Arrange pass behavior. + The actual size used once the element is arranged in layout. + The final area within the parent that this object should use to arrange itself and its children. + will recompute the Geometry when it's invalidated and update the RenderedGeometry and GeometryMargin. + + + + Occurs when RenderedGeometry is changed. + + + + + Gets the margin between logical bounds and actual geometry bounds. + This can be either positive (as in ) or negative (as in ). + + + + + Gets or sets the start angle. + + The start angle in degrees. Zero degrees is pointing up. + + + + Gets or sets the end angle. + + The end angle in degrees. Zero degrees is pointing up. + + + + Gets or sets the arc thickness. + + The arc thickness in pixels or percentage depending on "ArcThicknessUnit". + + + + Gets or sets the arc thickness unit. + + The arc thickness unit in pixels or percentage. + + + + Renders a block arrow shape that supports resizable arrow head and body. + + + + + Gets or sets the orientation. + + The orientation where the arrow is pointing to. + + + + Gets or sets the arrow head angle. + + The arrow head angle in degrees. + + + + Gets or sets the size of the arrow body. + + The size of the arrow body in pixels. + + + + Renders a regular polygon shape or corresponding star shape with variable number of points. + + + + + Gets or sets the number of points of the . + + + + + Gets or sets the the distance between the center and the innermost point. + + The distance between the center and the innermost point. + + + diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Microsoft.Expression.Effects.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Microsoft.Expression.Effects.dll new file mode 100644 index 0000000..c2b722f Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Microsoft.Expression.Effects.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Microsoft.Expression.Effects.xml b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Microsoft.Expression.Effects.xml new file mode 100644 index 0000000..ba0b390 --- /dev/null +++ b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Microsoft.Expression.Effects.xml @@ -0,0 +1,1056 @@ + + + + Microsoft.Expression.Effects + + + + + Determine the orientation of the blinds. + + + + + Transition shader that simulates blinds opening when transitioning + from one visual to another. + + + + + Gets or sets the orientation of the blinds. + + + + + Gets or sets the number of blinds. + + + + + Gets or sets the Amplitude variable within the shader. + + + + + Creates an instance of the shader. + + + + + Makes a deep copy of the BlindsTransitionEffect effect. + + A clone of the current instance of the BlindsTransitionEffect effect. + + + + Gets or sets the orientation of the blinds. + + + + + Gets or sets the number of blinds to display. + + + + + Gets or sets the orientation of the blinds. + + + + + Effect that implements a bloom illumination of a visual. + + + + + The explicit input for this pixel shader. + + + + + + This property is mapped to the BloomIntensity variable within the pixel shader. + + + + + This property is mapped to the BaseIntensity variable within the pixel shader. + + + + + This property is mapped to the BloomSaturation variable within the pixel shader. + + + + + This property is mapped to the BaseSaturation variable within the pixel shader. + + + + + This property is mapped to the BloomIntensity variable within the pixel shader. + + + + + This property is mapped to the BloomSaturation variable within the pixel shader. + + + + + This property is mapped to the BaseSaturation variable within the pixel shader. + + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Gets or sets the minimum intensity that will be used for the bloom. + + + + + Gets or sets the base intensity. + + + + + Gets or sets the bloom intensity. + + + + + Gets or sets the base saturation. + + + + + Gets or sets the bloom saturation. + + + + + Gets or sets the Input shader sampler. + + + + + Gets or sets the Base/BloomIntensity variable within the shader. + + + + + Gets or sets the BaseBloomSaturation variable within the shader. + + + + + Transition effect that reveals two visuals through a growing/shrinking circle. + + + + + Dependency property which modifies the feather amount variable within the pixel shader. + + + + + Dependency property which modifies the circle movement. + + + + + Dependency property which modifies the reverseShader variable within the pixel shader. + + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Makes a deep copy of the CircleRevealTransitionEffect effect. + + A clone of the current instance of the CircleRevealTransitionEffect effect. + + + + Gets or sets the FuzzyAmount variable within the shader. + + + + + Gets or sets playing the circle reveal backward. + + + + + Gets or sets playing the circle reveal backward into the shader. + + + + + Transition effect that transitions two visuals using a cloud + texture as the sampler threshold. + + + + + Defines a transition shader effect that uses an image as a sampler threshold + for interpolating pixel value between two visuals. + + + + + Defines a transition shader effect that provides a random value, + allowing the effect to provide variance each time the effect is run. + + + + + Dependency property which modifies the RandomSeed variable within the pixel shader. + + + + + Updates the shader's variables to the default values. + + + + + Gets or sets the RandomSeed variable within the shader. + + + + + Dependency property which modifies the CloudImage variable within the pixel shader. + + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Gets or sets the CloudImage variable within the shader used for sampling. + + + + + Creates an instance of the shader. + + + + + Makes a deep copy of the CloudRevealTransitionEffect effect. + + A clone of the current instance of the CloudRevealTransitionEffect effect. + + + + Effect that modifies the color tone of a visual using + two colors as the sampling. + + + + + The explicit input for this pixel shader. + + + + + This property is mapped to the Desaturation variable within the pixel shader. + + + + + This property is mapped to the Tone variable within the pixel shader. + + + + + This property is mapped to the LightColor variable within the pixel shader. + + + + + This property is mapped to the DarkColor variable within the pixel shader. + + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Gets or sets the Desaturation variable within the shader. + + + + + Gets or sets the Tone variable within the shader. + + + + + Gets or sets the LightColor variable within the shader. + + + + + Gets or sets the DarkColor variable within the shader. + + + + + Gets or sets the Input shader sampler. + + + + + Effect that simulates an embossed look for the visual. + + + + + The explicit input for this pixel shader. + + + + + This property is mapped to the Amount variable within the pixel shader. + + + + + This property is mapped to the Height variable within the pixel shader. + + + + + This property is mapped to the Color variable within the pixel shader. + + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Gets or sets the Amount variable within the shader. + + + + + Gets or sets the Height variable within the shader. + + + + + Gets or sets the Color variable within the shader. + + + + + Gets or sets the Input shader sampler. + + + + + Transition effect that gradually transitions from one visual to another. + + + + + Creates an instance of the shader. + + + + + Makes a deep copy of the FadeTransitionEffect effect. + + A clone of the current instance of the FadeTransitionEffect effect. + + + + Effect that simulates a magnifying lens. + + + + + Gets or sets the InnerRadius variable within the shader. + + + + + Gets or sets the OuterRadius variable within the shader. + + + + + Gets or sets the center variable within the shader. + + + + + Gets or sets the amount variable within the shader. + + + + + Gets or sets the Input used in the shader. + + + + + The transform used for this shader. + + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Gets or sets the InnerRadius variable within the shader. + + + + + Gets or sets the OuterRadius variable within the shader. + + + + + Gets or sets the Center variable within the shader. + + + + + Gets or sets the ShrinkFactor. + The higher the shrink factor the "smaller" the content inside the ellipse will appear. + + + + + Gets the EffectMapping. + + + + + Gets or sets the Input shader sampler. + + + + + The GeneralTransform corresponding to the Magnify effect. + + + + + Attempt to transform a point based on the effect. + + The point to transform. + The result if available. + Return true if successful. + + + + The effect instance. + + + + + If the transform is an inverse. + + + + + The transform specific to this Effect. + + + + + Creates a new instance. + + The source effect. + + + + This particular effect keeps axis-aligned lines axis-aligned, so the transformation of the Rect is just + transformation of its corner points. + + The input Rect. + The output Rect. + + + + For the inverse of the shader, we need to find Pin which is the Pixel Ouput, given Pout the texture input (is the reverse of the shader) + However, the shader algorithm is dependant on the radius of the pixel output from the center, which is a variable that we don't + have when computing the inverse. We need to perform bisection in order to converge using the equation below + PHatout = PHat_in*Scalar where + PHatout = Pout - Pcenter + pHatin = Pin -Pcenter + + Scalar is dependent on the radius of Pin (which we don't have). + + + + + Given a pixel output (Pin) find the texture input (Pout). + + + + + Creats a new instance. + + A new instance of this. + + + + Determines if a point is within an ellipse. + + The test point. + The center point of the ellipse. + The radius of the ellipse. + Return true if successful. + + + + Gets the inverse transform. + + + + + Effect that turns a visual into a monochrome color. + + + + + Gets or sets the Color variable within the shader. + + + + + Gets or sets the Input of the shader. + + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Gets or sets the Color variable within the shader. + + + + + Gets or sets the Input used in the shader. + + + + + Effect that pixelates a visual. + + + + + The explicit input for this pixel shader. + + + + + This property is mapped to the Pixelation variable within the pixel shader. + + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Gets or sets the amount of pixelation inside the shader. + + + + + Gets or sets the Input shader sampler. + + + + + Transition effect that increases or decreases pixelation between two visuals. + + + + + Creates an instance of the shader. + + + + + Makes a deep copy of the PixelateTransitionEffect effect. + + A clone of the current instance of the PixelateTransitionEffect effect. + + + + Transition effect that performs a radial blur of the current visual as the new visual is introduced. + + + + + Creates an instance of the shader. + + + + + Makes a deep copy of the RadialBlurTransitionEffect effect. + + A clone of the current instance of the RadialBlurTransitionEffect effect. + + + + Effect that simulates water ripples on the visual. + + + + + Gets or sets the Center variable within the shader. + + + + + Gets or sets the Amplitude variable within the shader. + + + + + Gets or sets the Frequency variable within the shader. + + + + + Gets or sets the Phase variable within the shader. + + + + + Gets or sets the Input brush used in the shader. + + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Gets or sets the Center variable within the shader. + + + + + Gets or sets the Amplitude variable within the shader. + + + + + Gets or sets the Frequency variable within the shader. + + + + + Gets or sets the Phase variable within the shader. + + + + + Gets or sets the Input shader sampler. + + + + + Transition effect that simulates water ripple during transition. + + + + + Creates an instance of the shader. + + + + + Makes a deep copy of the RippleTransitionEffect effect. + + A clone of the current instance of the RippleTransitionEffect effect. + + + + Effect that makes a visual crisper and sharper. + + + + + The explicit input for this pixel shader. + + + + + This property is mapped to the Amount variable within the pixel shader. + + + + + This property is mapped to the Width variable within the pixel shader. + + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Gets or sets the Amount variable within the shader. + + + + + Gets or sets the Height variable within the shader. + + + + + Gets or sets the Input shader sampler. + + + + + Defines the slide orientation. + + + + + Transition effect that slides the current visual away, revealing the new visual. + + + + + Dependency property that modifies the SlideAmount variable within the pixel shader. + + + + + Dependency property that modifies the SlideAmount variable within the pixel shader. + + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Makes a deep copy of the SlideInTransitionEffect effect. + + A clone of the current instance of the SlideInTransitionEffect effect. + + + + Gets or sets the SlideAmount variable within the shader. + + + + + Gets or sets the SlideAmount variable within the shader. + + + + + Transition effect that swirls the current visual while introducing the new visual. + + + + + Dependency property that modifies the TwistAmount variable within the pixel shader. + + + + + Dependency property that modifies the number of cells where pixels will be twisted. + + + + + Creates an instance and sets the shader's twist variable to the specified values. + + Level of swirl twist. + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Makes a deep copy of the SmoothSwirlGridTransitionEffect effect. + + A clone of the current instance of the SmoothSwirlGridTransitionEffect effect. + + + + Gets or sets the TwistAmount variable within the shader. + + + + + Gets or sets the CellCount variable within the shader. + + + + + Effect that swirls the current visual. + + + + + The explicit input for this pixel shader. + + + + + This property is mapped to the Center variable within the pixel shader. + + + + + This property is mapped to the TwistAmount variable within the pixel shader. + + + + + This property is mapped to the AngleFrequency variable within the pixel shader. + + + + + The transform used when this Effect is applied. + + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Gets or sets the Center variable within the shader. + + + + + Gets or sets the TwistAmount variable within the shader. + + + + + Gets or sets the AngleFrequency variable within the shader. + This property is not exposed. + + + + + Gets or sets the Input shader sampler. + + + + + Gets the GeneralTransform for this effect. + + + + + Used for transforming input and tree transformations. + + + + + The instance of the Effect. + + + + + The inverse of the transform. + + + + + The inverse of this GeneralTransform. + + + + + Creates an instance of this class. + + The effect itself. + + + + For this operation, the bounds is the bounding box of the four transformed points. + Need to transform each of them, and then circumscribe. This is true for both the + forward and the inverse. + + The input Rect. + The transformed Rect. + + + + Attempt to transform inPoint with the Swirl effect. + + The input point. + The output point after transformed using the Swirl effect. + Returns true but throws if false. + + + + Returns a new instance of this. + + A new instance. + + + + Gets a clone of the inverse of the current transform. + + + + + Transition effect that waves the current visual while introducing the new visual. + + + + + Dependency property that modifies the Magnitude variable within the pixel shader. + + + + + Dependency property that modifies the Phase variable within the pixel shader. + + + + + Dependency property that modifies the Frequency variable within the pixel shader. + + + + + Creates an instance of the shader. + + + + + Makes a deep copy of the WaveTransitionEffect effect. + + A clone of the current instance of the WaveTransitionEffect effect. + + + + Gets or sets the magnitude of the wave. + + + + + Gets or sets the phase of the wave. + + + + + Gets or sets the magnitude of the wave. + + + + + Define the wipe direction. + + + + + Transition effect that wipes the current visual while introducing the new visual. + + + + + Dependency property that modifies the WipeDirection variable within the pixel shader. + + + + + Dependency property that modifies the FeatherAmount variable within the pixel shader. + + + + + Dependency property that modifies the LineOrigin variable within the pixel shader. + + + + + Dependency property that modifies the LineNormal variable within the pixel shader. + + + + + Dependency property that modifies the LineOffset variable within the pixel shader. + + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Makes a deep copy of the WipeTransitionEffect effect. + + A clone of the current instance of the WipeTransitionEffect effect. + + + + Gets or sets the direction of the wipe. + + + + + Gets or sets the FeatherAmount variable within the shader. + + + + + Gets or sets the LineOrigin variable within the shader. + + + + + Gets or sets the LineNormal variable within the shader. + + + + + Gets or sets the LineOffset variable within the shader. + + + + diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Microsoft.Expression.Interactions.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Microsoft.Expression.Interactions.dll new file mode 100644 index 0000000..979c965 Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Microsoft.Expression.Interactions.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Microsoft.Expression.Interactions.xml b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Microsoft.Expression.Interactions.xml new file mode 100644 index 0000000..59fce87 --- /dev/null +++ b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Microsoft.Expression.Interactions.xml @@ -0,0 +1,1295 @@ + + + + Microsoft.Expression.Interactions + + + + + A basic implementation of ICommand that wraps a method that takes no parameters or a method that takes one parameter. + + + + + Initializes a new instance of the class. + + The action. + Use this constructor to provide an action that ignores the ICommand parameter. + + + + Initializes a new instance of the class. + + An action that takes an object parameter. + Use this constructor to provide an action that uses the object parameter passed by the Execute method. + + + + Defines the method that determines whether the command can execute in its current state. + + Data used by the command. If the command does not require data to be passed, then this object can be set to null. + + Always returns true. + + + + + Defines the method to be called when the command is invoked. + + Data used by the command. If the command does not require data to be passed, then this object can be set to null. + + + + Occurs when changes occur that affect whether the command should execute. Will not be fired by ActionCommand. + + + + + Calls a method on a specified object when invoked. + + + + + Invokes the action. + + The parameter of the action. If the action does not require a parameter, the parameter may be set to a null reference. + + + + Called after the action is attached to an AssociatedObject. + + Override this to hook up functionality to the AssociatedObject. + + + + Called when the action is getting detached from its AssociatedObject, but before it has actually occurred. + + Override this to unhook functionality from the AssociatedObject. + + + + The object that exposes the method of interest. This is a dependency property. + + + + + The name of the method to invoke. This is a dependency property. + + + + + An action that will change a specified property to a specified value when invoked. + + + + + Initializes a new instance of the class. + + + + + Invokes the action. + + The parameter of the action. If the action does not require a parameter, then the parameter may be set to a null reference. + A property with could not be found on the Target. + Could not set to the value specified by . + + + + Gets or sets the name of the property to change. This is a dependency property. + + The name of the property to change. + + + + Gets or sets the value to set. This is a dependency property. + + The value to set. + + + + Gets or sets the duration of the animation that will occur when the ChangePropertyAction is invoked. This is a dependency property. + If the duration is unset, no animation will be applied. + + + + + Increment by Value if true; otherwise, set the value directly. If the property cannot be incremented, it will instead try to set the value directly. + + + + + Represents one ternary condition. + + + + + Method that evaluates the condition. Note that this method can throw ArgumentException if the operator is + incompatible with the type. For instance, operators LessThan, LessThanOrEqual, GreaterThan, and GreaterThanOrEqual + require both operators to implement IComparable. + + Returns true if the condition has been met; otherwise, returns false. + + + + Ensure that any binding on DP operands are up-to-date. + + + + + Gets or sets the left operand. + + + + + Gets or sets the right operand. + + + + + Gets or sets the comparison operator. + + + + + Enumeration of different comparison operators. + + + + + This method evaluates operands. + + Left operand from the LeftOperand property. + Operator from Operator property. + Right operand from the RightOperand property. + Returns true if the condition is met; otherwise, returns false. + + + + Evaluates both operands that implement the IComparable interface. + + Left operand from the LeftOperand property. + Operator from Operator property. + Right operand from the RightOperand property. + Returns true if the condition is met; otherwise, returns false. + + + + Forward chaining. + + + + + Represents a conditional expression that is set on a ConditionBehavior.Condition property. + Contains a list of conditions that gets evaluated in order to return true or false for ICondition.Evaluate(). + + + + + An interface that a given object must implement in order to be + set on a ConditionBehavior.Condition property. + + + + + Initializes a new instance of the class. + + + + + Goes through the Conditions collection and evalutes each condition based on + ForwardChaining property. + + Returns true if conditions are met; otherwise, returns false. + + + + Gets or sets forward chaining for the conditions. + If forward chaining is set to ForwardChaining.And, all conditions must be met. + If forward chaining is set to ForwardChaining.Or, only one condition must be met. + + + + + Return the Condition collections. + + + + + A behavior that attaches to a trigger and controls the conditions + to fire the actions. + + + + + + Initializes a new instance of the class. + + + + + The event handler that is listening to the preview invoke event that is fired by + the trigger. Setting PreviewInvokeEventArgs.Cancelling to True will + cancel the invocation. + + The trigger base object. + An object of type PreviewInvokeEventArgs where e.Cancelling can be set to True. + + + + Gets or sets the IConditon object on behavior. + + The name of the condition to change. + + + + Helper class for managing binding expressions on dependency objects. + + + + + Ensure that all DP on an action with binding expressions are + up to date. DataTrigger fires during data binding phase. Since + actions are children of the trigger, any bindings on the action + may not be up-to-date. This routine is called before the action + is invoked in order to guarantee that all bindings are up-to-date + with the most current data. + + + + + Ensures that all binding expression on actions are up to date + + + + + This helper function ensures that, if a dependency property on a dependency object + has a binding expression, the binding expression is up-to-date. + + + + + + + Toggles between two states based on a conditional statement. + + + + + Called after the behavior is attached to an AssociatedObject. + + Override this to hook up functionality to the AssociatedObject. + + + + A helper function to take the place of FrameworkElement.IsLoaded, as this property isn't available in Silverlight. + + The element of interest. + Returns true if the element has been loaded; otherwise, returns false. + + + + Gets or sets the binding that produces the property value of the data object. This is a dependency property. + + + + + Gets or sets the value to be compared with the property value of the data object. This is a dependency property. + + + + + Gets or sets the name of the visual state to transition to when the condition is met. This is a dependency property. + + + + + Gets or sets the name of the visual state to transition to when the condition is not met. This is a dependency property. + + + + + Trigger designed to be bound to a data store property. Fires when the property changes. + + + + + Represents a trigger that performs actions when the bound data have changed. + + UA_REVIEW:chabiss + + + + Called when the binding property has changed. + UA_REVIEW:chabiss + + argument. + + + + Called after the trigger is attached to an AssociatedObject. + UA_REVIEW:chabiss + + + + + Called when the trigger is being detached from its AssociatedObject, but before it has actually occurred. + UA_REVIEW:chabiss + + + + + A binding object that the trigger will listen to, and that causes the trigger to fire when it changes. + + UA_REVIEW:chabiss + + + + Represents a trigger that performs actions when the bound data meets a specified condition. + + + + + Called when the binding property has changed. + UA_REVIEW:chabiss + + argument. + + + + Gets or sets the value to be compared with the property value of the data object. This is a dependency property. + + + + + Gets or sets the type of comparison to be performed between the specified values. This is a dependency property. + + + + + ExtendedVisualStateManager is a custom VisualStateManager that can smooth out the animation of layout properties. + With this custom VisualStateManager, states can include changes to properties like Grid.Column, can change element heights to or from Auto, and so on. + These changes will be smoothed out over time using the GeneratedDuration and GeneratedEasingFunction of the appropriate transition. + See the "VisualStateManager overrides" region below for a general description of the algorithm. + + + + + A VisualStateGroup that can use FluidLayout or not. + + + + + Visibility is shadowed by a custom attached property at runtime. + + + + + A VisualStateGroup keeps a list of these original values in an attached property. + + + + + For every state, the layout-specific properties get extracted and then are attached to the state. These properties are removed from the state itself. + + + + + Remember the current state. + + + + + The TransitionEffect to use when the state changes. + + + + + The TransitionEffectStoryboard in use during the state change. + + + + + The cached background in use during the state change. + + + + + The cached background in use during the state change. + + + + + The cached background in use during the state change. + + + + + This is the set of elements that are currently in motion. + + + + + This is the storyboard that is animating the transition. + + + + + This list contains all the known layout properties. + + + + + Stop the animation and replace the layout changes that were made to support that animation. + + + + + Locate the transition that VisualStateManager will use to animate the change, so that the layout animation can match the duration and easing. + + The group in which the transition is taking place. + The state that you are coming from. + The state you are going to. + The transition + + + + Remove all layout-affecting properties from the Storyboard for the state and cache them in an attached property. + + The state you are moving to. + A Storyboard containing the layout properties in that state. + + + + The set of target elements is the set of all elements that might have moved in a layout transition. This set is the closure of: + - Elements with layout properties animated in the state. + - Siblings of elements in the set. + - Parents of elements in the set. + + Subsequent code will check these rectangles both before and after the layout change. + + The control whose layout is changing state. + The storyboard containing the layout changes. + Any previous values from previous state navigations that might be reverted. + The set of elements currently in motion, if there is a state change transition ongoing. + The full set of elements whose layout may have changed. + + + + Gets a set of rectangles for all the elements in the target list. + + The set of elements to consider. + The set of elements currently in motion. + A Dictionary mapping elements to their Rects. + + + + Get the layout rectangle of an element, by getting the layout slot and then computing which portion of the slot is being used. + + The element whose layout Rect will be retrieved. + The layout Rect of that element. + + + + Get the opacities of elements at the time of the state change, instead of visibilities, because the state change may be in process and the current value is the most important. + + The control whose state is changing. + The storyboard with the layout properties. + The set of original values. + + + + + Go through the layout Storyboard and set all the properties by using SetValue to enable calling UpdateLayout without + ticking the timeline, which would cause a render. + All values that are overwritten will be stored in the collection of OriginalValueRecords so that they can be replaced later. + + The control whose state is changing. + The Storyboard holding the layout properties. + The store of original values. + + + + Take all the elements that will be moving as a result of the layout animation, and wrap them in Canvas panels so that + they do not affect their sibling elements. + + The set of elements that will be moving. + + + + Take all the elements that have been moving as a result of the layout animation, and unwrap them from their Canvas panels. + + The set of elements that have been moving. + + + + Copy the layout properties from the source element to the target element, clearing them from the source. + + The source of the layout properties. + The destination of the layout properties. + + + + Create the actual Storyboard that will be used to animate the transition. Use all previously calculated results. + + The duration of the animation. + The easing function to be used in the animation. + The set of elements that will be moving. + The old opacities of the elements whose visibility properties are changing. + The Storyboard. + + + + OriginalValueRecord remembers the original value of a property that was changed in a state. + + + + + This enumerated type indicates whether a FluidMoveBehavior applies to the element to which it is attached, or to the children of that element. + "Self" is useful when there is a single element that should behave in a special manner; "Children" is useful when the same behavior should apply to all + children of a WrapPanel or to the ItemsHost panel of an ItemsControl. + + + + + This enumerated type indicates whether an element is identified by itself, or by its DataContext. + DataContext identification allows movement from one data-driven location to another. + + + + + Dependency property for the scope of the behavior. See FluidMoveScope for more details. + + + + + Dependency property for the active state of the behavior. + + + + + Dependency property that provides the ability to use the element as its own tag, or the binding on the element. + + + + + Dependency property for the extra path to add to the binding when UsaBindingAsTag is true. + + + + + Identity tag used to detect element motion between containers. + + + + + Indicates whether the behavior applies just to this element, or to all children of the element (if the element is a Panel). + + + + + Indicates whether the behavior is currently active. + + + + + Indicates whether to use the element as its own tag, or to use the binding on the element as the tag. + + + + + Extra path to add to the binding when TagType is specified. + + + + + Private structure that stores all relevant data pertaining to a tagged item. + + + + + Behavior that watches an element (or a set of elements) for layout changes, and moves the element smoothly to the new position when needed. + This behavior does not animate the size or visibility of an element; it only animates the offset of that element within its parent container. + + + + + Dependency property for the duration of the move. + + + + + Dependency property for the tag type to use just before the object is loaded. + + + + + Dependency property for the extra path to add to the binding when UsaBindingAsTag is true. + + + + + Identity tag used to detect element motion between containers. + + + + + Dependency property for the FloatAbove flag. + + + + + Dependency property for the EasingFunction to use for the horizontal component of the move. + + + + + Dependency property for the EasingFunction to use for the vertical component of the move. + + + + + Remember the popup/adorner being used, in case of element motion between containers when FloatAbove is true. + + + + + Opacity cache used when floating a Popup. + + + + + Marks the animation transform. + + + + + The duration of the move. + + + + + Spawning point for this item. + + + + + Extra path to add to the binding when TagType is specified. + + + + + Flag that says whether elements are allowed to float above their containers (in a Popup or Adorner) when changing containers. + + + + + EasingFunction to use for the horizontal component of the move. + + + + + EasingFunction to use for the vertical component of the move. + + + + + Simple helper class to allow any UIElements to be used as an Adorner. + + + + + An action that will transition a FrameworkElement to a specified VisualState when invoked. + + + If the TargetName property is set, this action will attempt to change the state of the targeted element. If not, it walks + the element tree in an attempt to locate an alternative target that defines states. ControlTemplate and UserControl are + two common possibilities. + + + + + Called when the target changes. If the TargetName property isn't set, this action has custom behavior. + + + + Could not locate an appropriate FrameworkElement with states. + + + + This method is called when some criteria is met and the action is invoked. + + + Could not change the target to the specified StateName. + + + + Determines whether or not to use a VisualTransition to transition between states. + + + + + The name of the VisualState. + + + + + A Trigger that is triggered by a keyboard event. If the target Key and Modifiers are detected, it fires. + + + + + The key that must be pressed for the trigger to fire. + + + + + The modifiers that must be active for the trigger to fire (the default is no modifiers pressed). + + + + + If true, the Trigger only listens to its trigger Source object, which means that element must have focus for the trigger to fire. + If false, the Trigger listens at the root, so any unhandled KeyDown/Up messages will be caught. + + + + + Determines whether or not to listen to the KeyDown or KeyUp event. + + + + + An action that will launch a process to open a file or Uri. For files, this action will launch the default program + for the given file extension. A Uri will open in a web browser. + + + + + This method is called when some criteria is met and the action is invoked. + + + + + + The file or Uri to open. + + + + + Repositions the attached element in response to mouse drag gestures on the element. + + + + + Dependency property for the X position of the dragged element, relative to the left of the root element. + + + + + Dependency property for the Y position of the dragged element, relative to the top of the root element. + + + + + Dependency property for the ConstrainToParentBounds property. If true, the dragged element will be constrained to stay within the bounds of its parent container. + + + + + Attempts to update the position of the associated element to the specified coordinates. + + The desired position of the element in root coordinates. + + + + Applies a relative position translation to the associated element. + + The X component of the desired translation in root coordinates. + The Y component of the desired translation in root coordinates. + + + + Applies the given translation to the RenderTransform of the associated element. + + The X component of the translation in parent coordinates. + The Y component of the translation in parent coordinates. + + + + Does a recursive deep copy of the specified transform. + + The transform to clone. + A deep copy of the specified transform, or null if the specified transform is null. + Thrown if the type of the Transform is not recognized. + + + + Updates the X and Y properties based on the current rendered position of the associated element. + + + + + Check if one Rect is contained by another. + + The containing Rect. + The contained Rect. + True if rect1 contains rect2; otherwise, False. + + + + Transforms as vector. + + The transform. + The X component of the vector. + The Y component of the vector. + A point containing the values of X and Y transformed by transform as a vector. + + + + Gets the transform offset. + + The transform. + The offset of the transform. + + + + Called after the behavior is attached to an AssociatedObject. + + Override this to hook up functionality to the AssociatedObject. + + + + Called when the behavior is getting detached from its AssociatedObject, but before it has actually occurred. + + Override this to unhook functionality from the AssociatedObject. + + + + Occurs when a drag gesture is initiated. + + + + + Occurs when a drag gesture update is processed. + + + + + Occurs when a drag gesture is finished. + + + + + Gets or sets the X position of the dragged element, relative to the left of the root element. This is a dependency property. + + + + + Gets or sets the Y position of the dragged element, relative to the top of the root element. This is a dependency property. + + + + + Gets or sets a value indicating whether the dragged element is constrained to stay within the bounds of its parent container. This is a dependency property. + + + True if the dragged element should be constrained to its parents bounds; otherwise, False. + + + + + Gets the on-screen position of the associated element in root coordinates. + + The on-screen position of the associated element in root coordinates. + + + + Gets the element bounds in element coordinates. + + The element bounds in element coordinates. + + + + Gets the parent element of the associated object. + + The parent element of the associated object. + + + + Gets the root element of the scene in which the associated object is located. + + The root element of the scene in which the associated object is located. + + + + Gets and sets the RenderTransform of the associated element. + + + + + An action that will play a sound to completion. + + + This action is intended for use with short sound effects that don't need to be stopped or controlled. If you're trying + to create a music player or game, it may not meet your needs. + + + + + Initializes a new instance of the class. + + + + + When the action is invoked, this method is used to customize the dynamically created MediaElement. + + + This method may be useful for Action authors who wish to extend PlaySoundAction. If you want to control the + MediaElement Balance property, you could inherit from PlaySoundAction and override this method. + + + + + + This method is called when some criteria are met and the action should be invoked. + + + Each invocation of the Action plays a new sound. Although the implementation is subject-to-change, the caller should + anticipate that this will create a new MediaElement that will be cleaned up when the sound completes or if the media + fails to play. + + + + + + A Uri defining the location of the sound file. This is used to set the source property of the MediaElement. This is a dependency property. + + + The sound can be any file format supported by MediaElement. In the case of a video, it will play only the + audio portion. + + + + + Control the volume of the sound. This is used to set the Volume property of the MediaElement. This is a dependency property. + + + + + An action that will remove the targeted element from the tree when invoked. + + + This action may fail. The action understands how to remove elements from common parents but not from custom collections or direct manipulation + of the visual tree. + + + + + An action that will change the value of a property from a data store object. + This class is identical to ChangePropertyAction. The only difference is that the data store picker is loaded + for this action. + + + + + An abstract class that provides the ability to target a Storyboard. + + + For action authors, this class provides a standard way to target a Storyboard. Design tools may choose to provide a + special editing experience for classes that inherit from this action, thereby improving the designer experience. + + + + + This method is called when the Storyboard property is changed. + + + + + + The targeted Storyboard. This is a dependency property. + + + + + An action that will change the state of a targeted storyboard when invoked. + + + + + This method is called when some criteria is met and the action should be invoked. This method will attempt to + change the targeted storyboard in a way defined by the ControlStoryboardOption. + + + + + + An abstract class that provides the ability to target a Storyboard. + + + For Trigger authors, this class provides a standard way to target a Storyboard. Design tools may choose to provide a + special editing experience for classes that inherit from this trigger, thereby improving the designer experience. + + + + + This method is called when the Storyboard property is changed. + + + + + The targeted Storyboard. This is a dependency property. + + + + + A trigger that listens for the completion of a Storyboard. + + + + + Initializes a new instance of the class. + + + + + A trigger that is triggered by a specified event occurring on its source and fires after a delay when that event is fired. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the number of milliseconds to wait between ticks. This is a dependency property. + + + + + Gets or sets the total number of ticks to be fired before the trigger is finished. This is a dependency property. + + + + + Defines a transition effect shader that transitions from one visual to another visual + using an interpolated value between 0 and 1. + + + + + Brush-valued properties that turn into sampler-properties in the shader. + Represents the image present in the final state of the transition. + + + + + Brush-valued properties that turn into sampler-properties in the shader. + Represents the image present in the initial state of the transition. + + + + + A Dependency property as the backing store for Progress. + Also used to represent the state of a transition from start to finish (range between 0 and 1). + + + + + Creates a modifiable clone (deep copy) of the using its current values. + + + + + Makes a deep copy of the transition effect. Implements CloneCurrentValue in Silverlight. + + A clone of current instance of transition effect. + + + + Updates the shader's variables to the default values. + + + + + Gets or sets the Input variable within the shader. + + + + + Gets or sets the OldImage variable within the shader. + + + + + Gets or sets the Progress variable within the shader. + + + + + Allows the user to use common touch gestures to translate, zoom, and rotate the attached object. + + + + + Called after the behavior is attached to an AssociatedObject. + + Override this to hook up functionality to the AssociatedObject. + + + + Called when the behavior is getting detached from its AssociatedObject, but before it has actually occurred. + + Override this to unhook functionality from the AssociatedObject. + + + + Gets or sets a value specifying which zooming and translation variants to support. + + + + + Gets or sets a number describing the rate at which the translation will decrease. + + + + + Gets or sets a number describing the rate at which the rotation will decrease. + + + + + Gets or sets the value indicating whether the zoom and translate position of the attached object is limited by the bounds of the parent object. + + + + + Gets or sets a number indicating the minimum zoom value allowed. + + + + + Gets or sets a number indicating the maximum zoom value allowed. + + + + + This class provides various platform agnostic standard operations for working with VisualStateManager. + + + + + Transitions the control between two states. + + The element to transition between states. + The state to transition to. + True to use a System.Windows.VisualTransition to transition between states; otherwise, false. + True if the control successfully transitioned to the new state; otherwise, false. + Control is null. + StateName is null. + + + + Gets the value of the VisualStateManager.VisualStateGroups attached property. + + The element from which to get the VisualStateManager.VisualStateGroups. + + + + + Find the nearest parent which contains visual states. + + The element from which to find the nearest stateful control. + The nearest stateful control if True; else null. + True if a parent contains visual states; else False. + + + + 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 Could not find method named '{0}' on object of type '{1}' that matches the expected signature.. + + + + + Looks up a localized string similar to More than one potential addition operator was found on type '{0}'.. + + + + + Looks up a localized string similar to Cannot animate a property change on a type '{0}' Target. Property changes can only be animated on types derived from DependencyObject.. + + + + + Looks up a localized string similar to Cannot find a property named "{0}" on type "{1}".. + + + + + Looks up a localized string similar to The Increment property cannot be set to True if the Duration property is set.. + + + + + Looks up a localized string similar to The '{0}' property cannot be incremented because its value cannot be read.. + + + + + Looks up a localized string similar to Cannot assign value of type "{0}" to property "{1}" of type "{2}". The "{1}" property can be assigned only values of type "{2}".. + + + + + Looks up a localized string similar to Property "{0}" defined by type "{1}" does not expose a set method and therefore cannot be modified.. + + + + + Looks up a localized string similar to Cannot find state named '{0}' on type '{1}'. Ensure that the state exists and that it can be accessed from this context.. + + + + + Looks up a localized string similar to Target {0} does not define any VisualStateGroups. . + + + + + Looks up a localized string similar to LeftOperand of type "{0}" cannot be used with operator "{1}".. + + + + + Looks up a localized string similar to LeftOperand of type "{1}" and RightOperand of type "{0}" cannot be used with operator "{2}".. + + + + + Looks up a localized string similar to RightOperand of type "{0}" cannot be used with operator "{1}".. + + + + + Looks up a localized string similar to The target of the RemoveElementAction is not supported.. + + + + diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Microsoft.Expression.Prototyping.Interactivity.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Microsoft.Expression.Prototyping.Interactivity.dll new file mode 100644 index 0000000..380b654 Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Microsoft.Expression.Prototyping.Interactivity.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Microsoft.Expression.Prototyping.SketchControls.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Microsoft.Expression.Prototyping.SketchControls.dll new file mode 100644 index 0000000..ee00f9b Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/Microsoft.Expression.Prototyping.SketchControls.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/System.Windows.Interactivity.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/System.Windows.Interactivity.dll new file mode 100644 index 0000000..0419e95 Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/System.Windows.Interactivity.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/System.Windows.Interactivity.xml b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/System.Windows.Interactivity.xml new file mode 100644 index 0000000..10cdad6 --- /dev/null +++ b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/System.Windows.Interactivity.xml @@ -0,0 +1,1072 @@ + + + + System.Windows.Interactivity + + + + + Represents a collection of IAttachedObject with a shared AssociatedObject and provides change notifications to its contents when that AssociatedObject changes. + + + + + An interface for an object that can be attached to another object. + + + + + Attaches to the specified object. + + The object to attach to. + + + + Detaches this instance from its associated object. + + + + + Gets the associated object. + + The associated object. + Represents the object the instance is attached to. + + + + Initializes a new instance of the class. + + Internal, because this should not be inherited outside this assembly. + + + + Called immediately after the collection is attached to an AssociatedObject. + + + + + Called when the collection is being detached from its AssociatedObject, but before it has actually occurred. + + + + + Called when a new item is added to the collection. + + The new item. + + + + Called when an item is removed from the collection. + + The removed item. + + + Cannot add the instance to a collection more than once. + + + + Attaches to the specified object. + + The object to attach to. + The IAttachedObject is already attached to a different object. + + + + Detaches this instance from its associated object. + + + + + The object on which the collection is hosted. + + + + + Gets the associated object. + + The associated object. + + + + Encapsulates state information and zero or more ICommands into an attachable object. + + The type the can be attached to. + + Behavior is the base class for providing attachable state and commands to an object. + The types the Behavior can be attached to can be controlled by the generic parameter. + Override OnAttached() and OnDetaching() methods to hook and unhook any necessary handlers + from the AssociatedObject. + + + + + Encapsulates state information and zero or more ICommands into an attachable object. + + This is an infrastructure class. Behavior authors should derive from Behavior<T> instead of from this class. + + + + Called after the behavior is attached to an AssociatedObject. + + Override this to hook up functionality to the AssociatedObject. + + + + Called when the behavior is being detached from its AssociatedObject, but before it has actually occurred. + + Override this to unhook functionality from the AssociatedObject. + + + + Attaches to the specified object. + + The object to attach to. + The Behavior is already hosted on a different element. + dependencyObject does not satisfy the Behavior type constraint. + + + + Detaches this instance from its associated object. + + + + + The type to which this behavior can be attached. + + + + + Gets the object to which this behavior is attached. + + + + + Gets the associated object. + + The associated object. + + + + Initializes a new instance of the class. + + + + + Gets the object to which this is attached. + + + + + Represents a collection of behaviors with a shared AssociatedObject and provides change notifications to its contents when that AssociatedObject changes. + + + + + Initializes a new instance of the class. + + Internal, because this should not be inherited outside this assembly. + + + + Called immediately after the collection is attached to an AssociatedObject. + + + + + Called when the collection is being detached from its AssociatedObject, but before it has actually occurred. + + + + + Called when a new item is added to the collection. + + The new item. + + + + Called when an item is removed from the collection. + + The removed item. + + + + Creates a new instance of the BehaviorCollection. + + The new instance. + + + + Enumerates possible values for reusable property value editors. + + + + + Uses the element picker, if supported, to edit this property at design time. + + + + + Uses the storyboard picker, if supported, to edit this property at design time. + + + + + Uses the state picker, if supported, to edit this property at design time. + + + + + Uses the element-binding picker, if supported, to edit this property at design time. + + + + + Uses the property-binding picker, if supported, to edit this property at design time. + + + + + Associates the given editor type with the property on which the CustomPropertyValueEditor is applied. + + Use this attribute to get improved design-time editing for properties that denote element (by name), storyboards, or states (by name). + + + + Initializes a new instance of the class. + + The custom property value editor. + + + + Gets or sets the custom property value editor. + + The custom property value editor. + + + + Provides design tools information about what to instantiate for a given action or command. + + + + + Initializes a new instance of the class. + + The type this attribute applies to. + The type of to instantiate. + A single argument for the specified . + is not derived from TriggerBase. + This constructor is useful if the specifed has a single argument. The + resulting code will be CLS compliant. + + + + Initializes a new instance of the class. + + The type this attribute applies to. + The type of to instantiate. + The constructor arguments for the specified . + is not derived from TriggerBase. + + + + Instantiates this instance. + + The specified by the DefaultTriggerAttribute. + + + + Gets the type that this DefaultTriggerAttribute applies to. + + The type this DefaultTriggerAttribute applies to. + + + + Gets the type of the to instantiate. + + The type of the to instantiate. + + + + Gets the parameters to pass to the constructor. + + The parameters to pass to the constructor. + + + + This method will use the VisualTreeHelper.GetParent method to do a depth first walk up + the visual tree and return all ancestors of the specified object, including the object itself. + + The object in the visual tree to find ancestors of. + Returns itself an all ancestors in the visual tree. + + + + EventObserver is designed to help manage event handlers by detatching when disposed. Creating this object will also attach in the constructor. + + + + + Creates an instance of EventObserver and attaches to the supplied event on the supplied target. Call dispose to detach. + + The event to attach and detach from. + The target object the event is defined on. Null if the method is static. + The delegate to attach to the event. + + + + Detaches the handler from the event. + + + + + A trigger that listens for a specified event on its source and fires when that event is fired. + + + + + Represents a trigger that can listen to an element other than its AssociatedObject. + + The type that this trigger can be associated with. + + EventTriggerBase extends TriggerBase to add knowledge of another object than the one it is attached to. + This allows a user to attach a Trigger/Action pair to one element and invoke the Action in response to a + change in another object somewhere else. Override OnSourceChanged to hook or unhook handlers on the source + element, and OnAttached/OnDetaching for the associated element. The type of the Source element can be + constrained by the generic type parameter. If you need control over the type of the + AssociatedObject, set a TypeConstraintAttribute on your derived type. + + + + + Represents a trigger that can listen to an object other than its AssociatedObject. + + This is an infrastructure class. Trigger authors should derive from EventTriggerBase<T> instead of this class. + + + + Represents an object that can invoke Actions conditionally. + + This is an infrastructure class. Trigger authors should derive from Trigger<T> instead of this class. + + + + Invoke all actions associated with this trigger. + + Derived classes should call this to fire the trigger. + + + + Called after the trigger is attached to an AssociatedObject. + + + + + Called when the trigger is being detached from its AssociatedObject, but before it has actually occurred. + + + + + Creates a new instance of the TriggerBase derived class. + + The new instance. + + + + Attaches to the specified object. + + The object to attach to. + Cannot host the same trigger on more than one object at a time. + dependencyObject does not satisfy the trigger type constraint. + + + + Detaches this instance from its associated object. + + + + + Gets the object to which the trigger is attached. + + The associated object. + + + + Gets the type constraint of the associated object. + + The associated object type constraint. + + + + Gets the actions associated with this trigger. + + The actions associated with this trigger. + + + + Event handler for registering to PreviewInvoke. + + + + + Gets the associated object. + + The associated object. + + + + Specifies the name of the Event this EventTriggerBase is listening for. + + + + + + Called when the event associated with this EventTriggerBase is fired. By default, this will invoke all actions on the trigger. + + The instance containing the event data. + Override this to provide more granular control over when actions associated with this trigger will be invoked. + + + + Called when the source changes. + + The old source. + The new source. + This function should be overridden in derived classes to hook functionality to and unhook functionality from the changing source objects. + + + + Called after the trigger is attached to an AssociatedObject. + + + + + Called when the trigger is being detached from its AssociatedObject, but before it has actually occurred. + + + + Could not find eventName on the Target. + + + + Gets the type constraint of the associated object. + + The associated object type constraint. + Define a TypeConstraintAttribute on a derived type to constrain the types it may be attached to. + + + + Gets the source type constraint. + + The source type constraint. + + + + Gets or sets the target object. If TargetObject is not set, the target will look for the object specified by TargetName. If an element referred to by TargetName cannot be found, the target will default to the AssociatedObject. This is a dependency property. + + The target object. + + + + Gets or sets the name of the element this EventTriggerBase listens for as a source. If the name is not set or cannot be resolved, the AssociatedObject will be used. This is a dependency property. + + The name of the source element. + + + + Gets the resolved source. If is not set or cannot be resolved, defaults to AssociatedObject. + + The resolved source object. + In general, this property should be used in place of AssociatedObject in derived classes. + The element pointed to by does not satisify the type constraint. + + + + Initializes a new instance of the class. + + + + + Called when the source property changes. + + Override this to hook functionality to and unhook functionality from the specified source, rather than the AssociatedObject. + The old source. + The new source. + + + + Gets the resolved source. If is not set or cannot be resolved, defaults to AssociatedObject. + + The resolved source object. + In general, this property should be used in place of AssociatedObject in derived classes. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the event. + + + + Gets or sets the name of the event to listen for. This is a dependency property. + + The name of the event. + + + + Static class that owns the Triggers and Behaviors attached properties. Handles propagation of AssociatedObject change notifications. + + + + + This property is used as the internal backing store for the public Triggers attached property. + + + This property is not exposed publicly. This forces clients to use the GetTriggers and SetTriggers methods to access the + collection, ensuring the collection exists and is set before it is used. + + + + + This property is used as the internal backing store for the public Behaviors attached property. + + + This property is not exposed publicly. This forces clients to use the GetBehaviors and SetBehaviors methods to access the + collection, ensuring the collection exists and is set before it is used. + + + + + Gets the TriggerCollection containing the triggers associated with the specified object. + + The object from which to retrieve the triggers. + A TriggerCollection containing the triggers associated with the specified object. + + + + Gets the associated with a specified object. + + The object from which to retrieve the . + A containing the behaviors associated with the specified object. + + + Cannot host the same BehaviorCollection on more than one object at a time. + + + Cannot host the same TriggerCollection on more than one object at a time. + + + + A helper function to take the place of FrameworkElement.IsLoaded, as this property is not available in Silverlight. + + The element of interest. + True if the element has been loaded; otherwise, False. + + + + Gets or sets a value indicating whether to run as if in design mode. + + + True if [should run in design mode]; otherwise, False. + + Not to be used outside unit tests. + + + + Executes a specified ICommand when invoked. + + + + + Represents an attachable object that encapsulates a unit of functionality. + + The type to which this action can be attached. + + + + Represents an attachable object that encapsulates a unit of functionality. + + This is an infrastructure class. Action authors should derive from TriggerAction<T> instead of this class. + + + + Attempts to invoke the action. + + The parameter to the action. If the action does not require a parameter, the parameter may be set to a null reference. + + + + Invokes the action. + + The parameter to the action. If the action does not require a parameter, the parameter may be set to a null reference. + + + + Called after the action is attached to an AssociatedObject. + + + + + Called when the action is being detached from its AssociatedObject, but before it has actually occurred. + + + + + When implemented in a derived class, creates a new instance of the derived class. + + The new instance. + + + + Attaches to the specified object. + + The object to attach to. + Cannot host the same TriggerAction on more than one object at a time. + dependencyObject does not satisfy the TriggerAction type constraint. + + + + Detaches this instance from its associated object. + + + + + Gets or sets a value indicating whether this action will run when invoked. This is a dependency property. + + + True if this action will be run when invoked; otherwise, False. + + + + + Gets the object to which this action is attached. + + The associated object. + + + + Gets the associated object type constraint. + + The associated object type constraint. + + + + Gets or sets a value indicating whether this instance is attached. + + True if this instance is attached; otherwise, False. + + + + Gets the associated object. + + The associated object. + + + + Initializes a new instance of the class. + + + + + Gets the object to which this is attached. + + The associated object. + + + + Gets the associated object type constraint. + + The associated object type constraint. + + + + Invokes the action. + + The parameter to the action. If the action does not require a parameter, the parameter may be set to a null reference. + + + + Gets or sets the name of the command this action should invoke. + + The name of the command this action should invoke. + This property will be superseded by the Command property if both are set. + + + + Gets or sets the command this action should invoke. This is a dependency property. + + The command to execute. + This property will take precedence over the CommandName property if both are set. + + + + Gets or sets the command parameter. This is a dependency property. + + The command parameter. + This is the value passed to ICommand.CanExecute and ICommand.Execute. + + + + Provides data about which objects were affected when resolving a name change. + + + + + Helper class to handle the logic of resolving a TargetName into a Target element + based on the context provided by a host element. + + + + + Attempts to update the resolved object from the name within the context of the namescope reference element. + + The old resolved object. + + Resets the existing target and attempts to resolve the current TargetName from the + context of the current Host. If it cannot resolve from the context of the Host, it will + continue up the visual tree until it resolves. If it has not resolved it when it reaches + the root, it will set the Target to null and write a warning message to Debug output. + + + + + Occurs when the resolved element has changed. + + + + + Gets or sets the name of the element to attempt to resolve. + + The name to attempt to resolve. + + + + The resolved object. Will return the reference element if TargetName is null or empty, or if a resolve has not been attempted. + + + + + Gets or sets the reference element from which to perform the name resolution. + + The reference element. + + + + Gets or sets a value indicating whether the reference element load is pending. + + + True if [pending reference element load]; otherwise, False. + + + If the Host has not been loaded, the name will not be resolved. + In that case, delay the resolution and track that fact with this property. + + + + + Represents an action that can be targeted to affect an object other than its AssociatedObject. + + The type constraint on the target. + + TargetedTriggerAction extends TriggerAction to add knowledge of another element than the one it is attached to. + This allows a user to invoke the action on an element other than the one it is attached to in response to a + trigger firing. Override OnTargetChanged to hook or unhook handlers on the target element, and OnAttached/OnDetaching + for the associated element. The type of the Target element can be constrained by the generic type parameter. If + you need control over the type of the AssociatedObject, set a TypeConstraintAttribute on your derived type. + + + + + Represents an action that can be targeted to affect an object other than its AssociatedObject. + + This is an infrastructure class. Action authors should derive from TargetedTriggerAction<T> instead of this class. + + + + Called when the target changes. + + The old target. + The new target. + This function should be overriden in derived classes to hook and unhook functionality from the changing source objects. + + + + Called after the action is attached to an AssociatedObject. + + + + + Called when the action is being detached from its AssociatedObject, but before it has actually occurred. + + + + + Gets or sets the target object. If TargetObject is not set, the target will look for the object specified by TargetName. If an element referred to by TargetName cannot be found, the target will default to the AssociatedObject. This is a dependency property. + + The target object. + + + + Gets or sets the name of the object this action targets. If Target is set, this property is ignored. If Target is not set and TargetName is not set or cannot be resolved, the target will default to the AssociatedObject. This is a dependency property. + + The name of the target object. + + + + Gets the target object. If TargetObject is set, returns TargetObject. Else, if TargetName is not set or cannot be resolved, defaults to the AssociatedObject. + + The target object. + In general, this property should be used in place of AssociatedObject in derived classes. + The Target element does not satisfy the type constraint. + + + + Gets the associated object type constraint. + + The associated object type constraint. + Define a TypeConstraintAttribute on a derived type to constrain the types it may be attached to. + + + + Gets the target type constraint. + + The target type constraint. + + + + Initializes a new instance of the class. + + + + + Called when the target property changes. + + Override this to hook and unhook functionality on the specified Target, rather than the AssociatedObject. + The old target. + The new target. + + + + Gets the target object. If TargetName is not set or cannot be resolved, defaults to the AssociatedObject. + + The target. + In general, this property should be used in place of AssociatedObject in derived classes. + + + + Represents a collection of actions with a shared AssociatedObject and provides change notifications to its contents when that AssociatedObject changes. + + + + + Initializes a new instance of the class. + + Internal, because this should not be inherited outside this assembly. + + + + Called immediately after the collection is attached to an AssociatedObject. + + + + + Called when the collection is being detached from its AssociatedObject, but before it has actually occurred. + + + + + Called when a new item is added to the collection. + + The new item. + + + + Called when an item is removed from the collection. + + The removed item. + + + + Creates a new instance of the TriggerActionCollection. + + The new instance. + + + + Represents an object that can invoke actions conditionally. + + The type to which this trigger can be attached. + + TriggerBase is the base class for controlling actions. Override OnAttached() and + OnDetaching() to hook and unhook handlers on the AssociatedObject. You may + constrain the types that a derived TriggerBase may be attached to by specifying + the generic parameter. Call InvokeActions() to fire all Actions associated with + this TriggerBase. + + + + + Initializes a new instance of the class. + + + + + Gets the object to which the trigger is attached. + + The associated object. + + + + Gets the type constraint of the associated object. + + The associated object type constraint. + + + + Argument passed to PreviewInvoke event. Assigning Cancelling to True will cancel the invoking of the trigger. + + This is an infrastructure class. Behavior attached to a trigger base object can add its behavior as a listener to TriggerBase.PreviewInvoke. + + + + Represents a collection of triggers with a shared AssociatedObject and provides change notifications to its contents when that AssociatedObject changes. + + + + + Initializes a new instance of the class. + + Internal, because this should not be inherited outside this assembly. + + + + Called immediately after the collection is attached to an AssociatedObject. + + + + + Called when the collection is being detached from its AssociatedObject, but before it has actually occurred. + + + + + Called when a new item is added to the collection. + + The new item. + + + + Called when an item is removed from the collection. + + The removed item. + + + + Creates a new instance of the . + + The new instance. + + + + Specifies type constraints on the AssociatedObject of TargetedTriggerAction and EventTriggerBase. + + + + + Initializes a new instance of the class. + + The constraint type. + + + + Gets the constraint type. + + The constraint type. + + + + 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 Cannot set the same BehaviorCollection on multiple objects.. + + + + + Looks up a localized string similar to An instance of a Behavior cannot be attached to more than one object at a time.. + + + + + Looks up a localized string similar to Cannot host an instance of a TriggerAction in multiple TriggerCollections simultaneously. Remove it from one TriggerCollection before adding it to another.. + + + + + Looks up a localized string similar to Cannot set the same TriggerCollection on multiple objects.. + + + + + Looks up a localized string similar to An instance of a trigger cannot be attached to more than one object at a time.. + + + + + Looks up a localized string similar to The command "{0}" does not exist or is not publicly exposed on {1}.. + + + + + Looks up a localized string similar to "{0}" is not a valid type for the TriggerType parameter. Make sure "{0}" derives from TriggerBase.. + + + + + Looks up a localized string similar to Cannot add the same instance of "{0}" to a "{1}" more than once.. + + + + + Looks up a localized string similar to The event "{0}" on type "{1}" has an incompatible signature. Make sure the event is public and satisfies the EventHandler delegate.. + + + + + Looks up a localized string similar to Cannot find an event named "{0}" on type "{1}".. + + + + + Looks up a localized string similar to An object of type "{0}" cannot have a {3} property of type "{1}". Instances of type "{0}" can have only a {3} property of type "{2}".. + + + + + Looks up a localized string similar to Cannot attach type "{0}" to type "{1}". Instances of type "{0}" can only be attached to objects of type "{2}".. + + + + + Looks up a localized string similar to Unable to resolve TargetName "{0}".. + + + + diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/de/Microsoft.Expression.Controls.xml b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/de/Microsoft.Expression.Controls.xml new file mode 100644 index 0000000..9592080 --- /dev/null +++ b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/de/Microsoft.Expression.Controls.xml @@ -0,0 +1,538 @@ + + + + Microsoft.Expression.Controls + + + + + Wird vor dem Ausführen der Polylinien in einer Schleife aufgerufen. + + + + + Berechnet den Wert, der verwendet wird, wenn "LayoutPath.Capacity" auf "Auto" festgelegt ist. + + + + + Überprüft, ob die Polylinien weiter in einer Schleife ausgeführt werden sollen. + + + + + Wird vor dem Zeichnen einer neuen Polylinie aufgerufen. + + + + + Wird aufgerufen, wenn eine Polylinie erstellt wurde. + + Die verbleibende Bogenlänge in der Polylinie. + + + + Wird nach Abschluss eines Schritts aufgerufen. + + Der eigentliche Schrittabstand. Kann sich von "Step" unterscheiden, wenn auf eine andere Polylinie umgebrochen wurde. + + + + Verteilt die untergeordneten Elemente eines Pfadpanels entlang eines angegebenen Layoutpfads. + + Das Pfadpanel. + Der Index des Pfads in "pathPanel.LayoutPaths". + Der Index des ersten untergeordneten Elements, das auf diesem Pfad angeordnet werden soll. + Der Index des nächsten untergeordneten Elements, das verteilt werden soll. Wenn "childIndex" zurückgegeben wird, hat diese Funktion keine Auswirkung. + + + + Der Index des nächsten untergeordneten Elements, das angeordnet werden soll. + + + + + Der Abstand in "arclength", der für das Layout verwendet werden soll. + + + + + Der Abstand in "arclength" zum Zeichnen der aktuellen Polylinie. + + + + + Die Gesamtanzahl der Elemente, die auf dem "LayoutPath" angeordnet werden. + + + + + Verteilt die untergeordneten Elemente eines Pfadpanels entlang eines Layoutpfads. Gleichmäßige Verteilung bedeutet, dass die Bogenlänge zwischen den Mittelpunkten aller Elemente auf dem Pfad gleich ist. + + + + + Gibt an, welche Pfadlayouteigenschaften geändert wurden. + + + + + Stellt Daten für das -Ereignis bereit. + + + + + Initialisiert eine neue Instanz der -Klasse. + + Die Daten für das Ereignis. + + + + Ruft die Eigenschaften ab, die in einem -Ereignis geändert wurden. + + + + + Kapselt die Daten, die zum Aktualisieren eines benötigt werden. + + + + + Ruft den Index des Pfads ab, auf dem ein Element angeordnet wird, oder legt ihn fest. + + + + + Ruft den Index eines Elements in einer Auflistung von Elementen ab oder legt ihn fest. + + + + + Ruft den Index eines Elements auf einem Pfad ab oder legt ihn fest. + + + + + Ruft den Versatz eines Elements proportional zur Gesamtlänge einer Auflistung von Pfaden ab oder legt ihn fest. + + + + + Ruft den Versatz eines Elements proportional zur Pfadlänge ab oder legt ihn fest. + + + + + Ruft den Winkel senkrecht zum Pfad an der Position eines Elements ab oder legt ihn fest. + + + + + Ruft den Winkel senkrecht zum Pfad an der Position eines Elements ab oder legt ihn fest, sofern das Element am Pfad ausgerichtet ist. + + + + + Gibt an oder legt fest, ob ein Element auf einem Pfad angeordnet wird. + + + + + Stellt ein Element dar, das durch ein angeordnet wird. + + + Wenn diese Schnittstelle implementiert wird, können diese Eigenschaften beim Anordnen des Elements von festgelegt werden. Diese Schnittstelle ist nicht für die allgemeine Implementierung vorgesehen. + + + + + Aktualisiert die -Eigenschaften basierend auf den angegebenen und löst das -Ereignis aus. + + Die Daten, die zum Aktualisieren des s benötigt werden. + + + + Tritt auf, wenn eine oder mehrere -Eigenschaften geändert werden. + + + Dieses Ereignis wird ausgelöst, wenn die Position des Elements entlang des Pfads aktualisiert wird. Dies kann aufgrund von Änderungen an den Eigenschaften auf dem oder aufgrund von Änderungen am auftreten. + + + + + Ruft den Index des Pfads ab, auf dem das Element angeordnet ist. + + + + + Ruft den Index des Elements in einer Auflistung von Elementen ab. + + + + + Ruft den Index des Elements auf dem Pfad ab, auf dem das Element angeordnet ist. + + + + + Ruft den Versatz des Elements proportional zur Gesamtlänge einer Auflistung von Pfaden ab. + + + + + Ruft den Versatz des Elements proportional zur Länge des Pfads ab, auf dem das Element angeordnet ist. + + + + + Ruft den Winkel senkrecht zum Pfad an der Position des Elements ab. + + + + + Ruft den Winkel senkrecht zum Pfad an der Position des Elements ab, sofern das Element am Pfad ausgerichtet ist. + + + + + Gibt an oder legt fest, ob das Element auf dem Pfad angeordnet wird. + + + + + Wandelt einen Wert um, der angibt, ob ein Element auf einem zum Skalieren des Elements verwendeten -Wert angeordnet wird. + + + + + Löst in allen Fällen eine -Ausnahme aus. + + Die an die Quelle übergebenen Zieldaten. + Der vom Quellobjekt erwartete der Daten. + Ein optionaler, in der Konverterlogik zu verwendender Parameter. + Die Kultur der Konvertierung. + Der an das Quellobjekt zu übergebene Wert. + + + + Wandelt den angegebenen Wert in einen -Wert um. + + Die an das Ziel übergebenen Quelldaten. + Der von der "dependency"-Eigenschaft des Ziels erwartete der Daten. + Ein optionaler, in der Konverterlogik zu verwendender Parameter. + Die Kultur der Konvertierung. + Wenn der Wert "true" ist, wird 1 zurückgegeben. Andernfalls wird 0 zurückgegeben. + + + + Gibt die Verteilung eines s an. + + + + + Gibt die Ausrichtung der Elemente auf einem an. + + + + + Gibt die Methode zum Ändern des s auf einem offenen Pfad an. + + + + + Beschreibt einen Pfad, auf dem Elemente angeordnet sind. + + + + + Im Idealfall sollen die Bézierkurven vor dem Reduzieren zwischengespeichert werden, da sich die Transformation auf die Reduzierung auswirkt. Dazu müssen Kurven zwischengespeichert werden, die derzeit noch nicht optimal unterstützt werden. Stattdessen werden die reduzierten Punkte in der Verteilungsstrategie zwischengespeichert und bei Bedarf transformiert. + + + + + Ruft das Element ab, das den Pfad definiert, oder legt es fest. + + + + + Ruft ab oder legt fest, ob Elemente gleichmäßig oder mit einem festen Innenabstand ausgerichtet werden. + + + + + Ruft die Höchstanzahl der im angezeigten Elemente ab oder legt sie fest. + + + + + Ruft den Abstand in Pixel entlang der Bogenlänge des zwischen zwei Elementen ab oder legt ihn fest. + + + + + Ruft die Ausrichtung der Elemente ab oder legt sie fest. + + + Diese Eigenschaft wird für , jedoch nicht für unterstützt. + + + + + Ruft den Abstand vom Start des zum ersten Element ab oder legt ihn fest. + + + + + Ruft den Prozentsatz des ab, der am Layout beteiligt ist, oder legt ihn fest. + + + + + Ruft die Methode zum Ändern des auf einem offenen Pfad ab oder legt sie fest. + + + + + Ruft die berechnete Kapazität ab. + + + + + Ruft ab, ob das im Kontext gültig ist. Ein ist ungültig, wenn es ein Nachfolger des s ist, in dem es verwendet wird. + + + + + Verteilt das untergeordnete Element eines Layoutpfads basierend auf der Größe des untergeordneten Elements und eines angegebenen Innenabstands zwischen den untergeordneten Elementen. Der Abstand der Bogenlänge zwischen untergeordneten Elementen wird durch den Innenabstand und die Summe aus den Radien der "BoundingBox"-Elemente der untergeordneten Elemente bestimmt. + + + + + Enthält eine Liste mit Elementen, die auf einem oder mehreren Pfaden angeordnet sind. + + + + + Initialisiert eine neue Instanz der -Klasse. + + + + + Erstellt das Element, das verwendet wird, um ein angegebenes Element anzuzeigen. + + Ein , das einem angegebenen Element entspricht. + + + + Bestimmt, ob das angegebene Element der eigene Elementcontainer ist (oder als solcher geeignet ist). + + "true", wenn das Element der eigene Elementcontainer ist; andernfalls "false". + Das angegebene Element. + + + + Positioniert die untergeordneten Elemente. + + Die Größe, die von diesem Objekt zum Anordnen der untergeordneten Elemente verwendet wird. + Die tatsächlich verwendete Größe. + + + + Ruft eine Auflistung von Objekten ab, mit denen die für das Layout verwendeten Pfade definiert werden, oder legt diese fest. + + + + + Ruft den in der Liste von Elementen zu verwendenden Index ab oder legt ihn fest. + + + + + Ruft ab oder legt fest, ob der Elementindex am Beginn der Auflistung umgebrochen wird, wenn "StartItemIndex" größer als 0 ist. + + + + + Stellt ein Element in einer dar. + + + + + Initialisiert eine neue Instanz der -Klasse. + + + + + Eine Beschreibung dieses Members finden Sie unter . + + + + + Eine Beschreibung dieses Members finden Sie unter . + + + + + Eine Beschreibung dieses Members finden Sie unter . + + + + + Eine Beschreibung dieses Members finden Sie unter . + + + + + Eine Beschreibung dieses Members finden Sie unter . + + + + + Eine Beschreibung dieses Members finden Sie unter . + + + + + Eine Beschreibung dieses Members finden Sie unter . + + + + + Eine Beschreibung dieses Members finden Sie unter . + + + + + Eine Beschreibung dieses Members finden Sie unter . + + + + + Eine Beschreibung dieses Members finden Sie unter . + + + + + Ordnet untergeordnete Elemente auf einem oder mehreren Pfaden an. + + + kann als Alternative zu verwendet werden, wenn keine Auswahl erforderlich ist. Die -Eigenschaft wird im nicht unterstützt. + + + + + Initialisiert eine neue Instanz der -Klasse. + + + + + Misst die für untergeordnete Elemente erforderliche Größe. + + Die verfügbare Größe, die dieses Element untergeordneten Elementen bereitstellen kann. + Die Größe, die von diesem Element basierend auf den Berechnungen der Größe des untergeordneten bestimmt wird, wird für das Layout benötigt. + + + + Positioniert die untergeordneten Elemente. + + Die Größe, die von diesem Objekt zum Anordnen der untergeordneten Elemente verwendet wird. + Die tatsächlich verwendete Größe. + + + + Ordnet das untergeordnete Element am angegebenen Index an einer bestimmten Position auf einem "LayoutPath" an. + + Ein Index aus dem Bereich zwischen 0 und "PathPanel.Count". + Der Index des Layoutpfads, auf dem das untergeordnete Element angeordnet wird. + Die Polylinie auf dem Layoutpfad. + Die Position auf der Polylinie. + Der Index des untergeordneten Elements auf dem "LayoutPath". + + + + Berechnet den Radius des "BoundingCircle"-Elements für das untergeordnete Element eines angegebenen Indexes. + + Ein Index aus dem Bereich zwischen 0 und "PathPanel.Count". + + + + Ruft eine Auflistung von Objekten ab, mit denen die für das Layout verwendeten Pfade definiert werden, oder legt diese fest. + + + + + Ruft den in der Liste von Elementen zu verwendenden Index ab oder legt ihn fest. + + + + + Ruft ab oder legt fest, ob der Elementindex am Beginn der Auflistung umgebrochen wird, wenn größer als 0 ist. + + + + + Die Teilmenge der "LayoutPaths", die angefügt und nicht reduziert werden. + + + + + "Count" ist die Anzahl der untergeordneten Elemente, die vom "PathPanel" angeordnet werden. Wenn "StartItemIndex" > 0 und "WrapItems" = "false", kann diese Zahl kleiner sein als "PathPanel.Children.Count". + + + + + Ruft das "Panel"-Element ab, das die Container eines "ItemsControl"-Elements enthält. + + Das "ItemsControl"-Element. + + Das "Panel"-Element, das die Container eines "ItemsControl"-Elements enthält, oder Null, wenn das "Panel"-Element nicht gefunden wird. + + + ist Null. + + + + + Durchsucht eine Struktur durch Akzeptieren eines Anfangswerts und eine Funktion, von der die untergeordneten Knoten eines Knotens empfangen werden. + + Der Typ des Streams. + Der anfängliche Knoten. + Eine Funktion, mit der die untergeordneten Knoten eines Knotens abgerufen werden. + Ein Prädikat, mit dem ein Knoten ausgewertet wird und von dem ein Wert zurückgegeben wird, der angibt, ob dieser Knoten und die untergeordneten Elemente durchsucht werden sollen. + Ein Stream von Knoten. + + + + Die untergeordneten visuellen Strukturelemente eines Elements werden abgerufen. + + Das Element. + Die untergeordneten visuellen Strukturelemente eines Elements. + + ist Null. + + + + + Die untergeordneten visuellen Strukturelemente eines Elements und das Element selbst werden abgerufen. + + Das Element. + + Die untergeordneten visuellen Strukturelemente eines Elements und das Element selbst. + + + + + Ruft alle untergeordneten logischen Elemente eines Frameworkelements mithilfe einer Breitensuche ab. Aus Gründen der Leistung wird mit dieser Methode der Stapel nicht mittels Rekursion, sondern manuell verwaltet. + + Das übergeordnete Frameworkelement. + Die logischen untergeordneten Elemente des Frameworkelements. + + + + Ruft alle untergeordneten logischen Nachfolger eines Frameworkelements mithilfe einer Breitensuche ab. Aus Gründen der Leistung wird mit dieser Methode der Stapel nicht mittels Rekursion, sondern manuell verwaltet. + + Das übergeordnete Frameworkelement. + Die logischen untergeordneten Elemente des Frameworkelements. + + + diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/de/Microsoft.Expression.Drawing.xml b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/de/Microsoft.Expression.Drawing.xml new file mode 100644 index 0000000..57ff65a --- /dev/null +++ b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/de/Microsoft.Expression.Drawing.xml @@ -0,0 +1,1631 @@ + + + + Microsoft.Expression.Drawing + + + + + Rendert ein Beschriftungsshape zusammen mit einem Beschriftungspfeil, das mehrere Shapes unterstützt. + + + + + Stellt eine Basisklasse eines zusammengesetzten Shapes bereit, das von abgeleitet wird, und implementiert . + + + implementiert die -Schnittstelle und unterstützt das Rendering einer Geometrie ähnlich wie . Die Geometrie kann jedoch außerhalb der Layoutbegrenzung gerendert werden. + + Eine typische Implementierung enthält eine angepasste Standardvorlage in "generic.xaml", womit die meisten Eigenschaften mittels Vorlage an einen gebunden werden. Sie sollte auch die -Eigenschaft erweitern, um die Darstellung des s anzupassen. + + Diese Klasse unterstützt die Anzeige von Inhalt zusammen mit dem Shape. + + + + + Stellt eine Schnittstelle zum Beschreiben der Parameter eines Shapes bereit. + + + Bei dieser Schnittstelle handelt es sich um die Daten für die Kommunikation zwischen "Shape" und "GeometrySource". Bei einer konkreten Implementierung von "IShape" wird diese Schnittstelle in der Regel implementiert und an "GeometrySource.UpdateGeometry()" weitergegeben, wo das Shape als schreibgeschützter Datenanbieter genutzt wird. + + + + + Stellt die zum Definieren eines Shapes erforderliche Schnittstelle bereit. Sowohl einfache als auch zusammengesetzte Shapes müssen mit dieser Schnittstelle übereinstimmen, obwohl sie möglicherweise von einem anderen Typ "FrameworkElement" abgeleitet werden. + + + + + Erklärt die Geometrie für ein für ungültig. Nach der Ungültigkeitserklärung wird die Geometrie von neu berechnet. Dieser Vorgang wird asynchron durchgeführt. + + + + Ruft den ab, der angibt, wie das Innere des Shapes gemalt werden soll, oder legt ihn fest. + Ein , der beschreibt, wie das Innere eines Shapes gemalt werden soll. Der Standardwert ist null. + + + Gibt den an, der angibt, wie die -Kontur gemalt werden soll, oder legt ihn fest. + Ein , der angibt, wie die -Kontur gemalt werden soll. + + + Ruft die Breite der -Strichkontur ab oder legt diese fest. + Die Breite der -Kontur in Pixel. + + + Ruft einen -Enumerationswert ab oder legt diesen fest. Der Wert beschreibt, wie das Shape den zugeordneten Bereich füllt. + Einer der -Enumerationswerte. Der Standardwert zur Laufzeit hängt vom Typ des s ab. + + + + Ruft die vom Renderingmodul dargestellte gerenderte Geometrie ab. + + + + + Ruft den Abstand zwischen logischen und tatsächlichen Geometriegrenzen ab. Dieser kann positiv (wie in ) oder negativ (wie in ) sein. + + + + + Tritt auf, wenn "RenderedGeometry" geändert wird. + + + + + Erweitert die Art und Weise, wie das Shape beim Erstellen der Geometriequelle gezeichnet wird. + + + + + Erklärt die Geometrie für ein für ungültig. Nach der Ungültigkeitserklärung wird die Geometrie von neu berechnet. Dieser Vorgang wird asynchron durchgeführt. + + + + Stellt das Verhalten für den "Anordnen"-Teil eines Silverlight-Layoutdurchgangs bereit. Klassen können diese Methode außer Kraft setzen, um das eigene Verhalten beim "Anordnen"-Durchgang zu definieren. + Die tatsächliche Größe, die nach dem Anordnen des Elements im Layout verwendet wird. + Der endgültige Bereich im übergeordneten Element, der von diesem Objekt verwendet werden soll, um sich selbst und seine untergeordneten Elemente anzuordnen. + berechnet die Geometrie nach der Ungültigkeitserklärung neu und aktualisiert die "RenderedGeometry" und den "GeometryMargin". + + + + Wandelt einen Zeichenfolgeninhalt in einen um, wobei die zentrierte Ausrichtung und mehrere Zeilen unterstützt werden. + + + Verwenden Sie anstelle von die Vorlagenbindung an , um diese Methode zu aktivieren. + + + + + Ruft den ab, der angibt, wie das Innere des Shapes gemalt werden soll, oder legt ihn fest. + + Ein , der beschreibt, wie das Innere eines Shapes gemalt werden soll. + + + Gibt den an, der angibt, wie die -Kontur gemalt werden soll, oder legt ihn fest. + Ein , der angibt, wie die -Kontur gemalt werden soll. + + + Ruft die Breite der -Strichkontur ab oder legt diese fest. + Die Breite der -Kontur in Pixel. + + + Ruft einen -Enumerationswert ab oder legt diesen fest. Der Wert beschreibt, wie das Shape den zugeordneten Bereich füllt. + Einer der -Enumerationswerte. + + + Ruft einen -Enumerationswert ab oder legt diesen fest. Mit diesem Wert wird das am Anfang eines s beschrieben. + Ein Wert der -Enumeration, der das Shape am Anfang eines s definiert. + + + Ruft einen -Enumerationswert ab oder legt diesen fest. Mit diesem Wert wird das am Ende einer Zeile beschrieben. + Einer der Enumerationswerte für . + + + Ruft einen -Enumerationswert ab oder legt diesen fest. Der Wert gibt den Typ der Verknüpfung an, der an den Scheitelpunkten eines s verwendet wird. + Ein Wert der -Enumeration, der die Darstellung der Verknüpfung festlegt. + + + Ruft eine Beschränkung für das Verhältnis der Gehrungslänge auf die Hälfte des -Werts eines -Elements ab oder legt diese fest. + Die Beschränkung für das Verhältnis der Gehrungslänge auf den -Wert eines -Elements. Dieser Wert ist immer eine positive Zahl, die größer als oder gleich 1 ist. + + + Ruft eine Auflistung von -Werten ab oder legt diese fest. Mit dieser Auflistung wird das Muster von Strichen und Lücken angegeben, das zum Gliedern von Shapes verwendet wird. + Eine Auflistung von -Werten, mit der das Muster von Strichen und Lücken angegeben wird. + + + Ruft einen -Enumerationswert ab oder legt diesen fest. Mit diesem Wert wird angegeben, wie die Enden eines Strichs gezeichnet werden. + Einer der Enumerationswerte für . Der Standardwert ist . + + + Ruft einen -Wert ab oder legt diesen fest. Mit diesem Wert wird der Abstand innerhalb des Strichmusters angegeben, an dem ein Strich beginnt. + Ein -Wert, der den Abstand innerhalb des Strichmusters angibt, an dem ein Strich beginnt. Der Standardwert ist 0. + + + + Ruft die vom Renderingmodul dargestellte gerenderte Geometrie ab. + + + + + Ruft den Abstand zwischen den logischen und den tatsächlichen Geometriegrenzen ab. Dieser kann positiv (wie in ) oder negativ (wie in ) sein. + + + + + Ruft den internen Inhalt ab oder legt diesen fest. Dieser Inhalt konvertiert Zeichenfolgen in ein zentriert angeordnetes mehrzeiliges "TextBlock"-Element. + + + + + Tritt auf, wenn "RenderedGeometry" geändert wird. + + + + + Ruft die Position der Beschriftung relativ zur oberen und linken Ecke ab oder legt sie fest. + + + + + Ruft den Beschriftungsstil ab oder legt ihn fest. + + + + + Stellt eine Basisklasse eines zusammengesetzten Shapes bereit, das von abgeleitet wird, und implementiert . + + + implementiert die -Schnittstelle und unterstützt das Rendering einer Geometrie ähnlich wie . Die Geometrie kann jedoch außerhalb der Layoutbegrenzung gerendert werden. + + Eine typische Implementierung enthält eine angepasste Standardvorlage in "generic.xaml", womit die meisten Eigenschaften mittels Vorlage an einen gebunden werden. Sie sollte auch die -Eigenschaft erweitern, um die Darstellung des s anzupassen. + + + + + Erweitert die Art und Weise, wie das Shape beim Erstellen der Geometriequelle gezeichnet wird. + + + + + Erklärt die Geometrie für ein für ungültig. Nach der Ungültigkeitserklärung wird die Geometrie von neu berechnet. Dieser Vorgang wird asynchron durchgeführt. + + + + Stellt das Verhalten für den "Anordnen"-Teil eines Silverlight-Layoutdurchgangs bereit. Klassen können diese Methode außer Kraft setzen, um das eigene Verhalten beim "Anordnen"-Durchgang zu definieren. + Die tatsächliche Größe, die nach dem Anordnen des Elements im Layout verwendet wird. + Der endgültige Bereich im übergeordneten Element, der von diesem Objekt verwendet werden soll, um sich selbst und seine untergeordneten Elemente anzuordnen. + berechnet die Geometrie nach der Ungültigkeitserklärung neu und aktualisiert die "RenderedGeometry" und den "GeometryMargin". + + + + Ruft den ab, der angibt, wie das Innere des Shapes gemalt werden soll, oder legt ihn fest. + + Ein , der beschreibt, wie das Innere eines Shapes gemalt werden soll. + + + Gibt den an, der angibt, wie die -Kontur gemalt werden soll, oder legt ihn fest. + Ein , der angibt, wie die -Kontur gemalt werden soll. + + + Ruft die Breite der -Strichkontur ab oder legt diese fest. + Die Breite der -Kontur in Pixel. + + + Ruft einen -Enumerationswert ab oder legt diesen fest. Der Wert beschreibt, wie das Shape den zugeordneten Bereich füllt. + Einer der -Enumerationswerte. + + + Ruft einen -Enumerationswert ab oder legt diesen fest. Mit diesem Wert wird das am Anfang eines s beschrieben. + Ein Wert der -Enumeration, der das Shape am Anfang eines s definiert. + + + Ruft einen -Enumerationswert ab oder legt diesen fest. Mit diesem Wert wird das am Ende einer Zeile beschrieben. + Einer der Enumerationswerte für . + + + Ruft einen -Enumerationswert ab oder legt diesen fest. Der Wert gibt den Typ der Verknüpfung an, der an den Scheitelpunkten eines s verwendet wird. + Ein Wert der -Enumeration, der die Darstellung der Verknüpfung festlegt. + + + Ruft eine Beschränkung für das Verhältnis der Gehrungslänge auf die Hälfte des -Werts eines -Elements ab oder legt diese fest. + Die Beschränkung für das Verhältnis der Gehrungslänge auf den -Wert eines -Elements. Dieser Wert ist immer eine positive Zahl, die größer als oder gleich 1 ist. + + + Ruft eine Auflistung von -Werten ab oder legt diese fest. Mit dieser Auflistung wird das Muster von Strichen und Lücken angegeben, das zum Gliedern von Shapes verwendet wird. + Eine Auflistung von -Werten, mit der das Muster von Strichen und Lücken angegeben wird. + + + Ruft einen -Enumerationswert ab oder legt diesen fest. Mit diesem Wert wird angegeben, wie die Enden eines Strichs gezeichnet werden. + Einer der Enumerationswerte für . Der Standardwert ist . + + + Ruft einen -Wert ab oder legt diesen fest. Mit diesem Wert wird der Abstand innerhalb des Strichmusters angegeben, an dem ein Strich beginnt. + Ein -Wert, der den Abstand innerhalb des Strichmusters angibt, an dem ein Strich beginnt. Der Standardwert ist 0. + + + + Ruft die vom Renderingmodul dargestellte gerenderte Geometrie ab. + + + + + Ruft den Abstand zwischen den logischen und den tatsächlichen Geometriegrenzen ab. Dieser kann positiv (wie in ) oder negativ (wie in ) sein. + + + + + Tritt auf, wenn "RenderedGeometry" geändert wird. + + + + + Rendert ein gebogenes Liniensegment mit optionaler Pfeilspitze an beiden Enden. + + + + Stellt das Verhalten für den "Measure"-Durchgang des Silverlight-Layouts bereit. Klassen können diese Methode außer Kraft setzen, um das eigene Verhalten beim "Measure"-Durchgang zu definieren. + Die Größe, die dieses Objekt bestimmt und beim Layout benötigt, basiert auf den Berechnungen der für das untergeordnete Objekt vorgesehenen Größen oder möglicherweise auf anderen Aspekten wie einer festen Containergröße. + Die verfügbare Größe, die dieses Objekt untergeordneten Objekten bereitstellen kann. Unendlich () kann als Wert festgelegt werden, der angibt, dass die Größe des Objekts an den verfügbaren Inhalt angepasst wird. + + Ein -Standardwert, der bei jeder Größe rendern kann. Die wird ggf. auf die Layoutbegrenzung gestreckt und bis außerhalb der Begrenzung gerendert. + + + + + Ruft den Krümmungsgrad des Pfeils ab oder legt ihn fest. + + Der Krümmungsgrad liegt zwischen 0 und 1. + + + + Legt fest oder ruft ab, wie die Pfeilspitze am Linienanfang gerendert wird. + + + + + Ruft ab oder legt fest, wie die Pfeilspitze am Linienende gerendert wird. + + + + + Ruft ab oder legt fest, von welcher Ecke aus der Pfeil gezeichnet wird. + + + + + Ruft die Länge des Pfeils in Pixel ab oder legt sie fest. + + + + + Stellt ein "ItemsControl"-Element bereit, das ein ausgewähltes Element anzeigt und Schwenken zwischen Elementen durch Berühren ermöglicht. + + + + + Der Konstruktor für "PanningItems". + + + + + Wird aufgerufen, wenn die "PanningItems"-Vorlage angewendet wird. + + + + + Ruft die Ausrichtung von Elementen im Steuerelement ab oder legt sie fest. + + + + + Ruft die Bewegungstoleranz ab oder legt sie fest. Dieser Wert kann zwischen 0 und 1 liegen. Er gibt den Prozentsatz der Größe der "PanningItems" an, die für die Bewegung erforderlich sind, um eine Elementänderung auszulösen. + + + + + Ruft das Element vor dem ausgewählten Element ab oder legt es fest. + + + + + Ruft das Element nach dem ausgewählten Element ab oder legt es fest. + + + + + Ruft ab oder legt fest, ob der Inhalt des "ItemsControl"-Elements in einer Schleife angezeigt werden soll, sodass dem letzten Element das erste folgt. + + + + + Ruft den Wert des Schiebereglers ab oder legt ihn fest. Mit diesem Wert wird die Schwenkbewegung gesteuert. + + + + + "Helper"-Klasse für die Verwendung mit "PathGeometry". + + + + + Konvertiert eine Zeichenfolge in der Pfad-Minisprache in ein "PathGeometry"-Element. + + Eine Zeichenfolge in der Pfad-Minisprache. + + + + Konvertiert die angegebene Geometrie in ein einzelnes "PathGeometry"-Element. + + + + + Aktualisiert die angegebene Geometrie als "PathGeometry"-Element mit Polylinie, die mit der angegebenen Punktliste übereinstimmt. + + + + + Analysiert die abgekürzte Geometriesyntax. + + + + + "Helper"-Klasse zum Konvertieren von "ArcSegment" in "BezierSegment". + + + "Helper"-Klasse für die Verwendung mit "PathSegment" und allen Variationen. + + + "Strategy"-Klassen für den Umgang mit unterschiedlichen Typen von "PathSegment". + + + + + Konvertiert ein Bogensegment in das Bézierformat. Gibt "BezierSegment", "PolyBezierSegment", "LineSegment" oder Null zurück. Wenn Null zurückgegeben wird, wurde der Bogen auf den Startpunkt zurückgebildet. + + + + + Vermeiden Sie den Aufruf des Konstruktors mit drei Parametern, da dieser immer einen lokalen Wert für "IsStroked" festlegt. + + + + + + + Aktualisiert die "SegmentCollection" mit der angegebenen Polylinie, die mit der angegebenen Punktliste übereinstimmt. Versucht, möglichst wenig Änderungen vorzunehmen. Gibt "false" zurück, wenn nichts geändert wurde. + + + + + Aktualisiert das "collection[index]"-Segment mit einem Bézierpolysegment, das mit einer angegebenen Punktliste übereinstimmt. Die angegebene Punktliste muss für N Béziersegmente 3*N Punkte enthalten. + + + + + Testet, ob das angegebene Pfadsegment leer ist. + + + + + Ruft die Punktzahl im angegebene Pfadsegment ab. + + + + + Ruft den letzten Punkt im angegebenen Pfadsegment ab. + + + + + Ruft den Punkt des angegebenen Indexes im angegebenen Segment ab. Wenn die Eingabe (-1) ist, wird der letzte Punkt zurückgegeben. + + + + + Reduziert ein angegebenes Segment, und fügt der angegebenen Punktliste die resultierenden Punkte hinzu. + + Das zu reduzierende Segment. + Die resultierende Punktliste. + Der Startpunkt des Segments. + Die Fehlertoleranz. Muss positiv sein. Kann Null sein. Fallback auf Standardtoleranz. + + + + "ArcToBezier", berechnet die Bézierannäherung eines Bogens. + + + Mit diesem Hilfsprogramm wird die Bézierannäherung für einen elliptischen Bogen wie in der SVG-Spezifikation für Bogen definiert berechnet. Die Ellipse, von der aus der Bogen gezeichnet wird, ist in den eigenen Koordinaten an der Achse ausgerichtet und durch den x- und y-Radius definiert. Der Drehwinkel bestimmt, wie die Achsen der Ellipse relativ zur x-Achse gedreht werden. Der Start- und der Endpunkt bestimmen einen von 4 möglichen Bogen. Die Kennzeichnungen für Mittelpunktswinkel und großer Bogen bestimmen, welcher dieser Bogen ausgewählt wird. + + Wenn "cPieces = 0" zurückgegeben wird, bedeutet das, dass anstelle eines Bogens eine Linie verwendet wird. Wenn "cPieces = -1" zurückgegeben wird, bedeutet das, dass der Bogen auf einen Punkt zurückgebildet wird + + + + + Ruft die Anzahl der Bézierbogen und den jeweiligen Sinus bzw. Cosinus ab. + + + Hierbei handelt es sich um ein privates von "ArcToBezier" verwendetes Hilfsprogramm. Teilt den Bogen in Teile auf, sodass kein Stück mehr als 90 Grad überspannt. Die Eingabepunkte befinden sich auf dem Einheitskreis. + + + + + "GetBezierDistance" gibt den Abstand als Teil des Radius zurück. + + + Der Abstand zwischen den Endpunkten eines Kreisbogens und den Kontrollpunkten des Bézierbogens, der sich diesem annähert, als Teil des Bogenradius. + + Da das Ergebnis vom Radius des Bogens abhängt, hängt es direkt vom Bogenwinkel ab. Es wird vorausgesetzt, dass der Bogen maximal 90 Grad aufweist. Somit wird der Winkel durch den Cosinus des Winkels bestimmt, der von "rDot", dem Skalarprodukt zweier Radiusvektoren, abgeleitet wird. Wir benötigen eine Bézierkurve, die mit den Punkten und Tangenten des Bogens an den Enden und am Mittelpunkt übereinstimmt. Hier berechnen wir den Abstand zwischen den Endpunkten und den Kontrollpunkten der Kurve. + + Da wir nach dem relativen Abstand suchen, können wir den Einheitskreis verwenden. Platzieren Sie den Mittelpunkt des Kreises am Ursprung, und legen Sie die x-Achse als Halbierende zwischen die 2 Vektoren. "a" sei der Winkel zwischen den Vektoren. Dann betragen die x-Koordinaten des 1. und letzten Punkts cos(a/2). "x" sei die x-Koordinate des 2. und 3. Punkts. Bei t=1/2 haben wir einen Punkt bei (1,0). Die Ausdrücke der Polynome sind hier alle gleich: + + (1-t)^3 = t*(1-t)^2 = t^2*(1-t) = t^3 = 1/8, + + Aus der Bézierformel ergibt sich somit Folgendes: + + 1 = (1/8) * (cos(a/2) + 3x + 3x + cos(a/2)), + + Daraus folgt: + + x = (4 - cos(a/2)) / 3 + + Die x-Differenz zwischen diesem und dem 1. Punkt beträgt: + + DX = x - cos(a/2) = 4(1 - cos(a/2)) / 3. + + Wobei DX = Abstand/sin(a/2), somit beträgt der Abstand + + Abstand = (4/3)*(1 - cos(a/2)) / sin(a/2). + + Anstelle des Winkels a sei rDot = R^2 * cos(a) gegeben, sodass wir Zähler und Nenner mit R multiplizieren: + + Abstand = (4/3)*(R - Rcos(a/2)) / Rsin(a/2) + + und ein wenig Trigonometrie anwenden: ________________ cos(a/2) = \/(1 + cos(a)) / 2 ______________________ R*cos(a/2) = \/(R^2 + R^2 cos(a)) / 2 ________________ = \/(R^2 + rDot) / 2 + + Folgendes sei gegeben A = (R^2 + rDot)/2. ____________________ R*sin(a/2) = \/R^2 - R^2 cos^2(a/2) _______ = \/R^2 - A + + somit ergibt sich: _ 4 R - \/A-Abstand = - * ------------ 3 _______ \/R^2 - A + + Verlauf: 29.5.2001 von MichKa erstellt. + + + + + Gibt "false" zurück, wenn der Radius verglichen mit der Sehnenlänge zu klein ist. (Gibt bei NaNs "true" zurück.) Radius wird an den zulässigen Wert angepasst. + + + + + Eine "utility"-Klasse zum Reduzieren von Bézierkurven. + + + + + Reduziert eine kubische Bézierkurve und fügt die resultierende Polylinie dem dritten Parameter hinzu. + + Die vier Kontrollpunkte der kubischen Bézierkurve. + Der maximale Abstand zwischen zwei entsprechenden Punkten auf der wahren Kurve und auf der reduzierten Polylinie. Muss grundsätzlich positiv sein. + Position, an der die reduzierte Polylinie hinzugefügt wird. + "True", um beim Hinzufügen der reduzierten Polylinie den ersten Kontrollpunkt zu überspringen. + Position, an der der Wert des Bézierkurvenparameters hinzugefügt wird, der mit den einzelnen Scheitelpunkten der Polylinie verknüpft ist. + Wenn leer ist, werden der erste Kontrollpunkt und der zugehörige Parameter immer hinzugefügt. + + + + Reduziert eine quadratische Bézierkurve und fügt die resultierende Polylinie dem dritten Parameter hinzu. Verwendet die Graderhöhung für Bézierkurven, um den Code für den kubischen Fall wiederverwenden zu können. + + Die drei Kontrollpunkte der quadratischen Bézierkurve. + Der maximale Abstand zwischen zwei entsprechenden Punkten auf der wahren Kurve und auf der reduzierten Polylinie. Muss grundsätzlich positiv sein. + Position, an der die reduzierte Polylinie hinzugefügt wird. + Gibt an, ob beim Hinzufügen der reduzierten Polylinie der erste Kontrollpunkt übersprungen werden soll. + Position, an der der Wert des Bézierkurvenparameters hinzugefügt wird, der mit den einzelnen Scheitelpunkten der Polylinie verknüpft ist. + Wenn leer ist, werden der erste Kontrollpunkt und der zugehörige Parameter immer hinzugefügt. + + + + Erweiterungsmethoden, die nicht geometrische Typen unterstützen. + + + + + Lässt die Anwendung eines Aktionsdelegats (häufig ein sehr einfaches Lambda) auf eine ganze Sequenz zu. + + + + + Lässt die Anwendung eines Aktionsdelegats (häufig ein sehr einfaches Lambda) auf eine ganze Sequenz zu. + + + + + Lässt die Anwendung eines Aktionsdelegats (häufig ein sehr einfaches Lambda) auf eine ganze Sequenz mit dem Index der einzelnen Elemente zu. + + + + + Stellt sicher, dass die Anzahl einer Liste einer angegebenen Anzahl entspricht. Erstellt mit einer angegebenen Factory Elemente oder entfernt diese bei Bedarf. Wenn es sich bei "Input IList" um eine Liste handelt, wird "AddRange" oder "RemoveRange" verwendet, sofern keine Factory vorhanden ist. + + + + + Stellt sicher, dass die Anzahl einer Liste mindestens der angegebenen Anzahl entspricht. Erstellt mit einer angegebenen Factory. + + + + + Am Ende einer Auflistung wird ein Elementebereich hinzugefügt. Wenn es sich bei einer Auflistung um eine Liste handelt, wird "List.AddRange" verwendet. + + + + + Ruft das letzte Element der angegebenen Liste ab. + + + + + Entfernt das letzte Element aus der angegebenen Liste. + + + + + Erstellt eine Kopie vom Objekt und allen zugehörigen öffentlichen Eigenschaften, darunter alle Auflistungseigenschaften. + + + + + Legt den Wert fest, wenn er sich unterscheidet. Nach Möglichkeit sollte kein lokaler Wert festgelegt werden. Wenn der Wert geändert wurde, wird "true" zurückgegeben. + + + + + Löscht die Abhängigkeitseigenschaft, wenn der Wert für das angegebene Abhängigkeitsobjekt lokal festgelegt wurde. Gibt "false" zurück, wenn die Abhängigkeitseigenschaft nicht lokal festgelegt wurde. + + + + + Sucht alle visuellen Nachfolger eines angegebenen Typs und einer angegebenen Bedingung mithilfe der Breitensuche. + + + + + Ruft alle visuellen untergeordneten Elemente in "IEnumerable" ab. + + + + + Vereinheitlicht die Oberfläche von "PropertyMetadata" in WPF und Silverlight. Stellt die erforderliche Benachrichtigung zum Rendern, Anordnen und Messen bereit. + + + + + Dieses private "Ctor" darf nur von "AttachCallback" verwendet werden. + + + + + "InternalCallback()" wird verkettet, um die Instanz von "DrawingPropertyMetadata" an Eigenschaftsrückruf anzufügen. In Silverlight werden die Eigenschaftsmetadaten nach dem Festlegen verworfen. Rückruf wird zum Speichern verwendet. + + + + + Vor dem Verketten des ursprünglichen Rückrufs wird "DrawingPropertyChangedEvent" ausgelöst. + + + + + Erweiterungsmethoden für geometriebezogene Datenstrukturen (Punkt/Vektor/Größe/Rechteck). + + + + + Passt die Größe des Rechtecks an die relative Größe an, wobei der Mittelpunkt invariant bleibt. + + + + + Ruft den Differenzvektor zwischen zwei Punkten ab. + + + + + Memberweises Plus für Punkt. + + + + + Memberweises Minus für Punkt. + + + + + Konvertiert eine Zeichenfolge in einer Minisprache in eine . + + Siehe: Pfadmarkupsyntax (http://msdn.microsoft.com/de-de/library/cc189041(VS.95).aspx) + Die Zeichenfolge in einer Pfad-Minisprache zum Beschreiben von geometrischen Pfaden. + Eine , die aus der Pfad-Minisprache konvertiert wurde. + + + + Reduziert eine und fügt resultierende Punkte zu einem angegebenen . + + Die eingegebene . + Die Punktliste, an die resultierende Punkte angefügt werden. + Eine positive Zahl, die die maximale Anzahl an Fehlern aus den resultierenden Punkten in der eingegebenen "PathFigure" angibt. Der Wert Null ermöglicht dem Algorithmus, die Toleranz automatisch auszuwählen. + + + + Ruft den normalisierten Bogen im Feld (0,0)(1,1) ab. Null Grad ist [0.5, 0] (aufwärts) und im Uhrzeigersinn zugeordnet. + + + + + Ruft den absoluten Bogenpunkt in einer angegebenen Grenze mit einem angegebenen relativen Radius ab. + + + + + Ruft den Winkel auf dem Bogen relativ zum Feld (0,0)(1,1) ab. Null Grad ist [0.5, 0] (aufwärts) und im Uhrzeigersinn zugeordnet. + + + + + Ruft den Winkel auf einem Bogen von einem angegebenen Absolutpunkt zu einer Grenze ab. + + + + + Berechnet die Transformation, mit der "Rect from" zu "Rect to" verschoben wird. + + + + + Die Transformation vom Koordinatenbereich eines UIElements in ein anderes wird berechnet. + + Das Quellelement. + Das Zielelement. + Die Transformation von einem UIElement in ein anderes, oder Null, wenn der Wert nicht berechnet werden kann. + + + + Ordnet dem Absolutpunkt einen relativen Punkt mithilfe der Zuordnung aus einer angegebenen Grenze dem Feld (0,0)(1,1) zu. + + + + + Ordnet einem relativen Punkt einen Absolutpunkt mithilfe der Zuordnung aus dem Feld (0,0)(1,1) einer angegebenen Grenze zu. + + + + + Berechnet die Grenze nach dem Strecken innerhalb der angegebenen logischen Grenze. Wenn Strecken einheitlich ist, wird das angegebene "aspectRatio" verwendet. Wenn "aspectRatio" leer ist, entspricht dies "Füllen". Wenn Strecken "Ohne" ist, entspricht dies "Füllen" oder "Einheitlich". + + + + + Gibt den Mittelpunkt von zwei Punkten zurück. + + Der erste Punkt. + Der zweite Punkt. + Der Mittelpunkt zwischen und . + + + + Gibt das Skalarprodukt zweier Vektoren zurück. + + Der erste Vektor. + Der zweite Vektor. + Das Skalarprodukt aus und . + + + + Gibt das Skalarprodukt zweier Punkte zurück. + + + + + Gibt den Abstand zwischen zwei Punkten zurück. + + Der erste Punkt. + Der zweite Punkt. + Der Abstand zwischen und . + + + + Gibt das Quadrat des Abstands zwischen zwei Punkten zurück. + + Der erste Punkt. + Der zweite Punkt. + Das Quadrat des Abstands zwischen und . + + + + Determinante des Kreuzprodukts. Entspricht dem direktionalen Bereich. + + + + + Berechnet den normalen Richtungsvektor der angegebenen Liniensegmente. + + + + + Berechnet den Normalenvektor, 90 Grad gegen den Uhrzeigersinn. Vektor im rechten Winkel nach rechts ergibt einen Vektor nach oben. + + + + + Gibt zurück, ob die beiden Geometrien identisch sind. + + + + + Stellt sicher, dass der Wert eine Instanz des Ergebnistyps (T) ist. Wenn dies nicht der Fall ist, wird "list[index]" durch eine neue Instanz des Typs (T) ersetzt. + + + + + Stellt sicher, dass "list[index]" eine Instanz des Ergebnistyps (T) ist. Wenn dies nicht der Fall ist, wird "list[index]" durch eine neue Instanz des Typs (T) ersetzt. + + + + + "Helper"-Klasse, die statische Eigenschaften und Methoden für die Gleitkommaarithmetik bereitstellt. + + + + + Der Mindestabstand, bei dem zwei Werte als identisch betrachtet werden. Hinweis: Interner Gleitkommawert in MIL/SL ist "float", nicht "double". + + + + + Der Wert des Winkels eines vollständigen Kreises. + + + + + Der innere Radius für eine polygone Pentagrammform mit einer Präzision von drei Stellen in Prozent. (1 - Sin36 * Sin72 / Sin54) / (Cos36) ^ 2, das entspricht 0,47210998990512996761913067272407 + + + + + Bestimmt, ob ein System.Double-Wert klein genug ist, um als Entsprechung von Null betrachtet zu werden. + + + True, wenn der Wert kleiner als DoubleTolerance ist; andernfalls False. + + + + Gibt den Wert zurück, der sich innerhalb des angegebenen Bereichs befindet. Wenn min/max Null ist, gibt es keine Beschränkung. + + + + + Die euklidische Norm des Vektors (x, y) wird berechnet. + + Die erste Komponente. + Die zweite Komponente. + Die euklidische Norm des Vektors (x, y). + + + + Aus der Mantisse und dem Exponent wird eine reelle Zahl berechnet. + + + + Der Wert x * 2^exp ist erfolgreich. + + + + Testet einen "double"-Wert. + + Der zu testende "double"-Wert. + True, wenn x kein NaN und ungleich plus oder minus unendlich; andernfalls False. + + + + "Helper"-Klasse für die Verwendung mit "PathFigure". + + + + + Reduziert die angegebene Abbildung, und fügt der angegebenen Punktliste die resultierenden Punkte hinzu. + + Die Fehlertoleranz. Muss positiv sein. Kann Null sein. Fallback auf Standardtoleranz. + + + + Wiederholt alle Segmente in einer angegebenen Abbildung, und gibt den richtigen Startpunkt für die einzelnen Segmente zurück. + + + + + Synchronisiert die Abbildung als einzelnes Polyliniensegment mit der angegebenen Punktliste. Versucht, möglichst wenig Änderungen vorzunehmen. Gibt "false" zurück, wenn nichts geändert wurde. + + + + + Synchronisiert die angegebene Abbildung, sodass sich eine geschlossene Ellipse mit zwei Bogensegmenten ergibt. + + + + + Eine Tupel-Datenstruktur für "PathSegment" und der entsprechende "StartPoint". + + + + + Stellt eine Polylinie dar, die mit einer Liste von Verbindungspunkten übereinstimmt. Ein geschlossenes Polygon wird durch Wiederholung des ersten Punkts am Ende dargestellt. Die Differenzen, Normalen, Winkel und Längen werden bei Bedarf berechnet. + + + + + Erstellt eine Polylinie mit zwei oder mehr Punkten. + + + + + Der Finite-Differenz-Vektor der Polylinie. Punkte[i] + Differenzen[i] = Punkte[i+1] + + + + Der Normalenvektor einer angegebenen Position wird berechnet (lerp(index, index+1, Bruch). Wenn die Position innerhalb des Bereichs von "cornerRadius" liegt, wird die Normalenrichtung interpoliert. + + Der Bereich einer normalen Glätte. Wenn 0 (null), keine Glätte, und die exakte Normale auf Index wird zurückgegeben. + + + + Die Polylinie wird geschlossen, wenn der erste und der letzte Punkt wiederholt werden. + + + + + Die Anzahl der Punkte in dieser Polylinie. + + + + + Die gesamte Bogenlänge dieser Polylinie. + + + + + Das Punktarray dieser Polylinie. + + + + + Die Länge zwischen den Liniensegmenten, Punkte[i] bis Punkte[i + 1]. + + + + + Die Liste der Normalenvektoren für die einzelnen Segmente. Normale[i] ist die Normale von Segment p[i] bis p[i + 1]. Normale[N-1] == Normale[N-2]. + + + + + Die Liste von Cos(Winkel) zwischen zwei Liniensegmenten auf Punkt p[i]. Hinweis: Der Wert lautet cos(Winkel) = Dot(u, v). Nicht in Grad. + + + + + Die Liste der kumulierten Länge aus Punkte[i] bis Punkte[0]. + + + + + Die Datenstruktur für die Kommunikation mit dem "PathMarch"-Algorithmus. + + + + + Ruft die interpolierte Position dieser "MarchLocation" in einer angegebenen Punktliste ab. + + + + + Ruft die interpolierte Normalenrichtung dieser "MarchLocation" in einer angegebenen Normalenvektorliste ab. + + + + + Ruft die Bogenlänge dieser "MarchLocation" am Beginn der gesamten Polylinie ab. + + + + + Der Grund, warum diese Position als Stichprobe verwendet wird. + + + + + Der Index des Punkts in einer Polylinienpunktliste. + + + + + Verhältnis: [0, 1], das immer vorher/(vorher + nachher) ist. + + + + + Bogenlänge vor einem Stopppunkt. Nicht negativ und kleiner als Länge[index]. + + + + + Bogenlänge nach dem Stopppunkt. Nicht negativ und kleiner als Länge[index]. + + + + + Verbleibende Länge in einem Schritt zum Erreichen des nächsten Stopps. Positiv für vorwärts. Negativ für rückwärts. + + + + + "Helper"-Klasse für die Verwendung mit Punktlisten + + + + + Die angegebene Polylinie wird mit einem angegebenen Intervall gezeichnet, und jeder Stopp wird durch einen Rückruf ausgegeben. + + Die Polylinienpunkte zum Weiterzeichnen. + Die Bogenlänge zum Zeichnen vor dem Stopp am ersten Punkt. + Der maximale Winkel zwischen Kanten, der als Eckscheitelpunkt betrachtet wird. + Rückruf beim Zeichnen eines Algorithmusstopps an einem Punkt. Der Rückruf gibt die Bogenlänge für den nächsten Stopp zurück. Wenn die angeforderte Länge negativ ist, wird rückwärts gezeichnet. Wenn Rückruf NaN zurückgibt, wird Zeichnen beendet. + + + + Ordnet die angegebene Liste der Polylinien neu an, sodass die Polylinie mit einer angegebenen Bogenlänge der erste Eintrag in der Liste ist. Polylinien, die dieser Linie vorangestellt sind, werden mit dem Ende der Liste verkettet, wobei sich die erste Polylinie ganz am Ende befindet. + + Eine Liste von Polylinien. + Die Bogenlänge in der gesamten Liste der Polylinien, in der sich die Startlinie befindet. Die Bogenlänge in dieser Linie wird in dieser Variablen zurückgegeben. + Die neu geordnete und eingebundene Liste. + + + + Einheitliche und Gaußsche Verteilungen werden von einem Zufallsgenerator unterstützt. + + + + + Generiert ein Paar unabhängiger normal verteilter Standardzufallszahlen, Nullerwartung, Einheitsvarianz wird mithilfe der komplexen Zahl aus der Box-Muller-Transformation. + + + + + Privater Konstruktor. Die Verwendung von Factorymethoden wird erzwungen. + + + + + Erstellt ein Liniensegment. + + + + + Erstellt ein kubisches Béziersegment aus quadratischer Kurve (3 Kontrollpunkte). + + + + + Erstellt ein kubisches Béziersegment mit 4 Kontrollpunkten. + + + + + Kontrollpunkte des Pfadsegments. Die Länge ist ein "variant"-Wert. Liniensegment hat 2 Punkte, kubisches Béziersegment hat 4 Punkte. + + + + + Vergleicht zwei Transformationen für eine genaue Übereinstimmung. Transformiert mit demselben Wert, aber mit unterschiedlicher Struktur (z. B. Translate(0,0) und Rotate(0) werden nicht als identisch betrachtet). + + Die erste Transformation. + Die zweite Transformation. + + + + + Gibt die Einheit der Stärke zurück. + + + + + Einheit in Pixel. + + + + + Einheit in Prozent relativ zum "BoundingBox"-Element. + + + + + Stellt die Basisklasse einer Geometriequelle bereit. Generiert und speichert die Geometrie anhand der Eingabeparameter und Layoutgrenzen im Zwischenspeicher. + + + In einer typischen Implementierung wird die "UpdateCachedGeometry()" zum Aktualisieren von "this.cachedGeometry" erweitert. Diese Basisklasse ist dann für die Ungültigkeitserklärung, die Pipeline zu den Geometrieeffekten und die Zwischenspeicherung relativ zu den Layoutgrenzen verantwortlich. In der Implementierung sollte versucht werden, die zwischengespeicherte Geometrie so oft wie möglich zu verwenden, um eine Neuerstellung im Renderingthread zu vermeiden. In einer Implementierung können die "ComputeLogicalBounds" erweitert werden, um "Stretch" anders zu verarbeiten. + + Der Typ des Geometriequellparameters, für den die Basisklasse verwendet wird. + + + + Stellt eine Schnittstelle zum Beschreiben der Quelle einer Geometrie bereit. + + + Diese Schnittstelle soll die Geometriequelle auf nicht generische Weise verfügbar machen. In einer typischen Implementierung sollte diese Schnittstelle nicht direkt implementiert, sondern "GeometrySource" als Unterklasse verwendet werden. + + + + + Informiert darüber, dass die Geometrie aufgrund externer Änderungen für ungültig erklärt wurde. + + + Die Geometrie wird in der Regel für ungültig erklärt, wenn Parameter geändert werden. Wenn eine Geometrie extern für ungültig erklärt wurde, wird sie unabhängig von einer Änderung der Layoutgrenzen neu berechnet. + + + + + Die Geometrie wird mit dem angegebenen Parameter und den angegebenen Layoutgrenzen aktualisiert. Gibt "false" zurück, wenn keine Geometrie aktualisiert wurde. + + + + + Ruft die resultierende Geometrie nach der letzten "UpdateGeometry()" ab oder lege sie fest. + + + + + Ruft das "BoundingBox"-Element an der Stelle ab, an der die Geometrie gestreckt werden soll. Die tatsächliche Geometrie kann kleiner oder größer als dies sein. Bei sollte bereits die Strichstärke und die Streckung berücksichtigt werden. + + + + + Ruft die tatsächlichen Grenzen von "FrameworkElement" ab. enthält logische Grenzen, Streckung und Strichstärke. + + + + + Legt die Geometrie aus dem vorherigen Geometrieeffektprozess fest. + + + + + Informiert darüber, dass die Geometrie aufgrund externer Änderungen für ungültig erklärt wurde. + + + Die Geometrie wird in der Regel für ungültig erklärt, wenn Parameter geändert werden. Wenn eine Geometrie extern für ungültig erklärt wurde, wird sie unabhängig von einer Änderung der Layoutgrenzen neu berechnet. + + + + + Die Geometrie wird anhand der angegebenen Parameter und der angegebenen "layoutBounds" aktualisiert. Gibt "false" zurück, wenn die Geometrie nicht geändert wurde. + + + + + Erweitert die Möglichkeiten zum Bereitstellen von Geometrie durch Implementieren dieser Funktion. Gibt "true" zurück, wenn die Geometrie geändert wurde. + + + + + Erweitert die Möglichkeiten zum Verarbeiten des Steckmodus. Standardmäßig werden immer "Stretch.Fill" und zentrierter Strich verwendet. + + + + + Wenn geändert oder erzwungen, wird der Geometrieeffekt angewendet und "this.Geometry" aktualisiert. Andernfalls wird "this.Geometry" als "this.cachedGeometry" beibehalten. + + + + + Ruft die resultierende Geometrie nach der letzten "UpdateGeometry()" ab oder lege sie fest. + + + + + Ruft das "BoundingBox"-Element an der Stelle ab, an der die Geometrie gestreckt werden soll. Die tatsächliche Geometrie kann kleiner oder größer als dies sein. Bei sollte bereits die Strichstärke und die Streckung berücksichtigt werden. + + + + + + Ruft die tatsächlichen Grenzen von "FrameworkElement" ab. enthält logische Grenzen, Streckung und Strichstärke. + + + + + + "Arc" erkennt "Stretch.None" als identisch mit "Stretch.Fill" unter der Voraussetzung, dass das Seitenverhältnis 1:1 beträgt. + + + + + Stärke wird normalisiert, sowohl relativ zu "BoundingBox" als auch zu absoluten Pixel. Relative Stärke = 0 -> Radius eines Vollkreises oder geklemmt. Relative Stärke = 1 -> auf einen Punkt verkleinert oder zurückgebildet. + + + + + Der Bogen wird auf eine Linie zurückgebildet, die auf den Mittelpunkt bzw. die Normale nach innen zeigt. + + + + + Berechnet eine Liste mit Winkelpaaren, die die Bereiche definieren, in die das Bogenbeispiel platziert werden soll. Der Rückgabewert hat 2, 4 oder 6 "double"-Werte. Jedes Paar definiert einen Bereich. Alle Paare werden so angegeben, dass sie die Winkel von einem angegebenen Start- bis zu einem angegebenen Endwinkel überspannen. Die Bereiche werden am sich selbst überschneidenden Winkel geteilt. Wenn der Eingabestartpunkt bzw. -endpunkt innerhalb des ungültigen Bereichs zwischen dem sich selbst überschneidenden Winkel liegt, wird er in eine angrenzende Selbstüberschneidung verschoben. + + + + + Verschiebt den Winkel in einen Bereich zwischen 0 und 90 Grad. + + + + + Berechnet alle Teile von Innenkurven mit den einzelnen Eingabewinkelpaaren und verbindet diese mit Bézierpolysegmenten. Die neuen Segmente werden an eine angegebene "figure.Segments"-Liste aus dem angegebenen Index ausgegeben. Der Startpunkt wird separat ausgegeben. + + + + + Berechnet ein Teil einer Innenkurve mit einem angegebenen Winkelbereich und gibt einen Teil einer glatten Kurve im Format von Bézierpolysegmenten aus. + + + + + Berechnet den Parameter (Winkel) des sich selbst überschneidenden Punkts für eine angegebene Ellipse mit einer angegebenen Stärke. Das Ergebnis befindet sich immer im ersten Quadrant und kann 0 oder 90 betragen, was angibt, dass es sich nicht selbst überschneidet. Ein grundlegender Algorithmus sucht mittels Binärsuche nach dem Winkel, wenn sich dieser Beispielpunkt nicht im ersten Quadrant befindet. + + + + + Gibt die Richtung des Pfeils an. + + + + + Der Pfeil zeigt nach links. + + + + + Der Pfeil zeigt nach rechts. + + + + + Der Pfeil zeigt nach oben. + + + + + Der Pfeil zeigt nach unten. + + + + + B /| / C--D A | \ C--D \| B Vom Algorithmus wird nur Breite/Höhe verwendet, vorausgesetzt oben-unten liegt bei 0,0. + + + + + Gibt den Renderingstil eines Beschriftungsshapes an. + + + + + Eine rechteckige Beschriftung. + + + + + Eine rechteckige Beschriftung mit abgerundeten Ecken. + + + + + Eine ovale Beschriftung. + + + + + Eine wolkenförmig Beschriftung. + + + + + Aktualisiert die Kantenlinie und stellt ggf. eine Verbindung mit dem Ankerpunkt her. + + + + + Aktualisiert das Polyliniensegment und verbindet dann Start-, Anker- und Endpunkt mit dem Beschriftungsstil. + + + + + Aktualisiert das Liniensegment auf einen angegebenen Punkt. + + + + + Berechnet die Eckpunkte im Uhrzeigersinn mit acht Punkten für die vier Ecken. + + + + + Der Eckbogen ist immer ein Bogen kleiner als 90 Grad. + + + + + Stellt die Basisklasse für "GeometryEffect" bereit, mit der eine Geometrie in eine andere Geometrie transformiert wird. + + + Diese Klasse stellt die grundlegende Implementierung für die Verarbeitung der gerenderten Geometrie eines "IShape" vor der Weitergabe zum Rendern bereit. In einer typischen Implementierung wird die virtuelle Funktion erweitert, um die Eingabegeometrie zu transformieren. wird in der Regel an als angefügte Eigenschaft angefügt und aktiviert, wenn die -Geometrie aktualisiert wird. Die eines ersetzt die gerenderte Geometrie in . + + + + + Ruft den Geometrieeffekt als eine an ein angegebenes Abhängigkeitsobjekt angefügte Eigenschaft ab. + + + + + Legt den Geometrieeffekt als eine an ein angegebenes Abhängigkeitsobjekt angefügte Eigenschaft fest. + + + + + Erstellt eine tiefe Kopie des s mithilfe der zugehörigen aktuellen Werte. + + + + + Erstellt eine tiefe Kopie des Geometrieeffekts. Implementiert "CloneCurrentValue" in Silverlight. + + Ein Klon der aktuellen Instanz des Geometrieeffekts. + + + + Testet, ob der angegebene Geometrieeffekt der aktuellen Instanz entspricht. + + Ein Geometrieeffekt zum Vergleich. + Gibt "true" zurück, wenn zwei Effekte so gerendert werden, dass sich eine identische Darstellung ergibt. + + + + Legt die Geometrie aus dem vorherigen Geometrieeffektprozess fest. + + + + + Erklärt den Geometrieeffekt ohne tatsächliche Berechnung der Geometrie für ungültig. Benachrichtigt alle übergeordneten Shapes und Effekte, entsprechend für ungültig zu erklären. + + + + + Verarbeitet den Geometrieeffekt auf einer angegebene Eingabegeometrie. Speichert das Ergebnis in "GeometryEffect.OutputGeometry". + + Gibt "false" zurück, wenn nichts geändert wurde. + + + + Erweitert die Möglichkeiten zum Aktualisieren von "cachedGeometry" anhand der angegebenen Eingabegeometrie. + + + + + Benachrichtigung bei Trennung von einer übergeordneten Kette. + + + + + Benachrichtigung bei Anfügen an übergeordnete Kette. + + + + + Erklärt die Geometrie für angegebenes Abhängigkeitsobjekt für ungültig, wenn das Objekt ein gültiger übergeordneter Typ ist ("IShape" oder "GeometryEffect"). + + + + + Das "Freezable"-Objekt wird in WPF implementiert. + + + + + Der Standardgeometrieeffekt, der lediglich durch die Eingabegeometrie übergeben wird. + + + + + Ruft die Ausgabegeometrie dieses Geometrieeffekts ab. + + + + + Beim übergeordneten Element kann es sich um ein "IShape"- oder um ein "GeometryEffectGroup"-Element handeln. + + + + + Ermöglicht die Konvertierung zwischen Zeichenfolge und Geometrieeffekt. + + + Diese Klasse ermöglicht die kurze Syntax in XAML, z. B.: GeometryEffect="Sketch". Erstellt einen Klon der Instanz des Geometrieeffekts, sodass er als Ressource verwendet werden kann. + + + + + Erstellt eine vordefinierte Liste der unterstützten Geometrieeffekte. + + + + + Ein "GeometryEffect", der aus einem Zeichenfolgentyp konvertiert werden kann. + + + + + Ein "GeometryEffect", der in einen Zeichenfolgentyp konvertiert werden kann. + + + + + Konvertiert eine Zeichenfolge in einen Geometrieeffekt. Der Fallbackwert ist null. + + + + + Konvertiert einen Geometrieeffekt in eine Zeichenfolge. Der Fallbackwert ist null. + + + + + Gibt den Grund dafür an, warum aufgerufen wurde. + + + + + Die Geometrie wurde für ungültig erklärt, weil eine Eigenschaft geändert wurde. + + + + + Die Geometrie wurde für ungültig erklärt, weil eine Eigenschaft animiert wurde. + + + + + Die Geometrie wurde für ungültig erklärt, weil ein untergeordnetes Element für ungültig erklärt wurde. + + + + + Die Geometrie wurde für ungültig erklärt, weil ein übergeordnetes Element für ungültig erklärt wurde. + + + + + Die Geometrie wurde für ungültig erklärt, weil eine neue Vorlage angewendet wurde. + + + + + Stellt "Helper"-Erweiterungsmethoden für die Verwendung mit "IGeometrySource" und Parametern bereit. + + + + + Gibt den Typ der Pfeilspitze an. + + + + + Keine Pfeilspitze. + + + + + Eine dreieckige Pfeilspitze. + + + + + Eine dreieckige Rahmenpfeilspitze. + + + + + Eine offene dreieckige Pfeilspitze. + + + + + Eine ovale Pfeilspitze. + + + + + Gibt die Position der Ecke an. + + + + + Oben links im "BoundingBox"-Element. + + + + + Oben rechts im "BoundingBox"-Element. + + + + + Unten rechts im "BoundingBox"-Element. + + + + + Unten links im "BoundingBox"-Element. + + + + + "Polygon" erkennt "Stretch.None" als identisch mit "Stretch.Fill". + + + + + Ein Geometrieeffekt, mit dem eine Geometrie in einen Skizzenstil wie in "SketchFlow" transformiert wird. + + + + + Erstellt eine tiefe Kopie des Geometrieeffekts. + + Ein Klon der aktuellen Instanz des Geometrieeffekts. + + + + Testet, ob der angegebene Geometrieeffekt der aktuellen Instanz entspricht. + + Ein Geometrieeffekt zum Vergleich. + Gibt "true" zurück, wenn zwei Effekte so gerendert werden, dass sich eine identische Darstellung ergibt. + + + + Aktualisiert "cachedGeometry" anhand der angegebenen Eingabegeometrie. + + Eine Eingabegeometrie. + Gibt "true" zurück, wenn "cachedGeometry" nicht aktualisiert wurde. + + + + Beim Erstellen wird derselbe zufällige Ausgangswert verwendet, um visuelles Flackern minimal zu halten. + + + + + Alle einfachen Segmente in einer angegebenen "PathFigure" werden wiederholt einschließlich der schließenden Sehne. + + + + + Rendert ein Bogenshape, das den von "ArcThickness" gesteuerten Bogen-, Ring- oder Kreismodus unterstützt. + + + + + Plattformneutrale Implementierung des von "WPF:Shape" oder "SL:Path" abgeleiteten Shapes. + + + Stellt die WPF-Implementierung des vom Plattformshape abgeleiteten Shapes bereit. + + + + + Erweitert die Art und Weise, wie das Shape beim Erstellen der Geometriequelle gezeichnet wird. + + + + + Erklärt die Geometrie für ein für ungültig. Nach der Ungültigkeitserklärung wird die Geometrie von neu berechnet. Dieser Vorgang wird asynchron durchgeführt. + + + + Stellt das Verhalten für den "Measure"-Teil des Silverlight-Layoutdurchgangs bereit. Klassen können diese Methode außer Kraft setzen, um das eigene Verhalten beim "Measure"-Durchgang zu definieren. + Die Größe, die dieses Objekt bestimmt und beim Layout benötigt, basiert auf den Berechnungen der für das untergeordnete Objekt vorgesehenen Größen oder möglicherweise auf anderen Aspekten wie einer festen Containergröße. + Die verfügbare Größe, die dieses Objekt untergeordneten Objekten bereitstellen kann. Unendlich () kann als Wert festgelegt werden, der angibt, dass die Größe des Objekts an den verfügbaren Inhalt angepasst wird. + + In WPF wird das Außerkraftsetzen des Measures aus "Shape.DefiningGeometry" verwendet, was nicht immer wie erwartet funktioniert. Informationen zu Fällen, in denen WPF nicht standardmäßig das richtige Measure aufweist finden Sie in Bug 99497. + + In Silverlight wird das Außerkraftsetzen des Measures auf "Path" anders als einfache Shapes verwendet. + + Die kleinste Größe sollte zurückgegeben werden. Dieses Shape kann ohne Freistellung ordnungsgemäß gerendert werden. Ein Shape kann standardmäßig so klein wie ein Punkt gerendert werden. Daher wird die Strichstärke zurückgegeben. + + + + Stellt das Verhalten für den "Arrange"-Teil des Silverlight-Layoutdurchgangs bereit. Klassen können diese Methode außer Kraft setzen, um das eigene Verhalten beim "Anordnen"-Durchgang zu definieren. + Die tatsächliche Größe, die nach dem Anordnen des Elements im Layout verwendet wird. + Der endgültige Bereich im übergeordneten Element, der von diesem Objekt verwendet werden soll, um sich selbst und seine untergeordneten Elemente anzuordnen. + berechnet die Geometrie nach der Ungültigkeitserklärung neu und aktualisiert die "RenderedGeometry" und den "GeometryMargin". + + + + Tritt auf, wenn "RenderedGeometry" geändert wird. + + + + + Ruft den Abstand zwischen logischen und tatsächlichen Geometriegrenzen ab. Dieser kann positiv (wie in ) oder negativ (wie in ) sein. + + + + + Ruft den Startwinkel ab oder legt ihn fest. + + Der Startwinkel in Grad. Null Grad zeigt nach oben. + + + + Ruft den Endwinkel ab oder legt ihn fest. + + Der Endwinkel in Grad. Null Grad zeigt nach oben. + + + + Ruft die Bogenstärke ab oder legt sie fest. + + Die Bogenstärke in Pixel oder Prozent, je nach "ArcThicnessUnit". + + + + Ruft die Bogenstärkeeinheit ab oder legt sie fest. + + Die Bogenstärkeeinheit in Pixel oder Prozent. + + + + Rendert eine Blockpfeilform, die Pfeilspitzen und Pfeilkörper unterstützt, deren Größe angepasst werden kann. + + + + + Ruft die Richtung ab oder legt sie fest. + + Die Richtung, in die der Pfeil zeigt. + + + + Ruft den Winkel der Pfeilspitze ab oder legt ihn fest. + + Der Winkel der Pfeilspitze in Grad. + + + + Ruft die Größe des Pfeilkörpers ab oder legt sie fest. + + Die Größe des Pfeilkörpers in Pixel. + + + + Rendert eine regelmäßige Polygonform oder eine entsprechende Sternform mit einer variablen Anzahl an Punkten. + + + + + Ruft die Anzahl von Punkten des s ab oder legt sie fest. + + + + + Ruft den Abstand vom Zentrum zum innersten Punkt ab oder legt ihn fest. + + Der Abstand zwischen Zentrum und innerstem Punkt. + + + diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/de/Microsoft.Expression.Effects.xml b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/de/Microsoft.Expression.Effects.xml new file mode 100644 index 0000000..5ed6a71 --- /dev/null +++ b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/de/Microsoft.Expression.Effects.xml @@ -0,0 +1,1041 @@ + + + + Microsoft.Expression.Effects + + + + + Die Ausrichtung der Jalousien wird festgelegt. + + + + + Übergangsshader, der Jalousien simuliert, die sich beim Übergang von einem visuellen Zustand in einen anderen öffnen. + + + + + Ruft die Ausrichtung der Jalousien ab oder legt sie fest. + + + + + Ruft die Anzahl der Jalousien ab oder legt sie fest. + + + + + Ruft die "Amplitude"-Variable im Shader auf oder legt sie fest. + + + + + Erstellt eine Instanz des Shaders. + + + + + Erstellt eine tiefe Kopie des "BlindsTransitionEffect"-Effekts. + + Ein Klon der aktuellen Instanz des "BlindsTransitionEffect"-Effekts. + + + + Ruft die Ausrichtung der Jalousien ab oder legt sie fest. + + + + + Ruft die Anzahl der anzuzeigenden Jalousien ab oder legt sie fest. + + + + + Ruft die Ausrichtung der Jalousien ab oder legt sie fest. + + + + + Effekt, mit dem eine Überzeichnungsbeleuchtung eines visuellen Objekts implementiert wird. + + + + + Die explizite Eingabe für diesen Pixelshader. + + + + + + Diese Eigenschaft wird der "BloomIntensity"-Variablen im Pixelshader zugeordnet. + + + + + Diese Eigenschaft wird der "BaseIntensity"-Variablen im Pixelshader zugeordnet. + + + + + Diese Eigenschaft wird der "BloomSaturation"-Variablen im Pixelshader zugeordnet. + + + + + Diese Eigenschaft wird der "BaseSaturation"-Variablen im Pixelshader zugeordnet. + + + + + Diese Eigenschaft wird der "BloomIntensity"-Variablen im Pixelshader zugeordnet. + + + + + Diese Eigenschaft wird der "BloomSaturation"-Variablen im Pixelshader zugeordnet. + + + + + Diese Eigenschaft wird der "BaseSaturation"-Variablen im Pixelshader zugeordnet. + + + + + Erstellt eine Instanz und aktualisiert die Variablen des Shaders mit den Standardwerten. + + + + + Ruft die Mindestintensität ab, die für die Überzeichnung verwendet wird, oder legt sie fest. + + + + + Ruft die Basisintensität ab oder legt sie fest. + + + + + Ruft die Überzeichnungsintensität ab oder legt sie fest. + + + + + Ruft die Basissättigung ab oder legt sie fest. + + + + + Ruft die Überzeichnungssättigung ab oder legt sie fest. + + + + + Ruft den Eingabeshadersampler ab oder legt ihn fest. + + + + + Ruft die "Base/BloomIntensity"-Variable im Shader ab oder legt sie fest. + + + + + Ruft die "BaseBloomSaturation"-Variable im Shader ab oder legt sie fest. + + + + + Übergangseffekt, mit dem zwei visuelle Objekte durch einen größer oder kleiner werdenden Kreis einblendet werden. + + + + + Abhängigkeitseigenschaft, mit der die Variable für den Grad der weichen Kante im Pixelshader geändert wird. + + + + + Abhängigkeitseigenschaft, mit der die Kreisbewegung geändert wird. + + + + + Abhängigkeitseigenschaft, mit der die "reverseShader"-Variable im Pixelshader geändert wird. + + + + + Erstellt eine Instanz und aktualisiert die Variablen des Shaders mit den Standardwerten. + + + + + Erstellt eine tiefe Kopie des "CircleRevealTransitionEffect"-Effekts. + + Ein Klon der aktuellen Instanz des "CircleRevealTransitionEffect"-Effekts. + + + + Ruft die "FuzzyAmount"-Variable im Shader ab oder legt sie fest. + + + + + Ruft die Rückwärtswiedergabe der Kreiseinblendung ab oder legt sie fest. + + + + + Ruft die Rückwärtswiedergabe der Kreiseinblendung im Shader ab oder legt sie fest. + + + + + Übergangseffekt für den Übergang von zwei visuellen Objekten unter Verwendung einer Wolkentextur als Samplerschwellenwert. + + + + + Definiert einen Übergangsshadereffekt, der ein Bild als Samplerschwellenwert für die Interpolation des Pixelwerts zwischen zwei visuellen Objekten verwendet. + + + + + Definiert einen Übergangsshadereffekt, der einen Zufallswert bereitstellt, der es ermöglicht, dass der Effekt bei jeder Ausführung Varianz bereitstellt. + + + + + Abhängigkeitseigenschaft, mit der die "RandomSeed"-Variable im Pixelshader geändert wird. + + + + + Aktualisiert die Variablen des Shaders auf die Standardwerte. + + + + + Ruft die "RandomSeed"-Variable im Shader ab oder legt sie fest. + + + + + Abhängigkeitseigenschaft, mit der die "CloudImage"-Variable im Pixelshader geändert wird. + + + + + Erstellt eine Instanz und aktualisiert die Variablen des Shaders mit den Standardwerten. + + + + + Ruft die für das Sampling verwendete "CloudImage"-Variable im Shader ab oder legt sie fest. + + + + + Erstellt eine Instanz des Shaders. + + + + + Erstellt eine tiefe Kopie des "CloudRevealTransitionEffect"-Effekts. + + Ein Klon der aktuellen Instanz des "CloudRevealTransitionEffect"-Effekts. + + + + Effekt, mit dem der Farbton eines visuellen Objekts unter Verwendung zweier Farben als Sampling geändert wird. + + + + + Die explizite Eingabe für diesen Pixelshader. + + + + + Diese Eigenschaft wird der "Desaturation"-Variablen im Pixelshader zugeordnet. + + + + + Diese Eigenschaft wird der "Tone"-Variablen im Pixelshader zugeordnet. + + + + + Diese Eigenschaft wird der "LightColor"-Variablen im Pixelshader zugeordnet. + + + + + Diese Eigenschaft wird der "DarkColor"-Variablen im Pixelshader zugeordnet. + + + + + Erstellt eine Instanz und aktualisiert die Variablen des Shaders mit den Standardwerten. + + + + + Ruft die "Desaturation"-Variable im Shader ab oder legt sie fest. + + + + + Ruft die "Tone"-Variable im Shader ab oder legt sie fest. + + + + + Ruft die "LightColor"-Variable im Shader ab oder legt sie fest. + + + + + Ruft die "DarkColor"-Variable im Shader ab oder legt sie fest. + + + + + Ruft den Eingabeshadersampler ab oder legt ihn fest. + + + + + Effekt, mit dem eine geprägte Darstellung des visuellen Objekts simuliert wird. + + + + + Die explizite Eingabe für diesen Pixelshader. + + + + + Diese Eigenschaft wird der "Amount"-Variablen im Pixelshader zugeordnet. + + + + + Diese Eigenschaft wird der "Height"-Variablen im Pixelshader zugeordnet. + + + + + Diese Eigenschaft wird der "Color"-Variablen im Pixelshader zugeordnet. + + + + + Erstellt eine Instanz und aktualisiert die Variablen des Shaders mit den Standardwerten. + + + + + Ruft die "Amount"-Variable im Shader ab oder legt sie fest. + + + + + Ruft die "Height"-Variable im Shader ab oder legt sie fest. + + + + + Ruft die "Color"-Variable im Shader ab oder legt sie fest. + + + + + Ruft den Eingabeshadersampler ab oder legt ihn fest. + + + + + Übergangseffekt, der schrittweise von einem visuellen Objekt zu einem anderen wechselt. + + + + + Erstellt eine Instanz des Shaders. + + + + + Erstellt eine tiefe Kopie des "FadeTransitionEffect"-Effekts. + + Ein Klon der aktuellen Instanz des "FadeTransitionEffect"-Effekts. + + + + Effekt, mit dem ein Vergrößerungsglas simuliert wird. + + + + + Ruft die "InnerRadius"-Variable im Shader ab oder legt sie fest. + + + + + Ruft die "OuterRadius"-Variable im Shader ab oder legt sie fest. + + + + + Ruft die "Center"-Variable im Shader ab oder legt sie fest. + + + + + Ruft die "Amount"-Variable im Shader ab oder legt sie fest. + + + + + Ruft die im Shader verwendete Eingabe ab oder legt sie fest. + + + + + Die für diesen Shader verwendete Transformation. + + + + + Erstellt eine Instanz und aktualisiert die Variablen des Shaders mit den Standardwerten. + + + + + Ruft die "InnerRadius"-Variable im Shader ab oder legt sie fest. + + + + + Ruft die "OuterRadius"-Variable im Shader ab oder legt sie fest. + + + + + Ruft die "Center"-Variable im Shader ab oder legt sie fest. + + + + + Ruft den "ShrinkFactor" ab oder legt ihn fest. Je größer der Verkleinerungsfaktor, desto "kleiner" erscheint der Inhalt in der Ellipse. + + + + + Ruft die "EffectMapping" ab. + + + + + Ruft den Eingabeshadersampler ab oder legt ihn fest. + + + + + Die "GeneralTransform", die dem Vergrößerungseffekt entspricht. + + + + + Es wird versucht, einen Punkt basierend auf dem Effekt zu transformieren. + + Der zu transformierende Punkt. + Das Ergebnis, falls verfügbar. + Gibt bei Erfolg "true" zurück. + + + + Die Effektinstanz. + + + + + Wenn es sich bei der Transformation um eine Invertierung handelt. + + + + + Die Transformation speziell für diesen Effekt. + + + + + Erstellt eine neue Instanz. + + Der Quelleffekt. + + + + Mit diesem Effekt bleiben Achsen ausgerichtet, sodass die Transformation des Rechtecks lediglich eine Transformation der Eckpunkte darstellt. + + Das Eingaberechteck. + Das Ausgaberechteck. + + + + Für die Invertierung des Shaders muss "Pin" gesucht werden. Hierbei handelt es sich um die Pixelausgabe, wobei "Pout" die Textureingabe ist (die Umkehrung des Shaders). Der Shaderalgorithmus hängt jedoch vom Radius der Pixelausgabe vom Mittelpunkt ab, wobei es sich um eine Variable handelt, die bei der Berechnung der Invertierung nicht vorliegt. Für die Zusammenführung muss mithilfe der folgenden Gleichung eine Halbierung durchgeführt werden: PHatout = PHat_in*Skalar, wobei PHatout = Pout - Pcenter pHatin = Pin -Pcenter + + Skalar ist abhängig vom Radius von "Pin" (was nicht vorliegt). + + + + + Mit einer angegebenen Pixelausgabe (Pin) wird nach der Textureingabe (Pout) gesucht. + + + + + Erstellt eine neue Instanz. + + Eine neue Instanz hiervon. + + + + Gibt an, ob sich ein Punkt innerhalb einer Ellipse befindet. + + Der Testpunkt. + Der Mittelpunkt der Ellipse. + Der Radius der Ellipse. + Gibt bei Erfolg "true" zurück. + + + + Ruft die inverse Transformation ab. + + + + + Effekt, mit dem ein visuelles Objekt in eine monochrome Farbe verwandelt wird. + + + + + Ruft die "Color"-Variable im Shader ab oder legt sie fest. + + + + + Ruft die Eingabe des Shaders ab oder legt ihn fest. + + + + + Erstellt eine Instanz und aktualisiert die Variablen des Shaders mit den Standardwerten. + + + + + Ruft die "Color"-Variable im Shader ab oder legt sie fest. + + + + + Ruft die im Shader verwendete Eingabe ab oder legt sie fest. + + + + + Effekt, mit dem ein visuelles Objekt vergröbert wird. + + + + + Die explizite Eingabe für diesen Pixelshader. + + + + + Diese Eigenschaft wird der "Pixelation"-Variablen im Pixelshader zugeordnet. + + + + + Erstellt eine Instanz und aktualisiert die Variablen des Shaders mit den Standardwerten. + + + + + Ruft den Grad der Vergröberung im Shader ab oder legt ihn fest. + + + + + Ruft den Eingabeshadersampler ab oder legt ihn fest. + + + + + Übergangseffekt, mit dem die Vergröberung zwischen zwei visuellen Objekten verstärkt bzw. verringert wird. + + + + + Erstellt eine Instanz des Shaders. + + + + + Erstellt eine tiefe Kopie des "PixelateTransitionEffect"-Effekts. + + Ein Klon der aktuellen Instanz des "PixelateTransitionEffect"-Effekts. + + + + Übergangseffekt, mit dem bei der Einführung des neuen visuellen Objekt auf das aktuelle visuelle Objekt ein radialer Weichzeichner angewendet wird. + + + + + Erstellt eine Instanz des Shaders. + + + + + Erstellt eine tiefe Kopie des "RadialBlurTransitionEffect"-Effekts. + + Ein Klon der aktuellen Instanz des "RadialBlurTransitionEffect"-Effekts. + + + + Effekt, mit dem Wasserwellen im visuellen Objekt simuliert werden. + + + + + Ruft die "Center"-Variable im Shader ab oder legt sie fest. + + + + + Ruft die "Amplitude"-Variable im Shader auf oder legt sie fest. + + + + + Ruft die "Frequency"-Variable im Shader ab oder legt sie fest. + + + + + Ruft die "Phase"-Variable im Shader ab oder legt sie fest. + + + + + Ruft den im Shader verwendeten Eingabepinsel ab oder legt ihn fest. + + + + + Erstellt eine Instanz und aktualisiert die Variablen des Shaders mit den Standardwerten. + + + + + Ruft die "Center"-Variable im Shader ab oder legt sie fest. + + + + + Ruft die "Amplitude"-Variable im Shader auf oder legt sie fest. + + + + + Ruft die "Frequency"-Variable im Shader ab oder legt sie fest. + + + + + Ruft die "Phase"-Variable im Shader ab oder legt sie fest. + + + + + Ruft den Eingabeshadersampler ab oder legt ihn fest. + + + + + Übergangseffekt, mit dem während des Übergangs Wasserwellen simuliert werden. + + + + + Erstellt eine Instanz des Shaders. + + + + + Erstellt eine tiefe Kopie des "RippleTransitionEffect"-Effekts. + + Ein Klon der aktuellen Instanz des "RippleTransitionEffect"-Effekts. + + + + Effekt, mit dem visuelle Objekte klarer und schärfer werden. + + + + + Die explizite Eingabe für diesen Pixelshader. + + + + + Diese Eigenschaft wird der "Amount"-Variablen im Pixelshader zugeordnet. + + + + + Diese Eigenschaft wird der "Width"-Variablen im Pixelshader zugeordnet. + + + + + Erstellt eine Instanz und aktualisiert die Variablen des Shaders mit den Standardwerten. + + + + + Ruft die "Amount"-Variable im Shader ab oder legt sie fest. + + + + + Ruft die "Height"-Variable im Shader ab oder legt sie fest. + + + + + Ruft den Eingabeshadersampler ab oder legt ihn fest. + + + + + Definiert die Schiebrichtung. + + + + + Übergangseffekt, mit dem das aktuelle visuelle Objekt ausgeblendet und das neue visuelle Objekt eingeblendet wird. + + + + + Abhängigkeitseigenschaft, mit der die "SlideAmount"-Variable im Pixelshader geändert wird. + + + + + Abhängigkeitseigenschaft, mit der die "SlideAmount"-Variable im Pixelshader geändert wird. + + + + + Erstellt eine Instanz und aktualisiert die Variablen des Shaders mit den Standardwerten. + + + + + Erstellt eine tiefe Kopie des "SlideInTransitionEffect"-Effekts. + + Ein Klon der aktuellen Instanz des "SlideInTransitionEffect"-Effekts. + + + + Ruft die "SlideAmount"-Variable im Shader ab oder legt sie fest. + + + + + Ruft die "SlideAmount"-Variable im Shader ab oder legt sie fest. + + + + + Übergangseffekt, mit dem das aktuelle visuelle Objekt bei der Einführung des neuen visuellen Objekts gewirbelt wird. + + + + + Abhängigkeitseigenschaft, mit der die "TwistAmount"-Variable im Pixelshader geändert wird. + + + + + Abhängigkeitseigenschaft, mit der die Anzahl der Zellen geändert wird, wobei Pixel gewirbelt werden. + + + + + Erstellt eine Instanz und legt die Wirbelungsvariable des Shaders auf die angegebenen Werte fest. + + Grad der Wirbelung. + + + + Erstellt eine Instanz und aktualisiert die Variablen des Shaders mit den Standardwerten. + + + + + Erstellt eine tiefe Kopie des "SmoothSwirlGridTransitionEffect"-Effekts. + + Ein Klon der aktuellen Instanz des "SmoothSwirlGridTransitionEffect"-Effekts. + + + + Ruft die "TwistAmount"-Variable im Shader ab oder legt sie fest. + + + + + Ruft die "CellCount"-Variable im Shader ab oder legt sie fest. + + + + + Effekt, mit dem das aktuelle visuelle Objekt gewirbelt wird. + + + + + Die explizite Eingabe für diesen Pixelshader. + + + + + Diese Eigenschaft wird der "Center"-Variablen im Pixelshader zugeordnet. + + + + + Diese Eigenschaft wird der "TwistAmount"-Variablen im Pixelshader zugeordnet. + + + + + Diese Eigenschaft wird der "AngleFrequency"-Variablen im Pixelshader zugeordnet. + + + + + Die Transformation, die bei der Anwendung dieses Effekts verwendet wird. + + + + + Erstellt eine Instanz und aktualisiert die Variablen des Shaders mit den Standardwerten. + + + + + Ruft die "Center"-Variable im Shader ab oder legt sie fest. + + + + + Ruft die "TwistAmount"-Variable im Shader ab oder legt sie fest. + + + + + Ruft die "AngleFrequency"-Variable im Shader ab oder legt sie fest. Diese Eigenschaft wird nicht angezeigt. + + + + + Ruft den Eingabeshadersampler ab oder legt ihn fest. + + + + + Ruft die "GeneralTransform" für diesen Effekt ab. + + + + + Wird für die Transformation von Eingaben und Strukturtransformationen verwendet. + + + + + Die Instanz des Effekts. + + + + + Die Invertierung der Transformation. + + + + + Die Invertierung dieser "GeneralTransform". + + + + + Erstellt eine Instanz dieser Klasse. + + Der Effekt selbst. + + + + Bei diesem Vorgang besteht die Grenze aus dem "BoundingBox"-Element der vier transformierten Punkte. Alle müssen transformiert und anschließend abgegrenzt werden. Dies gilt sowohl für die Vorwärtstransformation als auch für die Invertierung. + + Das Eingaberechteck. + Das transformierte Rechteck. + + + + Es wird versucht, "inPoint" mit dem Wirbelungseffekt zu transformieren. + + Der Eingabepunkt. + Der Ausgabepunkt nach der Transformation mit dem Wirbelungseffekt. + Gibt "true" zurück und verwirft, wenn "false". + + + + Gibt eine neue Instanz hiervon zurück. + + Eine neue Instanz. + + + + Ruft einen Klon der Invertierung der aktuellen Transformation ab. + + + + + Übergangseffekt, mit dem das aktuelle visuelle Objekt bei der Einführung des neuen visuellen Objekts gewellt wird. + + + + + Abhängigkeitseigenschaft, mit der die "Magnitude"-Variable im Pixelshader geändert wird. + + + + + Abhängigkeitseigenschaft, mit der die "Phase"-Variable im Pixelshader geändert wird. + + + + + Abhängigkeitseigenschaft, mit der die "Frequency"-Variable im Pixelshader geändert wird. + + + + + Erstellt eine Instanz des Shaders. + + + + + Erstellt eine tiefe Kopie des "WaveTransitionEffect"-Effekts. + + Ein Klon der aktuellen Instanz des "WaveTransitionEffect"-Effekts. + + + + Ruft die Wellenhöhe ab oder legt sie fest. + + + + + Ruft die Wellenphase ab oder legt sie fest. + + + + + Ruft die Wellenhöhe ab oder legt sie fest. + + + + + Die Rollrichtung wird definiert. + + + + + Übergangseffekt, mit dem das aktuelle visuelle Objekt bei der Einführung des neuen visuellen Objekts gerollt wird. + + + + + Abhängigkeitseigenschaft, mit der die "WipeDirection"-Variable im Pixelshader geändert wird. + + + + + Abhängigkeitseigenschaft, mit der die "FeatherAmount"-Variable im Pixelshader geändert wird. + + + + + Abhängigkeitseigenschaft, mit der die "LineOrigin"-Variable im Pixelshader geändert wird. + + + + + Abhängigkeitseigenschaft, mit der die "LineNormal"-Variable im Pixelshader geändert wird. + + + + + Abhängigkeitseigenschaft, mit der die "LineOffset"-Variable im Pixelshader geändert wird. + + + + + Erstellt eine Instanz und aktualisiert die Variablen des Shaders mit den Standardwerten. + + + + + Erstellt eine tiefe Kopie des "WipeTransitionEffect"-Effekts. + + Ein Klon der aktuellen Instanz des "WipeTransitionEffect"-Effekts. + + + + Ruft die Richtung des Rolleffekts ab ab oder legt sie fest. + + + + + Ruft die "FeatherAmount"-Variable im Shader ab oder legt sie fest. + + + + + Ruft die "LineOrigin"-Variable im Shader ab oder legt sie fest. + + + + + Ruft die "LineNormal"-Variable im Shader ab oder legt sie fest. + + + + + Ruft die "LineOffset"-Variable im Shader ab oder legt sie fest. + + + + diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/de/Microsoft.Expression.Interactions.resources.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/de/Microsoft.Expression.Interactions.resources.dll new file mode 100644 index 0000000..ec30f52 Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/de/Microsoft.Expression.Interactions.resources.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/de/Microsoft.Expression.Interactions.xml b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/de/Microsoft.Expression.Interactions.xml new file mode 100644 index 0000000..eca4bc7 --- /dev/null +++ b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/de/Microsoft.Expression.Interactions.xml @@ -0,0 +1,1241 @@ + + + + Microsoft.Expression.Interactions + + + + + Eine grundlegende Implementierung von "ICommand", die eine Methode, die keinen Parameter annimmt, oder eine Methode, die einen Parameter annimmt, umschließt. + + + + + Initialisiert eine neue Instanz der -Klasse. + + Die Aktion. + Stellen Sie mithilfe dieses Konstruktors eine Aktion bereit, die den Parameter "ICommand" ignoriert. + + + + Initialisiert eine neue Instanz der -Klasse. + + Eine Aktion, die einen Objektparameter annimmt. + Stellen Sie mithilfe dieses Konstruktors eine Aktion bereit, die den über die Methode "Execute" übergebenen Objektparameter nutzt. + + + + Definiert die Methode, die bestimmt, ob der Befehl im aktuellen Zustand ausgeführt werden kann. + + Vom Befehl verwendete Daten. Wenn für den Befehl keine Daten übergeben werden müssen, kann dieses Objekt auf Null gesetzt werden. + + Gibt immer "true" zurück. + + + + + Definiert die Methode, die aufgerufen wird, wenn der Befehl aufgerufen wird. + + Vom Befehl verwendete Daten. Wenn für den Befehl keine Daten übergeben werden müssen, kann dieses Objekt auf Null gesetzt werden. + + + + Tritt auf, wenn Änderungen auftreten, die Auswirkungen darauf haben, ob der Befehl ausgeführt wird. Wird von "ActionCommand" nicht ausgelöst. + + + + + Ruft bei Aufruf eine Methode für ein angegebenes Objekt auf. + + + + + Ruft die Aktion auf. + + Der Parameter der Aktion. Wenn die Aktion keinen Parameter erfordert, kann der Parameter auf einen Nullverweis gesetzt werden. + + + + Wird nach dem Anfügen der Aktion an das "AssociatedObject" aufgerufen. + + Setzen Sie dies außer Kraft, um die Funktionalität in das "AssociatedObject" einzubinden. + + + + Wird aufgerufen, wenn die Aktion vom "AssociatedObject" getrennt wird. Der Aufruf erfolgt vor dem eigentlichen Trennvorgang. + + Setzen Sie dies außer Kraft, um die Bindung der Funktionalität zum "AssociatedObject" zu lösen. + + + + Das Objekt, von dem die gewünschte Methode bereitgestellt wird. Hierbei handelt es sich um eine Abhängigkeitseigenschaft. + + + + + Der Name der aufzurufenden Methode. Hierbei handelt es sich um eine Abhängigkeitseigenschaft. + + + + + Eine Aktion, die, wenn sie aufgerufen wird, eine angegebene Eigenschaft in einen angegebenen Wert ändert. + + + + + Initialisiert eine neue Instanz der -Klasse. + + + + + Ruft die Aktion auf. + + Der Parameter der Aktion. Wenn die Aktion keinen Parameter erfordert, kann der Parameter auf einen Nullverweis gesetzt werden. + Am Ziel wurde keine Eigenschaft mit gefunden. + konnte nicht auf den durch angegebenen Wert gesetzt werden. + + + + Ruft den Namen der zu ändernden Eigenschaft ab oder legt ihn fest. Hierbei handelt es sich um eine Abhängigkeitseigenschaft. + + Der Name der zu ändernden Eigenschaft. + + + + Ruft den festzulegenden Wert ab oder legt ihn fest. Hierbei handelt es sich um eine Abhängigkeitseigenschaft. + + Der festzulegende Wert. + + + + Ruft die Dauer der Animation ab, die beim Aufrufen von "ChangePropertyAction" auftritt, oder legt die Dauer fest. Hierbei handelt es sich um eine Abhängigkeitseigenschaft. Wenn keine Dauer festgelegt wird, wird keine Animation angewendet. + + + + + Wenn "true", wird nach Wert erhöht; andernfalls wird der Wert direkt festgelegt. Wenn die Eigenschaft nicht erhöht werden kann, wird versucht, den Wert stattdessen direkt festzulegen. + + + + + Stellt eine ternäre Bedingung dar. + + + + + Die Methode, mit der die Bedingung ausgewertet wird. Diese Methode kann eine Ausnahme vom Typ "ArgumentException" auslösen, wenn der Operator mit dem Typ nicht kompatibel ist. Die Operatoren "LessThan", "LessThanOrEqual", "GreaterThan" und "GreaterThanOrEqual" erfordern zum Implementieren von "IComparable" zwei Operatoren. + + Gibt "true" zurück, wenn die Bedingung erfüllt ist, gibt andernfalls "false" zurück. + + + + Es muss sichergestellt werden, dass Bindungen an DP-Operanden aktuell sind. + + + + + Ruft den linken Operand ab oder legt ihn fest. + + + + + Ruft den rechten Operand ab oder legt ihn fest. + + + + + Ruft den Vergleichsoperator ab oder legt ihn fest. + + + + + Enumeration von verschiedenen Vergleichsoperatoren. + + + + + Mit dieser Methode werden Operanden ausgewertet. + + Linker Operand aus der "LeftOperand"-Eigenschaft. + Operator aus "Operator"-Eigenschaft. + Rechter Operand aus der "RightOperand"-Eigenschaft. + Gibt "true" zurück, wenn die Bedingung erfüllt ist, gibt andernfalls "false" zurück. + + + + Wertet beide Operanden aus, mit denen die "IComparable"-Schnittstelle implementiert wird. + + Linker Operand aus der "LeftOperand"-Eigenschaft. + Operator aus "Operator"-Eigenschaft. + Rechter Operand aus der "RightOperand"-Eigenschaft. + Gibt "true" zurück, wenn die Bedingung erfüllt ist, gibt andernfalls "false" zurück. + + + + Vorwärtsverkettung. + + + + + Stellt einen bedingten Ausdruck dar, der auf eine "ConditionBehavior.Condition"-Eigenschaft festgelegt wird. Enthält eine Liste der Bedingungen, die ausgewertet wird, um für "ICondition.Evaluate()" "true" oder "false" zurückzugeben. + + + + + Eine Schnittstelle, die von einem angegebenen Objekt implementiert werden muss, um für eine "ConditionBehavior.Condition"-Eigenschaft festgelegt zu werden. + + + + + Initialisiert eine neue Instanz der -Klasse. + + + + + Durchläuft die Auflistung der Bedingungen und wertet die einzelnen Bedingungen basierend auf der "ForwardChaining"-Eigenschaft aus. + + Gibt "true" zurück, wenn die Bedingungen erfüllt sind, gibt andernfalls "false" zurück. + + + + Ruft die Vorwärtsverkettung für die Bedingungen ab oder legt sie fest. Wenn die Vorwärtsverkettung auf "ForwardChaining.And" festgelegt wurde, müssen alle Bedingungen erfüllt sein. Wenn die Vorwärtsverkettung auf "ForwardChaining.Or" festgelegt wurde, muss nur eine Bedingung erfüllt sein. + + + + + Die Auflistung der Bedingungen wird zurückgegeben. + + + + + Ein Verhalten, das an einen Auslöser angefügt wird und die Bedingungen zum Auslösen der Aktionen steuert. + + + + + + Initialisiert eine neue Instanz der -Klasse. + + + + + Der Ereignishandler, von dem das Ereignis zum Aufrufen der Vorschau überwacht wird, das vom Auslöser ausgelöst wurde. Wenn "PreviewInvokeEventArgs.Cancelling" auf "true" festgelegt wird, wird der Aufruf abgebrochen. + + Das Auslöserbasisobjekt. + Ein Objekt vom Typ "PreviewInvokeEventArgs", wobei "e.Cancelling" auf "true" festgelegt werden kann. + + + + Ruft das "IConditon"-Objekt für das Verhalten ab oder legt es fest. + + Der Name der zu ändernden Bedingung. + + + + "Helper"-Klasse zum Verwalten von Bindungsausdrücken für Abhängigkeitsobjekte. + + + + + Es muss sichergestellt werden, dass alle DPs für eine Aktion mit Bindungsausdrücken aktuell sind. "DataTrigger" wird während der Datenbindungsphase ausgelöst. Da Aktionen untergeordnete Elemente des Auslösers sind, sind Bindungen für die Aktion möglicherweise nicht aktuell. Diese Routine wird vor dem Aufruf der Aktion aufgerufen, um sicherzustellen, dass alle Bindungen mit den aktuellsten Daten aktualisiert wurden. + + + + + Stellt sicher, dass alle Bindungsausdrücke für Aktionen aktuell sind. + + + + + Mit dieser Helferfunktion wird sichergestellt, dass der Bindungsausdruck aktuell ist, wenn eine Abhängigkeitseigenschaft für ein Abhängigkeitsobjekt über einen Bindungsausdruck verfügt. + + + + + + + Schaltet basierend auf einer Bedingungsanweisung zwischen zwei Zuständen hin und her. + + + + + Wird nach dem Anfügen des Verhaltens an das "AssociatedObject" aufgerufen. + + Setzen Sie dies außer Kraft, um die Funktionalität in das "AssociatedObject" einzubinden. + + + + Eine Helferfunktion, die "FrameworkElement.IsLoaded" ersetzt, da diese Eigenschaft in Silverlight nicht verfügbar ist. + + Das betreffende Element. + Gibt "true" zurück, wenn das Element geladen wurde, gibt andernfalls "false" zurück. + + + + Ruft die Bindung ab, mit der der Eigenschaftswert des Datenobjekts erstellt wird, oder legt die Bindung fest. Hierbei handelt es sich um eine Abhängigkeitseigenschaft. + + + + + Ruft den Wert ab, der mit der dem Eigenschaftswert des Datenobjekts verglichen wird, oder legt den Wert fest. Hierbei handelt es sich um eine Abhängigkeitseigenschaft. + + + + + Ruft den Namen des visuellen Zustands ab, in den übergegangen werden soll, wenn die Bedingung erfüllt ist, oder legt den Namen fest. Hierbei handelt es sich um eine Abhängigkeitseigenschaft. + + + + + Ruft den Namen des visuellen Zustands ab, in den übergegangen werden soll, wenn die Bedingung nicht erfüllt ist, oder legt den Namen fest. Hierbei handelt es sich um eine Abhängigkeitseigenschaft. + + + + + Auslöser für die Bindung an eine Datenspeichereigenschaft. Wird ausgelöst, wenn die Eigenschaft geändert wird. + + + + + Stellt einen Auslöser dar, von dem Aktionen durchgeführt werden, wenn die gebundenen Daten geändert werden. + + UA_REVIEW:chabiss + + + + Wird aufgerufen, wenn die Bindungseigenschaft geändert wurde. UA_REVIEW:chabiss + + -Argument. + + + + Wird nach dem Anfügen des Auslösers an das "AssociatedObject" aufgerufen. UA_REVIEW:chabiss + + + + + Wird aufgerufen, wenn der Auslöser vom "AssociatedObject" getrennt wird. Der Aufruf erfolgt vor dem eigentlichen Trennvorgang. UA_REVIEW:chabiss + + + + + Ein Bindungsobjekt, das vom Auslöser überwacht wird und dafür sorgt, dass der Auslöser bei Änderungen ausgelöst wird. + + UA_REVIEW:chabiss + + + + Stellt einen Auslöser dar, von dem Aktionen durchgeführt werden, wenn die gebundenen Daten eine angegebene Bedingung erfüllen. + + + + + Wird aufgerufen, wenn die Bindungseigenschaft geändert wurde. UA_REVIEW:chabiss + + -Argument. + + + + Ruft den Wert ab, der mit der dem Eigenschaftswert des Datenobjekts verglichen wird, oder legt den Wert fest. Hierbei handelt es sich um eine Abhängigkeitseigenschaft. + + + + + Ruft den den Typ des Vergleichs ab, der für die angegebenen Werte durchgeführt werden soll, oder legt den Typ fest. Hierbei handelt es sich um eine Abhängigkeitseigenschaft. + + + + + "ExtendedVisualStateManager" ist ein benutzerdefinierter "VisualStateManager", der die Animation von Layouteigenschaften glätten kann. Bei diesem benutzerdefinierten "VisualStateManager" können Zustände Änderungen an Eigenschaften wie "Grid.Column" beinhalten und Elementhöhen in oder von "Automatisch" ändern. Diese Änderungen werden im Laufe der Zeit mithilfe der "GeneratedDuration" und der "GeneratedEasingFunction" des entsprechenden Übergangs geglättet. Eine allgemeine Beschreibung des Algorithmus finden Sie weiter unten im Abschnitt "VisualStateManager-Überschreibungen". + + + + + Eine "VisualStateGroup", von der "FluidLayout" verwendet werden kann. + + + + + Sichtbarkeit wird von einer angefügten Eigenschaft zur Laufzeit schattiert. + + + + + Eine "VisualStateGroup" speichert eine Liste mit diesen ursprünglichen Werten in einer angefügten Eigenschaft. + + + + + Die layoutspezifischen Eigenschaften werden für jeden Zustand extrahiert und dann an den Zustand angefügt. Diese Eigenschaften werden vom Zustand selbst entfernt. + + + + + Merken Sie sich den aktuellen Zustand. + + + + + Der "TransitionEffect", der verwendet wird, wenn der Zustand geändert wird. + + + + + Das "TransitionEffectStoryboard", das während der Zustandsänderung verwendet wird. + + + + + Der zwischengespeicherte Hintergrund, der während der Zustandsänderung verwendet wird. + + + + + Der zwischengespeicherte Hintergrund, der während der Zustandsänderung verwendet wird. + + + + + Der zwischengespeicherte Hintergrund, der während der Zustandsänderung verwendet wird. + + + + + Dies ist der Satz Elemente, der derzeit in der Animation angezeigt wird. + + + + + Dies ist das Storyboard, das den Übergang animiert. + + + + + Diese Liste enthält alle bekannten Layouteigenschaften. + + + + + Stoppen Sie die Animation, und ersetzen Sie die Layoutänderungen, die vorgenommen wurden, um diese Animation zu unterstützen. + + + + + Lokalisieren Sie den Übergang, den VisualStateManager verwendet, um die Änderung zu animieren, sodass die Layoutanimation an die Dauer und Beschleunigung angepasst wird. + + Die Gruppe, in der der Übergang stattfindet. + Der Zustand, von dem Sie kommen. + Der Zustand, in den Sie übergehen. + Der Übergang + + + + Entfernen Sie alle das Layout betreffende Eigenschaften aus dem Storyboard des Zustands, und speichern Sie sie in einer angefügten Eigenschaft. + + Der Zustand, in den Sie übergehen. + Ein Storyboard, das die Layouteigenschaften in diesem Zustand enthält. + + + + Der Satz Zielelemente ist der Satz aller Elemente, die bei einem Layoutübergang möglicherweise verschoben wurden. Dieser Satz schließt: - Elemente mit im Zustand animierten Layouteigenschaften - nebengeordnete Elemente im Satz - übergeordnete Elemente im Satz + + Nachfolgender Code überprüft diese Rechtecke sowohl vor als auch nach der Layoutänderung. + + Das Steuerelement, dessen Layout den Zustand ändert. + Das Storyboard, das die Layoutänderungen enthält. + Frühere Werte aus früheren Zustandsnavigationen, die möglicherweise umgekehrt werden. + Der Satz Elemente, der derzeit in der Animation angezeigt wird, wenn ein Übergang der Zustandsänderung stattfindet. + Der Satz aller Elemente, deren Layout geändert wurde. + + + + Ruft einen Satz Rechtecke für alle Elemente in der Zielliste ab oder legt ihn fest. + + Der zu berücksichtigende Satz Elemente. + Der Satz Elemente, der derzeit in der Animation angezeigt wird. + Ein Verzeichnis, in dem Elemente den zugehörigen Rechtecken zuordnet sind. + + + + Ruft das Layoutrechteck eines Elements ab, indem der Layoutbereich abgerufen und anschließend berechnet wird, welcher Teil des Bereichs verwendet wird. + + Das Element, dessen Layoutrechteck abgerufen werden soll. + Das Layoutrechteck dieses Elements. + + + + Rufen Sie die Deckkraft der Elemente während der Zustandsänderung und nicht deren Sichtbarkeit ab, da sich der Zustand möglicherweise noch weiter ändert und der aktuelle Wert der eigentlich wichtige Wert ist. + + Das Steuerelement, dessen Zustand sich ändert. + Das Storyboard mit den Layouteigenschaften. + Der Satz ursprünglicher Werte. + + + + + Überprüfen Sie das Layoutstoryboard, und legen Sie alle Eigenschaften fest. Verwenden Sie hierzu "SetValue", sodass Sie "UpdateLayout" aufrufen können, ohne die Zeitachse mit Teilstrichen zu markieren, wodurch ein Rendering verursacht wird. Alle Werte, die überschrieben werden, werden in der Auflistung von "OriginalValueRecords" gespeichert, sodass sie später ersetzt werden können. + + Das Steuerelement, dessen Zustand sich ändert. + Das Storyboard, in dem die Layouteigenschaften gespeichert sind. + Der Speicher mit den ursprünglichen Werten. + + + + Hüllen Sie alle Elemente, die aufgrund der Layoutanimation verschoben werden, in Canvaspanels, sodass sie die zugehörigen nebengeordneten Elemente nicht beeinflussen. + + Der Satz Elemente, der verschoben wird. + + + + Entfernen Sie die Canvaspanels um die Elemente, die aufgrund der Layoutanimation verschoben wurden. + + Der Satz Elemente, der verschoben wurde. + + + + Kopieren Sie die Layouteigenschaften aus dem Quellelement in das Zielelement, und löschen Sie sie im Quellelement. + + Die Quelle der Layouteigenschaften. + Das Ziel der Layouteigenschaften. + + + + Erstellen Sie das eigentliche Storyboard, das für die Animation des Übergangs verwendet wird. Verwenden Sie alle zuvor berechneten Ergebnisse. + + Die Dauer der Animation. + Die bei der Animation zu verwendende Beschleunigungsfunktion. + Der Satz Elemente, der verschoben wird. + Die alte Deckkraft der Elemente, deren Sichtbarkeitseigenschaften geändert werden. + Das Storyboard. + + + + "OriginalValueRecord" speichert den ursprünglichen Wert einer Eigenschaft, die in einen Zustand geändert wurde. + + + + + Dieser Aufzählungstyp gibt an, ob ein "FluidMoveBehavior" auf das Element, an das es angefügt wurde, oder auf die untergeordneten Elemente dieses Elements angewendet wird. "Self" ist nützlich, wenn sich ein Element auf besondere Weise verhalten soll. "Children" ist nützlich, wenn dasselbe Verhalten auf alle untergeordneten Elemente eines "WrapPanel" oder das "ItemsHostPanel" eines "ItemsControl" angewendet werden soll. + + + + + Dieser Aufzählungstyp gibt an, ob ein Element durch sich selbst oder durch den zugehörigen "DataContext" identifiziert wird. Die "DataContext"-Identifizierung ermöglicht das Verschieben von einem datengesteuerten Speicherort an einen anderen. + + + + + Abhängigkeitseigenschaft für den Bereich des Verhaltens. Weitere Informationen finden Sie unter "FluidMoveScope". + + + + + Abhängigkeitseigenschaft für den aktiven Zustand des Verhaltens. + + + + + Abhängigkeitseigenschaft für die Verwendung des Elements als eigenes Tag oder für die Verwendung der Bindung an das Element als Tag. + + + + + Abhängigkeitseigenschaft für den zusätzlichen Pfad zum Hinzufügen zur Bindung, wenn "UsaBindingAsTag" "true" ist. + + + + + Identitätstag, das zum Erkennen von Elementverschiebungen zwischen Containern verwendet wird. + + + + + Gibt an, ob das Verhalten nur auf dieses Element oder auf alle untergeordneten Elemente des Elements angewendet wird (wenn das Element ein Panel ist). + + + + + Gibt an, ob das Verhalten derzeit aktiv ist. + + + + + Gibt an, ob das Element als eigenes Tag oder ob die Bindung an das Element als Tag verwendet wird. + + + + + Zusätzlicher Pfad zum Hinzufügen zur Bindung, wenn "TagType" angegeben wird. + + + + + Private Struktur, von der alle relevanten Daten zu einem markierten Element gespeichert werden. + + + + + Verhalten, das ein Element (oder einen Satz Elemente) auf Layoutänderungen überwacht und das Element ggf. reibungslos an die neue Position verschiebt. Dieses Verhalten animiert nicht die Größe oder Sichtbarkeit eines Elements. Es animiert lediglich den Versatz dieses Elements innerhalb des zugehörigen übergeordneten Containers. + + + + + Abhängigkeitseigenschaft für die Dauer der Verschiebung. + + + + + Abhängigkeitseigenschaft für den Tagtyp, der unmittelbar vor dem Laden des Objekts verwendet wird. + + + + + Abhängigkeitseigenschaft für den zusätzlichen Pfad zum Hinzufügen zur Bindung, wenn "UsaBindingAsTag" "true" ist. + + + + + Identitätstag, das zum Erkennen von Elementverschiebungen zwischen Containern verwendet wird. + + + + + Abhängigkeitseigenschaft für die "FloatAbove"-Kennzeichnung. + + + + + Abhängigkeitseigenschaft für die "EasingFunction", die für die horizontale Komponente der Verschiebung verwendet wird. + + + + + Abhängigkeitseigenschaft für die "EasingFunction", die für die vertikale Komponente der Verschiebung verwendet wird. + + + + + Merken Sie sich das verwendete Popup-/Funktionsindikator-Element für den Fall, dass Elemente zwischen Containern verschoben werden, wenn "FloatAbove" "true" ist. + + + + + Deckkraftzwischenspeicher, der bei der unverankerten Anzeige eines Popup-Elements verwendet wird. + + + + + Markiert die Animationstransformation. + + + + + Die Dauer der Verschiebung. + + + + + Erstellungspunkt für dieses Element. + + + + + Zusätzlicher Pfad zum Hinzufügen zur Bindung, wenn "TagType" angegeben wird. + + + + + Kennzeichnung, die bestimmt, ob Elemente beim Wechseln von Containern (in einem Popup- oder Funktionsindikator-Element) über ihren Containern unverankert angezeigt werden dürfen. + + + + + Für die horizontale Komponente der Bewegung zu verwendende "EasingFunction". + + + + + Für die vertikale Komponente der Bewegung zu verwendende "EasingFunction". + + + + + Einfache "Helper"-Klasse, mit deren Hilfe alle "UIElements" als Funktionsindikator verwendet werden können. + + + + + Eine Aktion, die, wenn sie aufgerufen wird, ein "FrameworkElement" in einen angegebenen "VisualState" übergehen lässt. + + + Wenn die "TargetName"-Eigenschaft gesetzt ist, versucht diese Aktion, den Zustand des Zielelements zu ändern. Wenn diese Eigenschaft nicht gesetzt ist, sucht die Aktion in der Elementstruktur nach einem anderen Ziel, das Zustände beschreibt. "ControlTemplate" und "UserControl" sind zwei häufig verwendete Möglichkeiten. + + + + + Wird aufgerufen, wenn sich das Ziel ändert. Wenn die "TargetName"-Eigenschaft nicht gesetzt wird, weist diese Aktion ein benutzerdefiniertes Verhalten auf. + + + + Es wurde kein entsprechendes "FrameworkElement" mit Zuständen gefunden. + + + + Diese Methode wird aufgerufen, wenn einige Kriterien erfüllt werden und die Aktion aufgerufen wird. + + + Das Ziel konnte nicht in den angegebenen "StateName" geändert werden. + + + + Gibt an, ob für den Übergang von einem Zustand in einen anderen ein "VisualTransition" verwendet wird. + + + + + Der Name des "VisualState". + + + + + Ein Auslöser, der durch ein Tastaturereignis ausgelöst wird. Er löst aus, wenn die Zieltaste und Zielzusatztasten erkannt werden. + + + + + Die Taste, die gedrückt werden muss, damit der Auslöser auslöst. + + + + + Die Zusatztasten, die aktiv sein müssen, damit der Auslöser auslöst (standardmäßig sind keine Zusatztasten gedrückt). + + + + + Wenn die Bedingung wahr ist, überwacht der Auslöser nur das zugehörige "Source"-Objekt des Auslösers, was bedeutet, dass dieses Element zum Auslösen den Fokus auf dem Auslöser haben muss. Wenn die Bedingung falsch ist, überwacht der Auslöser den Stamm, sodass alle nicht behandelten "KeyDown"- bzw. "KeyUp"-Meldungen abgefangen werden. + + + + + Gibt an, ob das "KeyDown"- oder "KeyUp"-Ereignis überwacht wird. + + + + + Eine Aktion, die einen Prozess zum Öffnen einer Datei oder eines URIs startet. Bei Dateien startet diese Aktion das Standardprogramm für die angegebene Dateierweiterung. Eine URI wird in einem Webbrowser geöffnet. + + + + + Diese Methode wird aufgerufen, wenn einige Kriterien erfüllt werden und die Aktion aufgerufen wird. + + + + + + Die zu öffnende Datei oder der zu öffnende URI. + + + + + Ändert die Position des angefügten Elements als Reaktion auf das Ziehen der Maus auf einem Element. + + + + + Abhängigkeitseigenschaft für die X-Position des gezogenen Elements relativ zum linken Rand des Stammelements. + + + + + Abhängigkeitseigenschaft für die Y-Position des gezogenen Elements relativ zum oberen Rand des Stammelements. + + + + + Abhängigkeitseigenschaft für die Eigenschaft "ConstrainToParentBounds". Wenn die Bedingung wahr ist, muss das gezogene Element innerhalb der Begrenzungen des übergeordneten Containers verbleiben. + + + + + Versucht, die Position des zugeordneten Elements auf die festgelegten Koordinaten zu aktualisieren. + + Die gewünschte Position des Elements in Stammkoordinaten. + + + + Wendet eine relative Positionstranslation auf das zugeordnete Element an. + + Die X-Komponente der gewünschten Translation in Stammkoordinaten. + Die Y-Komponente der gewünschten Translation in Stammkoordinaten. + + + + Wendet die angegebene Translation auf das "RenderTransform"-Element des zugeordneten Elements an. + + Die X-Komponente der Translation in übergeordnete Koordinaten. + Die Y-Komponente der Translation in übergeordnete Koordinaten. + + + + Führt eine rekursive tiefe Kopie der angegebenen Transformation durch. + + Die zu klonende Transformation. + Eine tiefe Kopie der angegebenen Transformation oder Null, wenn die angegebene Transformation Null ist. + Wird ausgelöst, wenn der Typ der Transformation nicht erkannt wird. + + + + Aktualisiert die X- und Y-Eigenschaften basierend auf der aktuellen gerenderten Position des zugeordneten Elements. + + + + + Überprüfen Sie, ob ein Rechteck in einem anderen enthalten ist. + + Das Rechteck, das ein anderes Rechteck enthält. + Das Rechteck, das in einem anderen Rechteck enthalten ist. + True, falls Rechteck1 Rechteck2 enthält, andernfalls False. + + + + Transformiert als Vektor. + + Die Transformation. + Die X-Komponente des Vektors. + Die Y-Komponente des Vektors. + Ein Punkt, der die als Vektor transformierten X- und Y-Werte enthält. + + + + Ruft den Versatz der Transformation ab. + + Die Transformation. + Der Versatz der Transformation. + + + + Wird nach dem Anfügen des Verhaltens an das "AssociatedObject" aufgerufen. + + Setzen Sie dies außer Kraft, um die Funktionalität in das "AssociatedObject" einzubinden. + + + + Wird aufgerufen, wenn das Verhalten vom "AssociatedObject" getrennt wird. Der Aufruf erfolgt vor dem eigentlichen Trennvorgang. + + Setzen Sie dies außer Kraft, um die Bindung der Funktionalität zum "AssociatedObject" zu lösen. + + + + Tritt auf, wenn eine Ziehgeste initiiert wird. + + + + + Tritt auf, wenn eine Ziehgestenaktualisierung verarbeitet wird. + + + + + Tritt auf, wenn eine Ziehgeste beendet wird. + + + + + Ruft die X-Position des gezogenen Elements relativ zum linken Rand des Stammelements ab oder legt diese fest. Hierbei handelt es sich um eine Abhängigkeitseigenschaft. + + + + + Ruft die Y-Position des gezogenen Elements relativ zum oberen Rand des Stammelements ab oder legt diese fest. Hierbei handelt es sich um eine Abhängigkeitseigenschaft. + + + + + Ruft einen Wert ab oder legt einen Wert fest, der angibt, ob das gezogene Element innerhalb der Begrenzungen des übergeordneten Containers verbleiben muss. Hierbei handelt es sich um eine Abhängigkeitseigenschaft. + + + True, falls das gezogene Element innerhalb der Begrenzungen des übergeordneten Containers verbleiben muss, andernfalls False. + + + + + Ruft die Bildschirmposition des zugeordneten Elements in Stammkoordinaten ab. + + Die Bildschirmposition des zugeordneten Elements in Stammkoordinaten. + + + + Ruft den Bereich des Elements in Elementkoordinaten ab. + + Der Bereich des Elements in Elementkoordinaten. + + + + Ruft das übergeordnete Element des zugeordneten Objekts ab. + + Das übergeordnete Element des zugeordneten Objekts. + + + + Ruft das Stammelement der Szene ab, in der sich das zugeordnete Objekt befindet. + + Das Stammelement der Szene, in der sich das zugeordnete Objekt befindet. + + + + Ruft die "RenderTransform" des zugeordneten Elements ab oder legt sie fest. + + + + + Eine Aktion, die bei Abschluss einen Ton wiedergibt. + + + Diese Aktion soll mit kurzen Soundeffekten verwendet werden, die nicht beendet oder kontrolliert werden müssen. Wenn Sie einen Musik-Player oder ein Spiel erstellen, entspricht dies möglicherweise nicht Ihren Anforderungen. + + + + + Initialisiert eine neue Instanz der -Klasse. + + + + + Wenn die Aktion aufgerufen wird, wird mithilfe dieser Methode das dynamisch erstellte "MediaElement" angepasst. + + + Diese Methode kann für Ersteller von Aktionen hilfreich sein, die "PlaySoundAction" erweitern möchten. Wenn Sie die "Balance"-Eigenschaft von "MediaElement" kontrollieren möchten, können Sie diese von "PlaySoundAction" übernehmen und diese Methode außer Kraft setzen. + + + + + + Diese Methode wird aufgerufen, wenn einige Kriterien erfüllt werden und die Aktion aufgerufen werden sollte. + + + Bei jedem Aufruf der Aktion wird ein neuer Ton wiedergegeben. Auch wenn sich die Implementierung ändern kann, sollte der Aufrufer damit rechnen, dass damit ein neues "MediaElement" erstellt wird, das gelöscht wird, wenn der Ton wiedergegeben wurde oder wenn bei der Wiedergabe des Mediums ein Fehler auftritt. + + + + + + Ein URI, der den Speicherort der Sounddatei definiert. Wird verwendet, um die "Source"-Eigenschaft von "MediaElement" festzulegen. Hierbei handelt es sich um eine Abhängigkeitseigenschaft. + + + Bei der Sounddatei kann es sich um ein beliebiges, von "MediaElement" unterstütztes Dateiformat handeln. Bei einem Video wird nur der Audioteil wiedergegeben. + + + + + Regeln Sie die Tonlautstärke. Wird verwendet, um die "Volume"-Eigenschaft von "MediaElement" festzulegen. Hierbei handelt es sich um eine Abhängigkeitseigenschaft. + + + + + Eine Aktion, die, wenn sie aufgerufen wird, das Zielelement aus der Struktur entfernt. + + + Bei dieser Aktion kann ein Fehler auftreten. Mit dieser Aktion können Elemente aus häufig verwendeten, übergeordneten Elementen, jedoch nicht aus benutzerdefinierten Auflistungen oder aus einer direkten Bearbeitung der sichtbaren Struktur entfernt werden. + + + + + Eine Aktion, mit der der Wert einer Eigenschaft aus einem Datenspeicherobjekt geändert wird. Diese Klasse ist mit "ChangePropertyAction" identisch. Der einzige Unterschied besteht darin, dass für diese Aktion die Datenspeicherauswahl geladen wird. + + + + + Eine abstrakte Klasse, die die Auswahl eines Storyboards als Ziel ermöglicht. + + + Diese Klasse stellt für Ersteller von Aktionen eine Standardmethode für die Auswahl eines Storyboards als Ziel bereit. In Designtools können spezielle Bearbeitungsoptionen für Klassen, die von dieser Aktion erben, bereitgestellt und somit die Benutzerfreundlichkeit verbessert werden. + + + + + Diese Methode wird aufgerufen, wenn sich die "Storyboard"-Eigenschaft ändert. + + + + + + Das Zielstoryboard. Hierbei handelt es sich um eine Abhängigkeitseigenschaft. + + + + + Eine Aktion, die, wenn sie aufgerufen wird, den Zustand des Zielstoryboards ändert. + + + + + Diese Methode wird aufgerufen, wenn einige Kriterien erfüllt werden und die Aktion aufgerufen werden sollte. Mit dieser Methode wird das Zielstoryboard so geändert, wie durch die "ControlStoryboardOption" festgelegt. + + + + + + Eine abstrakte Klasse, die die Auswahl eines Storyboards als Ziel ermöglicht. + + + Diese Klasse stellt für Ersteller von Auslösern eine Standardmethode für die Auswahl eines Storyboards als Ziel bereit. In Designtools können spezielle Bearbeitungsoptionen für Klassen, die von diesem Auslöser erben, bereitgestellt und somit die Benutzerfreundlichkeit verbessert werden. + + + + + Diese Methode wird aufgerufen, wenn sich die "Storyboard"-Eigenschaft ändert. + + + + + Das Zielstoryboard. Hierbei handelt es sich um eine Abhängigkeitseigenschaft. + + + + + Ein Auslöser, der die Ausführung eines Storyboards überwacht. + + + + + Initialisiert eine neue Instanz der -Klasse. + + + + + Ein Auslöser, der durch ein angegebenes Ereignis in der zugehörigen Quelle ausgelöst wird und nach dem Auslösen dieses Ereignisses mit einer Verzögerung auslöst. + + + + + Initialisiert eine neue Instanz der -Klasse. + + + + + Ruft die Anzahl an Millisekunden zwischen zwei Teilstrichen ab oder legt sie fest. Hierbei handelt es sich um eine Abhängigkeitseigenschaft. + + + + + Ruft die Gesamtzahl der Teilstriche ab, die ausgelöst werden müssen, bevor der Auslöser abgeschlossen ist, oder legt sie fest. Hierbei handelt es sich um eine Abhängigkeitseigenschaft. + + + + + Definiert einen Übergangseffektshader, der mithilfe eines interpolierten Werts zwischen 0 und 1 Übergänge von einem visuellen Objekt in ein anderes durchführt. + + + + + Eigenschaften mit Pinselwerten, die im Shader zu Samplereigenschaften werden. Stellt das Bild dar, das im endgültigen Zustand des Übergangs angezeigt wird. + + + + + Eigenschaften mit Pinselwerten, die im Shader zu Samplereigenschaften werden. Stellt das Bild dar, das im Anfangszustand des Übergangs angezeigt wird. + + + + + Eine Abhängigkeitseigenschaft, die als Sicherungsspeicher für den Fortschritt verwendet wird. Wird zudem verwendet, um den Zustand eines Übergangs vom Start zum Ende (Bereich zwischen 0 und 1) darzustellen. + + + + + Erstellt mithilfe der aktuellen Werte einen veränderbaren Klon (tiefe Kopie) des s. + + + + + Erstellt eine tiefe Kopie des Übergangseffekts. Implementiert "CloneCurrentValue" in Silverlight. + + Ein Klon der aktuellen Instanz des Übergangseffekts. + + + + Aktualisiert die Variablen des Shaders auf die Standardwerte. + + + + + Ruft die "Input"-Variable im Shader ab oder legt sie fest. + + + + + Ruft die "OldImage"-Variable im Shader ab oder legt sie fest. + + + + + Ruft die "Progress"-Variable im Shader ab oder legt sie fest. + + + + + Ermöglicht dem Benutzer die Verwendung gebräuchlicher Gesten für Translation, Zoom und Drehen des angefügten Objekts. + + + + + Wird nach dem Anfügen des Verhaltens an das "AssociatedObject" aufgerufen. + + Setzen Sie dies außer Kraft, um die Funktionalität in das "AssociatedObject" einzubinden. + + + + Wird aufgerufen, wenn das Verhalten vom "AssociatedObject" getrennt wird. Der Aufruf erfolgt vor dem eigentlichen Trennvorgang. + + Setzen Sie dies außer Kraft, um die Bindung der Funktionalität zum "AssociatedObject" zu lösen. + + + + Ruft einen Wert ab bzw. legt einen Wert fest, der angibt, welche Zoom- und Translationsvarianten unterstützt werden. + + + + + Ruft eine Zahl ab bzw. legt eine Zahl fest, die den Grad angibt, in dem die Translation verringert wird. + + + + + Ruft eine Zahl ab bzw. legt eine Zahl fest, die den Grad angibt, in dem die Drehung verringert wird. + + + + + Ruft einen Wert ab bzw. legt einen Wert fest, der angibt, ob die Zoom- und Translationsposition des angefügten Objekts durch die Grenzen des ihm übergeordneten Objekts eingeschränkt wird. + + + + + Ruft eine Zahl ab bzw. legt eine Zahl fest, die den kleinsten zulässigen Zoomwert angibt. + + + + + Ruft eine Zahl ab bzw. legt eine Zahl fest, die den höchsten zulässigen Zoomwert angibt. + + + + + Diese Klasse stellt verschiedene plattformagnostische Standardoperationen für die Verwendung mit "VisualStateManager" bereit. + + + + + Führt Übergang des Steuerelements von einem Zustand in einen anderen durch. + + Das Element, für das der Übergang von einem Zustand in einen anderen durchgeführt wird. + Der Zustand, in den übergegangen wird. + "true", um eine "System.Windows.VisualTransition" für den Übergang von einem Zustand in einen anderen zu verwenden; andernfalls "false". + "true", wenn der Übergang des Steuerelements in den neuen Zustand erfolgreich durchgeführt wurde; andernfalls "false". + "control" ist Null. + "stateName" ist Null. + + + + Ruft den Wert der an "VisualStateManager.VisualStateGroups" angefügten Eigenschaft ab. + + Das Element, aus dem die "VisualStateManager.VisualStateGroups" abgerufen wird. + + + + + Es wird nach dem nächsten übergeordneten Element gesucht, das visuelle Zustände enthält. + + Das Element, bei dem das nächste zustandsbehaftete Steuerelement gefunden wird. + Das nächste statusbehaftete Steuerelement, wenn "true"; andernfalls "Null". + "true", wenn ein übergeordnetes Element visuelle Zustände enthält; andernfalls "false". + + + + Eine stark typisierte Ressourcenklasse zum Nachschlagen von lokalisierten Zeichenfolgen usw. + + + + + Gibt die zwischengespeicherte "ResourceManager"-Instanz zurück, die von dieser Klasse verwendet wird. + + + + + Setzt mithilfe dieser stark typisierten Ressourcenklasse die "CurrentUICulture"-Eigenschaft des aktuellen Threads für alle Ressourcensuchen außer Kraft. + + + + + Sucht nach einer lokalisierten Zeichenfolge, die der folgenden Zeichenfolge ähnelt: "Kein Methodenname '{0}' für Objekt vom Typ '{1}' gefunden, der mit der erwarteten Signatur übereinstimmt." + + + + + Sucht nach einer lokalisierten Zeichenfolge, die der folgenden Zeichenfolge ähnelt: "Mehr als ein potenzieller Additionsoperator wurde für Typ '{0}' gefunden." + + + + + Sucht nach einer lokalisierten Zeichenfolge, die der folgenden Zeichenfolge ähnelt: "Eigenschaftenänderung kann für Zielobjekt vom Typ '{0}' nicht animiert werden. Eigenschaftenänderung kann nur für von "DependencyObject" abgeleitete Typen animiert werden." + + + + + Sucht nach einer lokalisierten Zeichenfolge, die der folgenden Zeichenfolge ähnelt: "In Typ "{1}" wurde keine Eigenschaft mit dem Namen "{0}" gefunden." + + + + + Sucht nach einer lokalisierten Zeichenfolge, die der folgenden Zeichenfolge ähnelt: "Die Eigenschaft "Increment" kann nicht auf "True" gesetzt werden, wenn die Eigenschaft "Duration" festgelegt ist". + + + + + Sucht nach einer lokalisierten Zeichenfolge, die der folgenden Zeichenfolge ähnelt: "Wert der Eigenschaft '{0}' kann nicht erhöht werden, da der Wert nicht gelesen werden kann." + + + + + Sucht nach einer lokalisierten Zeichenfolge, die der folgenden Zeichenfolge ähnelt: "Der Wert vom Typ "{0}" konnte der Eigenschaft "{1}" vom Typ "{2}" nicht zugewiesen werden. Die "{1}"-Eigenschaft kann nur Werten vom Typ "{2}" zugewiesen werden." + + + + + Sucht nach einer lokalisierten Zeichenfolge, die der folgenden Zeichenfolge ähnelt: "Die durch Typ "{1}" definierte Eigenschaft "{0}" stellt keine "Set"-Methode bereit und kann daher nicht bearbeitet werden". + + + + + Sucht nach einer lokalisierten Zeichenfolge, die der folgenden Zeichenfolge ähnelt: "Zustand mit Namen '{0}' für Typ '{1}' nicht gefunden. Stellen Sie sicher, dass der Zustand vorhanden ist und von diesem Kontext darauf zugegriffen werden kann." + + + + + Sucht nach einer lokalisierten Zeichenfolge, die der folgenden Zeichenfolge ähnelt: "Ziel {0} definiert keine "VisualStateGroups"." . + + + + + Sucht nach einer lokalisierten Zeichenfolge, die der folgenden Zeichenfolge ähnelt: "LeftOperand vom Typ '{0}' darf nicht mit dem Operator '{1}' verwendet werden." + + + + + Sucht nach einer lokalisierten Zeichenfolge, die der folgenden Zeichenfolge ähnelt: "LeftOperand vom Typ '{1}' und RightOperand vom Typ '{0}' dürfen nicht mit dem Operator '{2}' verwendet werden." + + + + + Sucht nach einer lokalisierten Zeichenfolge, die der folgenden Zeichenfolge ähnelt: "RightOperand vom Typ '{0}' darf nicht mit dem Operator '{1}' verwendet werden." + + + + + Sucht nach einer lokalisierten Zeichenfolge, die der folgenden Zeichenfolge ähnelt: "Das Ziel der "RemoveElementAction" wird nicht unterstützt." + + + + diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/de/Microsoft.Expression.Prototyping.Interactivity.resources.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/de/Microsoft.Expression.Prototyping.Interactivity.resources.dll new file mode 100644 index 0000000..bafaedc Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/de/Microsoft.Expression.Prototyping.Interactivity.resources.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/de/System.Windows.Interactivity.resources.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/de/System.Windows.Interactivity.resources.dll new file mode 100644 index 0000000..6fd40e9 Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/de/System.Windows.Interactivity.resources.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/de/System.Windows.Interactivity.xml b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/de/System.Windows.Interactivity.xml new file mode 100644 index 0000000..dd081b1 --- /dev/null +++ b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/de/System.Windows.Interactivity.xml @@ -0,0 +1,1046 @@ + + + + System.Windows.Interactivity + + + + + Stellt eine Auflistung von "IAttachedObject"-Elementen mit einem freigegebenen "AssociatedObject" dar und stellt bei Änderungen am "AssociatedObject" Änderungsbenachrichtigungen für den dazugehörenden Inhalt bereit. + + + + + Eine Schnittstelle für ein Objekt, das an ein anderes Objekt angefügt werden kann. + + + + + Wird an das angegebene Objekt angefügt. + + Das Objekt, an das angefügt wird. + + + + Trennt diese Instanz von dem zugeordneten Objekt. + + + + + Ruft das zugeordnete Objekt ab. + + Das zugeordnete Objekt. + Stellt das Objekt dar, dem diese Instanz zugeordnet ist. + + + + Initialisiert eine neue Instanz der -Klasse. + + Intern, da dies nicht außerhalb der Assembly vererbt werden darf. + + + + Wird sofort nach dem Anfügen der Auflistung an das "AssociatedObject" aufgerufen. + + + + + Wird aufgerufen, wenn die Auflistung vom dazugehörenden "AssociatedObject" getrennt wird. Der Aufruf erfolgt vor dem eigentlichen Trennvorgang. + + + + + Wird aufgerufen, wenn ein neues Element der Auflistung hinzugefügt wird. + + Das neue Element. + + + + Wird aufgerufen, wenn ein Element aus der Auflistung entfernt wird. + + Das entfernte Element. + + + Instanz kann der Auflistung nicht mehrmals hinzugefügt werden. + + + + Wird an das angegebene Objekt angefügt. + + Das Objekt, an das angefügt wird. + Das "IAttachedObject" wurde bereits einem anderen Objekt angefügt. + + + + Trennt diese Instanz von dem zugeordneten Objekt. + + + + + Das Objekt, auf dem die Auflistung gehostet wird. + + + + + Ruft das zugeordnete Objekt ab. + + Das zugeordnete Objekt. + + + + Kapselt Zustandsinformationen und ggf. auch "ICommands" in einem anfügbaren Objekt. + + Der Typ, dem angefügt werden kann. + + Verhalten ist die Basisklasse für die Bereitstellung eines anfügbaren Zustands und anfügbarer Befehle für ein Objekt. Die Typen, denen das Verhalten angefügt werden kann, können über die allgemeinen Parameter gesteuert werden. Setzen Sie die Methoden "OnAttached()" und "OnDetaching()" außer Kraft, um die erforderlichen Handler in das "AssociatedObject" einzubinden bzw. deren Bindung zu lösen. + + + + + Kapselt Zustandsinformationen und ggf. auch "ICommands" in einem anfügbaren Objekt. + + Hierbei handelt es sich um eine Infrastrukturklasse. Ersteller von Verhalten sollten von "Behavior<T>" statt von dieser Klasse abgeleitet werden. + + + + Wird nach dem Anfügen des Verhaltens an das "AssociatedObject" aufgerufen. + + Setzen Sie dies außer Kraft, um die Funktionalität in das "AssociatedObject" einzubinden. + + + + Wird aufgerufen, wenn das Verhalten vom "AssociatedObject" getrennt wird. Der Aufruf erfolgt vor dem eigentlichen Trennvorgang. + + Setzen Sie dies außer Kraft, um die Bindung der Funktionalität zum "AssociatedObject" zu lösen. + + + + Wird an das angegebene Objekt angefügt. + + Das Objekt, an das angefügt wird. + Das Verhalten wird bereits auf einem anderen Element gehostet. + Das "dependencyObject" erfüllt nicht die Verhaltenstypeinschränkung. + + + + Trennt diese Instanz von dem zugeordneten Objekt. + + + + + Der Typ, dem dieses Verhalten angefügt werden kann. + + + + + Ruft das Objekt ab, dem dieses Verhalten angefügt wurde. + + + + + Ruft das zugeordnete Objekt ab. + + Das zugeordnete Objekt. + + + + Initialisiert eine neue Instanz der -Klasse. + + + + + Ruft das Objekt ab, dem dieses angefügt wurde. + + + + + Stellt eine Auflistung von Verhalten mit einem freigegebenen "AssociatedObject" dar und stellt bei Änderungen am "AssociatedObject" Änderungsbenachrichtigungen für den dazugehörenden Inhalt bereit. + + + + + Initialisiert eine neue Instanz der -Klasse. + + Intern, da dies nicht außerhalb der Assembly vererbt werden darf. + + + + Wird sofort nach dem Anfügen der Auflistung an das "AssociatedObject" aufgerufen. + + + + + Wird aufgerufen, wenn die Auflistung vom dazugehörenden "AssociatedObject" getrennt wird. Der Aufruf erfolgt vor dem eigentlichen Trennvorgang. + + + + + Wird aufgerufen, wenn ein neues Element der Auflistung hinzugefügt wird. + + Das neue Element. + + + + Wird aufgerufen, wenn ein Element aus der Auflistung entfernt wird. + + Das entfernte Element. + + + + Erstellt eine neue Instanz der "BehaviorCollection". + + Die neue Instanz. + + + + Listet mögliche Werte für wiederverwendbare Eigenschaftswert-Editoren auf. + + + + + Verwendet die Elementauswahl (falls diese unterstützt wird), um diese Eigenschaft in der Designphase zu bearbeiten. + + + + + Verwendet die Storyboardauswahl (falls diese unterstützt wird), um diese Eigenschaft in der Designphase zu bearbeiten. + + + + + Verwendet die Zustandsauswahl (falls diese unterstützt wird), um diese Eigenschaft in der Designphase zu bearbeiten. + + + + + Verwendet die Elementbindungsauswahl (falls diese unterstützt wird), um diese Eigenschaft in der Designphase zu bearbeiten. + + + + + Verwendet die Eigenschaftsbindungsauswahl (falls diese unterstützt wird), um diese Eigenschaft in der Designphase zu bearbeiten. + + + + + Ordnet den angegebenen Editortyp der Eigenschaft zu, auf die der "CustomPropertyValueEditor" angewendet wird. + + Verwenden Sie dieses Attribut, um die Bearbeitung von Eigenschaften, die Element (über den Namen), Storyboards oder Zustände (über den Namen) kennzeichnen, in der Designphase zu verbessern. + + + + Initialisiert eine neue Instanz der -Klasse. + + Der Editor für benutzerdefinierte Eigenschaftswerte. + + + + Ruft den Editor für benutzerdefinierte Eigenschaftswerte ab oder legt ihn fest. + + Der Editor für benutzerdefinierte Eigenschaftswerte. + + + + Stellt Designtoolsinformationen darüber bereit, welche für die angegebene Aktion oder den Befehl instanziiert werden muss. + + + + + Initialisiert eine neue Instanz der -Klasse. + + Der Typ, auf den dieses Attribut angewendet wird. + Der Typ der zu instanziierenden . + Ein einzelnes Argument für die angegebene . + ist nicht von "TriggerBase" abgeleitet. + Dieser Konstruktor ist nützlich, wenn die angegebene ein einzelnes Argument hat. Der resultierende Code ist CLS-kompatibel. + + + + Initialisiert eine neue Instanz der -Klasse. + + Der Typ, auf den dieses Attribut angewendet wird. + Der Typ der zu instanziierenden . + Die Konstruktorargumente für die angegebene . + ist nicht von "TriggerBase" abgeleitet. + + + + Instanziiert diese Instanz. + + Die vom "DefaultTriggerAttribute" angegebene . + + + + Ruft den Typ ab, auf den dieses "DefaultTriggerAttribute" angewendet wird. + + Der Typ, auf den dieses "DefaultTriggerAttribute" angewendet wird. + + + + Ruft den Typ der zu instanziierenden ab. + + Der Typ der zu instanziierenden . + + + + Ruft die Parameter ab, die an den -Konstruktor übergeben werden. + + Die Parameter, die an den -Konstruktor übergeben werden. + + + + Durch diese Methode wird die "VisualTreeHelper.GetParent"-Methode verwendet, um einen Durchlauf der visuellen Struktur in der Tiefensuchreihenfolge durchzuführen und alle Vorgänger des angegebenen Objekts einschließlich des Objekts selbst zurückzugeben. + + Das Objekt in der visuellen Struktur, von dem Vorgänger gesucht werden sollen. + Gibt sich selbst und alle Vorgänger in der visuellen Struktur zurück. + + + + "EventObserver" zur Unterstützung der Verwaltung von Ereignishandler durch Trennung, wenn ein Verwerfvorgang durchgeführt wird. Wenn dieses Objekt erstellt wird, wird auch im Konstruktor ein Anfügevorgang durchgeführt. + + + + + Erstellt eine Instanz von "EventObserver" und wird an das bereitgestelltes Ereignis für das bereitgestellte Ziel angefügt. Verwerfen wird aufgerufen, um zu trennen. + + Das Ereignis, an das angefügt und von dem getrennt wird. + Das Zielobjekt, auf dem das Ereignis definiert ist. "Null", wenn es sich um eine statische Methode handelt. + Der Delegat, der an das Ereignis angefügt wird. + + + + Trennt den Handler vom Ereignis. + + + + + Ein Auslöser, der ein angegebenes Ereignis in der zugehörigen Quelle überwacht und nach dem Auslösen dieses Ereignisses auslöst. + + + + + Stellt einen Auslöser dar, der ein anderes Element als sein "AssociatedObject" überwachen kann. + + Der Typ, dem dieser Auslöser zugeordnet werden kann. + + "EventTriggerBase" erweitert "TriggerBase", indem sie Kenntnisse über ein anderes Objekt als das Objekt, dem sie angefügt wurde, hinzufügt. Dies ermöglicht es einem Benutzer, ein Auslöser/Aktion-Paar einem Element anzufügen und die Aktion als Antwort auf eine Änderung an einem anderen Objekt an anderer Stelle aufzurufen. Setzen Sie "OnSourceChanged" außer Kraft, um Handler in ein Quellelement einzubinden oder deren Bindung zu lösen, und setzen Sie "OnAttached/OnDetaching" für das zugeordnete Element außer Kraft. Der Typ des Quellelements kann durch den Parameter "Generischer Typ" eingeschränkt werden. Wenn Sie Kontrolle über den Typ des "AssociatedObject" benötigen, legen Sie ein "TypeConstraintAttribute" für Ihren abgeleiteten Typ fest. + + + + + Stellt einen Auslöser dar, der ein anderes Objekt als sein "AssociatedObject" überwachen kann. + + Hierbei handelt es sich um eine Infrastrukturklasse. Ersteller von Auslösern sollten von der "EventTriggerBase<T>" statt von dieser Klasse abgeleitet werden. + + + + Stellt ein Objekt dar, das Aktionen unter Vorbehalt aufrufen kann. + + Hierbei handelt es sich um eine Infrastrukturklasse. Ersteller von Auslösern sollten von "Trigger<T>" statt von dieser Klasse abgeleitet werden. + + + + Ruft alle Aktionen auf, die diesem Auslöser zugeordnet sind. + + Abgeleitete Klassen sollten dies aufrufen, um den Auslöser auszulösen. + + + + Wird nach dem Anfügen des Auslösers an das "AssociatedObject" aufgerufen. + + + + + Wird aufgerufen, wenn der Auslöser vom "AssociatedObject" getrennt wird. Der Aufruf erfolgt vor dem eigentlichen Trennvorgang. + + + + + Erstellt eine neue Instanz der von "TriggerBase" abgeleiteten Klasse. + + Die neue Instanz. + + + + Wird an das angegebene Objekt angefügt. + + Das Objekt, an das angefügt wird. + Derselbe Auslöser kann nicht auf mehreren Objekten gleichzeitig gehostet werden. + Das "dependencyObject" erfüllt die Auslösertypeinschränkung nicht. + + + + Trennt diese Instanz von dem zugeordneten Objekt. + + + + + Ruft das Objekt ab, dem dieser Auslöser angefügt wurde. + + Das zugeordnete Objekt. + + + + Ruft die Typeinschränkung des zugeordneten Objekts ab. + + Die Typeinschränkung des zugeordneten Objekts. + + + + Ruft alle Aktionen ab, die diesem Auslöser zugeordnet sind. + + Die Aktionen, die diesem Auslöser zugeordnet sind. + + + + Ereignishandler für die Registrierung bei "PreviewInvoke". + + + + + Ruft das zugeordnete Objekt ab. + + Das zugeordnete Objekt. + + + + Legt den Namen des Ereignisses fest, das diese "EventTriggerBase" überwacht. + + + + + + Wird aufgerufen, wenn das dieser "EventTriggerBase" zugeordnete Ereignis ausgelöst wird. Standardmäßig werden dabei alle Aktionen des Auslöser aufgerufen. + + Die -Instanz, die die Ereignisdaten enthält. + Setzen Sie dies außer Kraft, um eine genauere Steuerung dafür bereitzustellen, wann die diesem Auslöser zugeordneten Aktionen aufgerufen werden. + + + + Wird aufgerufen, wenn sich die Quelle ändert. + + Die alte Quelle. + Die neue Quelle. + Diese Funktion sollte in abgeleiteten Klassen außer Kraft gesetzt werden, um Funktionalität in die sich ändernden Quellobjekte einzubinden bzw. die Bindung der Funktionalität zu den sich ändernden Quellobjekten zu lösen. + + + + Wird nach dem Anfügen des Auslösers an das "AssociatedObject" aufgerufen. + + + + + Wird aufgerufen, wenn der Auslöser vom "AssociatedObject" getrennt wird. Der Aufruf erfolgt vor dem eigentlichen Trennvorgang. + + + + "eventName" konnte am Ziel nicht gefunden werden. + + + + Ruft die Typeinschränkung des zugeordneten Objekts ab. + + Die Typeinschränkung des zugeordneten Objekts. + Definieren Sie ein "TypeConstraintAttribute" für einen abgeleiteten Typ, um die Typen einzuschränken, den dieses angefügt werden kann. + + + + Ruft die Quelltypeinschränkung ab. + + Ruft die Quelltypeinschränkung ab. + + + + Ruft das Zielobjekt ab oder legt es fest. Wenn "TargetObject" nicht festgelegt wird, sucht das Ziel nach dem von "TargetName" angegebenen Objekt. Wenn ein Element, auf das "TargetName" verweist, nicht gefunden wird, wird standardmäßig das "AssociatedObject" verwendet. Hierbei handelt es sich um eine Abhängigkeitseigenschaft. + + Das Zielobjekt. + + + + Ruft den Namen des Elements ab, das diese "EventTriggerBase" als Quelle überwacht, oder legt ihn fest. Ist der Name nicht festgelegt oder kann er nicht aufgelöst werden, wird das "AssociatedObject" verwendet. Hierbei handelt es sich um eine Abhängigkeitseigenschaft. + + Der Name des Quellelements. + + + + Ruft die aufgelöste Quelle ab. Ist der nicht festgelegt oder dieser nicht aufgelöst werden, wird das "AssociatedObject" standardmäßig verwendet. + + Das aufgelöste Quellobjekt. + Im Allgemeinen sollte diese Eigenschaft anstelle des "AssociatedObject" in abgeleiteten Klassen verwendet werden. + Das Element, auf das verweist, erfüllt nicht die Typeinschränkungen. + + + + Initialisiert eine neue Instanz der -Klasse. + + + + + Wird aufgerufen, wenn sich die Quelleigenschaft ändert. + + Setzen Sie dies außer Kraft, um Funktionalität in die angegebene Quelle statt in das "AssociatedObject" einzubinden bzw. die Bindung der Funktionalität zur angegebenen Quelle zu lösen. + Die alte Quelle. + Die neue Quelle. + + + + Ruft die aufgelöste Quelle ab. Ist der nicht festgelegt oder dieser nicht aufgelöst werden, wird das "AssociatedObject" standardmäßig verwendet. + + Das aufgelöste Quellobjekt. + Im Allgemeinen sollte diese Eigenschaft anstelle des "AssociatedObject" in abgeleiteten Klassen verwendet werden. + + + + Initialisiert eine neue Instanz der -Klasse. + + + + + Initialisiert eine neue Instanz der -Klasse. + + Name des Ereignisses. + + + + Ruft den Namen des zu überwachenden Ereignisses ab, oder legt ihn fest. Hierbei handelt es sich um eine Abhängigkeitseigenschaft. + + Der Name des Ereignisses. + + + + Statische Klasse, die den Auslösern und Verhalten angefügte Eigenschaften besitzt. Handhabt die Propagierung von Benachrichtigungen bezüglich der Änderungen am "AssociatedObject". + + + + + Diese Eigenschaft wird als interner Sicherungsspeicher für die Eigenschaft verwendet, die den öffentlichen Auslösern angefügt ist. + + + Diese Eigenschaft ist nicht öffentlich zugänglich. Dies zwingt Clients, die Methoden "GetTriggers" und "SetTriggers" zum Zugriff auf die Auflistung zu verwenden, und stellt so sicher, dass die Auflistung vorhanden ist und festgelegt wurde, bevor sie verwendet wird. + + + + + Diese Eigenschaft wird als interner Sicherungsspeicher für die Eigenschaft verwendet, die den öffentlichen Verhalten angefügt ist. + + + Diese Eigenschaft ist nicht öffentlich zugänglich. Dies zwingt Clients, die Methoden "GetBehaviors" und "SetBehaviors" zum Zugriff auf die Auflistung zu verwenden, und stellt so sicher, dass die Auflistung vorhanden ist und festgelegt wurde, bevor sie verwendet wird. + + + + + Ruft die "TriggerCollection" ab, die die Auslöser enthält, die dem angegebenen Objekt zugeordnet wurden. + + Das Objekt, von dem die Auslöser abgerufen werden. + Eine "TriggerCollection", die die Auslöser enthält, die dem angegebenen Objekt zugeordnet sind. + + + + Ruft die ab, die dem angegebenen Objekt zugeordnet ist. + + Das Objekt, von dem die abgerufen wird. + Eine , die die Verhalten enthält, die dem angegebenen Objekt zugeordnet sind. + + + Dieselbe "BehaviorCollection" kann nicht auf mehreren Objekten gleichzeitig gehostet werden. + + + Dieselbe "TriggerCollection" kann nicht auf mehreren Objekten gleichzeitig gehostet werden. + + + + Eine Helferfunktion, die "FrameworkElement.IsLoaded" ersetzt, da diese Eigenschaft in Silverlight nicht verfügbar ist. + + Das betreffende Element. + "true", wenn das Element geladen wurde, andernfalls "false". + + + + Ruft einen Wert ab bzw. legt einen Wert fest, der angibt, ob die Ausführung im Designmodus erfolgen soll. + + + True, falls die Ausführung im Designmodus erfolgt, andernfalls False. + + Nicht außerhalb der Einheitstests zu verwenden. + + + + Führt bei Aufruf einen angegebenen "ICommand" aus. + + + + + Stellt ein anhängbares Objekt dar, das eine Funktionalitätseinheit kapselt. + + Der Typ, dem diese Aktion angefügt werden kann. + + + + Stellt ein anhängbares Objekt dar, das eine Funktionalitätseinheit kapselt. + + Hierbei handelt es sich um eine Infrastrukturklasse. Ersteller von Aktionen sollten von der "TriggerAction<T>" statt von dieser Klasse abgeleitet werden. + + + + Versucht, die Aktion aufzurufen. + + Der Parameter zur Aktion. Wenn die Aktion keinen Parameter erfordert, kann der Parameter auf einen Nullverweis gesetzt werden. + + + + Ruft die Aktion auf. + + Der Parameter zur Aktion. Wenn die Aktion keinen Parameter erfordert, kann der Parameter auf einen Nullverweis gesetzt werden. + + + + Wird nach dem Anfügen der Aktion an das "AssociatedObject" aufgerufen. + + + + + Wird aufgerufen, wenn die Aktion vom "AssociatedObject" getrennt wird. Der Aufruf erfolgt vor dem eigentlichen Trennvorgang. + + + + + Erstellt bei Implementierung in eine abgeleitete Klasse eine neue Instanz der von abgeleiteten Klasse. + + Die neue Instanz. + + + + Wird an das angegebene Objekt angefügt. + + Das Objekt, an das angefügt wird. + Dieselbe "TriggerAction" kann nicht auf mehreren Objekten gleichzeitig gehostet werden. + Das "dependencyObject" erfüllt nicht die "TriggerAction"-Typeinschränkung. + + + + Trennt diese Instanz von dem zugeordneten Objekt. + + + + + Ruft einen Wert ab bzw. legt einen Wert fest, der angibt, ob diese Aktion beim Aufruf ausgeführt wird. Hierbei handelt es sich um eine Abhängigkeitseigenschaft. + + + True, falls diese Aktion beim Aufruf ausgeführt wird, andernfalls False. + + + + + Ruft das Objekt ab, dem diese Aktion angefügt wurde. + + Das zugeordnete Objekt. + + + + Ruft die Typeinschränkung des zugeordneten Objekts ab. + + Die Typeinschränkung des zugeordneten Objekts. + + + + Ruft einen Wert ab bzw. legt einen Wert fest, der angibt, ob diese Instanz angefügt wurde. + + True, falls diese Instanz angefügt wurde; andernfalls False. + + + + Ruft das zugeordnete Objekt ab. + + Das zugeordnete Objekt. + + + + Initialisiert eine neue Instanz der -Klasse. + + + + + Ruft das Objekt ab, dem diese angefügt wurde. + + Das zugeordnete Objekt. + + + + Ruft die Typeinschränkung des zugeordneten Objekts ab. + + Die Typeinschränkung des zugeordneten Objekts. + + + + Ruft die Aktion auf. + + Der Parameter zur Aktion. Wenn die Aktion keinen Parameter erfordert, kann der Parameter auf einen Nullverweis gesetzt werden. + + + + Ruft den Namen des Befehls ab, den diese Aktion aufrufen soll, oder legt den Namen fest. + + Der Name des Befehls, den diese Aktion aufrufen soll. + Diese Eigenschaft wird durch die "Command"-Eigenschaft ersetzt, wenn beides festgelegt wird. + + + + Ruft den Befehl ab, der durch diese Aktion aufgerufen werden soll, oder legt ihn fest. Hierbei handelt es sich um eine Abhängigkeitseigenschaft. + + Der auszuführende Befehl. + Diese Eigenschaft hat Vorrang vor der "CommandName"-Eigenschaft, wenn beides festgelegt wird. + + + + Ruft den Befehlsparameter ab, oder legt ihn fest. Hierbei handelt es sich um eine Abhängigkeitseigenschaft. + + Der Befehlsparameter. + Dies ist der Wert, der an "ICommand.CanExecute" und "ICommand.Execute" übergeben wird. + + + + Stellt Daten dazu bereit, welche Objekte bei der Auflösung einer Namensänderung betroffen sind. + + + + + "Helper"-Klasse zur Handhabung der Logik für die Auflösung eines "TargetName" in ein Zielelement basierend auf dem von einem Hostelement bereitgestellten Kontext. + + + + + Versucht, das aufgelöste Objekt über den Namen innerhalb des Kontexts des "NameScope"-Referenzelements zu aktualisieren. + + Das alte aufgelöste Objekt. + + Setzt das vorhandene Ziel zurück, und versucht, den aktuellen "TargetName" mithilfe des Kontexts des aktuellen Hosts aufzulösen. Ist keine Auflösung mithilfe des Hostkontexts möglich, wird der Vorgang solange auf der jeweils übergeordneten Ebene innerhalb der visuellen Struktur wiederholt, bis eine Auflösung erfolgt ist. Wenn der Stamm der visuellen Struktur erreicht wird, ohne dass eine Auflösung erfolgt ist, wird das Ziel auf Null gesetzt und eine Warnmeldung wird an die Debugausgabe gesendet. + + + + + Tritt auf, wenn das aufgelöste Element geändert wurde. + + + + + Ruft den Namen des Elements ab, dessen Auflösung versucht werden soll, oder legt ihn fest. + + Der aufzulösende Name. + + + + Das aufgelöste Objekt. Gibt das Referenzelement zurück, falls "TargetName" Null oder leer ist oder falls keine Auflösung versucht wurde. + + + + + Ruft das Referenzelement für die Auflösung des Namens ab, oder legt dieses fest. + + Das Referenzelement. + + + + Ruft einen Wert ab bzw. legt einen Wert fest, der angibt, ob das Laden des Referenzelements aussteht. + + + True, falls das Laden des Referenzelements aussteht, andernfalls False. + + + Wenn der Host nicht geladen wurde, wird der Name nicht aufgelöst. Verzögern Sie in diesem Fall die Auflösung, und verfolgen Sie diesen Umstand mit dieser Eigenschaft. + + + + + Stellt eine Aktion dar, die darauf gerichtet sein kann, ein anderes Objekt als ihr "AssociatedObject" zu beeinflussen. + + Die Typeinschränkung für das Ziel. + + Die "TargetedTriggerAction" erweitert die "TriggerAction", indem sie Kenntnisse über ein anderes Element als das Element, dem sie angefügt wurde, hinzufügt. Dies ermöglicht es einem Benutzer, als Antwort auf einen Auslöser eine Aktion an einem anderen Element als dem Element, dem die Aktion angefügt wurde, aufzurufen. Setzen Sie "OnTargetChanged" außer Kraft, um Handler in ein Zielelement einzubinden oder deren Bindung zu lösen, und setzen Sie "OnAttached/OnDetaching" für das zugeordnete Element außer Kraft. Der Typ des Zielelements kann durch den Parameter "Generischer Typ" eingeschränkt werden. Wenn Sie Kontrolle über den Typ des "AssociatedObject" benötigen, legen Sie ein "TypeConstraintAttribute" für Ihren abgeleiteten Typ fest. + + + + + Stellt eine Aktion dar, die darauf gerichtet sein kann, ein anderes Objekt als ihr "AssociatedObject" zu beeinflussen. + + Hierbei handelt es sich um eine Infrastrukturklasse. Ersteller von Aktionen sollten von der "TargetedTriggerAction<T>" statt von dieser Klasse abgeleitet werden. + + + + Wird aufgerufen, wenn sich das Ziel ändert. + + Das alte Ziel. + Das neue Ziel. + Diese Funktion sollte in abgeleiteten Klassen außer Kraft gesetzt werden, um Funktionalität in die sich ändernden Quellobjekte einzubinden bzw. die Bindung der Funktionalität zu den sich ändernden Quellobjekten zu lösen. + + + + Wird nach dem Anfügen der Aktion an das "AssociatedObject" aufgerufen. + + + + + Wird aufgerufen, wenn die Aktion vom "AssociatedObject" getrennt wird. Der Aufruf erfolgt vor dem eigentlichen Trennvorgang. + + + + + Ruft das Zielobjekt ab oder legt es fest. Wenn "TargetObject" nicht festgelegt wird, sucht das Ziel nach dem von "TargetName" angegebenen Objekt. Wenn ein Element, auf das "TargetName" verweist, nicht gefunden wird, wird standardmäßig das "AssociatedObject" verwendet. Hierbei handelt es sich um eine Abhängigkeitseigenschaft. + + Das Zielobjekt. + + + + Ruft den Namen des Objekts ab, das Ziel dieser Aktion ist, oder legt den Namen fest. Wenn "Target" festgelegt ist, wird diese Eigenschaft ignoriert. Wenn "Target" und "TargetName" nicht festgelegt ist oder nicht aufgelöst werden kann, wird standardmäßig das "AssociatedObject" verwendet. Hierbei handelt es sich um eine Abhängigkeitseigenschaft. + + Der Name des Zielobjekts. + + + + Ruft das Zielobjekt ab. Wenn "TargetObject" festgelegt ist, wird "TargetObject" zurückgegeben. Andernfalls, wenn "TargetName" nicht festgelegt ist oder nicht aufgelöst werden kann, wird das "AssociatedObject" standardmäßig verwendet. + + Das Zielobjekt. + Im Allgemeinen sollte diese Eigenschaft anstelle des "AssociatedObject" in abgeleiteten Klassen verwendet werden. + Das Zielelement erfüllt nicht die Typeinschränkung. + + + + Ruft die Typeinschränkung des zugeordneten Objekts ab. + + Die Typeinschränkung des zugeordneten Objekts. + Definieren Sie ein "TypeConstraintAttribute" für einen abgeleiteten Typ, um die Typen einzuschränken, den dieses angefügt werden kann. + + + + Ruft die Zieltypeinschränkung ab. + + Die Zieltypeinschränkung. + + + + Initialisiert eine neue Instanz der -Klasse. + + + + + Wird aufgerufen, wenn sich die Zieleigenschaft ändert. + + Setzen Sie dies außer Kraft, um Funktionalität in das angegebene Ziel statt in das AssociatedObject einzubinden bzw. die Bindung der Funktionalität zum angegebenen Ziel zu lösen. + Das alte Ziel. + Das neue Ziel. + + + + Ruft das Zielobjekt ab. Andernfalls, wenn "TargetName" nicht festgelegt ist oder nicht aufgelöst werden kann, wird das "AssociatedObject" standardmäßig verwendet. + + Das Ziel. + Im Allgemeinen sollte diese Eigenschaft anstelle des "AssociatedObject" in abgeleiteten Klassen verwendet werden. + + + + Stellt eine Auflistung von Aktionen mit einem freigegebenen "AssociatedObject" dar und stellt bei Änderungen am "AssociatedObject" Änderungsbenachrichtigungen für den dazugehörenden Inhalt bereit. + + + + + Initialisiert eine neue Instanz der -Klasse. + + Intern, da dies nicht außerhalb der Assembly vererbt werden darf. + + + + Wird sofort nach dem Anfügen der Auflistung an das "AssociatedObject" aufgerufen. + + + + + Wird aufgerufen, wenn die Auflistung vom dazugehörenden "AssociatedObject" getrennt wird. Der Aufruf erfolgt vor dem eigentlichen Trennvorgang. + + + + + Wird aufgerufen, wenn ein neues Element der Auflistung hinzugefügt wird. + + Das neue Element. + + + + Wird aufgerufen, wenn ein Element aus der Auflistung entfernt wird. + + Das entfernte Element. + + + + Erstellt eine neue Instanz der "TriggerActionCollection". + + Die neue Instanz. + + + + Stellt ein Objekt dar, das Aktionen unter Vorbehalt aufrufen kann. + + Der Typ, dem dieser Auslöser angefügt werden kann. + + "TriggerBase" ist die Basisklasse für steuernde Aktionen. Setzen Sie "OnAttached()" und "OnDetaching()" außer Kraft, um die Handler in ein "AssociatedObject" einzubinden oder deren Bindung zu lösen. Sie können die Typen, denen eine abgeleitete "TriggerBase" angefügt werden kann, mithilfe generischer Parameter einschränken. Rufen Sie "InvokeActions()" auf, um alle Aktionen, die dieser "TriggerBase" zu geordnet sind, auszulösen. + + + + + Initialisiert eine neue Instanz der -Klasse. + + + + + Ruft das Objekt ab, dem dieser Auslöser angefügt wurde. + + Das zugeordnete Objekt. + + + + Ruft die Typeinschränkung des zugeordneten Objekts ab. + + Die Typeinschränkung des zugeordneten Objekts. + + + + Argument, das an das "PreviewInvoke"-Ereignis übergeben wird. Wenn "Cancelling" der Wert "true" zugewiesen wird, wird der Aufruf des Auslösers abgebrochen. + + Hierbei handelt es sich um eine Infrastrukturklasse. An ein Auslöserbasisobjekt angefügtes Verhalten kann "TriggerBase.PreviewInvoke" das Verhalten als Listener hinzufügen. + + + + Stellt eine Auflistung von Auslösern mit einem freigegebenen "AssociatedObject" dar und stellt bei Änderungen am "AssociatedObject" Änderungsbenachrichtigungen für den dazugehörenden Inhalt bereit. + + + + + Initialisiert eine neue Instanz der -Klasse. + + Intern, da dies nicht außerhalb der Assembly vererbt werden darf. + + + + Wird sofort nach dem Anfügen der Auflistung an das "AssociatedObject" aufgerufen. + + + + + Wird aufgerufen, wenn die Auflistung vom dazugehörenden "AssociatedObject" getrennt wird. Der Aufruf erfolgt vor dem eigentlichen Trennvorgang. + + + + + Wird aufgerufen, wenn ein neues Element der Auflistung hinzugefügt wird. + + Das neue Element. + + + + Wird aufgerufen, wenn ein Element aus der Auflistung entfernt wird. + + Das entfernte Element. + + + + Erstellt eine neue Instanz der . + + Die neue Instanz. + + + + Gibt die Typeinschränkungen für das "AssociatedObject" der "TargetedTriggerAction" und der "EventTriggerBase" an. + + + + + Initialisiert eine neue Instanz der -Klasse. + + Der Einschränkungstyp. + + + + Ruft den Einschränkungstyp ab. + + Der Einschränkungstyp. + + + + Eine stark typisierte Ressourcenklasse zum Nachschlagen von lokalisierten Zeichenfolgen usw. + + + + + Gibt die zwischengespeicherte "ResourceManager"-Instanz zurück, die von dieser Klasse verwendet wird. + + + + + Setzt mithilfe dieser stark typisierten Ressourcenklasse die "CurrentUICulture"-Eigenschaft des aktuellen Threads für alle Ressourcensuchen außer Kraft. + + + + + Sucht nach einer lokalisierten Zeichenfolge, die der folgenden Zeichenfolge ähnelt: "Es ist nicht möglich, dasselbe BehaviorCollection-Element für mehrere Objekte festzulegen." + + + + + Sucht nach einer lokalisierten Zeichenfolge, die der folgenden Zeichenfolge ähnelt: "Eine Instanz eines Verhaltens kann nicht gleichzeitig an mehrere Objekte angefügt werden." + + + + + Sucht nach einer lokalisierten Zeichenfolge, die der folgenden Zeichenfolge ähnelt: "Eine Instanz eines TriggerAction-Elements kann nicht gleichzeitig in mehreren TriggerCollections-Elementen gehostet werden. Entfernen Sie sie aus einem TriggerCollection-Element, bevor Sie sie einem anderen hinzufügen." + + + + + Sucht nach einer lokalisierten Zeichenfolge, die der folgenden Zeichenfolge ähnelt: "Es ist nicht möglich, dasselbe TriggerCollection-Element für mehrere Objekte festzulegen." + + + + + Sucht nach einer lokalisierten Zeichenfolge, die der folgenden Zeichenfolge ähnelt: "Eine Instanz eines Auslösers kann nicht gleichzeitig an mehrere Objekte angefügt werden." + + + + + Sucht nach einer lokalisierten Zeichenfolge, die der folgenden Zeichenfolge ähnelt: "Der Befehl "{0}" ist nicht vorhanden oder nicht in {1} verfügbar." + + + + + Sucht nach einer lokalisierten Zeichenfolge, die der folgenden Zeichenfolge ähnelt: ""{0}" ist kein gültiger Typ für TriggerType-Parameter. Stellen Sie sicher, dass "{0}" von TriggerBase abgeleitet wird." + + + + + Sucht nach einer lokalisierten Zeichenfolge, die der folgenden Zeichenfolge ähnelt: "Es ist nicht möglich, "{1}" dieselbe Instanz von "{0}" mehrmals hinzuzufügen." + + + + + Sucht nach einer lokalisierten Zeichenfolge, die der folgenden Zeichenfolge ähnelt: "Ereignis "{0}" vom Typ "{1}" weist eine inkompatible Signatur auf. Stellen Sie sicher, dass das Ereignis öffentlich ist und die Anforderungen des Delegats "EventHandler" erfüllt." + + + + + Sucht nach einer lokalisierten Zeichenfolge, die der folgenden Zeichenfolge ähnelt: "Ein Ereignis mit der Bezeichnung "{0}" unter dem Typ "{1}" kann nicht gefunden werden." + + + + + Sucht nach einer lokalisierten Zeichenfolge, die der folgenden Zeichenfolge ähnelt: "Ein Objekt des Typs "{0}" kann nicht über eine {3}-Eigenschaft des Typs "{1}" verfügen. Instanzen des Typs "{0}" können nur über eine {3}-Eigenschaft des Typs "{2}" verfügen." + + + + + Sucht nach einer lokalisierten Zeichenfolge, die der folgenden Zeichenfolge ähnelt: "Typ "{0}" kann nicht Typ "{1}" angefügt werden. Instanzen des Typs "{0}" können nur an Objekte des Typs "{2}" angefügt werden." + + + + + Sucht nach einer lokalisierten Zeichenfolge, die der folgenden Zeichenfolge ähnelt: "TargetName "{0}" kann nicht aufgelöst werden." + + + + diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/en/Microsoft.Expression.Controls.xml b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/en/Microsoft.Expression.Controls.xml new file mode 100644 index 0000000..aaaf85b --- /dev/null +++ b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/en/Microsoft.Expression.Controls.xml @@ -0,0 +1,557 @@ + + + + Microsoft.Expression.Controls + + + + + Called before the polylines are looped over. + + + + + Computes the value used when LayoutPath.Capacity is set to Auto. + + + + + Checks whether or not the polylines should continue being looped over. + + + + + Called before a new polyline is marched. + + + + + Called when a polyline is completed. + + The remaining arclength in the polyline. + + + + Called when a step is successfully completed. + + The actual step distance. + This may be different than Step if another polyline has been wrapped to. + + + + Distributes the children of a path panel along a given layout path. + + The path panel. + The index of the path in pathPanel.LayoutPaths. + The index of the first child to be laid out on this path. + The index of the next child to be distributed. If childIndex is returned, this function has done nothing. + + + + The index of the next child to be arranged. + + + + + The distance in arc length that will be used for layout. + + + + + The distance in arc length to walk along the current polyline. + + + + + The total number of elements to be arranged on the LayoutPath. + + + + + Distributes the children of a path panel along a layout path. + Even distribution means that there is equal arclength between the centers of all + the elements on the path. + + + + + Specifies which path layout properties have changed. + + + + + Provides data for the event. + + + + + Initializes a new instance of the class. + + The data for the event. + + + + Gets the properties changed in a event. + + + + + Encapsulates the data needed to update a . + + + + + Gets or sets the index of the path on which an element is arranged. + + + + + Gets or sets the index of an element in a collection of elements. + + + + + Gets or sets the index of an element on a path. + + + + + Gets or sets the offset of an element proportional to the total length of a collection of paths. + + + + + Gets or sets the offset of an element proportional to the length of a path. + + + + + Gets or sets the angle perpendicular to the path at an element's location. + + + + + Gets or sets the angle perpendicular to the path at an element's location if the element is oriented to the path. + + + + + Gets or sets whether or not an element is arranged on a path. + + + + + Represents an element that is arranged by a . + + + Implementing this interface enables to set these properties when the element is arranged. + This interface is not intended for general implementation. + + + + + Updates the properties based on the given and raises the event. + + The data needed to update the . + + + + Occurs when one or more of the properties change. + + + This event is raised whenever the item’s position along the path is updated. This can occur due to changes in the properties on the or changes to . + + + + + Gets the index of the path on which the item is arranged. + + + + + Gets the index of the item in a collection of items. + + + + + Gets the index of the item on the path on which it is arranged. + + + + + Gets the offset of the item proportional to the total length of a collection of paths. + + + + + Gets the offset of the item proportional to the length of the path on which it is arranged. + + + + + Gets the angle perpendicular to the path at the item's location. + + + + + Gets the angle perpendicular to the path at the items's location if the item is oriented to the path. + + + + + Gets or sets whether or not the item is arranged on the path. + + + + + Converts a representing whether or not an element is arranged to a value used to scale the element. + + + + + Throws a exception in all cases. + + The target data being passed to the source. + The of data expected by the source object. + An optional parameter to be used in the converter logic. + The culture of the conversion. + The value to be passed to the source object. + + + + Converts the specified to a . + + The source data being passed to the target. + The of data expected by the target dependency property. + An optional parameter to be used in the converter logic. + The culture of the conversion. + If the is true, 1 is returned. Else, 0 is returned. + + + + Specifies the distribution of a . + + + + + Specifies the orientation of elements on a . + + + + + Specifies the method for altering the on an open path. + + + + + Describes a path along which elements are arranged. + + + + + Ideally, we want to cache the Bezier curves before flattening, because transform will affect flattening. + That requires us to cache curves that we don't support very well yet. Instead, we cache the flatten points + in distribution strategy and transform them on demand. + + + + + Gets or sets the element that defines the path. + + + + + Gets or sets whether items are laid out evenly or with a fixed padding. + + + + + Gets or sets the maximum number of items displayed on the . + + + + + Gets or sets the distance in pixels along the arc length of the between two items. + + + + + Gets or sets the orientation of the items. + + + This property is supported on , but not . + + + + + Gets or sets the distance from the start of the to place the first item. + + + + + Gets or sets the percentage of the that participates in layout. + + + + + Gets or set the method to alter on an open path. + + + + + Gets the computed Capacity. + + + + + Gets whether or not the is valid in the context. + A is not valid if it is a descendant of the in which it is used. + + + + + Distributes the children of a layout path based on the size of the children and a given padding between the children. + The distance in arclength between children is determined by the padding plus the sum of the radii of the children's bounding boxes. + + + + + Contains a list of items that are laid out along one or more paths. + + + + + Initializes a new instance of the class. + + + + + Creates the element used to display a specified item. + + A corresponding to a specified item. + + + + Determines if the specified item is (or is eligible to be) its own item container. + + true if the item is its own item container; otherwise, false. + The specified item. + + + + Positions child elements. + + The size that this object should use to arrange its child elements. + The actual size used. + + + + Gets or sets a collection of objects that define the path(s) used for layout. + + + + + Gets or sets the index to use within the list of items. + + + + + Gets or sets whether the item index wraps to the beginning of the collection when StartItemIndex is greater than 0. + + + + + Represents an item in a . + + + + + Initializes a new instance of the class. + + + + + For a description of this member, see . + + + + + For a description of this member, see . + + + + + For a description of this member, see . + + + + + For a description of this member, see . + + + + + For a description of this member, see . + + + + + For a description of this member, see . + + + + + For a description of this member, see . + + + + + For a description of this member, see . + + + + + For a description of this member, see . + + + + + For a description of this member, see . + + + + + Arranges child elements along one or more path. + + + can be used as an alternative to when selection is not necessary. + The property is not supported on . + + + + + Initializes a new instance of the class. + + + + + Measures the size required for child elements. + + The available size that this element can give to child elements. + The size that this element determines it needs during layout, based on its calculations of child element sizes. + + + + Positions child elements. + + The size that this object should use to arrange its child elements. + The actual size used. + + + + Arranges the child at the given index at a particular location on a LayoutPath. + + An index from the range 0 to PathPanel.Count. + The index of the layout path on which to arrange the child. + The polyline in the layout path. + The location on the polyline. + The index of the child on the LayoutPath. + + + + Calculates the radius of the bounding circle for the child at the given index. + + An index from the range 0 to PathPanel.Count. + + + + Gets or sets a collection of objects that define the path(s) used for layout. + + + + + Gets or sets the index to use within the list of items. + + + + + Gets or sets whether the item index wraps to the beginning of the collection when is greater than 0. + + + + + The subset of LayoutPaths that are attached and not collapsed. + + + + + Count is the number of Children that the PathPanel will lay out. + If StartItemIndex > 0 and WrapItems is false, then this can be less than PathPanel.Children.Count + + + + + Gets the panel that contains the containers of an ItemsControl. + + The ItemsControl. + + The panel that contains the containers of an ItemsControl, or null + if the panel could not be found. + + + is null. + + + + + Traverses a tree by accepting an initial value and a function that + retrieves the child nodes of a node. + + The type of the stream. + The initial node. + A function that retrieves the child + nodes of a node. + A predicate that evaluates a node + and returns a value indicating whether that node and it's children + should be traversed. + A stream of nodes. + + + + Get the visual tree children of an element. + + The element. + The visual tree children of an element. + + is null. + + + + + Get the visual tree children of an element and the element itself. + + The element. + + The visual tree children of an element and the element itself. + + + + + Retrieves all the logical children of a framework element using a + breadth-first search. For performance reasons this method manually + manages the stack instead of using recursion. + + The parent framework element. + The logical children of the framework element. + + + + Retrieves all the logical descendents of a framework element using a + breadth-first search. For performance reasons this method manually + manages the stack instead of using recursion. + + The parent framework element. + The logical children of the framework element. + + + diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/en/Microsoft.Expression.Drawing.xml b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/en/Microsoft.Expression.Drawing.xml new file mode 100644 index 0000000..f396802 --- /dev/null +++ b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/en/Microsoft.Expression.Drawing.xml @@ -0,0 +1,1770 @@ + + + + Microsoft.Expression.Drawing + + + + + Renders a callout shape supporting several shapes combined with a callout arrow. + + + + + Provides a base class of a composite shape that derives from and implements . + + + implements interface, + and supports rendering a geometry similar to , but the geometry can be rendered outside the layout boundary. + + A typical implementation has a customized default template in generic.xaml which template-binds most shape properties to a . + It should also extend the property to customize the appearance of the . + + This class also supports showing content together with the shape. + + + + + Provides an interface to describe the parameters of a Shape. + + + This interface is the data for communication between Shape and GeometrySource. + Typically, a concrete implementation of IShape will implement this interface and pass it into + GeometrySource.UpdateGeometry(), which will then consume the shape as a read-only data provider. + + + + + Provides the necessary interface to define a Shape. + Both primitive and composite shapes need to match this interface, although they might derive from different types of FrameworkElement. + + + + + Invalidates the geometry for a . After the invalidation, the will recompute the geometry, which will occur asynchronously. + + + + Gets or sets the that specifies how to paint the interior of the shape. + A that describes how the shape's interior is painted. The default is null. + + + Gets or sets the that specifies how the outline is painted. + A that specifies how the outline is painted. + + + Gets or sets the width of the stroke outline. + The width of the outline, in pixels. + + + Gets or sets a enumeration value that describes how the shape fills its allocated space. + One of the enumeration values. The default value at runtime depends on the type of . + + + + Gets the rendered geometry presented by the rendering engine. + + + + + Gets the margin between logical bounds and actual geometry bounds. + This can be either positive (as in ) or negative (as in ). + + + + + Occurs when RenderedGeometry is changed. + + + + + Extends how the shape is drawn with creating geometry source. + + + + + Invalidates the geometry for a . After the invalidation, the will recompute the geometry, which will occur asynchronously. + + + + Provides the behavior for the Arrange portion of a Silverlight layout pass. Classes can override this method to define their own Arrange pass behavior. + The actual size used once the element is arranged in layout. + The final area within the parent that this object should use to arrange itself and its children. + will recompute the Geometry when it's invalidated and update the RenderedGeometry and GeometryMargin. + + + + Transforms a string content into with center alignment and multiple line support. + + + Use template-binding to instead of to enable this method. + + + + + Gets or sets the that specifies how to paint the interior of the shape. + + A that describes how the shape's interior is painted. + + + Gets or sets the that specifies how the outline is painted. + A that specifies how the outline is painted. + + + Gets or sets the width of the stroke outline. + The width of the outline, in pixels. + + + Gets or sets a enumeration value that describes how the shape fills its allocated space. + One of the enumeration values. + + + Gets or sets a enumeration value that describes the at the start of a . + A value of the enumeration that specifies the shape at the start of a . + + + Gets or sets a enumeration value that describes the at the end of a line. + One of the enumeration values for . + + + Gets or sets a enumeration value that specifies the type of join that is used at the vertices of a . + A value of the enumeration that specifies the join appearance. + + + Gets or sets a limit on the ratio of the miter length to half the of a element. + The limit on the ratio of the miter length to the of a element. This value is always a positive number that is greater than or equal to 1. + + + Gets or sets a collection of values that indicate the pattern of dashes and gaps that is used to outline shapes. + A collection of values that specify the pattern of dashes and gaps. + + + Gets or sets a enumeration value that specifies how the ends of a dash are drawn. + One of the enumeration values for . The default is . + + + Gets or sets a that specifies the distance within the dash pattern where a dash begins. + A that represents the distance within the dash pattern where a dash begins. The default value is 0. + + + + Gets the rendered geometry presented by the rendering engine. + + + + + Gets the margin between the logical bounds and the actual geometry bounds. + This can be either positive (as in ) or negative (as in ). + + + + + Gets or sets the internal content that converts a string into a center-aligned, multiple-line TextBlock. + + + + + Occurs when RenderedGeometry is changed. + + + + + Gets or sets the position of the callout relative to the top and left corner. + + + + + Gets or sets the callout style. + + + + + Provides a base class of a composite shape that derives from and implements . + + + implements interface, + and supports rendering a geometry similar to , but the geometry can be rendered outside the layout boundary. + + A typical implementation has a customized default template in generic.xaml which template-binds most shape properties to a . + It should also extend the property to customize the appearance of the . + + + + + Extends how the shape is drawn with creating geometry source. + + + + + Invalidates the geometry for a . After the invalidation, the will recompute the geometry, which will occur asynchronously. + + + + Provides the behavior for the Arrange portion of a Silverlight layout pass. Classes can override this method to define their own Arrange pass behavior. + The actual size used once the element is arranged in layout. + The final area within the parent that this object should use to arrange itself and its children. + will recompute the Geometry when it's invalidated and update the RenderedGeometry and GeometryMargin. + + + + Gets or sets the that specifies how to paint the interior of the shape. + + A that describes how the shape's interior is painted. + + + Gets or sets the that specifies how the outline is painted. + A that specifies how the outline is painted. + + + Gets or sets the width of the stroke outline. + The width of the outline, in pixels. + + + Gets or sets a enumeration value that describes how the shape fills its allocated space. + One of the enumeration values. + + + Gets or sets a enumeration value that describes the at the start of a . + A value of the enumeration that specifies the shape at the start of a . + + + Gets or sets a enumeration value that describes the at the end of a line. + One of the enumeration values for . + + + Gets or sets a enumeration value that specifies the type of join that is used at the vertices of a . + A value of the enumeration that specifies the join appearance. + + + Gets or sets a limit on the ratio of the miter length to half the of a element. + The limit on the ratio of the miter length to the of a element. This value is always a positive number that is greater than or equal to 1. + + + Gets or sets a collection of values that indicate the pattern of dashes and gaps that is used to outline shapes. + A collection of values that specify the pattern of dashes and gaps. + + + Gets or sets a enumeration value that specifies how the ends of a dash are drawn. + One of the enumeration values for . The default is . + + + Gets or sets a that specifies the distance within the dash pattern where a dash begins. + A that represents the distance within the dash pattern where a dash begins. The default value is 0. + + + + Gets the rendered geometry presented by the rendering engine. + + + + + Gets the margin between the logical bounds and the actual geometry bounds. + This can be either positive (as in ) or negative (as in ). + + + + + Occurs when RenderedGeometry is changed. + + + + + Renders a bent line segment with optional arrow heads on both ends. + + + + Provides the behavior for the Measure pass of Silverlight layout. Classes can override this method to define their own Measure pass behavior. + The size that this object determines it requires during layout, based on its calculations of child object allotted sizes, or possibly on other considerations such as fixed container size. + The available size that this object can give to child objects. Infinity () can be specified as a value to indicate that the object will size to whatever content is available. + + A default can render at anysize. + The will stretch to the layout boundary and render to the outside if necessary. + + + + + Gets or sets the amount of bend for the arrow. + + The bend amount between 0 and 1. + + + + Gets or sets how the arrow head is rendered at the start of the line. + + + + + Gets or sets how the arrow head is rendered at the end of the line. + + + + + Gets or sets from which corner to start drawing the arrow. + + + + + Gets or sets the length of the arrow in pixels. + + + + + Provides an items control that displays one selected item, and allows panning between items using touch gestures. + + + + + The constructor for PanningItems. + + + + + Called when the PanningItems template is applied. + + + + + Gets or sets the orientation of items in the control. + + + + + Gets or sets the flick tolerance. This can be a value between 0 and 1. + It represents the percentage of the size of the PanningItems needed to be covered by the flick gesture to trigger an items change. + + + + + Gets or sets the item before the selected item. + + + + + Gets or sets the item after the selected item. + + + + + Gets or sets whether the contents of the items control will loop, so that the first item will follow the last item. + + + + + Gets or sets the value of the slider controlling the panning motion. + + + + + Helper class to work with PathGeometry. + + + + + Converts a string in the path mini-language into a PathGeometry. + + A string in the path mini-language. + + + + Converts the given geometry into a single PathGeometry. + + + + + Updates the given geometry as PathGeometry with a polyline matching a given point list. + + + + + Parses abbreviated geometry sytax. + + + + + Helper class to convert an ArcSegment to BezierSegment(s). + + + Helper class to work with PathSegment and all variations. + + + Strategy classes to handle different types of PathSegment. + + + + + Converts an arc segment into Bezier format. + Returns BezierSegment, PolyBezierSegment, LineSegment, or null. + When returning null, the arc degenerates into the start point. + + + + + Avoid calling the three-parameter constructor, since it always sets a local value for IsStroked. + + + + + + + Updates the SegmentCollection with a given polyline matching a given point list. + Tries to keep changes minimum and returns false if nothing has been changed. + + + + + Updates the collection[index] segment with a poly-Bezier segment matching a given point list. + A given point list must contain 3*N points for N Bezier segments. + + + + + Tests if a given path segment is empty. + + + + + Gets the point count in a given path segment. + + + + + Gets the last point of a given path segment. + + + + + Gets the point of a given index in a given segment. + If input is (-1), returns the last point. + + + + + Flattens a given segment and adds resulting points into a given point list. + + The segment to be flatten. + The resulting points list. + The start point of the segment. + The error tolerance. Must be positive. Can be zero. Fallback to default tolerance. + + + + ArcToBezier, computes the Bezier approximation of an arc. + + + This utility computes the Bezier approximation for an elliptical arc as + it is defined in the SVG arc spec. The ellipse from which the arc is + carved is axis-aligned in its own coordinates, and defined there by its + x and y radii. The rotation angle defines how the ellipse's axes are + rotated relative to the x axis. The start and end points define one of 4 + possible arcs; the sweep and large-arc flags determine which one of + these arcs will be chosen. + + Returning cPieces = 0 indicates a line instead of an arc + cPieces = -1 indicates that the arc degenerates to a point + + + + + Gets the number of Bezier arcs, and sine/cosine of each. + + + This is a private utility used by ArcToBezier. Breaks the arc into + pieces so that no piece will span more than 90 degrees. The input + points are on the unit circle. + + + + + GetBezierDistance returns the distance as a fraction of the radius. + + + Get the distance from a circular arc's end points to the control points + of the Bezier arc that approximates it, as a fraction of the arc's + radius. + + Since the result is relative to the arc's radius, it depends strictly on + the arc's angle. The arc is assumed to be of 90 degrees or less, so the + angle is determined by the cosine of that angle, which is derived from + rDot = the dot product of two radius vectors. We need the Bezier curve + that agrees with the arc's points and tangents at the ends and midpoint. + Here we compute the distance from the curve's endpoints to its control + points. + + Since we are looking for the relative distance, we can work on the unit + circle. Place the center of the circle at the origin, and put the X axis + as the bisector between the 2 vectors. Let a be the angle between the + vectors. Then the X coordinates of the 1st and last points are cos(a/2). + Let x be the X coordinate of the 2nd and 3rd points. At t=1/2 we have a + point at (1,0). But the terms of the polynomial there are all equal: + + (1-t)^3 = t*(1-t)^2 = t^2*(1-t) = t^3 = 1/8, + + so from the Bezier formula there we have: + + 1 = (1/8) * (cos(a/2) + 3x + 3x + cos(a/2)), + + hence + + x = (4 - cos(a/2)) / 3 + + The X difference between that and the 1st point is: + + DX = x - cos(a/2) = 4(1 - cos(a/2)) / 3. + + But DX = distance / sin(a/2), hence the distance is + + dist = (4/3)*(1 - cos(a/2)) / sin(a/2). + + Rather than the angle a, we are given rDot = R^2 * cos(a), so we + multiply top and bottom by R: + + dist = (4/3)*(R - Rcos(a/2)) / Rsin(a/2) + + and use some trig: + ________________ + cos(a/2) = \/(1 + cos(a)) / 2 + ______________________ + R*cos(a/2) = \/(R^2 + R^2 cos(a)) / 2 + ________________ + = \/(R^2 + rDot) / 2 + + Let A = (R^2 + rDot)/2. + ____________________ + R*sin(a/2) = \/R^2 - R^2 cos^2(a/2) + _______ + = \/R^2 - A + + so: + _ + 4 R - \/A + dist = - * ------------ + 3 _______ + \/R^2 - A + + History: + 5/29/2001 MichKa + Created it. + + + + + Returns false if the radius is too small compared to the chord length (returns true on NaNs) + radius is modified to the value that is accepted. + + + + + A utility class to flatten Bezier curves. + + + + + Flattens a Bezier cubic curve and adds the resulting polyline to the third parameter. + + The four Bezier cubic control points. + The maximum distance between two corresponding points on the true curve + and on the flattened polyline. Must be strictly positive. + Where to add the flattened polyline. + True to skip the first control point when adding the flattened polyline. + Where to add the value of the Bezier curve parameter associated with + each of the polyline vertices. + If is empty, the first control point + and its associated parameter are always added. + + + + Flattens a Bezier quadratic curve and adds the resulting polyline to the third parameter. + Uses degree elevation for Bezier curves to reuse the code for the cubic case. + + The three Bezier quadratic control points. + The maximum distance between two corresponding points on the true curve + and on the flattened polyline. Must be strictly positive. + Where to add the flattened polyline. + Whether to skip the first control point when adding the flattened polyline. + Where to add the value of the Bezier curve parameter associated with + each of the polyline vertices. + If is empty, the first control point and + its associated parameter are always added. + + + + Extension methods that support non-geometry types. + + + + + Allows the application of an action delegate (often a very simple lambda) against an entire sequence. + + + + + Allows the application of an action delegate (often a very simple lambda) against an entire sequence. + + + + + Allows the application of an action delegate (often a very simple lambda) against an entire sequence with the index of each item. + + + + + Ensures the count of a list to a given count. Creates with a given factory or removes items when necessary. + If Input IList is a List, AddRange or RemoveRange is used when there's no factory. + + + + + Ensures the count of a list is at least the given count. Creates with a given factory. + + + + + Add a range of items to the end of a collection. + If a collection is a list, List.AddRange is used. + + + + + Gets the last item of a given list. + + + + + Removes the last item from the given list. + + + + + Makes a copy of obj and all it's public properties, including all collection properties. + + + + + Sets the value if different. Avoids setting a local value if possible. + Returns true when the value has been changed. + + + + + Clears the dependency property when it is locally set on the given dependency object. + Returns false if the dependeny property is not locally set. + + + + + Finds all visual descendants of a given type and condition using breadth-first search. + + + + + Gets all visual children in IEnumerable. + + + + + Unifies the interface of PropertyMetadata in WPF and Silverlight. + Provides the necessary notification about render, arrange, or measure. + + + + + This private Ctor should only be used by AttachCallback. + + + + + Chain InternalCallback() to attach the instance of DrawingPropertyMetadata on property callback. + In Silverlight, the property metadata is thrown away after setting. Use callback to remember it. + + + + + Before chaining the original callback, trigger DrawingPropertyChangedEvent. + + + + + Extension methods for geometry-related data structures (Point/Vector/Size/Rect). + + + + + Resizes the rectangle to a relative size while keeping the center invariant. + + + + + Gets the difference vector between two points. + + + + + Memberwise plus for Point. + + + + + Memberwise minus for Point. + + + + + Converts a string of mini-languages to a . + + See: Path Markup Syntax(http://msdn.microsoft.com/en-us/library/cc189041(VS.95).aspx) + The string of path mini-languages for describing geometric paths. + A converted from the the path mini-languages. + + + + Flattens a and adds result points to a given . + + The input . + The point list to which result points will append. + A positive number specifying the maximum allowed error from the result points to the input path figure. A Value of zero allows the algorithm to pick the tolerance automatically. + + + + Gets the normalized arc in a (0,0)(1,1) box. + Zero degrees is mapped to [0.5, 0] (up), and clockwise. + + + + + Gets the absolute arc point in a given bound with a given relative radius. + + + + + Gets the angle on an arc relative to a (0,0)(1,1) box. + Zero degrees is mapped to [0.5, 0] (up), and clockwise. + + + + + Gets the angle on an arc from a given absolute point relative to a bound. + + + + + Computes the transform that moves "Rect from" to "Rect to". + + + + + Computes the transform from the coordinate space of one UIElement to another. + + The source element. + The destination element. + The transform between the UIElements, or null if it cannot be computed. + + + + Maps a relative point to an absolute point using the mapping from a given bound to a (0,0)(1,1) box. + + + + + Maps an absolute point to a relative point using the mapping from a (0,0)(1,1) box to a given bound. + + + + + Computes the bound after stretching within a given logical bound. + If stretch to uniform, use given aspectRatio. + If aspectRatio is empty, it's equivalent to Fill. + If stretch is None, it's equivalent to Fill or Uniform. + + + + + Returns the mid point of two points. + + The first point. + The second point. + The mid point between and . + + + + Returns the dot product of two vectors. + + The first vector. + The second vector. + The dot product of and . + + + + Returns the dot product of two points. + + + + + Returns the distance between two points. + + The first point. + The second point. + The distance between and . + + + + Returns the square of the distance between two points. + + The first point. + The second point. + The square of the distance between and . + + + + Determinant of the cross product. Equivalent to directional area. + + + + + Computes the normal direction vector of given line segments. + + + + + Computes the perpendicular vector, 90-degrees, counter-clockwise. + Vector to the right perpendicular results in a vector to up. + + + + + Returns whether the two geometries are identical. + + + + + Ensures the value is an instance of result type (T). If not, replace with a new instance of type (T). + + + + + Ensures the list[index] is an instance of result type (T). If not, replace with a new instance of type (T). + + + + + Helper class that provides static properties and methods related to floating point arithmetic. + + + + + The minimum distance to consider that two values are same. + Note: internal floating point in MIL/SL is float, not double. + + + + + The value of the angle of a full circle. + + + + + The inner radius for a pentagram polygon shape, at precision of three digits in percentage. + (1 - Sin36 * Sin72 / Sin54) / (Cos36) ^ 2, which is 0.47210998990512996761913067272407 + + + + + Determines whether a System.Double value is small enough to be considered + equivalent to zero. + + + True if value is smaller than DoubleTolerance; + otherwise, False. + + + + Returns the value that's within the given range. + A given min/max that is null equals no limit. + + + + + Computes the Euclidean norm of the vector (x, y). + + The first component. + The second component. + The Euclidean norm of the vector (x, y). + + + + Computes a real number from the mantissa and exponent. + + + + The value of x * 2^exp if successful. + + + + Tests a double. + + The double to test. + True if x is not a NaN and is not equal to plus or minus infinity; + otherwise, False. + + + + Helper class to work with PathFigure. + + + + + Flattens the given figure and adds result points to the given point list. + + The error tolerance. Must be positive. Can be zero. Fallback to default tolerance. + + + + Iterates all segments inside a given figure, and returns the correct start point for each segment. + + + + + Synchronizes the figure to the given list of points as a single polyline segment. + Tries to keep the change to a minimum and returns false if nothing has been changed. + + + + + Synchronizes the given figure to be a closed ellipse with two arc segments. + + + + + A Tuple data structure for PathSegment and the corresponding StartPoint. + + + + + Represents a polyline with a list of connecting points. + A closed polygon is represented by repeating the first point at the end. + The differences, normals, angles, and lengths are computed on demand. + + + + + Constructs a polyline with two or more points. + + + + + The forward difference vector of polyline. + Points[i] + Differences[i] = Points[i+1] + + + + Compute the normal vector of given location (lerp(index, index+1, fraction). + If the location is within range of cornerRadius, interpolate the normal direction. + + The range of normal smoothless. If zero, no smoothness and return the exact normal on index. + + + + The polyline is closed when the first and last points are repeated. + + + + + The count of points in this polyline. + + + + + The total arc length of this polyline. + + + + + The point array of this polyline. + + + + + The length between line segments, Points[i] to Points[i+1]. + + + + + The list of normal vectors for each segment. + Normals[i] is the normal of segment p[i] to p[i + 1]. + Normals[N-1] == Normals[N-2]. + + + + + The list of Cos(angle) between two line segments on point p[i]. + Note: The value is cos(angle) = Dot(u, v). Not in degrees. + + + + + The list of accumulated length from points[i] to points[0]. + + + + + The data structure to communicate with the PathMarch algorithm. + + + + + Gets the interpolated position of this MarchLocation on a given point list. + + + + + Get the interpolated normal direction of this MarchLocation on a given normal vector list. + + + + + Gets the arc length of this MarchLocation to the start of the entire polyline. + + + + + The reason why this location is sampled. + + + + + The index of the point on a polyline point list. + + + + + Ratio: [0, 1], which is always before / (before + after). + + + + + Arc length before a stop point. Non-negative and less than Length[index]. + + + + + Arc length after the stop point. Non-negative and less than Length[index]. + + + + + Remaining length within a step to hit next stop. Positive to go forward. Negative to go backward. + + + + + Helper class to work with list of points + + + + + March the given polyline with a given interval and output each stop through callback. + + The polyline points to march on. + The arc length to march before stopping at the first point. + The max angle between edges to be considered a corner vertex. + Callback when marching algorithm stop at a point. The callback returns the arc length for next stop. + If the asked length is negative, march backwards. If callback returns NaN, finish marching. + + + + Reorders the given list of polylines so that the polyline with a given arc length in the list is the first. + Polylines that preceded this line are concatenated to the end of the list, with the first polyline at the very end. + + A list of polylines. + The arc length in the entire list of polylines at which to find the start line. + The arc length into that line is returned in this variable. + The reordered and wrapped list. + + + + A random generator that supports uniform and Gaussian distributions. + + + + + Generates a pair of independent, standard, normally distributed random numbers, + zero expectation, unit variance, using polar form of the Box-Muller transformation. + + + + + Private constructor. Force to use factory methods. + + + + + Creates a line segment + + + + + Creates a cubic bezier segment from quatratic curve (3 control points) + + + + + Creates a cubic bezier segment with 4 control points. + + + + + Control points of path segment. Length is variant. + Line segment has 2 points, Cubic bezier has 4 points. + + + + + Compares two transforms for an exact match. Transforms with the same value but different structure (e.g. Translate(0,0) and Rotate(0) are not considered equivalent). + + The first transform. + The second transform. + + + + + Specifies the unit of thickness. + + + + + Unit in pixels. + + + + + Unit in percentage relative to the bounding box. + + + + + Provides the base class of a source of geometry. + Generates and caches the geometry based on the input parameters and the layout bounds. + + + A typical implementation will extend the UpdateCachedGeometry() to update this.cachedGeometry. + This base class will then handle the invalidation, pipeline to the geometry effects, and then cache relative to the layout bounds. + An implementation should try to reuse the cached geometry as much as possible to avoid reconstruction in the rendering thread. + An implementation can extend the ComputeLogicalBounds to handle Stretch differently. + + The type of geometry source parameter on which the base class is working on. + + + + Provides an interface to describe the source of a geometry. + + + This interface is designed to expose the geometry source in a non-generic way. + Typical implementation should subclass GeometrySource instead of implementing this interface directly. + + + + + Notifies that the geometry has been invalidated because of external changes. + + + Geometry is typically invalidated when parameters are changed. + If any geometry has been invalidated externally, the geometry will be recomputed even if the layout bounds change. + + + + + Update the geometry using the given parameters and the layout bounds. + Returns false if nothing has been updated. + + + + + Gets or sets the resulting geometry after the latest UpdateGeometry(). + + + + + Gets the bounding box where the geometry should stretch to. + The actual geometry might be smaller or larger than this. + should already take stroke thickness and stretch into consideration. + + + + + Gets the actual bounds of FrameworkElement. + includes logical bounds, stretch, and stroke thickness. + + + + + Specifics the geometry from the previous geometry effect process. + + + + + Notifies that the geometry has been invalidated because of external changes. + + + The geometry is typically invalidated when parameters are changed. + If any geometry has been invalidated externally, the geometry will be recomputed regardless if the layout bounds change. + + + + + Update the geometry based on the given parameters and layoutBounds. + Returns false if the geometry hasn't been changed. + + + + + Extends the way to provide geometry by implementing this function. + Returns true when any of the geometry is changed. + + + + + Extends the way to handle stretch mode. + The default is to always use Stretch.Fill and center stroke. + + + + + Apply the geometry effect when dirty or forced and update this.Geometry. + Otherwise, keep this.Geometry as this.cachedGeometry. + + + + + Gets or sets the resulting geometry after the latest UpdateGeometry(). + + + + + Gets the bounding box that the geometry should stretch to. + The actual geometry might be smaller or larger than this. + should already take stroke thickness and stretch into consideration. + + + + + + Gets the actual bounds of FrameworkElement. + includes logical bounds, stretch and stroke thickness. + + + + + + Arc recognizes Stretch.None as the same as Stretch.Fill, assuming aspect ratio = 1:1. + + + + + Normalize thickness, both relative to the bounding box and the absolute pixel. + Relative thickness = 0 -> full circle radius or clamped. + Relative thickness = 1 -> shrank to a dot, or degenerated. + + + + + The arc is degenerated to a line pointing to center / normal inward. + + + + + Compute a list of angle pairs, defining the ranges in which arc sample should locate. + The return value have 2, 4, or 6 double values, each pair defines a range and they are in the order + to span the angles from given start to end angles. The ranges will break at the self-intersect angle. + If input start/end are within the invalid range between self intersect angle, it will be moved to neighboring self intersect. + + + + + Move angle to 0-90 range. + + + + + Compute all pieces of inner curves with each pair of input angles, and connect them with poly Bezier segments. + The new segments are output to given figure.Segments list from the given index. The start point is output seperately. + + + + + Compute one piece of inner curve with given angle range, and output one piece of smooth curve in format of poly Beizer semgents. + + + + + Compute the parameter (angle) of the self-intersect point for given ellipse with given thickness. + The result is always in first quadrant, and might be 0 or 90 indicating no self-intersect. + Basic algorithm is to binary search for the angle that sample point is not in first quadrant. + + + + + Specifies the direction the arrow points. + + + + + The arrow points to the left. + + + + + The arrow points to the right. + + + + + The arrow points up. + + + + + The arrow points down. + + + + + B + /| + / C--D + A | + \ C--D + \| + B + Algorithm only uses Width/Height assuming top-left at 0,0. + + + + + Specifies the rendering style of a callout shape. + + + + + A rectangular callout. + + + + + A rectangular callout with rounded corners. + + + + + A oval-shaped callout. + + + + + A cloud-shaped callout. + + + + + Updates the edge line, and then connects to the anchor point if necessary. + + + + + Updates the polyline segment, and then connects start, anchor, and end points with the callout style. + + + + + Updates the line segment to a given point. + + + + + Computes the corner points in a clockwise direction, with eight points for the four corners. + + + + + The corner arc is always smaller than a 90-degree arc. + + + + + Provides the base class for GeometryEffect that transforms a geometry into another geometry. + + + This class provides the basic implementation of processing the rendered geometry of a IShape before it's passed to rendering. + A typical implementation will extend the virtual function to transform the input geometry. + is typically attached to as an attached property and activated when geometry is updated. + The of a will replace the rendered geometry in . + + + + + Gets the geometry effect as an attached property on a given dependency object. + + + + + Sets the geometry effect as an attached property on a given dependency object. + + + + + Makes a deep copy of the using its current values. + + + + + Makes a deep copy of the geometry effect. Implements CloneCurrentValue in Silverlight. + + A clone of the current instance of the geometry effect. + + + + Tests if the given geometry effect is equivalent to the current instance. + + A geometry effect to compare with. + Returns true when two effects render with the same appearance. + + + + Specifics the geometry from the previous geometry effect process. + + + + + Invalidates the geometry effect without actually computing the geometry. + Notifies all parent shapes or effects to invalidate accordingly. + + + + + Processes the geometry effect on a given input geometry. + Stores the result in GeometryEffect.OutputGeometry. + + Returns false if nothing has been changed. + + + + Extends the way of updating cachedGeometry based on a given input geometry. + + + + + Notified when detached from a parent chain. + + + + + Notified when attached to a parent chain. + + + + + Invalidates the geometry on a given dependency object when + the object is a valid parent type (IShape or GeometryEffect). + + + + + Implement the Freezable in WPF. + + + + + The default geometry effect that only passes through the input geometry. + + + + + Gets the output geometry of this geometry effect. + + + + + Parent can be either IShape or GeometryEffectGroup. + + + + + Provides the conversion between string and geometry effects. + + + This class enables the brief syntax in XAML like GeometryEffect="Sketch". + Creates a clone of the instance of the geometry effect so it can be used as a resource. + + + + + Builds a preset list of supported geometry effects. + + + + + A GeometryEffect that can be converted from a string type. + + + + + A GeometryEffect that can be converted to a string type. + + + + + Converts a string to a geometry effect. The fallback value is null. + + + + + Converts a geometry effect into a string. The fallback value is null. + + + + + Specifies the reason of being called. + + + + + Geometry has been invalidated because a property has been changed. + + + + + Geometry has been invalidated because a property is being animated. + + + + + Geometry has been invalidated because a child has been invalidated. + + + + + Geometry has been invalidated because a parent has been invalidated. + + + + + Geometry has been invalidated because a new template has been applied. + + + + + Provides helper extension methods to work with IGeometrySource and parameters. + + + + + Specifies the arrow head type. + + + + + No arrow head. + + + + + A triangle arrow head. + + + + + A stealth triangle arrow head. + + + + + An open triangle arrow head. + + + + + An oval arrow head. + + + + + Specifies the corner location. + + + + + On the top left of the bounding box. + + + + + On the top right of the bounding box. + + + + + On the bottom right of the bounding box. + + + + + On the bottom left of the bounding box. + + + + + Polygon recognizes Stretch.None as the same as Stretch.Fill. + + + + + A geometry effect that transforms any geometry into a Sketch style as in SketchFlow. + + + + + Makes a deep copy of the geometry effect. + + A clone of the current instance of the geometry effect. + + + + Tests if the given geometry effect is equivalent to the current instance. + + A geometry effect to compare with. + Returns true when two effects render with the same appearance. + + + + Updating cachedGeometry based on the given input geometry. + + An input geometry. + Returns true when anything on cachedGeometry has been updated. + + + + Use the same random seed on creation to keep visual flickering to a minimum. + + + + + Iterates all simple segments in given path figure including the closing chord. + + + + + Renders an arc shape supporting Arc, Ring, and Pie mode controlled by ArcThickness. + + + + + Platform-neutral implementation of Shape deriving from WPF:Shape or SL:Path. + + + Provides the WPF implementation of Shape that derives from the platform Shape. + + + + + Extends how the shape is drawn with creating geometry source. + + + + + Invalidates the geometry for a . After the invalidation, the will recompute the geometry, which will occur asynchronously. + + + + Provides the behavior for the Measure portion of Silverlight layout pass. Classes can override this method to define their own Measure pass behavior. + The size that this object determines it requires during layout, based on its calculations of child object allotted sizes, or possibly on other considerations such as fixed container size. + The available size that this object can provide to child objects. Infinity () can be specified as a value to indicate that the object will size to whatever content is available. + + In WPF, measure override works from Shape.DefiningGeometry which is not always as expected + see bug 99497 for details where WPF is not having correct measure by default. + + In Silverlight, measure override on Path does not work the same as primitive shape works. + + We should return the smallest size this shape can correctly render without clipping. + By default a shape can render as small as a dot, therefore returning the strokethickness. + + + + Provides the behavior for the Arrange portion of Silverlight layout pass. Classes can override this method to define their own Arrange pass behavior. + The actual size used once the element is arranged in layout. + The final area within the parent that this object should use to arrange itself and its children. + will recompute the Geometry when it's invalidated and update the RenderedGeometry and GeometryMargin. + + + + Occurs when RenderedGeometry is changed. + + + + + Gets the margin between logical bounds and actual geometry bounds. + This can be either positive (as in ) or negative (as in ). + + + + + Gets or sets the start angle. + + The start angle in degrees. Zero degrees is pointing up. + + + + Gets or sets the end angle. + + The end angle in degrees. Zero degrees is pointing up. + + + + Gets or sets the arc thickness. + + The arc thickness in pixels or percentage depending on "ArcThicknessUnit". + + + + Gets or sets the arc thickness unit. + + The arc thickness unit in pixels or percentage. + + + + Renders a block arrow shape that supports resizable arrow head and body. + + + + + Gets or sets the orientation. + + The orientation where the arrow is pointing to. + + + + Gets or sets the arrow head angle. + + The arrow head angle in degrees. + + + + Gets or sets the size of the arrow body. + + The size of the arrow body in pixels. + + + + Renders a regular polygon shape or corresponding star shape with variable number of points. + + + + + Gets or sets the number of points of the . + + + + + Gets or sets the the distance between the center and the innermost point. + + The distance between the center and the innermost point. + + + diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/en/Microsoft.Expression.Effects.xml b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/en/Microsoft.Expression.Effects.xml new file mode 100644 index 0000000..ba0b390 --- /dev/null +++ b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/en/Microsoft.Expression.Effects.xml @@ -0,0 +1,1056 @@ + + + + Microsoft.Expression.Effects + + + + + Determine the orientation of the blinds. + + + + + Transition shader that simulates blinds opening when transitioning + from one visual to another. + + + + + Gets or sets the orientation of the blinds. + + + + + Gets or sets the number of blinds. + + + + + Gets or sets the Amplitude variable within the shader. + + + + + Creates an instance of the shader. + + + + + Makes a deep copy of the BlindsTransitionEffect effect. + + A clone of the current instance of the BlindsTransitionEffect effect. + + + + Gets or sets the orientation of the blinds. + + + + + Gets or sets the number of blinds to display. + + + + + Gets or sets the orientation of the blinds. + + + + + Effect that implements a bloom illumination of a visual. + + + + + The explicit input for this pixel shader. + + + + + + This property is mapped to the BloomIntensity variable within the pixel shader. + + + + + This property is mapped to the BaseIntensity variable within the pixel shader. + + + + + This property is mapped to the BloomSaturation variable within the pixel shader. + + + + + This property is mapped to the BaseSaturation variable within the pixel shader. + + + + + This property is mapped to the BloomIntensity variable within the pixel shader. + + + + + This property is mapped to the BloomSaturation variable within the pixel shader. + + + + + This property is mapped to the BaseSaturation variable within the pixel shader. + + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Gets or sets the minimum intensity that will be used for the bloom. + + + + + Gets or sets the base intensity. + + + + + Gets or sets the bloom intensity. + + + + + Gets or sets the base saturation. + + + + + Gets or sets the bloom saturation. + + + + + Gets or sets the Input shader sampler. + + + + + Gets or sets the Base/BloomIntensity variable within the shader. + + + + + Gets or sets the BaseBloomSaturation variable within the shader. + + + + + Transition effect that reveals two visuals through a growing/shrinking circle. + + + + + Dependency property which modifies the feather amount variable within the pixel shader. + + + + + Dependency property which modifies the circle movement. + + + + + Dependency property which modifies the reverseShader variable within the pixel shader. + + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Makes a deep copy of the CircleRevealTransitionEffect effect. + + A clone of the current instance of the CircleRevealTransitionEffect effect. + + + + Gets or sets the FuzzyAmount variable within the shader. + + + + + Gets or sets playing the circle reveal backward. + + + + + Gets or sets playing the circle reveal backward into the shader. + + + + + Transition effect that transitions two visuals using a cloud + texture as the sampler threshold. + + + + + Defines a transition shader effect that uses an image as a sampler threshold + for interpolating pixel value between two visuals. + + + + + Defines a transition shader effect that provides a random value, + allowing the effect to provide variance each time the effect is run. + + + + + Dependency property which modifies the RandomSeed variable within the pixel shader. + + + + + Updates the shader's variables to the default values. + + + + + Gets or sets the RandomSeed variable within the shader. + + + + + Dependency property which modifies the CloudImage variable within the pixel shader. + + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Gets or sets the CloudImage variable within the shader used for sampling. + + + + + Creates an instance of the shader. + + + + + Makes a deep copy of the CloudRevealTransitionEffect effect. + + A clone of the current instance of the CloudRevealTransitionEffect effect. + + + + Effect that modifies the color tone of a visual using + two colors as the sampling. + + + + + The explicit input for this pixel shader. + + + + + This property is mapped to the Desaturation variable within the pixel shader. + + + + + This property is mapped to the Tone variable within the pixel shader. + + + + + This property is mapped to the LightColor variable within the pixel shader. + + + + + This property is mapped to the DarkColor variable within the pixel shader. + + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Gets or sets the Desaturation variable within the shader. + + + + + Gets or sets the Tone variable within the shader. + + + + + Gets or sets the LightColor variable within the shader. + + + + + Gets or sets the DarkColor variable within the shader. + + + + + Gets or sets the Input shader sampler. + + + + + Effect that simulates an embossed look for the visual. + + + + + The explicit input for this pixel shader. + + + + + This property is mapped to the Amount variable within the pixel shader. + + + + + This property is mapped to the Height variable within the pixel shader. + + + + + This property is mapped to the Color variable within the pixel shader. + + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Gets or sets the Amount variable within the shader. + + + + + Gets or sets the Height variable within the shader. + + + + + Gets or sets the Color variable within the shader. + + + + + Gets or sets the Input shader sampler. + + + + + Transition effect that gradually transitions from one visual to another. + + + + + Creates an instance of the shader. + + + + + Makes a deep copy of the FadeTransitionEffect effect. + + A clone of the current instance of the FadeTransitionEffect effect. + + + + Effect that simulates a magnifying lens. + + + + + Gets or sets the InnerRadius variable within the shader. + + + + + Gets or sets the OuterRadius variable within the shader. + + + + + Gets or sets the center variable within the shader. + + + + + Gets or sets the amount variable within the shader. + + + + + Gets or sets the Input used in the shader. + + + + + The transform used for this shader. + + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Gets or sets the InnerRadius variable within the shader. + + + + + Gets or sets the OuterRadius variable within the shader. + + + + + Gets or sets the Center variable within the shader. + + + + + Gets or sets the ShrinkFactor. + The higher the shrink factor the "smaller" the content inside the ellipse will appear. + + + + + Gets the EffectMapping. + + + + + Gets or sets the Input shader sampler. + + + + + The GeneralTransform corresponding to the Magnify effect. + + + + + Attempt to transform a point based on the effect. + + The point to transform. + The result if available. + Return true if successful. + + + + The effect instance. + + + + + If the transform is an inverse. + + + + + The transform specific to this Effect. + + + + + Creates a new instance. + + The source effect. + + + + This particular effect keeps axis-aligned lines axis-aligned, so the transformation of the Rect is just + transformation of its corner points. + + The input Rect. + The output Rect. + + + + For the inverse of the shader, we need to find Pin which is the Pixel Ouput, given Pout the texture input (is the reverse of the shader) + However, the shader algorithm is dependant on the radius of the pixel output from the center, which is a variable that we don't + have when computing the inverse. We need to perform bisection in order to converge using the equation below + PHatout = PHat_in*Scalar where + PHatout = Pout - Pcenter + pHatin = Pin -Pcenter + + Scalar is dependent on the radius of Pin (which we don't have). + + + + + Given a pixel output (Pin) find the texture input (Pout). + + + + + Creats a new instance. + + A new instance of this. + + + + Determines if a point is within an ellipse. + + The test point. + The center point of the ellipse. + The radius of the ellipse. + Return true if successful. + + + + Gets the inverse transform. + + + + + Effect that turns a visual into a monochrome color. + + + + + Gets or sets the Color variable within the shader. + + + + + Gets or sets the Input of the shader. + + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Gets or sets the Color variable within the shader. + + + + + Gets or sets the Input used in the shader. + + + + + Effect that pixelates a visual. + + + + + The explicit input for this pixel shader. + + + + + This property is mapped to the Pixelation variable within the pixel shader. + + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Gets or sets the amount of pixelation inside the shader. + + + + + Gets or sets the Input shader sampler. + + + + + Transition effect that increases or decreases pixelation between two visuals. + + + + + Creates an instance of the shader. + + + + + Makes a deep copy of the PixelateTransitionEffect effect. + + A clone of the current instance of the PixelateTransitionEffect effect. + + + + Transition effect that performs a radial blur of the current visual as the new visual is introduced. + + + + + Creates an instance of the shader. + + + + + Makes a deep copy of the RadialBlurTransitionEffect effect. + + A clone of the current instance of the RadialBlurTransitionEffect effect. + + + + Effect that simulates water ripples on the visual. + + + + + Gets or sets the Center variable within the shader. + + + + + Gets or sets the Amplitude variable within the shader. + + + + + Gets or sets the Frequency variable within the shader. + + + + + Gets or sets the Phase variable within the shader. + + + + + Gets or sets the Input brush used in the shader. + + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Gets or sets the Center variable within the shader. + + + + + Gets or sets the Amplitude variable within the shader. + + + + + Gets or sets the Frequency variable within the shader. + + + + + Gets or sets the Phase variable within the shader. + + + + + Gets or sets the Input shader sampler. + + + + + Transition effect that simulates water ripple during transition. + + + + + Creates an instance of the shader. + + + + + Makes a deep copy of the RippleTransitionEffect effect. + + A clone of the current instance of the RippleTransitionEffect effect. + + + + Effect that makes a visual crisper and sharper. + + + + + The explicit input for this pixel shader. + + + + + This property is mapped to the Amount variable within the pixel shader. + + + + + This property is mapped to the Width variable within the pixel shader. + + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Gets or sets the Amount variable within the shader. + + + + + Gets or sets the Height variable within the shader. + + + + + Gets or sets the Input shader sampler. + + + + + Defines the slide orientation. + + + + + Transition effect that slides the current visual away, revealing the new visual. + + + + + Dependency property that modifies the SlideAmount variable within the pixel shader. + + + + + Dependency property that modifies the SlideAmount variable within the pixel shader. + + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Makes a deep copy of the SlideInTransitionEffect effect. + + A clone of the current instance of the SlideInTransitionEffect effect. + + + + Gets or sets the SlideAmount variable within the shader. + + + + + Gets or sets the SlideAmount variable within the shader. + + + + + Transition effect that swirls the current visual while introducing the new visual. + + + + + Dependency property that modifies the TwistAmount variable within the pixel shader. + + + + + Dependency property that modifies the number of cells where pixels will be twisted. + + + + + Creates an instance and sets the shader's twist variable to the specified values. + + Level of swirl twist. + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Makes a deep copy of the SmoothSwirlGridTransitionEffect effect. + + A clone of the current instance of the SmoothSwirlGridTransitionEffect effect. + + + + Gets or sets the TwistAmount variable within the shader. + + + + + Gets or sets the CellCount variable within the shader. + + + + + Effect that swirls the current visual. + + + + + The explicit input for this pixel shader. + + + + + This property is mapped to the Center variable within the pixel shader. + + + + + This property is mapped to the TwistAmount variable within the pixel shader. + + + + + This property is mapped to the AngleFrequency variable within the pixel shader. + + + + + The transform used when this Effect is applied. + + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Gets or sets the Center variable within the shader. + + + + + Gets or sets the TwistAmount variable within the shader. + + + + + Gets or sets the AngleFrequency variable within the shader. + This property is not exposed. + + + + + Gets or sets the Input shader sampler. + + + + + Gets the GeneralTransform for this effect. + + + + + Used for transforming input and tree transformations. + + + + + The instance of the Effect. + + + + + The inverse of the transform. + + + + + The inverse of this GeneralTransform. + + + + + Creates an instance of this class. + + The effect itself. + + + + For this operation, the bounds is the bounding box of the four transformed points. + Need to transform each of them, and then circumscribe. This is true for both the + forward and the inverse. + + The input Rect. + The transformed Rect. + + + + Attempt to transform inPoint with the Swirl effect. + + The input point. + The output point after transformed using the Swirl effect. + Returns true but throws if false. + + + + Returns a new instance of this. + + A new instance. + + + + Gets a clone of the inverse of the current transform. + + + + + Transition effect that waves the current visual while introducing the new visual. + + + + + Dependency property that modifies the Magnitude variable within the pixel shader. + + + + + Dependency property that modifies the Phase variable within the pixel shader. + + + + + Dependency property that modifies the Frequency variable within the pixel shader. + + + + + Creates an instance of the shader. + + + + + Makes a deep copy of the WaveTransitionEffect effect. + + A clone of the current instance of the WaveTransitionEffect effect. + + + + Gets or sets the magnitude of the wave. + + + + + Gets or sets the phase of the wave. + + + + + Gets or sets the magnitude of the wave. + + + + + Define the wipe direction. + + + + + Transition effect that wipes the current visual while introducing the new visual. + + + + + Dependency property that modifies the WipeDirection variable within the pixel shader. + + + + + Dependency property that modifies the FeatherAmount variable within the pixel shader. + + + + + Dependency property that modifies the LineOrigin variable within the pixel shader. + + + + + Dependency property that modifies the LineNormal variable within the pixel shader. + + + + + Dependency property that modifies the LineOffset variable within the pixel shader. + + + + + Creates an instance and updates the shader's variables to the default values. + + + + + Makes a deep copy of the WipeTransitionEffect effect. + + A clone of the current instance of the WipeTransitionEffect effect. + + + + Gets or sets the direction of the wipe. + + + + + Gets or sets the FeatherAmount variable within the shader. + + + + + Gets or sets the LineOrigin variable within the shader. + + + + + Gets or sets the LineNormal variable within the shader. + + + + + Gets or sets the LineOffset variable within the shader. + + + + diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/en/Microsoft.Expression.Interactions.resources.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/en/Microsoft.Expression.Interactions.resources.dll new file mode 100644 index 0000000..0eca265 Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/en/Microsoft.Expression.Interactions.resources.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/en/Microsoft.Expression.Interactions.xml b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/en/Microsoft.Expression.Interactions.xml new file mode 100644 index 0000000..59fce87 --- /dev/null +++ b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/en/Microsoft.Expression.Interactions.xml @@ -0,0 +1,1295 @@ + + + + Microsoft.Expression.Interactions + + + + + A basic implementation of ICommand that wraps a method that takes no parameters or a method that takes one parameter. + + + + + Initializes a new instance of the class. + + The action. + Use this constructor to provide an action that ignores the ICommand parameter. + + + + Initializes a new instance of the class. + + An action that takes an object parameter. + Use this constructor to provide an action that uses the object parameter passed by the Execute method. + + + + Defines the method that determines whether the command can execute in its current state. + + Data used by the command. If the command does not require data to be passed, then this object can be set to null. + + Always returns true. + + + + + Defines the method to be called when the command is invoked. + + Data used by the command. If the command does not require data to be passed, then this object can be set to null. + + + + Occurs when changes occur that affect whether the command should execute. Will not be fired by ActionCommand. + + + + + Calls a method on a specified object when invoked. + + + + + Invokes the action. + + The parameter of the action. If the action does not require a parameter, the parameter may be set to a null reference. + + + + Called after the action is attached to an AssociatedObject. + + Override this to hook up functionality to the AssociatedObject. + + + + Called when the action is getting detached from its AssociatedObject, but before it has actually occurred. + + Override this to unhook functionality from the AssociatedObject. + + + + The object that exposes the method of interest. This is a dependency property. + + + + + The name of the method to invoke. This is a dependency property. + + + + + An action that will change a specified property to a specified value when invoked. + + + + + Initializes a new instance of the class. + + + + + Invokes the action. + + The parameter of the action. If the action does not require a parameter, then the parameter may be set to a null reference. + A property with could not be found on the Target. + Could not set to the value specified by . + + + + Gets or sets the name of the property to change. This is a dependency property. + + The name of the property to change. + + + + Gets or sets the value to set. This is a dependency property. + + The value to set. + + + + Gets or sets the duration of the animation that will occur when the ChangePropertyAction is invoked. This is a dependency property. + If the duration is unset, no animation will be applied. + + + + + Increment by Value if true; otherwise, set the value directly. If the property cannot be incremented, it will instead try to set the value directly. + + + + + Represents one ternary condition. + + + + + Method that evaluates the condition. Note that this method can throw ArgumentException if the operator is + incompatible with the type. For instance, operators LessThan, LessThanOrEqual, GreaterThan, and GreaterThanOrEqual + require both operators to implement IComparable. + + Returns true if the condition has been met; otherwise, returns false. + + + + Ensure that any binding on DP operands are up-to-date. + + + + + Gets or sets the left operand. + + + + + Gets or sets the right operand. + + + + + Gets or sets the comparison operator. + + + + + Enumeration of different comparison operators. + + + + + This method evaluates operands. + + Left operand from the LeftOperand property. + Operator from Operator property. + Right operand from the RightOperand property. + Returns true if the condition is met; otherwise, returns false. + + + + Evaluates both operands that implement the IComparable interface. + + Left operand from the LeftOperand property. + Operator from Operator property. + Right operand from the RightOperand property. + Returns true if the condition is met; otherwise, returns false. + + + + Forward chaining. + + + + + Represents a conditional expression that is set on a ConditionBehavior.Condition property. + Contains a list of conditions that gets evaluated in order to return true or false for ICondition.Evaluate(). + + + + + An interface that a given object must implement in order to be + set on a ConditionBehavior.Condition property. + + + + + Initializes a new instance of the class. + + + + + Goes through the Conditions collection and evalutes each condition based on + ForwardChaining property. + + Returns true if conditions are met; otherwise, returns false. + + + + Gets or sets forward chaining for the conditions. + If forward chaining is set to ForwardChaining.And, all conditions must be met. + If forward chaining is set to ForwardChaining.Or, only one condition must be met. + + + + + Return the Condition collections. + + + + + A behavior that attaches to a trigger and controls the conditions + to fire the actions. + + + + + + Initializes a new instance of the class. + + + + + The event handler that is listening to the preview invoke event that is fired by + the trigger. Setting PreviewInvokeEventArgs.Cancelling to True will + cancel the invocation. + + The trigger base object. + An object of type PreviewInvokeEventArgs where e.Cancelling can be set to True. + + + + Gets or sets the IConditon object on behavior. + + The name of the condition to change. + + + + Helper class for managing binding expressions on dependency objects. + + + + + Ensure that all DP on an action with binding expressions are + up to date. DataTrigger fires during data binding phase. Since + actions are children of the trigger, any bindings on the action + may not be up-to-date. This routine is called before the action + is invoked in order to guarantee that all bindings are up-to-date + with the most current data. + + + + + Ensures that all binding expression on actions are up to date + + + + + This helper function ensures that, if a dependency property on a dependency object + has a binding expression, the binding expression is up-to-date. + + + + + + + Toggles between two states based on a conditional statement. + + + + + Called after the behavior is attached to an AssociatedObject. + + Override this to hook up functionality to the AssociatedObject. + + + + A helper function to take the place of FrameworkElement.IsLoaded, as this property isn't available in Silverlight. + + The element of interest. + Returns true if the element has been loaded; otherwise, returns false. + + + + Gets or sets the binding that produces the property value of the data object. This is a dependency property. + + + + + Gets or sets the value to be compared with the property value of the data object. This is a dependency property. + + + + + Gets or sets the name of the visual state to transition to when the condition is met. This is a dependency property. + + + + + Gets or sets the name of the visual state to transition to when the condition is not met. This is a dependency property. + + + + + Trigger designed to be bound to a data store property. Fires when the property changes. + + + + + Represents a trigger that performs actions when the bound data have changed. + + UA_REVIEW:chabiss + + + + Called when the binding property has changed. + UA_REVIEW:chabiss + + argument. + + + + Called after the trigger is attached to an AssociatedObject. + UA_REVIEW:chabiss + + + + + Called when the trigger is being detached from its AssociatedObject, but before it has actually occurred. + UA_REVIEW:chabiss + + + + + A binding object that the trigger will listen to, and that causes the trigger to fire when it changes. + + UA_REVIEW:chabiss + + + + Represents a trigger that performs actions when the bound data meets a specified condition. + + + + + Called when the binding property has changed. + UA_REVIEW:chabiss + + argument. + + + + Gets or sets the value to be compared with the property value of the data object. This is a dependency property. + + + + + Gets or sets the type of comparison to be performed between the specified values. This is a dependency property. + + + + + ExtendedVisualStateManager is a custom VisualStateManager that can smooth out the animation of layout properties. + With this custom VisualStateManager, states can include changes to properties like Grid.Column, can change element heights to or from Auto, and so on. + These changes will be smoothed out over time using the GeneratedDuration and GeneratedEasingFunction of the appropriate transition. + See the "VisualStateManager overrides" region below for a general description of the algorithm. + + + + + A VisualStateGroup that can use FluidLayout or not. + + + + + Visibility is shadowed by a custom attached property at runtime. + + + + + A VisualStateGroup keeps a list of these original values in an attached property. + + + + + For every state, the layout-specific properties get extracted and then are attached to the state. These properties are removed from the state itself. + + + + + Remember the current state. + + + + + The TransitionEffect to use when the state changes. + + + + + The TransitionEffectStoryboard in use during the state change. + + + + + The cached background in use during the state change. + + + + + The cached background in use during the state change. + + + + + The cached background in use during the state change. + + + + + This is the set of elements that are currently in motion. + + + + + This is the storyboard that is animating the transition. + + + + + This list contains all the known layout properties. + + + + + Stop the animation and replace the layout changes that were made to support that animation. + + + + + Locate the transition that VisualStateManager will use to animate the change, so that the layout animation can match the duration and easing. + + The group in which the transition is taking place. + The state that you are coming from. + The state you are going to. + The transition + + + + Remove all layout-affecting properties from the Storyboard for the state and cache them in an attached property. + + The state you are moving to. + A Storyboard containing the layout properties in that state. + + + + The set of target elements is the set of all elements that might have moved in a layout transition. This set is the closure of: + - Elements with layout properties animated in the state. + - Siblings of elements in the set. + - Parents of elements in the set. + + Subsequent code will check these rectangles both before and after the layout change. + + The control whose layout is changing state. + The storyboard containing the layout changes. + Any previous values from previous state navigations that might be reverted. + The set of elements currently in motion, if there is a state change transition ongoing. + The full set of elements whose layout may have changed. + + + + Gets a set of rectangles for all the elements in the target list. + + The set of elements to consider. + The set of elements currently in motion. + A Dictionary mapping elements to their Rects. + + + + Get the layout rectangle of an element, by getting the layout slot and then computing which portion of the slot is being used. + + The element whose layout Rect will be retrieved. + The layout Rect of that element. + + + + Get the opacities of elements at the time of the state change, instead of visibilities, because the state change may be in process and the current value is the most important. + + The control whose state is changing. + The storyboard with the layout properties. + The set of original values. + + + + + Go through the layout Storyboard and set all the properties by using SetValue to enable calling UpdateLayout without + ticking the timeline, which would cause a render. + All values that are overwritten will be stored in the collection of OriginalValueRecords so that they can be replaced later. + + The control whose state is changing. + The Storyboard holding the layout properties. + The store of original values. + + + + Take all the elements that will be moving as a result of the layout animation, and wrap them in Canvas panels so that + they do not affect their sibling elements. + + The set of elements that will be moving. + + + + Take all the elements that have been moving as a result of the layout animation, and unwrap them from their Canvas panels. + + The set of elements that have been moving. + + + + Copy the layout properties from the source element to the target element, clearing them from the source. + + The source of the layout properties. + The destination of the layout properties. + + + + Create the actual Storyboard that will be used to animate the transition. Use all previously calculated results. + + The duration of the animation. + The easing function to be used in the animation. + The set of elements that will be moving. + The old opacities of the elements whose visibility properties are changing. + The Storyboard. + + + + OriginalValueRecord remembers the original value of a property that was changed in a state. + + + + + This enumerated type indicates whether a FluidMoveBehavior applies to the element to which it is attached, or to the children of that element. + "Self" is useful when there is a single element that should behave in a special manner; "Children" is useful when the same behavior should apply to all + children of a WrapPanel or to the ItemsHost panel of an ItemsControl. + + + + + This enumerated type indicates whether an element is identified by itself, or by its DataContext. + DataContext identification allows movement from one data-driven location to another. + + + + + Dependency property for the scope of the behavior. See FluidMoveScope for more details. + + + + + Dependency property for the active state of the behavior. + + + + + Dependency property that provides the ability to use the element as its own tag, or the binding on the element. + + + + + Dependency property for the extra path to add to the binding when UsaBindingAsTag is true. + + + + + Identity tag used to detect element motion between containers. + + + + + Indicates whether the behavior applies just to this element, or to all children of the element (if the element is a Panel). + + + + + Indicates whether the behavior is currently active. + + + + + Indicates whether to use the element as its own tag, or to use the binding on the element as the tag. + + + + + Extra path to add to the binding when TagType is specified. + + + + + Private structure that stores all relevant data pertaining to a tagged item. + + + + + Behavior that watches an element (or a set of elements) for layout changes, and moves the element smoothly to the new position when needed. + This behavior does not animate the size or visibility of an element; it only animates the offset of that element within its parent container. + + + + + Dependency property for the duration of the move. + + + + + Dependency property for the tag type to use just before the object is loaded. + + + + + Dependency property for the extra path to add to the binding when UsaBindingAsTag is true. + + + + + Identity tag used to detect element motion between containers. + + + + + Dependency property for the FloatAbove flag. + + + + + Dependency property for the EasingFunction to use for the horizontal component of the move. + + + + + Dependency property for the EasingFunction to use for the vertical component of the move. + + + + + Remember the popup/adorner being used, in case of element motion between containers when FloatAbove is true. + + + + + Opacity cache used when floating a Popup. + + + + + Marks the animation transform. + + + + + The duration of the move. + + + + + Spawning point for this item. + + + + + Extra path to add to the binding when TagType is specified. + + + + + Flag that says whether elements are allowed to float above their containers (in a Popup or Adorner) when changing containers. + + + + + EasingFunction to use for the horizontal component of the move. + + + + + EasingFunction to use for the vertical component of the move. + + + + + Simple helper class to allow any UIElements to be used as an Adorner. + + + + + An action that will transition a FrameworkElement to a specified VisualState when invoked. + + + If the TargetName property is set, this action will attempt to change the state of the targeted element. If not, it walks + the element tree in an attempt to locate an alternative target that defines states. ControlTemplate and UserControl are + two common possibilities. + + + + + Called when the target changes. If the TargetName property isn't set, this action has custom behavior. + + + + Could not locate an appropriate FrameworkElement with states. + + + + This method is called when some criteria is met and the action is invoked. + + + Could not change the target to the specified StateName. + + + + Determines whether or not to use a VisualTransition to transition between states. + + + + + The name of the VisualState. + + + + + A Trigger that is triggered by a keyboard event. If the target Key and Modifiers are detected, it fires. + + + + + The key that must be pressed for the trigger to fire. + + + + + The modifiers that must be active for the trigger to fire (the default is no modifiers pressed). + + + + + If true, the Trigger only listens to its trigger Source object, which means that element must have focus for the trigger to fire. + If false, the Trigger listens at the root, so any unhandled KeyDown/Up messages will be caught. + + + + + Determines whether or not to listen to the KeyDown or KeyUp event. + + + + + An action that will launch a process to open a file or Uri. For files, this action will launch the default program + for the given file extension. A Uri will open in a web browser. + + + + + This method is called when some criteria is met and the action is invoked. + + + + + + The file or Uri to open. + + + + + Repositions the attached element in response to mouse drag gestures on the element. + + + + + Dependency property for the X position of the dragged element, relative to the left of the root element. + + + + + Dependency property for the Y position of the dragged element, relative to the top of the root element. + + + + + Dependency property for the ConstrainToParentBounds property. If true, the dragged element will be constrained to stay within the bounds of its parent container. + + + + + Attempts to update the position of the associated element to the specified coordinates. + + The desired position of the element in root coordinates. + + + + Applies a relative position translation to the associated element. + + The X component of the desired translation in root coordinates. + The Y component of the desired translation in root coordinates. + + + + Applies the given translation to the RenderTransform of the associated element. + + The X component of the translation in parent coordinates. + The Y component of the translation in parent coordinates. + + + + Does a recursive deep copy of the specified transform. + + The transform to clone. + A deep copy of the specified transform, or null if the specified transform is null. + Thrown if the type of the Transform is not recognized. + + + + Updates the X and Y properties based on the current rendered position of the associated element. + + + + + Check if one Rect is contained by another. + + The containing Rect. + The contained Rect. + True if rect1 contains rect2; otherwise, False. + + + + Transforms as vector. + + The transform. + The X component of the vector. + The Y component of the vector. + A point containing the values of X and Y transformed by transform as a vector. + + + + Gets the transform offset. + + The transform. + The offset of the transform. + + + + Called after the behavior is attached to an AssociatedObject. + + Override this to hook up functionality to the AssociatedObject. + + + + Called when the behavior is getting detached from its AssociatedObject, but before it has actually occurred. + + Override this to unhook functionality from the AssociatedObject. + + + + Occurs when a drag gesture is initiated. + + + + + Occurs when a drag gesture update is processed. + + + + + Occurs when a drag gesture is finished. + + + + + Gets or sets the X position of the dragged element, relative to the left of the root element. This is a dependency property. + + + + + Gets or sets the Y position of the dragged element, relative to the top of the root element. This is a dependency property. + + + + + Gets or sets a value indicating whether the dragged element is constrained to stay within the bounds of its parent container. This is a dependency property. + + + True if the dragged element should be constrained to its parents bounds; otherwise, False. + + + + + Gets the on-screen position of the associated element in root coordinates. + + The on-screen position of the associated element in root coordinates. + + + + Gets the element bounds in element coordinates. + + The element bounds in element coordinates. + + + + Gets the parent element of the associated object. + + The parent element of the associated object. + + + + Gets the root element of the scene in which the associated object is located. + + The root element of the scene in which the associated object is located. + + + + Gets and sets the RenderTransform of the associated element. + + + + + An action that will play a sound to completion. + + + This action is intended for use with short sound effects that don't need to be stopped or controlled. If you're trying + to create a music player or game, it may not meet your needs. + + + + + Initializes a new instance of the class. + + + + + When the action is invoked, this method is used to customize the dynamically created MediaElement. + + + This method may be useful for Action authors who wish to extend PlaySoundAction. If you want to control the + MediaElement Balance property, you could inherit from PlaySoundAction and override this method. + + + + + + This method is called when some criteria are met and the action should be invoked. + + + Each invocation of the Action plays a new sound. Although the implementation is subject-to-change, the caller should + anticipate that this will create a new MediaElement that will be cleaned up when the sound completes or if the media + fails to play. + + + + + + A Uri defining the location of the sound file. This is used to set the source property of the MediaElement. This is a dependency property. + + + The sound can be any file format supported by MediaElement. In the case of a video, it will play only the + audio portion. + + + + + Control the volume of the sound. This is used to set the Volume property of the MediaElement. This is a dependency property. + + + + + An action that will remove the targeted element from the tree when invoked. + + + This action may fail. The action understands how to remove elements from common parents but not from custom collections or direct manipulation + of the visual tree. + + + + + An action that will change the value of a property from a data store object. + This class is identical to ChangePropertyAction. The only difference is that the data store picker is loaded + for this action. + + + + + An abstract class that provides the ability to target a Storyboard. + + + For action authors, this class provides a standard way to target a Storyboard. Design tools may choose to provide a + special editing experience for classes that inherit from this action, thereby improving the designer experience. + + + + + This method is called when the Storyboard property is changed. + + + + + + The targeted Storyboard. This is a dependency property. + + + + + An action that will change the state of a targeted storyboard when invoked. + + + + + This method is called when some criteria is met and the action should be invoked. This method will attempt to + change the targeted storyboard in a way defined by the ControlStoryboardOption. + + + + + + An abstract class that provides the ability to target a Storyboard. + + + For Trigger authors, this class provides a standard way to target a Storyboard. Design tools may choose to provide a + special editing experience for classes that inherit from this trigger, thereby improving the designer experience. + + + + + This method is called when the Storyboard property is changed. + + + + + The targeted Storyboard. This is a dependency property. + + + + + A trigger that listens for the completion of a Storyboard. + + + + + Initializes a new instance of the class. + + + + + A trigger that is triggered by a specified event occurring on its source and fires after a delay when that event is fired. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the number of milliseconds to wait between ticks. This is a dependency property. + + + + + Gets or sets the total number of ticks to be fired before the trigger is finished. This is a dependency property. + + + + + Defines a transition effect shader that transitions from one visual to another visual + using an interpolated value between 0 and 1. + + + + + Brush-valued properties that turn into sampler-properties in the shader. + Represents the image present in the final state of the transition. + + + + + Brush-valued properties that turn into sampler-properties in the shader. + Represents the image present in the initial state of the transition. + + + + + A Dependency property as the backing store for Progress. + Also used to represent the state of a transition from start to finish (range between 0 and 1). + + + + + Creates a modifiable clone (deep copy) of the using its current values. + + + + + Makes a deep copy of the transition effect. Implements CloneCurrentValue in Silverlight. + + A clone of current instance of transition effect. + + + + Updates the shader's variables to the default values. + + + + + Gets or sets the Input variable within the shader. + + + + + Gets or sets the OldImage variable within the shader. + + + + + Gets or sets the Progress variable within the shader. + + + + + Allows the user to use common touch gestures to translate, zoom, and rotate the attached object. + + + + + Called after the behavior is attached to an AssociatedObject. + + Override this to hook up functionality to the AssociatedObject. + + + + Called when the behavior is getting detached from its AssociatedObject, but before it has actually occurred. + + Override this to unhook functionality from the AssociatedObject. + + + + Gets or sets a value specifying which zooming and translation variants to support. + + + + + Gets or sets a number describing the rate at which the translation will decrease. + + + + + Gets or sets a number describing the rate at which the rotation will decrease. + + + + + Gets or sets the value indicating whether the zoom and translate position of the attached object is limited by the bounds of the parent object. + + + + + Gets or sets a number indicating the minimum zoom value allowed. + + + + + Gets or sets a number indicating the maximum zoom value allowed. + + + + + This class provides various platform agnostic standard operations for working with VisualStateManager. + + + + + Transitions the control between two states. + + The element to transition between states. + The state to transition to. + True to use a System.Windows.VisualTransition to transition between states; otherwise, false. + True if the control successfully transitioned to the new state; otherwise, false. + Control is null. + StateName is null. + + + + Gets the value of the VisualStateManager.VisualStateGroups attached property. + + The element from which to get the VisualStateManager.VisualStateGroups. + + + + + Find the nearest parent which contains visual states. + + The element from which to find the nearest stateful control. + The nearest stateful control if True; else null. + True if a parent contains visual states; else False. + + + + 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 Could not find method named '{0}' on object of type '{1}' that matches the expected signature.. + + + + + Looks up a localized string similar to More than one potential addition operator was found on type '{0}'.. + + + + + Looks up a localized string similar to Cannot animate a property change on a type '{0}' Target. Property changes can only be animated on types derived from DependencyObject.. + + + + + Looks up a localized string similar to Cannot find a property named "{0}" on type "{1}".. + + + + + Looks up a localized string similar to The Increment property cannot be set to True if the Duration property is set.. + + + + + Looks up a localized string similar to The '{0}' property cannot be incremented because its value cannot be read.. + + + + + Looks up a localized string similar to Cannot assign value of type "{0}" to property "{1}" of type "{2}". The "{1}" property can be assigned only values of type "{2}".. + + + + + Looks up a localized string similar to Property "{0}" defined by type "{1}" does not expose a set method and therefore cannot be modified.. + + + + + Looks up a localized string similar to Cannot find state named '{0}' on type '{1}'. Ensure that the state exists and that it can be accessed from this context.. + + + + + Looks up a localized string similar to Target {0} does not define any VisualStateGroups. . + + + + + Looks up a localized string similar to LeftOperand of type "{0}" cannot be used with operator "{1}".. + + + + + Looks up a localized string similar to LeftOperand of type "{1}" and RightOperand of type "{0}" cannot be used with operator "{2}".. + + + + + Looks up a localized string similar to RightOperand of type "{0}" cannot be used with operator "{1}".. + + + + + Looks up a localized string similar to The target of the RemoveElementAction is not supported.. + + + + diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/en/Microsoft.Expression.Prototyping.Interactivity.resources.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/en/Microsoft.Expression.Prototyping.Interactivity.resources.dll new file mode 100644 index 0000000..3ef6b60 Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/en/Microsoft.Expression.Prototyping.Interactivity.resources.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/en/System.Windows.Interactivity.resources.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/en/System.Windows.Interactivity.resources.dll new file mode 100644 index 0000000..a9aac8e Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/en/System.Windows.Interactivity.resources.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/en/System.Windows.Interactivity.xml b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/en/System.Windows.Interactivity.xml new file mode 100644 index 0000000..10cdad6 --- /dev/null +++ b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/en/System.Windows.Interactivity.xml @@ -0,0 +1,1072 @@ + + + + System.Windows.Interactivity + + + + + Represents a collection of IAttachedObject with a shared AssociatedObject and provides change notifications to its contents when that AssociatedObject changes. + + + + + An interface for an object that can be attached to another object. + + + + + Attaches to the specified object. + + The object to attach to. + + + + Detaches this instance from its associated object. + + + + + Gets the associated object. + + The associated object. + Represents the object the instance is attached to. + + + + Initializes a new instance of the class. + + Internal, because this should not be inherited outside this assembly. + + + + Called immediately after the collection is attached to an AssociatedObject. + + + + + Called when the collection is being detached from its AssociatedObject, but before it has actually occurred. + + + + + Called when a new item is added to the collection. + + The new item. + + + + Called when an item is removed from the collection. + + The removed item. + + + Cannot add the instance to a collection more than once. + + + + Attaches to the specified object. + + The object to attach to. + The IAttachedObject is already attached to a different object. + + + + Detaches this instance from its associated object. + + + + + The object on which the collection is hosted. + + + + + Gets the associated object. + + The associated object. + + + + Encapsulates state information and zero or more ICommands into an attachable object. + + The type the can be attached to. + + Behavior is the base class for providing attachable state and commands to an object. + The types the Behavior can be attached to can be controlled by the generic parameter. + Override OnAttached() and OnDetaching() methods to hook and unhook any necessary handlers + from the AssociatedObject. + + + + + Encapsulates state information and zero or more ICommands into an attachable object. + + This is an infrastructure class. Behavior authors should derive from Behavior<T> instead of from this class. + + + + Called after the behavior is attached to an AssociatedObject. + + Override this to hook up functionality to the AssociatedObject. + + + + Called when the behavior is being detached from its AssociatedObject, but before it has actually occurred. + + Override this to unhook functionality from the AssociatedObject. + + + + Attaches to the specified object. + + The object to attach to. + The Behavior is already hosted on a different element. + dependencyObject does not satisfy the Behavior type constraint. + + + + Detaches this instance from its associated object. + + + + + The type to which this behavior can be attached. + + + + + Gets the object to which this behavior is attached. + + + + + Gets the associated object. + + The associated object. + + + + Initializes a new instance of the class. + + + + + Gets the object to which this is attached. + + + + + Represents a collection of behaviors with a shared AssociatedObject and provides change notifications to its contents when that AssociatedObject changes. + + + + + Initializes a new instance of the class. + + Internal, because this should not be inherited outside this assembly. + + + + Called immediately after the collection is attached to an AssociatedObject. + + + + + Called when the collection is being detached from its AssociatedObject, but before it has actually occurred. + + + + + Called when a new item is added to the collection. + + The new item. + + + + Called when an item is removed from the collection. + + The removed item. + + + + Creates a new instance of the BehaviorCollection. + + The new instance. + + + + Enumerates possible values for reusable property value editors. + + + + + Uses the element picker, if supported, to edit this property at design time. + + + + + Uses the storyboard picker, if supported, to edit this property at design time. + + + + + Uses the state picker, if supported, to edit this property at design time. + + + + + Uses the element-binding picker, if supported, to edit this property at design time. + + + + + Uses the property-binding picker, if supported, to edit this property at design time. + + + + + Associates the given editor type with the property on which the CustomPropertyValueEditor is applied. + + Use this attribute to get improved design-time editing for properties that denote element (by name), storyboards, or states (by name). + + + + Initializes a new instance of the class. + + The custom property value editor. + + + + Gets or sets the custom property value editor. + + The custom property value editor. + + + + Provides design tools information about what to instantiate for a given action or command. + + + + + Initializes a new instance of the class. + + The type this attribute applies to. + The type of to instantiate. + A single argument for the specified . + is not derived from TriggerBase. + This constructor is useful if the specifed has a single argument. The + resulting code will be CLS compliant. + + + + Initializes a new instance of the class. + + The type this attribute applies to. + The type of to instantiate. + The constructor arguments for the specified . + is not derived from TriggerBase. + + + + Instantiates this instance. + + The specified by the DefaultTriggerAttribute. + + + + Gets the type that this DefaultTriggerAttribute applies to. + + The type this DefaultTriggerAttribute applies to. + + + + Gets the type of the to instantiate. + + The type of the to instantiate. + + + + Gets the parameters to pass to the constructor. + + The parameters to pass to the constructor. + + + + This method will use the VisualTreeHelper.GetParent method to do a depth first walk up + the visual tree and return all ancestors of the specified object, including the object itself. + + The object in the visual tree to find ancestors of. + Returns itself an all ancestors in the visual tree. + + + + EventObserver is designed to help manage event handlers by detatching when disposed. Creating this object will also attach in the constructor. + + + + + Creates an instance of EventObserver and attaches to the supplied event on the supplied target. Call dispose to detach. + + The event to attach and detach from. + The target object the event is defined on. Null if the method is static. + The delegate to attach to the event. + + + + Detaches the handler from the event. + + + + + A trigger that listens for a specified event on its source and fires when that event is fired. + + + + + Represents a trigger that can listen to an element other than its AssociatedObject. + + The type that this trigger can be associated with. + + EventTriggerBase extends TriggerBase to add knowledge of another object than the one it is attached to. + This allows a user to attach a Trigger/Action pair to one element and invoke the Action in response to a + change in another object somewhere else. Override OnSourceChanged to hook or unhook handlers on the source + element, and OnAttached/OnDetaching for the associated element. The type of the Source element can be + constrained by the generic type parameter. If you need control over the type of the + AssociatedObject, set a TypeConstraintAttribute on your derived type. + + + + + Represents a trigger that can listen to an object other than its AssociatedObject. + + This is an infrastructure class. Trigger authors should derive from EventTriggerBase<T> instead of this class. + + + + Represents an object that can invoke Actions conditionally. + + This is an infrastructure class. Trigger authors should derive from Trigger<T> instead of this class. + + + + Invoke all actions associated with this trigger. + + Derived classes should call this to fire the trigger. + + + + Called after the trigger is attached to an AssociatedObject. + + + + + Called when the trigger is being detached from its AssociatedObject, but before it has actually occurred. + + + + + Creates a new instance of the TriggerBase derived class. + + The new instance. + + + + Attaches to the specified object. + + The object to attach to. + Cannot host the same trigger on more than one object at a time. + dependencyObject does not satisfy the trigger type constraint. + + + + Detaches this instance from its associated object. + + + + + Gets the object to which the trigger is attached. + + The associated object. + + + + Gets the type constraint of the associated object. + + The associated object type constraint. + + + + Gets the actions associated with this trigger. + + The actions associated with this trigger. + + + + Event handler for registering to PreviewInvoke. + + + + + Gets the associated object. + + The associated object. + + + + Specifies the name of the Event this EventTriggerBase is listening for. + + + + + + Called when the event associated with this EventTriggerBase is fired. By default, this will invoke all actions on the trigger. + + The instance containing the event data. + Override this to provide more granular control over when actions associated with this trigger will be invoked. + + + + Called when the source changes. + + The old source. + The new source. + This function should be overridden in derived classes to hook functionality to and unhook functionality from the changing source objects. + + + + Called after the trigger is attached to an AssociatedObject. + + + + + Called when the trigger is being detached from its AssociatedObject, but before it has actually occurred. + + + + Could not find eventName on the Target. + + + + Gets the type constraint of the associated object. + + The associated object type constraint. + Define a TypeConstraintAttribute on a derived type to constrain the types it may be attached to. + + + + Gets the source type constraint. + + The source type constraint. + + + + Gets or sets the target object. If TargetObject is not set, the target will look for the object specified by TargetName. If an element referred to by TargetName cannot be found, the target will default to the AssociatedObject. This is a dependency property. + + The target object. + + + + Gets or sets the name of the element this EventTriggerBase listens for as a source. If the name is not set or cannot be resolved, the AssociatedObject will be used. This is a dependency property. + + The name of the source element. + + + + Gets the resolved source. If is not set or cannot be resolved, defaults to AssociatedObject. + + The resolved source object. + In general, this property should be used in place of AssociatedObject in derived classes. + The element pointed to by does not satisify the type constraint. + + + + Initializes a new instance of the class. + + + + + Called when the source property changes. + + Override this to hook functionality to and unhook functionality from the specified source, rather than the AssociatedObject. + The old source. + The new source. + + + + Gets the resolved source. If is not set or cannot be resolved, defaults to AssociatedObject. + + The resolved source object. + In general, this property should be used in place of AssociatedObject in derived classes. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the event. + + + + Gets or sets the name of the event to listen for. This is a dependency property. + + The name of the event. + + + + Static class that owns the Triggers and Behaviors attached properties. Handles propagation of AssociatedObject change notifications. + + + + + This property is used as the internal backing store for the public Triggers attached property. + + + This property is not exposed publicly. This forces clients to use the GetTriggers and SetTriggers methods to access the + collection, ensuring the collection exists and is set before it is used. + + + + + This property is used as the internal backing store for the public Behaviors attached property. + + + This property is not exposed publicly. This forces clients to use the GetBehaviors and SetBehaviors methods to access the + collection, ensuring the collection exists and is set before it is used. + + + + + Gets the TriggerCollection containing the triggers associated with the specified object. + + The object from which to retrieve the triggers. + A TriggerCollection containing the triggers associated with the specified object. + + + + Gets the associated with a specified object. + + The object from which to retrieve the . + A containing the behaviors associated with the specified object. + + + Cannot host the same BehaviorCollection on more than one object at a time. + + + Cannot host the same TriggerCollection on more than one object at a time. + + + + A helper function to take the place of FrameworkElement.IsLoaded, as this property is not available in Silverlight. + + The element of interest. + True if the element has been loaded; otherwise, False. + + + + Gets or sets a value indicating whether to run as if in design mode. + + + True if [should run in design mode]; otherwise, False. + + Not to be used outside unit tests. + + + + Executes a specified ICommand when invoked. + + + + + Represents an attachable object that encapsulates a unit of functionality. + + The type to which this action can be attached. + + + + Represents an attachable object that encapsulates a unit of functionality. + + This is an infrastructure class. Action authors should derive from TriggerAction<T> instead of this class. + + + + Attempts to invoke the action. + + The parameter to the action. If the action does not require a parameter, the parameter may be set to a null reference. + + + + Invokes the action. + + The parameter to the action. If the action does not require a parameter, the parameter may be set to a null reference. + + + + Called after the action is attached to an AssociatedObject. + + + + + Called when the action is being detached from its AssociatedObject, but before it has actually occurred. + + + + + When implemented in a derived class, creates a new instance of the derived class. + + The new instance. + + + + Attaches to the specified object. + + The object to attach to. + Cannot host the same TriggerAction on more than one object at a time. + dependencyObject does not satisfy the TriggerAction type constraint. + + + + Detaches this instance from its associated object. + + + + + Gets or sets a value indicating whether this action will run when invoked. This is a dependency property. + + + True if this action will be run when invoked; otherwise, False. + + + + + Gets the object to which this action is attached. + + The associated object. + + + + Gets the associated object type constraint. + + The associated object type constraint. + + + + Gets or sets a value indicating whether this instance is attached. + + True if this instance is attached; otherwise, False. + + + + Gets the associated object. + + The associated object. + + + + Initializes a new instance of the class. + + + + + Gets the object to which this is attached. + + The associated object. + + + + Gets the associated object type constraint. + + The associated object type constraint. + + + + Invokes the action. + + The parameter to the action. If the action does not require a parameter, the parameter may be set to a null reference. + + + + Gets or sets the name of the command this action should invoke. + + The name of the command this action should invoke. + This property will be superseded by the Command property if both are set. + + + + Gets or sets the command this action should invoke. This is a dependency property. + + The command to execute. + This property will take precedence over the CommandName property if both are set. + + + + Gets or sets the command parameter. This is a dependency property. + + The command parameter. + This is the value passed to ICommand.CanExecute and ICommand.Execute. + + + + Provides data about which objects were affected when resolving a name change. + + + + + Helper class to handle the logic of resolving a TargetName into a Target element + based on the context provided by a host element. + + + + + Attempts to update the resolved object from the name within the context of the namescope reference element. + + The old resolved object. + + Resets the existing target and attempts to resolve the current TargetName from the + context of the current Host. If it cannot resolve from the context of the Host, it will + continue up the visual tree until it resolves. If it has not resolved it when it reaches + the root, it will set the Target to null and write a warning message to Debug output. + + + + + Occurs when the resolved element has changed. + + + + + Gets or sets the name of the element to attempt to resolve. + + The name to attempt to resolve. + + + + The resolved object. Will return the reference element if TargetName is null or empty, or if a resolve has not been attempted. + + + + + Gets or sets the reference element from which to perform the name resolution. + + The reference element. + + + + Gets or sets a value indicating whether the reference element load is pending. + + + True if [pending reference element load]; otherwise, False. + + + If the Host has not been loaded, the name will not be resolved. + In that case, delay the resolution and track that fact with this property. + + + + + Represents an action that can be targeted to affect an object other than its AssociatedObject. + + The type constraint on the target. + + TargetedTriggerAction extends TriggerAction to add knowledge of another element than the one it is attached to. + This allows a user to invoke the action on an element other than the one it is attached to in response to a + trigger firing. Override OnTargetChanged to hook or unhook handlers on the target element, and OnAttached/OnDetaching + for the associated element. The type of the Target element can be constrained by the generic type parameter. If + you need control over the type of the AssociatedObject, set a TypeConstraintAttribute on your derived type. + + + + + Represents an action that can be targeted to affect an object other than its AssociatedObject. + + This is an infrastructure class. Action authors should derive from TargetedTriggerAction<T> instead of this class. + + + + Called when the target changes. + + The old target. + The new target. + This function should be overriden in derived classes to hook and unhook functionality from the changing source objects. + + + + Called after the action is attached to an AssociatedObject. + + + + + Called when the action is being detached from its AssociatedObject, but before it has actually occurred. + + + + + Gets or sets the target object. If TargetObject is not set, the target will look for the object specified by TargetName. If an element referred to by TargetName cannot be found, the target will default to the AssociatedObject. This is a dependency property. + + The target object. + + + + Gets or sets the name of the object this action targets. If Target is set, this property is ignored. If Target is not set and TargetName is not set or cannot be resolved, the target will default to the AssociatedObject. This is a dependency property. + + The name of the target object. + + + + Gets the target object. If TargetObject is set, returns TargetObject. Else, if TargetName is not set or cannot be resolved, defaults to the AssociatedObject. + + The target object. + In general, this property should be used in place of AssociatedObject in derived classes. + The Target element does not satisfy the type constraint. + + + + Gets the associated object type constraint. + + The associated object type constraint. + Define a TypeConstraintAttribute on a derived type to constrain the types it may be attached to. + + + + Gets the target type constraint. + + The target type constraint. + + + + Initializes a new instance of the class. + + + + + Called when the target property changes. + + Override this to hook and unhook functionality on the specified Target, rather than the AssociatedObject. + The old target. + The new target. + + + + Gets the target object. If TargetName is not set or cannot be resolved, defaults to the AssociatedObject. + + The target. + In general, this property should be used in place of AssociatedObject in derived classes. + + + + Represents a collection of actions with a shared AssociatedObject and provides change notifications to its contents when that AssociatedObject changes. + + + + + Initializes a new instance of the class. + + Internal, because this should not be inherited outside this assembly. + + + + Called immediately after the collection is attached to an AssociatedObject. + + + + + Called when the collection is being detached from its AssociatedObject, but before it has actually occurred. + + + + + Called when a new item is added to the collection. + + The new item. + + + + Called when an item is removed from the collection. + + The removed item. + + + + Creates a new instance of the TriggerActionCollection. + + The new instance. + + + + Represents an object that can invoke actions conditionally. + + The type to which this trigger can be attached. + + TriggerBase is the base class for controlling actions. Override OnAttached() and + OnDetaching() to hook and unhook handlers on the AssociatedObject. You may + constrain the types that a derived TriggerBase may be attached to by specifying + the generic parameter. Call InvokeActions() to fire all Actions associated with + this TriggerBase. + + + + + Initializes a new instance of the class. + + + + + Gets the object to which the trigger is attached. + + The associated object. + + + + Gets the type constraint of the associated object. + + The associated object type constraint. + + + + Argument passed to PreviewInvoke event. Assigning Cancelling to True will cancel the invoking of the trigger. + + This is an infrastructure class. Behavior attached to a trigger base object can add its behavior as a listener to TriggerBase.PreviewInvoke. + + + + Represents a collection of triggers with a shared AssociatedObject and provides change notifications to its contents when that AssociatedObject changes. + + + + + Initializes a new instance of the class. + + Internal, because this should not be inherited outside this assembly. + + + + Called immediately after the collection is attached to an AssociatedObject. + + + + + Called when the collection is being detached from its AssociatedObject, but before it has actually occurred. + + + + + Called when a new item is added to the collection. + + The new item. + + + + Called when an item is removed from the collection. + + The removed item. + + + + Creates a new instance of the . + + The new instance. + + + + Specifies type constraints on the AssociatedObject of TargetedTriggerAction and EventTriggerBase. + + + + + Initializes a new instance of the class. + + The constraint type. + + + + Gets the constraint type. + + The constraint type. + + + + 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 Cannot set the same BehaviorCollection on multiple objects.. + + + + + Looks up a localized string similar to An instance of a Behavior cannot be attached to more than one object at a time.. + + + + + Looks up a localized string similar to Cannot host an instance of a TriggerAction in multiple TriggerCollections simultaneously. Remove it from one TriggerCollection before adding it to another.. + + + + + Looks up a localized string similar to Cannot set the same TriggerCollection on multiple objects.. + + + + + Looks up a localized string similar to An instance of a trigger cannot be attached to more than one object at a time.. + + + + + Looks up a localized string similar to The command "{0}" does not exist or is not publicly exposed on {1}.. + + + + + Looks up a localized string similar to "{0}" is not a valid type for the TriggerType parameter. Make sure "{0}" derives from TriggerBase.. + + + + + Looks up a localized string similar to Cannot add the same instance of "{0}" to a "{1}" more than once.. + + + + + Looks up a localized string similar to The event "{0}" on type "{1}" has an incompatible signature. Make sure the event is public and satisfies the EventHandler delegate.. + + + + + Looks up a localized string similar to Cannot find an event named "{0}" on type "{1}".. + + + + + Looks up a localized string similar to An object of type "{0}" cannot have a {3} property of type "{1}". Instances of type "{0}" can have only a {3} property of type "{2}".. + + + + + Looks up a localized string similar to Cannot attach type "{0}" to type "{1}". Instances of type "{0}" can only be attached to objects of type "{2}".. + + + + + Looks up a localized string similar to Unable to resolve TargetName "{0}".. + + + + diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/es/Microsoft.Expression.Controls.xml b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/es/Microsoft.Expression.Controls.xml new file mode 100644 index 0000000..f2e3bc3 --- /dev/null +++ b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/es/Microsoft.Expression.Controls.xml @@ -0,0 +1,538 @@ + + + + Microsoft.Expression.Controls + + + + + Se llama antes de recorrer en bucle las polilíneas. + + + + + Calcula el valor usado cuando se establece LayoutPath.Capacity en Auto. + + + + + Comprueba si se debe continuar o no el bucle sobre las polilíneas. + + + + + Se llama antes de recorrer una polilínea nueva. + + + + + Se llama cuando se completa una polilínea. + + La longitud de arco restante de la polilínea. + + + + Se llama cuando se completa un paso correctamente. + + La distancia real de paso. Puede diferir del valor de Step si se ha ajustado a otra polilínea. + + + + Distribuye los elementos secundarios de un panel de trazado a lo largo de un trazado de diseño especificado. + + El panel de trazado. + Índice del trazado en pathPanel.LayoutPaths. + Índice del primer elemento secundario que se va a colocar en este trazado. + Índice del siguiente elemento secundario que se va a distribuir. Si se devuelve childIndex, esta función ha hecho nada. + + + + Índice del siguiente elemento secundario que se va a disponer. + + + + + La distancia longitudinal de arco que se utiliza para el diseño. + + + + + La distancia longitudinal de arco que se va a recorrer en la polilínea actual. + + + + + El número total de elementos que se van a disponer en LayoutPath. + + + + + Distribuye los elementos secundarios de un panel de trazado a lo largo de un trazado de diseño. Una distribución uniforme significa que hay la misma longitud de arco entre los centros de todos los elementos del trazado. + + + + + Especifica qué propiedades del diseño de trazado han cambiado. + + + + + Proporciona datos para el evento . + + + + + Inicializa una nueva instancia de la clase . + + Los datos para el evento. + + + + Obtiene las propiedades modificadas en un evento . + + + + + Encapsula los datos necesarios para actualizar un elemento . + + + + + Obtiene o establece el índice del trazado en el que está dispuesto un elemento. + + + + + Obtiene o establece el índice de un elemento de una colección de elementos. + + + + + Obtiene o establece el índice de un elemento dispuesto en un trazado. + + + + + Obtiene o establece el desplazamiento de un elemento proporcional a la longitud total de una colección de trazados. + + + + + Obtiene o establece el desplazamiento de un elemento proporcional a la longitud del trazado. + + + + + Obtiene o establece el ángulo perpendicular al trazado en la ubicación de un elemento. + + + + + Obtiene o establece el ángulo perpendicular al trazado en la ubicación de un elemento si el elemento está orientado hacia el trazado. + + + + + Obtiene o establece un valor que indica si un elemento está dispuesto o no en un trazado. + + + + + Representa un elemento dispuesto por un . + + + Al implementar esta interfaz permite que establezca estas propiedades al disponer el elemento. Esta interfaz no está pensada para una implementación general. + + + + + Actualiza las propiedades de en función del valor de especificado y provoca el evento. + + Los datos necesarios para actualizar el elemento . + + + + Se produce cuando cambian una o varias de las propiedades de . + + + Este evento se provoca siempre que se actualiza la posición del elemento a lo largo del trazado. Esto puede ocurrir debido a cambios en las propiedades de o a cambios realizados en . + + + + + Obtiene el índice del trazado en el que está dispuesto el elemento. + + + + + Obtiene el índice del elemento de una colección de elementos. + + + + + Obtiene el índice del elemento en el trazado en el que está dispuesto. + + + + + Obtiene el desplazamiento del elemento proporcional a la longitud total de una colección de trazados. + + + + + Obtiene el desplazamiento del elemento proporcional a la longitud del trazado en el que está dispuesto. + + + + + Obtiene el ángulo perpendicular al trazado en la ubicación del elemento. + + + + + Obtiene el ángulo perpendicular al trazado en la ubicación del elemento si el elemento está orientado hacia el trazado. + + + + + Obtiene o establece un valor que indica si el elemento está dispuesto o no en un trazado. + + + + + Convierte un valor que indica si un elemento está dispuesto en un valor que se usa para ajustar la escala del elemento. + + + + + Inicia una excepción en todos los casos. + + Los datos de destino que se pasan al origen. + El valor de de los datos que espera el objeto de origen. + Parámetro opcional que se usa en la lógica del convertidor. + La cultura de la conversión. + El valor que se pasa al objeto de origen. + + + + Convierte el valor especificado en un valor . + + Los datos de origen que se pasan al destino. + El valor de de los datos que espera la propiedad de dependencia de destino. + Parámetro opcional que se usa en la lógica del convertidor. + La cultura de la conversión. + Si el valor es true, se devuelve 1. De lo contrario, se devuelve 0. + + + + Especifica la distribución de un objeto . + + + + + Especifica la orientación de los elementos de un objeto . + + + + + Especifica el método para modificar el valor de en un trazado abierto. + + + + + Describe un trazado a lo largo del cual se disponen los elementos. + + + + + Lo ideal es almacenar en caché las curvas de Bézier antes de aplanarlas, ya que transformación afectará al aplanamiento. Eso requiere almacenar en caché las curvas para las que aún no hay plena compatibilidad. En lugar de ello, almacenamos en caché los puntos de aplanamiento de la estrategia de distribución y los transformamos a petición. + + + + + Obtiene o establece el elemento que define el trazado. + + + + + Obtiene o establece si los elementos se distribuyen uniformemente o con un espaciado fijo. + + + + + Obtiene o establece el número máximo de elementos mostrados en . + + + + + Obtiene o establece la distancia en píxeles a lo largo de la longitud de arco de entre dos elementos. + + + + + Obtiene o establece la orientación de los elementos. + + + Esta propiedad se admite en , pero no en . + + + + + Obtiene o establece la distancia desde el inicio de a la que se colocará el primer elemento. + + + + + Obtiene o establece el porcentaje de que participa en el diseño. + + + + + Obtiene o establece el método para modificar el valor de en un trazado abierto. + + + + + Obtiene la capacidad calculada. + + + + + Obtiene el valor que indica si el elemento es válido o no en el contexto. Un elemento no es válido si es un descendiente del en el que se utiliza. + + + + + Distribuye los elementos secundarios de un trazado de diseño basándose en el tamaño de los elementos secundarios y en un espaciado entre elementos secundarios especificado. La distancia longitudinal de arco entre elementos secundarios se determina mediante el espaciado más la suma de los radios de los cuadros delimitadores de los elementos secundarios. + + + + + Contiene una lista de elementos dispuestos a lo largo de uno o varios trazados. + + + + + Inicializa una nueva instancia de la clase . + + + + + Crea el elemento que se utiliza para mostrar un elemento especificado. + + Elemento correspondiente a un elemento especificado. + + + + Determina si el elemento especificado es (o puede ser) su propio contenedor. + + true si el elemento es su propio contenedor; de lo contrario, false. + El elemento especificado. + + + + Coloca los elementos secundarios en su posición. + + El tamaño que este objeto debe utilizar para disponer sus elementos secundarios. + El tamaño real utilizado. + + + + Obtiene o establece una colección de objetos que definen los trazados usados para el diseño. + + + + + Obtiene o establece el índice que se debe utilizar en la lista de elementos. + + + + + Obtiene o establece el valor que indica si el índice de elementos se ajusta al principio de la colección cuando el valor de StartItemIndex es mayor que 0. + + + + + Representa un elemento de un objeto . + + + + + Inicializa una nueva instancia de la clase . + + + + + Para ver una descripción de este miembro, vea . + + + + + Para ver una descripción de este miembro, vea . + + + + + Para ver una descripción de este miembro, vea . + + + + + Para ver una descripción de este miembro, vea . + + + + + Para ver una descripción de este miembro, vea . + + + + + Para ver una descripción de este miembro, vea . + + + + + Para ver una descripción de este miembro, vea . + + + + + Para ver una descripción de este miembro, vea . + + + + + Para ver una descripción de este miembro, vea . + + + + + Para obtener una descripción de este miembro, vea . + + + + + Dispone los elementos secundarios a lo largo de uno o varios trazados. + + + puede utilizarse como alternativa a cuando no es necesario seleccionar. La propiedad no es compatible con . + + + + + Inicializa una nueva instancia de la clase . + + + + + Mide el tamaño requerido para los elementos secundarios. + + El tamaño disponible que este elemento puede otorgar a los elementos secundarios. + El tamaño que este elemento determina que necesita durante el diseño, basándose en los cálculos de los tamaños de los elementos secundarios. + + + + Coloca los elementos secundarios en su posición. + + El tamaño que este objeto debe utilizar para disponer sus elementos secundarios. + El tamaño real utilizado. + + + + Dispone el elemento secundario del índice especificado en una ubicación concreta de un objeto LayoutPath. + + Un índice en el intervalo de 0 a PathPanel.Count. + Índice del trazado de diseño en el que se va a disponer el elemento secundario. + La polilínea en el trazado de diseño. + La ubicación de la polilínea. + Índice del elemento secundario en el objeto LayoutPath. + + + + Calcula el radio del círculo delimitador para el elemento secundario con el índice especificado. + + Un índice en el intervalo de 0 a PathPanel.Count. + + + + Obtiene o establece una colección de objetos que definen los trazados usados para el diseño. + + + + + Obtiene o establece el índice que se debe utilizar en la lista de elementos. + + + + + Obtiene o establece el valor que indica si el índice de elementos se ajusta al principio de la colección cuando el valor de es mayor que 0. + + + + + El subconjunto de objetos LayoutPath que están asociados y no contraídos. + + + + + Count es el número de elementos secundarios que se mostrarán en PathPanel. Si StartItemIndex > 0 y WrapItems es false, puede ser menor que PathPanel.Children.Count + + + + + Obtiene el panel que contiene los contenedores de un objeto ItemsControl. + + El objeto ItemsControl. + + Panel que contiene los contenedores de un objeto ItemsControl o null si no se encuentra el panel. + + + es null. + + + + + Recorre un árbol aceptando un valor inicial y una función que recupera los nodos secundarios de un nodo. + + El tipo de la secuencia. + El nodo inicial. + Una función que recupera los nodos secundarios de un nodo. + Un predicado que se evalúa como un nodo y devuelve un valor que indica si deben recorrerse ese nodo y sus nodos secundarios. + Una secuencia de nodos. + + + + Obtiene los elementos secundarios de árbol visuales de un elemento. + + El elemento. + Los elementos secundarios de árbol visuales de un elemento. + + es null. + + + + + Obtiene los elementos secundarios del árbol visuales de un elemento y el propio elemento. + + El elemento. + + Los elementos secundarios del árbol visuales de un elemento y el propio elemento. + + + + + Recupera todos los elementos secundarios lógicos de un elemento de marco mediante una búsqueda en anchura. Por motivos de rendimiento, este método administra manualmente la pila en lugar de utilizar recursividad. + + El elemento de marco primario. + Los elementos lógicos secundarios del elemento de marco. + + + + Recupera todos los descendientes lógicos de un elemento de marco mediante una búsqueda en anchura. Por motivos de rendimiento, este método administra manualmente la pila en lugar de utilizar recursividad. + + El elemento de marco primario. + Los elementos lógicos secundarios del elemento de marco. + + + \ No newline at end of file diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/es/Microsoft.Expression.Drawing.xml b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/es/Microsoft.Expression.Drawing.xml new file mode 100644 index 0000000..e1d32de --- /dev/null +++ b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/es/Microsoft.Expression.Drawing.xml @@ -0,0 +1,1631 @@ + + + + Microsoft.Expression.Drawing + + + + + Representa una forma de llamada compatible con diversas formas, combinada con una flecha de llamada. + + + + + Proporciona una clase base de una forma compuesta que se deriva de e implementa . + + + implementa la interfaz y admite la representación de una geometría similar a , pero la geometría se puede representar fuera de los límites de diseño. + + Una implementación típica tiene una plantilla predeterminada personalizada en generic.xaml que enlaza desde la plantilla la mayoría de las propiedades de forma a un objeto . También debería extender la propiedad para personalizar la apariencia del objeto . + + Esta clase también permite mostrar contenido junto con la forma. + + + + + Proporciona una interfaz para describir los parámetros de un objeto Shape. + + + Esta interfaz la forman los datos para la comunicación entre objetos Shape y GeometrySource. Normalmente, una implementación concreta de IShape implementará esta interfaz y se la pasará a GeometrySource.UpdateGeometry(), que consumirá la forma como un proveedor de datos de sólo lectura. + + + + + Proporciona la interfaz necesaria para definir un objeto Shape. Tanto las formas simples como las compuestas deben corresponderse con esta interfaz, aunque puedan derivarse de distintos tipos de FrameworkElement. + + + + + Invalida la geometría para una interfaz . Después de la invalidación la interfaz volverá a calcular la geometría, lo que se producirá de forma asincrónica. + + + + Obtiene o establece el objeto que especifica cómo se pinta el interior de la forma. + Un objeto que describe cómo se pinta el interior de la forma. El valor predeterminado es null. + + + Obtiene o establece el objeto que especifica cómo se pinta el contorno del objeto . + Un objeto que especifica cómo se pinta el contorno del objeto . + + + Obtiene o establece el ancho del contorno del trazo del objeto . + El ancho del contorno del objeto , expresado en píxeles. + + + Obtiene o establece un valor de la enumeración que describe cómo rellena la forma el espacio que tiene asignado. + Uno de los valores de la enumeración . El valor predeterminado en tiempo de ejecución depende del tipo del objeto . + + + + Obtiene la geometría representada que genera el motor de representación. + + + + + Obtiene el margen entre los límites lógicos y reales de la geometría. Puede ser un valor positivo (como en ) o negativo (como en ). + + + + + Se produce cuando RenderedGeometry cambia. + + + + + Extiende la manera de dibujar la forma mediante la creación de un origen de geometría. + + + + + Invalida la geometría para una interfaz . Después de la invalidación la interfaz volverá a calcular la geometría, lo que se producirá de forma asincrónica. + + + + Proporciona el comportamiento para la parte de organización de una comprobación del diseño de Silverlight. Las clases pueden reemplazar este método para definir su propio comportamiento en la fase de organización. + El tamaño real utilizado cuando se ha dispuesto el elemento en el diseño. + El área final del elemento primario que este objeto debe utilizar para disponerse y para disponer sus elementos secundarios. + volverá a calcular la geometría cuando sea invalidado y actualizará los valores de RenderedGeometry y GeometryMargin. + + + + Transforma un contenido de cadena en un objeto compatible con la alineación central y con varias líneas. + + + Utilice el enlace de plantilla a en lugar de a para habilitar este método. + + + + + Obtiene o establece el objeto que especifica cómo se pinta el interior de la forma. + + Un objeto que describe cómo se pinta el interior de la forma. + + + Obtiene o establece el objeto que especifica cómo se pinta el contorno del objeto . + Un objeto que especifica cómo se pinta el contorno del objeto . + + + Obtiene o establece el ancho del contorno del trazo del objeto . + El ancho del contorno del objeto , expresado en píxeles. + + + Obtiene o establece un valor de la enumeración que describe cómo rellena la forma el espacio que tiene asignado. + Uno de los valores de la enumeración . + + + Obtiene o establece un valor de la enumeración que describe el objeto al principio de una propiedad. + Un valor de la enumeración que especifica la forma al principio de una propiedad . + + + Obtiene o establece un valor de la enumeración que describe el objeto al final de una línea. + Uno de los valores de la enumeración para . + + + Obtiene o establece un valor de la enumeración que especifica el tipo de unión que se utiliza en los vértices de un objeto . + Un valor de la enumeración que especifica el aspecto de la unión. + + + Obtiene o establece un límite de la relación de la longitud del ángulo con respecto a la mitad del valor de para un elemento . + El límite de la proporción de la longitud del ángulo con respecto al valor de para un elemento . Este valor siempre es un número positivo mayor o igual que 1. + + + Obtiene o establece una colección de valores que indican el modelo de guiones y espacios que se utiliza para describir el contorno de las formas. + Una colección de valores que especifican el modelo de guiones y espacios. + + + Obtiene o establece un valor de la enumeración que especifica cómo se dibujan los extremos de un guión. + Uno de los valores de la enumeración para . El valor predeterminado es . + + + Obtiene o establece un valor que especifica la distancia dentro del modelo de guiones a la que comienza un guión. + Un valor que representa la distancia dentro del modelo de guiones a la que comienza un guión. El valor predeterminado es 0. + + + + Obtiene la geometría representada que genera el motor de representación. + + + + + Obtiene el margen entre los límites lógicos y reales de la geometría. Puede ser un valor positivo (como en ) o negativo (como en ). + + + + + Obtiene o establece el contenido interno que convierte una cadena en un bloque de texto de varias líneas con alineación central. + + + + + Se produce cuando RenderedGeometry cambia. + + + + + Obtiene o establece la posición de la llamada con respecto a la esquina superior izquierda. + + + + + Obtiene o establece el estilo de la llamada. + + + + + Proporciona una clase base de una forma compuesta que se deriva de e implementa . + + + implementa la interfaz y admite la representación de una geometría similar a , pero la geometría se puede representar fuera de los límites de diseño. + + Una implementación típica tiene una plantilla predeterminada personalizada en generic.xaml que enlaza desde la plantilla la mayoría de las propiedades de forma a un objeto . También debería extender la propiedad para personalizar la apariencia del objeto . + + + + + Extiende la manera de dibujar la forma mediante la creación de un origen de geometría. + + + + + Invalida la geometría para una interfaz . Después de la invalidación la interfaz volverá a calcular la geometría, lo que se producirá de forma asincrónica. + + + + Proporciona el comportamiento para la parte de organización de una comprobación del diseño de Silverlight. Las clases pueden reemplazar este método para definir su propio comportamiento en la fase de organización. + El tamaño real utilizado cuando se ha dispuesto el elemento en el diseño. + El área final del elemento primario que este objeto debe utilizar para disponerse y para disponer sus elementos secundarios. + volverá a calcular la geometría cuando sea invalidado y actualizará los valores de RenderedGeometry y GeometryMargin. + + + + Obtiene o establece el objeto que especifica cómo se pinta el interior de la forma. + + Un objeto que describe cómo se pinta el interior de la forma. + + + Obtiene o establece el objeto que especifica cómo se pinta el contorno del objeto . + Un objeto que especifica cómo se pinta el contorno del objeto . + + + Obtiene o establece el ancho del contorno del trazo del objeto . + El ancho del contorno del objeto , expresado en píxeles. + + + Obtiene o establece un valor de la enumeración que describe cómo rellena la forma el espacio que tiene asignado. + Uno de los valores de la enumeración . + + + Obtiene o establece un valor de la enumeración que describe el objeto al principio de una propiedad. + Un valor de la enumeración que especifica la forma al principio de una propiedad . + + + Obtiene o establece un valor de la enumeración que describe el objeto al final de una línea. + Uno de los valores de la enumeración para . + + + Obtiene o establece un valor de la enumeración que especifica el tipo de unión que se utiliza en los vértices de un objeto . + Un valor de la enumeración que especifica el aspecto de la unión. + + + Obtiene o establece un límite de la relación de la longitud del ángulo con respecto a la mitad del valor de para un elemento . + El límite de la proporción de la longitud del ángulo con respecto al valor de para un elemento . Este valor siempre es un número positivo mayor o igual que 1. + + + Obtiene o establece una colección de valores que indican el modelo de guiones y espacios que se utiliza para describir el contorno de las formas. + Una colección de valores que especifican el modelo de guiones y espacios. + + + Obtiene o establece un valor de la enumeración que especifica cómo se dibujan los extremos de un guión. + Uno de los valores de la enumeración para . El valor predeterminado es . + + + Obtiene o establece un valor que especifica la distancia dentro del modelo de guiones a la que comienza un guión. + Un valor que representa la distancia dentro del modelo de guiones a la que comienza un guión. El valor predeterminado es 0. + + + + Obtiene la geometría representada que genera el motor de representación. + + + + + Obtiene el margen entre los límites lógicos y reales de la geometría. Puede ser un valor positivo (como en ) o negativo (como en ). + + + + + Se produce cuando RenderedGeometry cambia. + + + + + Representa un segmento de línea curva con puntas de flecha opcionales en ambos extremos. + + + + Proporciona el comportamiento para la fase de medición del diseño de Silverlight. Las clases pueden reemplazar este método para definir su propio comportamiento en la fase de medición. + El tamaño que este objeto determina que necesita durante el diseño, basándose en sus cálculos de tamaños asignados a objetos secundarios o posiblemente en otras consideraciones, como el tamaño fijo del contenedor. + El tamaño disponible que este objeto puede otorgar a los objetos secundarios. Se puede especificar el valor infinito () para indicar que el objeto ajustará su tamaño al contenido disponible. + + Un valor predeterminado puede representar el objeto en cualquier tamaño. se estirará al límite del diseño y se representará fuera si es necesario. + + + + + Obtiene o establece el valor de la curvatura de la flecha. + + El valor de la curvatura debe estar entre 0 y 1. + + + + Obtiene o establece la representación de la punta de flecha al principio de la línea. + + + + + Obtiene o establece la representación de la punta de flecha al final de la línea. + + + + + Obtiene o establece la esquina desde la que se debe comenzar a dibujar la flecha. + + + + + Obtiene o establece la longitud de la flecha en píxeles. + + + + + Proporciona un control de elementos que muestra un elemento seleccionado y permite desplazar lateralmente entre elementos mediante movimientos táctiles. + + + + + El constructor de PanningItems. + + + + + Se llama cuando se aplica la plantilla PanningItems. + + + + + Obtiene o establece la orientación de los elementos en el control. + + + + + Obtiene o establece la tolerancia de gesto. Puede ser un valor entre 0 y 1. Representa el porcentaje del tamaño de los elementos PanningItems que hay que cubrir mediante el gesto táctil para desencadenar un cambio de elementos. + + + + + Obtiene o establece el elemento que hay antes del elemento seleccionado. + + + + + Obtiene o establece el elemento que hay a continuación del elemento seleccionado. + + + + + Obtiene o establece el valor que indica si el contenido del control de elementos debe repetirse en bucle, de forma que el primer elemento siga al último. + + + + + Obtiene o establece el valor del control deslizante que controla el movimiento de desplazamiento lateral. + + + + + Clase auxiliar para trabajar con PathGeometry. + + + + + Convierte una cadena del minilenguaje de trazado en un objeto PathGeometry. + + Una cadena en el minilenguaje de trazado. + + + + Convierte la geometría especificada en un único objeto PathGeometry. + + + + + Actualiza la geometría determinada como un objeto PathGeometry con una polilínea que se corresponde con una lista de puntos especificada. + + + + + Analiza la sintaxis de la geometría abreviada. + + + + + Clase auxiliar para convertir un elemento ArcSegment en elementos BezierSegment. + + + Clase auxiliar para trabajar con PathSegment y todas las variaciones. + + + Clases de estrategia para controlar distintos tipos de PathSegment. + + + + + Convierte un segmento de arco a formato Bézier. Devuelve BezierSegment, PolyBezierSegment, LineSegment o null. Si devuelve null, el arco degenera en el punto inicial. + + + + + Evite llamar al constructor de tres parámetros, ya que siempre establece un valor local para IsStroked. + + + + + + + Actualiza la colección SegmentCollection con la polilínea especificada correspondiente a la lista de puntos especificada. Intenta mantener los cambios al mínimo y devuelve false si no hay cambios. + + + + + Actualiza el segmento collection[index] con un segmento Bézier de polilínea que se corresponde con una lista de puntos especificada. Una lista de puntos especificada debe contener 3*N puntos para N segmentos Bézier. + + + + + Comprueba si un segmento de trazado especificado está vacío. + + + + + Obtiene el número de puntos del segmento de trazado especificado. + + + + + Obtiene el último punto de un segmento de trazado especificado. + + + + + Obtiene el punto con el índice especificado en un segmento dado. Si la entrada es (-1), devuelve el último punto. + + + + + Aplana el segmento especificado y agrega los puntos resultantes a la lista de puntos especificada. + + El segmento que se va a aplanar. + La lista de puntos resultante. + El punto inicial del segmento. + La tolerancia a errores. Debe ser un valor positivo. Puede ser cero. El valor de reserva es la tolerancia predeterminada. + + + + ArcToBezier calcula la aproximación de Bézier de un arco. + + + Esta utilidad calcula la aproximación de Bézier para un arco de elipse tal y como se define en la especificación de arco de SVG. La elipse desde la que se extrae el arco está alineada con el eje en sus propias coordenadas, y definida por los radios x e y. El ángulo de rotación define cómo se giran los ejes de la elipse con respecto al eje x. Los puntos inicial y final definen uno de los 4 arcos posibles; las marcas de barrido y de arco grande determinan cuál de estos arcos resultará elegido. + + Si cPieces = 0, indica que se trata de una línea en lugar de un arco. cPieces = -1 indica que el arco degenera en un punto. + + + + + Obtiene el número de arcos de Bézier y el seno y el coseno de cada uno de ellos. + + + Es una utilidad privada utilizada por ArcToBezier. Divide el arco en fragmentos de forma que ningún fragmento abarque más de 90 grados. Los puntos de entrada están en el círculo unitario. + + + + + GetBezierDistance devuelve la distancia como una fracción del radio. + + + Obtiene la distancia desde los extremos del arco circular a los puntos de control del arco de Bézier que lo aproxima como una fracción del radio del arco. + + Puesto que el resultado es relativo al radio del arco, depende estrictamente del ángulo del arco. Se supone que el arco es de 90 grados o menos, por lo que el ángulo se determina mediante el coseno de dicho ángulo, que se deriva de rDot, el producto escalar de dos vectores radiales. Necesitamos la curva de Bézier que concuerda con los puntos y las tangentes del arco en los extremos y en el punto medio. Aquí se calcula la distancia desde los extremos de la curva a sus puntos de control. + + Puesto que buscamos la distancia relativa, podemos trabajar con el círculo unitario. Coloque el centro del círculo en el origen y el eje X como bisector entre los dos vectores. Sea a el ángulo entre los vectores. Entonces, las coordenadas X del primer punto y del último punto son cos(a/2). Sea x la coordenada X del segundo punto y el tercer punto. Para t = 1/2, tenemos un punto en (1,0). Pero en ese punto los términos del polinomio son todos iguales: + + (1-t)^3 = t*(1-t)^2 = t^2*(1-t) = t^3 = 1/8, + + por lo tanto, de la fórmula de Bézier obtenemos: + + 1 = (1/8) * (cos(a/2) + 3x + 3x + cos(a/2)), + + por lo que + + x = (4 - cos(a/2)) / 3 + + La diferencia de X entre ese punto y el primer punto es: + + DX = x - cos(a/2) = 4(1 - cos(a/2)) / 3. + + Pero DX = distancia / sin(a/2), por lo que la distancia es + + dist = (4/3)*(1 - cos(a/2)) / sin(a/2). + + En lugar del ángulo a, tenemos rDot = R^2 * cos(a), por lo que si multiplicamos el valor superior y el inferior por R: + + dist = (4/3)*(R - Rcos(a/2)) / Rsin(a/2) + + y usamos un poco de trigonometría: ________________ cos(a/2) = \/(1 + cos(a)) / 2 ______________________ R*cos(a/2) = \/(R^2 + R^2 cos(a)) / 2 ________________ = \/(R^2 + rDot) / 2 + + Sea A = (R^2 + rDot)/2. ____________________ R*sin(a/2) = \/R^2 - R^2 cos^2(a/2) _______ = \/R^2 - A + + por tanto: _ 4 R - \/A dist = - * ------------ 3 _______ \/R^2 - A + + Historial: creado por MichKa el 29/05/2001. + + + + + Devuelve false si el radio es demasiado pequeño en comparación con la longitud de la cuerda (devuelve true para valores no numéricos, NaN). Se modifica el radio al valor aceptado. + + + + + Una clase de utilidad para aplanar curvas de Bézier. + + + + + Aplana una curva cúbica de Bézier y agrega la polilínea resultante al tercer parámetro. + + Los cuatro puntos de control de la curva cúbica de Bézier. + La distancia máxima entre dos puntos correspondientes en la curva auténtica y en la polilínea aplanada. Debe ser estrictamente positiva. + Dónde se agrega la polilínea aplanada. + True para omitir el primer punto de control al agregar la polilínea aplanada. + Dónde se agrega el valor del parámetro de curva de Bézier asociado a cada uno de los vértices de la polilínea. + Si no tiene valor, siempre se agregan el primer punto de control y su parámetro asociado. + + + + Aplana una curva cuadrática de Bézier y agrega la polilínea resultante al tercer parámetro. Utiliza la elevación de grado para curvas de Bézier con el fin de reutilizar el código para el caso cúbico. + + Los tres puntos de control de la curva cuadrática de Bézier. + La distancia máxima entre dos puntos correspondientes en la curva auténtica y en la polilínea aplanada. Debe ser estrictamente positiva. + Dónde se agrega la polilínea aplanada. + Establece si se omite el primer punto de control al agregar la polilínea aplanada. + Dónde se agrega el valor del parámetro de curva de Bézier asociado a cada uno de los vértices de la polilínea. + Si no tiene valor, siempre se agregan el primer punto de control y su parámetro asociado. + + + + Métodos de extensión compatibles con tipos no geométricos. + + + + + Permite la aplicación de un delegado de acción (a menudo una expresión lambda muy sencilla) a una secuencia completa. + + + + + Permite la aplicación de un delegado de acción (a menudo una expresión lambda muy sencilla) a una secuencia completa. + + + + + Permite la aplicación de un delegado de acción (a menudo una expresión lambda muy sencilla) a una secuencia completa con el índice de cada elemento. + + + + + Garantiza que el recuento de una lista coincide con un valor dado. Crea elementos con un generador especificado o quita elementos cuando es necesario. Si la entrada IList es una lista, se usa AddRange o RemoveRange cuando no hay ningún generador. + + + + + Garantiza que el recuento de una lista es como mínimo el valor dado. Crea elementos con el generador especificado. + + + + + Agrega un intervalo de elementos al final de una colección. Si la colección es una lista, se utiliza List.AddRange. + + + + + Obtiene el último elemento de una lista especificada. + + + + + Quita el último elemento de la lista especificada. + + + + + Hace una copia de obj y todas sus propiedades públicas, incluidas todas las propiedades de colección. + + + + + Establece el valor si es diferente. Evita establecer un valor local si es posible. Devuelve true si se ha cambiado el valor. + + + + + Borra la propiedad de dependencia cuando está establecida localmente en el objeto de dependencia especificado. Devuelve false si la propiedad de dependencia no está establecida localmente. + + + + + Busca todos los descendientes visuales de determinado tipo y condición mediante una búsqueda en anchura. + + + + + Obtiene todos los elementos secundarios visuales de IEnumerable. + + + + + Unifica la interfaz de PropertyMetadata en WPF y Silverlight. Proporciona la notificación necesaria acerca de la representación, disposición o medición. + + + + + Este constructor privado sólo debe utilizarse en AttachCallback. + + + + + Encadena InternalCallback() para adjuntar la instancia de DrawingPropertyMetadata en una devolución de llamada de propiedad. En Silverlight, los metadatos de la propiedad se desechan después de la configuración. Utilice la devolución de llamada para recordarlos. + + + + + Antes de encadenar la devolución de llamada original hay que desencadenar el evento DrawingPropertyChangedEvent. + + + + + Métodos de extensión para estructuras de datos (Point/Vector/Size/Rect) relacionadas con la geometría. + + + + + Cambia el tamaño de un rectángulo con respecto al tamaño relativo manteniendo el centro invariante. + + + + + Obtiene el vector de diferencia entre dos puntos. + + + + + Suma miembro a miembro para Point. + + + + + Resta miembro a miembro para Point. + + + + + Convierte una cadena de minilenguajes en un objeto . + + Vea: Sintaxis de marcado de trazados (http://msdn.microsoft.com/en-us/library/cc189041(VS.95).aspx) + La cadena de minilenguajes de trazados para describir trazados geométricos. + Un objeto convertido a partir de los minilenguajes de trazados. + + + + Aplana un objeto y agrega los puntos resultantes a . + + La entrada . + La lista de puntos a la que se anexarán los puntos resultantes. + Un número positivo que especifica el error máximo permitido a partir de los puntos resultantes a la figura del trazado de entrada. Un valor igual a cero permite al algoritmo seleccionar automáticamente la tolerancia. + + + + Obtiene el arco normalizado en el cuadro (0,0)(1,1). Se asigna un ángulo de cero grados a [0,5, 0] (arriba) y en el sentido de las agujas del reloj. + + + + + Obtiene el punto de arco absoluto en el límite especificado con el radio relativo especificado. + + + + + Obtiene el ángulo en un arco con respecto al cuadro (0,0)(1,1). Se asigna un ángulo de cero grados a [0,5, 0] (arriba) y en el sentido de las agujas del reloj. + + + + + Obtiene el ángulo en el arco desde el punto absoluto especificado con respecto a un límite. + + + + + Calcula la transformación que mueve de "Rect from" a "Rect to". + + + + + Calcula la transformación del espacio de coordenadas de un UIElement a otro. + + El elemento de origen. + El elemento de destino. + La transformación entre los elementos UIElement, o null si no se puede calcular. + + + + Asigna un punto relativo a un punto absoluto mediante la asignación del límite especificado al cuadro (0,0)(1,1). + + + + + Asigna un punto absoluto a un punto relativo mediante la asignación de un cuadro (0,0)(1,1) a un límite especificado. + + + + + Calcula el límite después de estirar dentro del límite lógico especificado. Si el límite de estiramiento es Uniform, utilice el valor de aspectRatio especificado. Si el valor de aspectRatio está en blanco, es equivalente a Fill. Si el límite de estiramiento es None, es equivalente a Fill o Uniform. + + + + + Devuelve el punto medio entre dos puntos. + + El primer punto. + El segundo punto. + El punto medio entre y . + + + + Devuelve el producto escalar de dos vectores. + + El primer vector. + El segundo vector. + El producto escalar de y . + + + + Devuelve el producto escalar de dos puntos. + + + + + Devuelve la distancia entre dos puntos. + + El primer punto. + El segundo punto. + La distancia entre y . + + + + Devuelve el cuadrado de la distancia entre dos puntos. + + El primer punto. + El segundo punto. + El cuadrado de la distancia entre y . + + + + Determinante del producto vectorial. Equivale a un área con dirección. + + + + + Calcula el vector de dirección normal de los segmentos de línea especificados. + + + + + Calcula el vector perpendicular, 90 grados en sentido opuesto a las agujas del reloj. Vector hacia la derecha. Resultado perpendicular a un vector hacia arriba. + + + + + Indica si las dos geometrías son idénticas. + + + + + Garantiza que el valor es una instancia del tipo de resultado (T). Si no es así, lo reemplaza con una nueva instancia de tipo (T). + + + + + Garantiza que list[index] es una instancia del tipo de resultado (T). Si no es así, lo reemplaza con una nueva instancia de tipo (T). + + + + + Clase auxiliar que proporciona propiedades y métodos estáticos relacionados con la aritmética de punto flotante. + + + + + La distancia mínima para considerar que dos valores son iguales. Nota: en MIL/SL, el tipo de punto flotante interno es float, no double. + + + + + El valor del ángulo de un círculo completo. + + + + + El radio interior de la forma de polígono de pentagrama, con una precisión de tres dígitos en porcentaje. (1 - Sin36 * Sin72 / Sin54) / (Cos36) ^ 2, que es 0.47210998990512996761913067272407 + + + + + Determina si un valor System.Double es lo suficientemente pequeño para ser considerado equivalente a cero. + + + True si el valor es más pequeño que DoubleTolerance; en caso contrario, False. + + + + Devuelve el valor que está dentro del intervalo especificado. Un valor mínimo/máximo especificado como null significa que no hay límite. + + + + + Calcula la norma euclídea del vector (x, y). + + El primer componente. + El segundo componente. + La norma euclídea del vector (x, y). + + + + Calcula un número real a partir de la mantisa y el exponente. + + + + El valor de x * 2^exp si es correcto. + + + + Comprueba si es un valor double. + + El valor double que se va a comprobar. + True si x no es un valor NaN y no es igual a más o menos infinito; en caso contrario, False. + + + + Clase auxiliar para trabajar con PathFigure. + + + + + Aplana la figura especificada y agrega los puntos resultantes a la lista de puntos especificada. + + La tolerancia a errores. Debe ser un valor positivo. Puede ser cero. El valor de reserva es la tolerancia predeterminada. + + + + Itera todos los segmentos que hay dentro de la figura especificada y devuelve el punto inicial correcto para cada segmento. + + + + + Sincroniza la figura con la lista de puntos especificada como un solo segmento de polilínea. Intenta mantener los cambios al mínimo y devuelve false si no hay cambios. + + + + + Sincroniza la figura especificada como una elipse cerrada con dos segmentos de arco. + + + + + Una estructura de datos Tuple para PathSegment y el valor de StartPoint correspondiente. + + + + + Representa una polilínea con una lista de puntos de conexión. Un polígono cerrado se representa repitiendo el primer punto al final. Las diferencias, normales, ángulos y longitudes se calculan a petición. + + + + + Construye una polilínea con dos o más puntos. + + + + + El vector de diferencia directa de polilínea. Points[i] + Differences[i] = Points[i+1] + + + + Calcula el vector normal de la ubicación especificada (lerp(index, index+1, fraction). Si la ubicación está dentro del alcance de cornerRadius, interpola la dirección normal. + + El intervalo de suavidad normal. Si es cero, no hay suavidad y devuelve el vector normal exacto en el índice. + + + + La polilínea es cerrada cuando se repiten el primer y el último punto. + + + + + El recuento de puntos de esta polilínea. + + + + + La longitud de arco total de esta polilínea. + + + + + La matriz de puntos de esta polilínea. + + + + + La longitud entre segmentos de línea, de Points[i] a Points[i+1]. + + + + + La lista de vectores normales para cada segmento. Normals[i] es la dirección normal del segmento p[i] a p[i + 1]. Normals[N-1] == Normals[N-2]. + + + + + La lista de valores Cos(ángulo) entre dos segmentos de línea en el punto p[i]. Nota: el valor es cos(ángulo) = Dot(u, v). No se mide en grados. + + + + + La lista de longitudes acumuladas desde points[i] hasta points[0]. + + + + + La estructura de datos para comunicarse con el algoritmo PathMarch. + + + + + Obtiene la posición interpolada de esta MarchLocation en la lista de puntos especificada. + + + + + Obtiene la dirección normal interpolada de esta MarchLocation en la lista de vectores normales especificada. + + + + + Obtiene la longitud del arco de esta MarchLocation hasta el principio de la polilínea completa. + + + + + La razón por la que se muestrea esta ubicación. + + + + + Índice del punto en una lista de puntos de polilínea. + + + + + Relación: [0, 1], que es siempre antes / (antes + después). + + + + + Longitud de arco antes del punto de detención. Es un valor no negativo y menor que Length[index]. + + + + + Longitud de arco después del punto de detención. Es un valor no negativo y menor que Length[index]. + + + + + Longitud restante de un paso hasta el siguiente punto de detención. Positivo para ir hacia delante. Negativo para ir hacia atrás. + + + + + Clase auxiliar para trabajar con una lista de puntos + + + + + Hace coincidir la polilínea especificada con un intervalo especificado y devuelve cada punto de detención a través de una devolución de llamada. + + Los puntos de polilínea que hay que recorrer. + La longitud de arco que hay que recorrer antes de detenerse en el primer punto. + El ángulo máximo entre bordes que hay que considerar en un vértice de esquina. + Devolución de llamada cuando el algoritmo de recorrido se detiene en un punto. La devolución de llamada devuelve la longitud de arco para el siguiente punto de detención. Si la longitud solicitada es negativa, se realiza el recorrido hacia atrás. Si la devolución de llamada devuelve NaN, finaliza el recorrido. + + + + Reorganiza la lista de polilíneas especificada de manera que la polilínea correspondiente a una longitud de arco especificada en la lista sea la primera. Las polilíneas que preceden a esta línea se concatenan al final de la lista, con la primera polilínea al final. + + Lista de polilíneas. + La longitud de arco en la lista completa de polilíneas en la que se va a buscar la línea inicial. La longitud de arco de esa línea se devuelve en esta variable. + La lista reordenada y ajustada. + + + + Un generador aleatorio que ofrece distribuciones uniformes y gausianas. + + + + + Genera un par de números aleatorios de distribución normal estándar independientes, con valor esperado cero y varianza igual a uno, mediante la forma polar de la transformación Box-Muller. + + + + + Constructor privado. Fuerza el uso de métodos de generador. + + + + + Crea un segmento de línea + + + + + Crea un segmento de curva cúbica de Bézier a partir de una curva cuadrática (con 3 puntos de control) + + + + + Crea un segmento de curva cúbica de Bézier con 4 puntos de control. + + + + + Puntos de control del segmento de trazado. La longitud es variante. El segmento de línea tiene 2 puntos. La curva cúbica de Bézier tiene 4 puntos. + + + + + Compara dos transformaciones para determinar si hay una coincidencia exacta. Transforma con el mismo valor pero con estructura diferente (p.ej., Translate(0,0) y Rotate(0) no se consideran equivalentes). + + La primera transformación. + La segunda transformación. + + + + + Especifica la unidad de grosor. + + + + + Unidad en píxeles. + + + + + Unidad en porcentaje con respecto al cuadro delimitador. + + + + + Proporciona la clase base de un origen de geometría. Genera y almacena en caché la geometría basándose en los parámetros de entrada y los límites de diseño. + + + Una implementación típica extenderá UpdateCachedGeometry() para actualizar this.cachedGeometry. Esta clase base controlará la invalidación, la canalización a efectos de la geometría y el almacenamiento en caché relativos a los límites del diseño. Una implementación debe intentar reutilizar al máximo la geometría almacenada en caché para evitar la reconstrucción en el subproceso de representación. Una implementación puede extender ComputeLogicalBounds para controlar Stretch de forma diferente. + + Tipo del parámetro de origen de geometría en el que trabaja la clase base. + + + + Proporciona una interfaz para describir el origen de una geometría. + + + Esta interfaz está diseñada para exponer el origen de la geometría de una manera no genérica. La implementación típica debe derivar una subclase de GeometrySource en lugar de implementar esta interfaz directamente. + + + + + Notifica que la geometría ha sido invalidada a causa de cambios externos. + + + Normalmente la geometría se invalida cuando se cambian los parámetros. Si alguna geometría se ha invalidado externamente, se volverá a calcular la geometría aunque los límites de diseño cambien. + + + + + Actualice la geometría mediante los parámetros y los límites de diseño especificados. Devuelve false si no se ha actualizado nada. + + + + + Obtiene o establece la geometría resultante después de la aplicación más reciente de UpdateGeometry(). + + + + + Obtiene el cuadro delimitador al que se debe estirar la geometría. La geometría real podría ser menor o mayor que este rectángulo. ya debe tener en cuenta el grosor del trazo y el estiramiento. + + + + + Obtiene los límites reales de FrameworkElement. incluye los límites lógicos, el estiramiento y el grosor del trazo. + + + + + Especifica la geometría del proceso de efecto de geometría anterior. + + + + + Notifica que la geometría ha sido invalidada a causa de cambios externos. + + + Normalmente la geometría se invalida cuando se cambian los parámetros. Si alguna geometría se ha invalidado externamente, se volverá a calcular la geometría independientemente de que los límites de diseño cambien. + + + + + Actualiza la geometría según los parámetros y los valores de layoutBounds especificados. Devuelve false si la geometría no ha cambiado. + + + + + Extiende la forma de proporcionar la geometría mediante la implementación de esta función. Devuelve true cuando se cambia cualquier parte de la geometría. + + + + + Extiende la forma de controlar el modo de estiramiento. De forma predeterminada siempre se utiliza Stretch.Fill y trazo central. + + + + + Aplica el efecto de geometría. Cuando es sucio o forzado, y actualiza this.Geometry. De lo contrario, mantiene this.Geometry como this.cachedGeometry. + + + + + Obtiene o establece la geometría resultante después de la aplicación más reciente de UpdateGeometry(). + + + + + Obtiene el cuadro delimitador al que se debe estirar la geometría. La geometría real podría ser menor o mayor que este rectángulo. ya debe tener en cuenta el grosor del trazo y el estiramiento. + + + + + + Obtiene los límites reales de FrameworkElement. incluye los límites lógicos, el estiramiento y el grosor del trazo. + + + + + + Arc considera que Stretch.None es igual que Stretch.Fill, suponiendo una relación de aspecto 1:1. + + + + + Normaliza el grosor con respecto al cuadro delimitador y a píxeles absolutos. Grosor relativo = 0 -> radio de círculo completo o fijo. Grosor relativo = 1 -> reducido a un punto o degenerado. + + + + + El arco se degenera a una línea que apunta al centro, con vector normal hacia dentro. + + + + + Calcula una lista de pares de ángulos que definen los intervalos en los que debe ubicarse la muestra de arco. Se devuelven 2, 4 ó 6 valores de tipo double. Cada par define un intervalo y están en el orden necesario para abarcar ángulos desde el ángulo inicial hasta el ángulo final especificados. Los intervalos se interrumpirán en el ángulo de autointersección. Si el inicio y el final de entrada están dentro del intervalo no válido entre el ángulo de autointersección, se moverán a la autointersección vecina. + + + + + Mueve el ángulo al intervalo 0-90. + + + + + Calcula todos los fragmentos de curvas interiores con cada par de ángulos de entrada y los conecta con segmentos Bézier de polilínea. Los nuevos segmentos se insertan en la figura especificada. Se muestra la lista de segmentos a partir del índice especificado. El punto inicial se inserta por separado. + + + + + Calcula un fragmento de curva interior con el intervalo de ángulos especificado y genera un fragmento de curva suave con formato de segmentos Bézier de polilínea. + + + + + Calcula el parámetro (ángulo) del punto de autointersección para la elipse dada con el grosor especificado. El resultado siempre está en el primer cuadrante y puede ser 0 ó 90, que indica que no hay autointersección. El algoritmo básico es de búsqueda binaria del ángulo para el que el punto de muestra no está en el primer cuadrante. + + + + + Especifica la dirección a la que señala la flecha. + + + + + La flecha señala a la izquierda. + + + + + La flecha señala a la derecha. + + + + + La flecha señala hacia arriba. + + + + + La flecha señala hacia abajo. + + + + + El algoritmo B /| / C--D A | \ C--D \| B sólo usa los valores de ancho y alto, suponiendo que la esquina superior izquierda corresponde a las coordenadas 0,0 + + + + + Especifica el estilo de representación de una forma de llamada. + + + + + Una llamada rectangular. + + + + + Una llamada rectangular con esquinas redondeadas. + + + + + Una llamada con forma oval. + + + + + Una llamada con forma de nube. + + + + + Actualiza la línea de borde y después conecta con un punto de anclaje si es necesario + + + + + Actualiza el segmento de polilínea y después conecta el punto inicial, el punto de anclaje y el punto final con el estilo de llamada. + + + + + Actualiza el segmento de línea para el punto especificado. + + + + + Calcula los cuatro puntos de esquina en el sentido de las agujas del reloj, con ocho puntos para las cuatro esquinas. + + + + + El arco de esquina es siempre menor que un arco de 90 grados. + + + + + Proporciona la clase base de GeometryEffect que transforma una geometría en otra geometría. + + + Esta clase proporciona la implementación básica del procesamiento de la geometría representada de una interfaz IShape antes de pasarla a la representación. Una implementación típica extenderá la función virtual para transformar la geometría de entrada. suele estar conectado a como una propiedad adjunta y se activa cuando se actualiza la geometría de . La propiedad de un objeto reemplazará la geometría representada en . + + + + + Obtiene el efecto de geometría como una propiedad adjunta en el objeto de dependencia especificado. + + + + + Establece el efecto de geometría como una propiedad adjunta en el objeto de dependencia especificado. + + + + + Realiza una copia en profundidad del efecto . + + + + + Realiza una copia en profundidad del efecto de geometría. Implementa CloneCurrentValue en Silverlight. + + Un clon de la instancia actual del efecto de geometría. + + + + Comprueba si el efecto de geometría especificado es equivalente a la instancia actual. + + Un efecto de geometría con el que se realiza la comparación. + Devuelve true cuando la representación de dos efectos ofrece la misma apariencia. + + + + Especifica la geometría del proceso de efecto de geometría anterior. + + + + + Invalida el efecto de geometría sin calcular realmente la geometría. Se lo notifica a todas las formas o efectos primarios para que lo invaliden. + + + + + Procesa el efecto de geometría en una geometría de entrada especificada. Almacena el resultado en GeometryEffect.OutputGeometry. + + Devuelve false si no ha cambiado nada. + + + + Extiende la manera de actualizar cachedGeometry basándose en la geometría de entrada especificada. + + + + + Se notifica cuando se desasocia de la cadena primaria. + + + + + Se notifica cuando se asocia a una cadena principal. + + + + + Invalida la geometría en un objeto de dependencia determinado cuando el objeto es un tipo de elemento primario válido (IShape o GeometryEffect). + + + + + Implementa Freezable en WPF. + + + + + El efecto de geometría predeterminado que sólo pasa la geometría de entrada. + + + + + Obtiene la geometría de salida de este efecto de geometría. + + + + + El elemento primario puede ser IShape o GeometryEffectGroup. + + + + + Proporciona la conversión entre una cadena y efectos de geometría. + + + Esta clase permite la sintaxis breve de XAML, como GeometryEffect = "Sketch". Crea un clon de la instancia del efecto de geometría para que se pueda utilizar como un recurso. + + + + + Crea una lista preestablecida de efectos de geometría compatibles. + + + + + Se puede convertir un objeto GeometryEffect desde un tipo cadena. + + + + + Se puede convertir un objeto GeometryEffect en un tipo cadena. + + + + + Convierte una cadena en un efecto de geometría. El valor de reserva es null. + + + + + Convierte un efecto de geometría en una cadena. El valor de reserva es null. + + + + + Especifica la razón de que se llame a . + + + + + Se ha invalidado la geometría porque una propiedad ha cambiado. + + + + + Se ha invalidado la geometría porque se está animando una propiedad. + + + + + Se ha invalidado la geometría porque se ha invalidado un elemento secundario. + + + + + Se ha invalidado la geometría porque se ha invalidado un elemento primario. + + + + + Se ha invalidado la geometría porque se ha aplicado una nueva plantilla. + + + + + Proporciona métodos de extensión auxiliares para trabajar con IGeometrySource y parámetros. + + + + + Especifica el tipo de punta de flecha. + + + + + No hay ninguna punta de flecha. + + + + + Una punta de flecha triangular. + + + + + Una punta de flecha triangular invisible. + + + + + Una punta de flecha triangular abierta. + + + + + Una punta de flecha ovalada. + + + + + Especifica la ubicación de la esquina. + + + + + En parte superior izquierda del cuadro delimitador. + + + + + En parte superior derecha del cuadro delimitador. + + + + + En parte inferior derecha del cuadro delimitador. + + + + + En parte inferior izquierda del cuadro delimitador. + + + + + El polígono reconoce que Stretch.None es igual que Stretch.Fill. + + + + + Un efecto de geometría que transforma cualquier geometría en un estilo Sketch como en SketchFlow. + + + + + Realiza una copia en profundidad del efecto de geometría. + + Un clon de la instancia actual del efecto de geometría. + + + + Comprueba si el efecto de geometría especificado es equivalente a la instancia actual. + + Un efecto de geometría con el que se realiza la comparación. + Devuelve true cuando la representación de dos efectos ofrece la misma apariencia. + + + + Actualiza cachedGeometry basándose en la geometría de entrada especificada. + + Una geometría de entrada. + Devuelve true si se ha actualizado algo en cachedGeometry. + + + + Utiliza el mismo valor de inicialización aleatorio en la creación para reducir al mínimo el parpadeo visual. + + + + + Itera todos los segmentos simples en una figura de trazado especificada, incluida la cuerda de cierre. + + + + + Representa una forma de arco compatible con los modos Arc, Ring y Pie, controlada por ArcThickness. + + + + + Implementación de Shape independiente de la plataforma, derivada de WPF:Shape o SL:Path. + + + Proporciona la implementación en WPF de Shape que se deriva del objeto Shape de la plataforma. + + + + + Extiende la manera de dibujar la forma mediante la creación de un origen de geometría. + + + + + Invalida la geometría para una interfaz . Después de la invalidación la interfaz volverá a calcular la geometría, lo que se producirá de forma asincrónica. + + + + Proporciona el comportamiento para la parte de medición de una comprobación del diseño de Silverlight. Las clases pueden reemplazar este método para definir su propio comportamiento en la fase de medición. + El tamaño que este objeto determina que necesita durante el diseño, basándose en sus cálculos de tamaños asignados a objetos secundarios o posiblemente en otras consideraciones, como el tamaño fijo del contenedor. + El tamaño disponible que este objeto puede otorgar a los objetos secundarios. Se puede especificar el valor infinito () para indicar que el objeto ajustará su tamaño al contenido disponible. + + En WPF, el reemplazo de medida funciona desde Shape.DefiningGeometry, que no siempre es como se espera. Vea el error 99497, relativo a que WPF no tiene la medida correcta de forma predeterminada, para obtener más información. + + En Silverlight, el reemplazo de la medida en Path no funciona igual que para la forma primitiva. + + Se debe devolver el tamaño más pequeño para que se pueda representar correctamente esta forma sin recorte. De manera predeterminada, una forma puede representarse tan pequeña como un punto, en cuyo caso devuelve el espesor de trazado. + + + + Proporciona el comportamiento para la parte de organización de una comprobación del diseño de Silverlight. Las clases pueden reemplazar este método para definir su propio comportamiento en la fase de organización. + El tamaño real utilizado cuando se ha dispuesto el elemento en el diseño. + El área final del elemento primario que este objeto debe utilizar para disponerse y para disponer sus elementos secundarios. + volverá a calcular la geometría cuando sea invalidado y actualizará los valores de RenderedGeometry y GeometryMargin. + + + + Se produce cuando RenderedGeometry cambia. + + + + + Obtiene el margen entre los límites lógicos y reales de la geometría. Puede ser un valor positivo (como en ) o negativo (como en ). + + + + + Obtiene o establece el ángulo inicial. + + El ángulo inicial en grados. Si es de cero grados, apunta hacia arriba. + + + + Obtiene o establece el ángulo final. + + El ángulo final en grados. Si es de cero grados, apunta hacia arriba. + + + + Obtiene o establece el grosor del arco. + + El grosor del arco en píxeles o en porcentaje, en función del valor de "ArcThicnessUnit". + + + + Obtiene o establece la unidad del grosor del arco. + + La unidad de grosor del arco en píxeles o en porcentaje. + + + + Representa una forma de flecha de bloque compatible con una punta y un cuerpo de flecha que pueden cambiar de tamaño. + + + + + Obtiene o establece la orientación. + + La orientación a la que apunta la flecha. + + + + Obtiene o establece el ángulo de la punta de flecha. + + El ángulo final de la punta de flecha en grados. + + + + Obtiene o establece el tamaño del cuerpo de flecha. + + El tamaño del cuerpo de flecha en píxeles. + + + + Representa una forma de polígono regular o la forma de estrella correspondiente con un número variable de puntos. + + + + + Obtiene o establece el número de puntos de . + + + + + Obtiene o establece la distancia entre el centro y el punto más interno. + + La distancia entre el centro y el punto más interno. + + + \ No newline at end of file diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/es/Microsoft.Expression.Effects.xml b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/es/Microsoft.Expression.Effects.xml new file mode 100644 index 0000000..69fd134 --- /dev/null +++ b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/es/Microsoft.Expression.Effects.xml @@ -0,0 +1,1041 @@ + + + + Microsoft.Expression.Effects + + + + + Determina la orientación de las persianas. + + + + + Sombreador de transición que simula la apertura de persianas al realizar la transición de un elemento visual a otro. + + + + + Obtiene o establece la orientación de las persianas. + + + + + Obtiene o establece el número de persianas. + + + + + Obtiene o establece la variable Amplitude en el sombreador. + + + + + Crea una instancia del sombreador. + + + + + Realiza una copia en profundidad del efecto BlindsTransitionEffect. + + Un clon de la instancia actual del efecto BlindsTransitionEffect. + + + + Obtiene o establece la orientación de las persianas. + + + + + Obtiene o establece el número de persianas que se van a mostrar. + + + + + Obtiene o establece la orientación de las persianas. + + + + + Efecto que implementa una iluminación bloom de un elemento visual. + + + + + Entrada explícita de este sombreador de píxeles. + + + + + + Esta propiedad se asigna a la variable BloomIntensity en el sombreador de píxeles. + + + + + Esta propiedad se asigna a la variable BaseIntensity en el sombreador de píxeles. + + + + + Esta propiedad se asigna a la variable BloomSaturation en el sombreador de píxeles. + + + + + Esta propiedad se asigna a la variable BaseSaturation en el sombreador de píxeles. + + + + + Esta propiedad se asigna a la variable BloomIntensity en el sombreador de píxeles. + + + + + Esta propiedad se asigna a la variable BloomSaturation en el sombreador de píxeles. + + + + + Esta propiedad se asigna a la variable BaseSaturation en el sombreador de píxeles. + + + + + Crea una instancia y actualiza las variables del sombreador a los valores predeterminados. + + + + + Obtiene o establece la intensidad mínima que se va a utilizar para el efecto bloom. + + + + + Obtiene o establece la intensidad de base. + + + + + Obtiene o establece la intensidad del efecto bloom. + + + + + Obtiene o establece la saturación de base. + + + + + Obtiene o establece la saturación del efecto bloom. + + + + + Obtiene o establece el muestrario del sombreador de entrada. + + + + + Obtiene o establece la variable de Base/BloomIntensity en el sombreador. + + + + + Obtiene o establece la variable BaseBloomSaturation en el sombreador. + + + + + Efecto de transición que muestra dos elementos visuales a través de un círculo cuyo tamaño aumenta y se reduce. + + + + + Propiedad de dependencia que modifica el valor de la variable FeatherAmount en el sombreador de píxeles. + + + + + Propiedad de dependencia que modifica el movimiento del círculo. + + + + + Propiedad de dependencia que modifica la variable reverseShader en el sombreador de píxeles. + + + + + Crea una instancia y actualiza las variables del sombreador a los valores predeterminados. + + + + + Realiza una copia en profundidad del efecto CircleRevealTransitionEffect. + + Un clon de la instancia actual del efecto CircleRevealTransitionEffect. + + + + Obtiene o establece la variable FuzzyAmount en el sombreador. + + + + + Obtiene o establece la reproducción de la presentación del círculo en sentido inverso. + + + + + Obtiene o establece la reproducción de la presentación del círculo en sentido inverso en el sombreador. + + + + + Efecto de transición que realiza la transición entre dos elementos visuales mediante una textura de nube como umbral de muestrario. + + + + + Define un efecto de sombreador de transición que utiliza una imagen como un umbral de muestrario para interpolar valores de píxeles entre dos elementos visuales. + + + + + Define un efecto de sombreador de transición que proporciona un valor aleatorio que permite variar el efecto cada vez que se ejecuta. + + + + + Propiedad de dependencia que modifica la variable RandomSeed en el sombreador de píxeles. + + + + + Actualiza las variables del sombreador a los valores predeterminados. + + + + + Obtiene o establece la variable RandomSeed en el sombreador. + + + + + Propiedad de dependencia que modifica la variable CloudImage en el sombreador de píxeles. + + + + + Crea una instancia y actualiza las variables del sombreador a los valores predeterminados. + + + + + Obtiene o establece la variable CloudImage en el sombreador usado para el muestreo. + + + + + Crea una instancia del sombreador. + + + + + Realiza una copia en profundidad del efecto CloudRevealTransitionEffect. + + Un clon de la instancia actual del efecto CloudRevealTransitionEffect. + + + + Efecto que modifica el tono de color de un elemento visual utilizando dos colores como muestreo. + + + + + Entrada explícita de este sombreador de píxeles. + + + + + Esta propiedad se asigna a la variable Desaturation en el sombreador de píxeles. + + + + + Esta propiedad se asigna a la variable Tone en el sombreador de píxeles. + + + + + Esta propiedad se asigna a la variable LightColor en el sombreador de píxeles. + + + + + Esta propiedad se asigna a la variable DarkColor en el sombreador de píxeles. + + + + + Crea una instancia y actualiza las variables del sombreador a los valores predeterminados. + + + + + Obtiene o establece la variable Desaturation en el sombreador. + + + + + Obtiene o establece la variable Tone en el sombreador. + + + + + Obtiene o establece la variable LightColor en el sombreador. + + + + + Obtiene o establece la variable DarkColor en el sombreador. + + + + + Obtiene o establece el muestrario del sombreador de entrada. + + + + + Efecto que simula una apariencia en relieve para el elemento visual. + + + + + Entrada explícita de este sombreador de píxeles. + + + + + Esta propiedad se asigna a la variable Amount en el sombreador de píxeles. + + + + + Esta propiedad se asigna a la variable Height en el sombreador de píxeles. + + + + + Esta propiedad se asigna a la variable Color en el sombreador de píxeles. + + + + + Crea una instancia y actualiza las variables del sombreador a los valores predeterminados. + + + + + Obtiene o establece la variable Amount en el sombreador. + + + + + Obtiene o establece la variable Height en el sombreador. + + + + + Obtiene o establece la variable Color en el sombreador. + + + + + Obtiene o establece el muestrario del sombreador de entrada. + + + + + Efecto de transición que realiza una transición gradual desde un elemento visual a otro. + + + + + Crea una instancia del sombreador. + + + + + Realiza una copia en profundidad del efecto FadeTransitionEffect. + + Un clon de la instancia actual del efecto FadeTransitionEffect. + + + + Efecto que simula una lupa. + + + + + Obtiene o establece la variable InnerRadius en el sombreador. + + + + + Obtiene o establece la variable OuterRadius en el sombreador. + + + + + Obtiene o establece la variable center en el sombreador. + + + + + Obtiene o establece la variable amount en el sombreador. + + + + + Obtiene o establece la variable de entrada usada en el sombreador. + + + + + La transformación utilizada para este sombreador. + + + + + Crea una instancia y actualiza las variables del sombreador a los valores predeterminados. + + + + + Obtiene o establece la variable InnerRadius en el sombreador. + + + + + Obtiene o establece la variable OuterRadius en el sombreador. + + + + + Obtiene o establece la variable Center en el sombreador. + + + + + Obtiene o establece el valor de ShrinkFactor. Cuanto mayor sea el factor de reducción, "menor" será el contenido mostrado dentro de la elipse. + + + + + Obtiene EffectMapping. + + + + + Obtiene o establece el muestrario del sombreador de entrada. + + + + + GeneralTransform correspondiente al efecto Magnify. + + + + + Intenta transformar un punto en función del efecto. + + El punto que se va a transformar. + El resultado, si está disponible. + Devuelve true si se realiza correctamente. + + + + La instancia del efecto. + + + + + Si la transformación es inversa. + + + + + La transformación específica de este efecto. + + + + + Crea una nueva instancia. + + El efecto de origen. + + + + Este efecto concreto mantiene las líneas alineadas con el eje, por lo que la transformación del rectángulo sólo es la transformación de sus puntos de esquina. + + El rectángulo de entrada. + El rectángulo de salida. + + + + Para la inversa del sombreador hay que buscar el valor de Pin correspondiente a la salida de píxeles, siendo Pout la entrada de textura (es la inversa del sombreador). Sin embargo, el algoritmo del sombreador depende del radio de la salida de píxeles del centro, que es una variable que no conocemos al calcular la inversa. Hay que realizar la bisección para buscar la convergencia mediante la ecuación siguiente: PHatout = PHat_in*Scalar, donde PHatout = Pout - Pcenter pHatin = Pin -Pcenter + + Scalar depende del radio de Pin (que no tenemos). + + + + + Dada una salida de píxeles (Pin), calcula la entrada de textura (Pout). + + + + + Crea una nueva instancia. + + Una nueva instancia de este objeto. + + + + Determina si un punto está dentro de una elipse. + + El punto de prueba. + El punto central de la elipse. + El radio de la elipse. + Devuelve true si se realiza correctamente. + + + + Obtiene la transformación inversa. + + + + + Efecto que convierte un elemento visual a color monocromo. + + + + + Obtiene o establece la variable Color en el sombreador. + + + + + Obtiene o establece la variable Input del sombreador. + + + + + Crea una instancia y actualiza las variables del sombreador a los valores predeterminados. + + + + + Obtiene o establece la variable Color en el sombreador. + + + + + Obtiene o establece la variable de entrada usada en el sombreador. + + + + + Efecto que pixela un elemento visual. + + + + + Entrada explícita de este sombreador de píxeles. + + + + + Esta propiedad se asigna a la variable Pixelation en el sombreador de píxeles. + + + + + Crea una instancia y actualiza las variables del sombreador a los valores predeterminados. + + + + + Obtiene o establece la cantidad de pixelación en el sombreador. + + + + + Obtiene o establece el muestrario del sombreador de entrada. + + + + + Efecto de transición que aumenta o reduce la pixelación entre dos elementos visuales. + + + + + Crea una instancia del sombreador. + + + + + Realiza una copia en profundidad del efecto PixelateTransitionEffect. + + Un clon de la instancia actual del efecto PixelateTransitionEffect. + + + + Efecto de transición que realiza un desenfoque radial del elemento visual actual cuando entra el nuevo elemento visual. + + + + + Crea una instancia del sombreador. + + + + + Realiza una copia en profundidad del efecto RadialBlurTransitionEffect. + + Un clon de la instancia actual del efecto RadialBlurTransitionEffect. + + + + Efecto que simula ondas de agua en el elemento visual. + + + + + Obtiene o establece la variable Center en el sombreador. + + + + + Obtiene o establece la variable Amplitude en el sombreador. + + + + + Obtiene o establece la variable Frequency en el sombreador. + + + + + Obtiene o establece la variable Phase en el sombreador. + + + + + Obtiene o establece el pincel de entrada usado en el sombreador. + + + + + Crea una instancia y actualiza las variables del sombreador a los valores predeterminados. + + + + + Obtiene o establece la variable Center en el sombreador. + + + + + Obtiene o establece la variable Amplitude en el sombreador. + + + + + Obtiene o establece la variable Frequency en el sombreador. + + + + + Obtiene o establece la variable Phase en el sombreador. + + + + + Obtiene o establece el muestrario del sombreador de entrada. + + + + + Efecto de transición que simula una onda de agua durante la transición. + + + + + Crea una instancia del sombreador. + + + + + Realiza una copia en profundidad del efecto RippleTransitionEffect. + + Un clon de la instancia actual del efecto RippleTransitionEffect. + + + + Efecto que hace que un elemento visual sea más nítido y definido. + + + + + Entrada explícita de este sombreador de píxeles. + + + + + Esta propiedad se asigna a la variable Amount en el sombreador de píxeles. + + + + + Esta propiedad se asigna a la variable Width en el sombreador de píxeles. + + + + + Crea una instancia y actualiza las variables del sombreador a los valores predeterminados. + + + + + Obtiene o establece la variable Amount en el sombreador. + + + + + Obtiene o establece la variable Height en el sombreador. + + + + + Obtiene o establece el muestrario del sombreador de entrada. + + + + + Define la orientación de la diapositiva. + + + + + Efecto de transición que desliza el elemento visual actual hacia fuera para mostrar el nuevo elemento visual. + + + + + Propiedad de dependencia que modifica la variable SlideAmount en el sombreador de píxeles. + + + + + Propiedad de dependencia que modifica la variable SlideAmount en el sombreador de píxeles. + + + + + Crea una instancia y actualiza las variables del sombreador a los valores predeterminados. + + + + + Realiza una copia en profundidad del efecto SlideInTransitionEffect. + + Un clon de la instancia actual del efecto SlideInTransitionEffect. + + + + Obtiene o establece la variable SlideAmount en el sombreador. + + + + + Obtiene o establece la variable SlideAmount en el sombreador. + + + + + Efecto de transición que aplica un remolino al elemento visual actual al mostrar el nuevo elemento visual. + + + + + Propiedad de dependencia que modifica la variable TwistAmount en el sombreador de píxeles. + + + + + Propiedad de dependencia que modifica el número de celdas en las que se tuercen los píxeles. + + + + + Crea una instancia y actualiza la variable de torsión del sombreador a los valores especificados. + + Nivel de torsión de remolino. + + + + Crea una instancia y actualiza las variables del sombreador a los valores predeterminados. + + + + + Realiza una copia en profundidad del efecto SmoothSwirlGridTransitionEffect. + + Un clon de la instancia actual del efecto SmoothSwirlGridTransitionEffect. + + + + Obtiene o establece la variable TwistAmount en el sombreador. + + + + + Obtiene o establece la variable CellCount en el sombreador. + + + + + Efecto que aplica un remolino al elemento visual actual. + + + + + Entrada explícita de este sombreador de píxeles. + + + + + Esta propiedad se asigna a la variable Center en el sombreador de píxeles. + + + + + Esta propiedad se asigna a la variable TwistAmount en el sombreador de píxeles. + + + + + Esta propiedad se asigna a la variable AngleFrequency en el sombreador de píxeles. + + + + + Transformación que se utiliza cuando se aplica este efecto. + + + + + Crea una instancia y actualiza las variables del sombreador a los valores predeterminados. + + + + + Obtiene o establece la variable Center en el sombreador. + + + + + Obtiene o establece la variable TwistAmount en el sombreador. + + + + + Obtiene o establece la variable AngleFrequency en el sombreador. Esta propiedad no se expone. + + + + + Obtiene o establece el muestrario del sombreador de entrada. + + + + + Obtiene el objeto GeneralTransform para este efecto. + + + + + Se usa para transformar la entrada y realizar transformaciones de árbol. + + + + + La instancia del efecto. + + + + + La inversa de la transformación. + + + + + La inversa de este objeto GeneralTransform. + + + + + Crea una instancia de esta clase. + + El mismo efecto. + + + + Para esta operación, los límites están definidos por el cuadro delimitador de los cuatro puntos transformados. Hay que transformar cada uno de estos puntos y después circunscribirlos. Esto es cierto tanto para la transformación directa como para la transformación inversa. + + El rectángulo de entrada. + El rectángulo transformado. + + + + Intenta transformar inPoint con el efecto Swirl. + + El punto de entrada. + El punto de salida después de su transformación con el efecto Swirl. + Devuelve true, aunque inicia una excepción si es false. + + + + Devuelve una nueva instancia de este objeto. + + Una nueva instancia. + + + + Obtiene un clon de la inversa de la transformación actual. + + + + + Efecto de transición que aplica ondas al elemento visual actual al mostrar el nuevo elemento visual. + + + + + Propiedad de dependencia que modifica la variable Magnitude en el sombreador de píxeles. + + + + + Propiedad de dependencia que modifica la variable Phase en el sombreador de píxeles. + + + + + Propiedad de dependencia que modifica la variable Frequency en el sombreador de píxeles. + + + + + Crea una instancia del sombreador. + + + + + Realiza una copia en profundidad del efecto WaveTransitionEffect. + + Un clon de la instancia actual del efecto WaveTransitionEffect. + + + + Obtiene o establece la magnitud de la onda. + + + + + Obtiene o establece la fase de la onda. + + + + + Obtiene o establece la magnitud de la onda. + + + + + Define la dirección de barrido. + + + + + Efecto de transición que realiza un barrido del elemento visual actual al mostrar el nuevo elemento visual. + + + + + Propiedad de dependencia que modifica la variable WipeDirection en el sombreador de píxeles. + + + + + Propiedad de dependencia que modifica la variable FeatherAmount en el sombreador de píxeles. + + + + + Propiedad de dependencia que modifica la variable LineOrigin en el sombreador de píxeles. + + + + + Propiedad de dependencia que modifica la variable LineNormal en el sombreador de píxeles. + + + + + Propiedad de dependencia que modifica la variable LineOffset en el sombreador de píxeles. + + + + + Crea una instancia y actualiza las variables del sombreador a los valores predeterminados. + + + + + Realiza una copia en profundidad del efecto WipeTransitionEffect. + + Un clon de la instancia actual del efecto WipeTransitionEffect. + + + + Obtiene o establece el sentido del barrido. + + + + + Obtiene o establece la variable FeatherAmount en el sombreador. + + + + + Obtiene o establece la variable LineOrigin en el sombreador. + + + + + Obtiene o establece la variable LineNormal en el sombreador. + + + + + Obtiene o establece la variable LineOffset en el sombreador. + + + + \ No newline at end of file diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/es/Microsoft.Expression.Interactions.resources.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/es/Microsoft.Expression.Interactions.resources.dll new file mode 100644 index 0000000..7b8754c Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/es/Microsoft.Expression.Interactions.resources.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/es/Microsoft.Expression.Interactions.xml b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/es/Microsoft.Expression.Interactions.xml new file mode 100644 index 0000000..9ef8aae --- /dev/null +++ b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/es/Microsoft.Expression.Interactions.xml @@ -0,0 +1,1241 @@ + + + + Microsoft.Expression.Interactions + + + + + Una implementación básica de ICommand que aplica un método que no usa parámetros o un método que usa un parámetro. + + + + + Inicializa una nueva instancia de la clase . + + Acción. + Utilice este constructor para proporcionar una acción que omita el parámetro ICommand. + + + + Inicializa una nueva instancia de la clase . + + Una acción que usa un parámetro de objeto. + Utilice este constructor para proporcionar una acción que utiliza el objeto de parámetro transferido por el método de ejecución. + + + + Define el método que determina si el comando puede ejecutarse en su estado actual. + + Datos usados por el comando. Si el comando no requiere que se transfieran datos, este objeto se puede establecer en null. + + Siempre devuelve true. + + + + + Define el método al que se llamará cuando se invoque el comando. + + Datos usados por el comando. Si el comando no requiere que se transfieran datos, este objeto se puede establecer en null. + + + + Tiene lugar cuando se producen cambios que influyen en si el comando debe ejecutarse. No será activado por ActionCommand. + + + + + Llama a un método en un objeto especificado cuando se invoca. + + + + + Invoca la acción. + + Parámetro de la acción. Si la acción no requiere un parámetro, éste se puede establecer en una referencia nula. + + + + Se llama a este método después de adjuntar la acción a AssociatedObject. + + Reemplace este método para enlazar funcionalidad a AssociatedObject. + + + + Se llama a este método cuando la acción se está desasociando de AssociatedObject, pero antes de que esto ocurra. + + Reemplace este método para desenlazar funcionalidad de AssociatedObject. + + + + Objeto que expone el método de interés. Ésta es una propiedad de dependencia. + + + + + Nombre del método que se va a invocar. Ésta es una propiedad de dependencia. + + + + + Una acción que cambiará una propiedad especificada a un valor especificado cuando se invoca. + + + + + Inicializa una nueva instancia de la clase . + + + + + Invoca la acción. + + Parámetro de la acción. Si la acción no requiere un parámetro, éste se puede establecer en una referencia nula. + No se pudo encontrar en el destino una propiedad con . + No se pudo establecer en el valor especificado por . + + + + Obtiene o establece el nombre de la propiedad que se va a cambiar. Ésta es una propiedad de dependencia. + + Nombre de la propiedad que se va a cambiar. + + + + Obtiene o define el valor que se va a establecer. Ésta es una propiedad de dependencia. + + Valor que se va a establecer. + + + + Obtiene o establece la duración de la animación que se aplicará al invocar ChangePropertyAction. Ésta es una propiedad de dependencia. Si no se establece la duración, la animación no se aplicará. + + + + + Incrementa en valor si es true; en caso contrario, se establece el valor directamente. Si no se puede incrementar el valor de la propiedad, intenta establecer el valor directamente. + + + + + Representa una condición ternaria. + + + + + Método que evalúa la condición. Tenga en cuenta que este método puede iniciar una excepción ArgumentException si el operador es incompatible con el tipo. Por ejemplo, los operadores LessThan, LessThanOrEqual, GreaterThan, GreaterThanOrEqual requieren ambos operandos para implementar IComparable. + + Devuelve true si se cumple la condición; de lo contrario, devuelve false. + + + + Asegúrese de que cualquier enlace sobre operandos de DP esté actualizado. + + + + + Obtiene o establece el operando izquierdo. + + + + + Obtiene o establece el operando derecho. + + + + + Obtiene o establece el operador de comparación. + + + + + Enumeración de distintos operadores de comparación. + + + + + Este método evalúa operandos. + + Operando izquierdo de la propiedad LeftOperand. + Operador de la propiedad Operator. + Operando derecho de la propiedad RightOperand. + Devuelve true si se cumple la condición; de lo contrario, devuelve false. + + + + Evalúa ambos operandos que implementan la interfaz IComparable. + + Operando izquierdo de la propiedad LeftOperand. + Operador de la propiedad Operator. + Operando derecho de la propiedad RightOperand. + Devuelve true si se cumple la condición; de lo contrario, devuelve false. + + + + Encadenamiento progresivo. + + + + + Representa una expresión condicional que se establece en una propiedad ConditionBehavior.Condition. Contiene una lista de condiciones que se evalúa para devolver true o false para ICondition.Evaluate(). + + + + + Interfaz que debe implementar un objeto determinado para que se pueda establecer en una propiedad ConditionBehavior.Condition. + + + + + Inicializa una nueva instancia de la clase . + + + + + Recorre la colección Conditions y evalúa cada condición basándose en propiedad ForwardChaining. + + Devuelve true si se cumple la condición; de lo contrario, devuelve false. + + + + Obtiene o define el encadenamiento progresivo para las condiciones. Si se establece el encadenamiento progresivo en ForwardChaining.And, deben cumplirse todas las condiciones. Si se establece el encadenamiento progresivo en ForwardChaining.Or, sólo debe cumplirse una condición. + + + + + Devuelve la colección Conditions. + + + + + Comportamiento que se asocia a un desencadenador y controla las condiciones para desencadenar las acciones. + + + + + + Inicializa una nueva instancia de la clase . + + + + + Controlador de eventos que escucha el evento de invocación de vista previa desencadenado por el desencadenador. Si se establece PreviewInvokeEventArgs.Cancelling en True, se cancelará la invocación. + + El objeto base del desencadenador. + Objeto de tipo PreviewInvokeEventArgs donde e.Cancelling se puede establecer en True. + + + + Obtiene o establece el objeto ICondition en el comportamiento. + + Nombre de la condición que se va a cambiar. + + + + Clase auxiliar para administrar expresiones de enlace en objetos de dependencia. + + + + + Asegúrese de que todos los DP de una acción con expresiones de enlace estén actualizados. DataTrigger se activa durante la fase de enlace de datos. Puesto que las acciones son elementos secundarios del desencadenador, los enlaces a la acción podrían no estar actualizados. Se llama a esta rutina antes de invocar la acción a fin de garantizar que todos los enlaces estén actualizados con los datos más recientes. + + + + + Garantiza que todas las expresiones de enlace sobre acciones estén actualizadas + + + + + Esta función auxiliar garantiza que si una propiedad de dependencia en un objeto de dependencia tiene una expresión de enlace, dicha expresión esté actualizada. + + + + + + + Alterna entre dos estados basándose en una instrucción condicional. + + + + + Se llama a este método después de adjuntar el comportamiento a AssociatedObject. + + Reemplace este método para enlazar funcionalidad a AssociatedObject. + + + + Función auxiliar que sustituye a FrameworkElement.IsLoaded, dado que esta propiedad no está disponible en Silverlight. + + Elemento relevante. + Devuelve true si se ha cargado el elemento; de lo contrario, devuelve false. + + + + Obtiene o establece el enlace que produce el valor de la propiedad del objeto de datos. Ésta es una propiedad de dependencia. + + + + + Obtiene o establece el valor que se va a comparar con el valor de la propiedad del objeto de datos. Ésta es una propiedad de dependencia. + + + + + Obtiene o establece el nombre del estado visual al que se realiza la transición cuando se cumple la condición. Ésta es una propiedad de dependencia. + + + + + Obtiene o establece el nombre del estado visual al que se realiza la transición cuando no se cumple la condición. Ésta es una propiedad de dependencia. + + + + + Desencadenador diseñado para enlazarse a una propiedad de almacén de datos. Se desencadena cuando la propiedad cambia. + + + + + Representa un desencadenador que realiza acciones cuando los datos enlazados cambian. + + UA_REVIEW:chabiss + + + + Se llama cuando la propiedad de enlace cambia. UA_REVIEW:chabiss + + Argumento . + + + + Se llama a este método después de adjuntar el desencadenador a AssociatedObject. UA_REVIEW:chabiss + + + + + Se llama a este método cuando el desencadenador se está desasociando de AssociatedObject, pero antes de que esto ocurra. UA_REVIEW:chabiss + + + + + Objeto de enlace al que el desencadenador escucha para detectar cambios. + + UA_REVIEW:chabiss + + + + Representa un desencadenador que lleva a cabo acciones cuando los datos enlazados cumplen una condición especificada. + + + + + Se llama cuando la propiedad de enlace cambia. UA_REVIEW:chabiss + + Argumento . + + + + Obtiene o establece el valor que se va a comparar con el valor de la propiedad del objeto de datos. Ésta es una propiedad de dependencia. + + + + + Obtiene o establece el tipo de comparación que se va a realizar entre los valores especificados. Ésta es una propiedad de dependencia. + + + + + ExtendedVisualStateManager es una propiedad VisualStateManager personalizada que puede suavizar la animación de propiedades de diseño. Con la propiedad VisualStateManager personalizada, los estados pueden incluir cambios en propiedades como Grid.Column, cambiar el alto de los elementos a o desde Automático, etc. Estos cambios se suavizarán a lo largo del tiempo mediante las propiedades GeneratedDuration y GeneratedEasingFunction de la transición adecuada. Vea el área acerca de las invalidaciones de VisualStateManager más abajo para obtener una descripción general del algoritmo. + + + + + Objeto VisualStateGroup que puede usar o no FluidLayout. + + + + + La visibilidad es sombreada por una propiedad adjunta personalizada en tiempo de ejecución. + + + + + Un objeto VisualStateGroup conserva una lista de estos valores originales en una propiedad adjunta. + + + + + Para cada estado, se extraen las propiedades específicas del diseño y, posteriormente, se adjuntan al estado. Estas propiedades se eliminan del propio estado. + + + + + Recuerde el estado actual. + + + + + TransitionEffect que se utilizará cuando cambie el estado. + + + + + TransitionEffectStoryboard en uso durante el cambio de estado. + + + + + Fondo almacenado en caché que se utiliza durante el cambio de estado. + + + + + Fondo almacenado en caché que se utiliza durante el cambio de estado. + + + + + Fondo almacenado en caché que se utiliza durante el cambio de estado. + + + + + Éste es el conjunto de elementos que están en movimiento. + + + + + Éste es el guión gráfico que anima la transición. + + + + + Esta lista contiene todas las propiedades conocidas del diseño. + + + + + Detenga la animación y sustituya los cambios de diseño que se realizaron para admitir esa animación. + + + + + Localiza la transición que VisualStateManager usará para animar el cambio, de manera que la animación de diseño coincida con la duración y las entradas o salidas lentas. + + Grupo en el que tiene lugar la transición. + Estado del que proviene. + Estado hacia el que se dirige. + Transición + + + + Quite todas las propiedades que afectan al diseño del guión gráfico para el estado y almacénelas en caché en la propiedad adjunta. + + Estado hacia el que se mueve. + Guión gráfico que contiene las propiedades de diseño de ese estado. + + + + El conjunto de elementos de destino es el conjunto de todos los elementos que podrían haberse movido en una transición de diseño. Este conjunto es la clausura de elementos con propiedades de diseño animadas en el estado. - Elementos relacionados con los elementos del conjunto. - Elementos primarios de los elementos del conjunto. + + El código posterior comprobará estos rectángulos antes y después del cambio de diseño. + + Control cuyo diseño está cambiando de estado. + Guión gráfico que contiene los cambios de diseño. + Cualquier valor anterior procedente de navegaciones de estados anteriores que pueda revertirse. + Conjunto de elementos que están en movimiento (si hay una transición de cambio de estado en curso). + Conjunto completo de elementos cuyo diseño podría haber cambiado. + + + + Obtiene o establece un conjunto de rectángulos para todos los elementos de la lista de destino. + + Conjunto de elementos que hay que considerar. + Conjunto de elementos en movimiento + Diccionario que asigna elementos a sus rectángulos. + + + + Obtenga el rectángulo de diseño de un elemento mediante la ranura de diseño y, posteriormente, calcule la parte de la ranura que está en uso. + + Elemento cuyo rectángulo de diseño se va a recuperar. + Rectángulo de diseño de ese elemento. + + + + Obtenga las opacidades de elementos en el momento del cambio de estado, en lugar de las visibilidades, porque el cambio de estado podría estar en curso y el valor actual es el más importante. + + Control cuyo estado está cambiando. + Guión gráfico con las propiedades de diseño. + Conjunto de valores originales. + + + + + Examine el guión gráfico de diseño y establezca todas las propiedades mediante SetValue con el fin de permitir que se llame a UpdateLayout sin aplicar una marca de graduación a la escala de tiempo, lo que daría lugar a una representación. Todos los valores que se sobrescriban se almacenarán en la colección de OriginalValueRecords para que se puedan sustituir más adelante. + + Control cuyo estado está cambiando. + Guión gráfico que contiene las propiedades de diseño. + Almacén de valores originales. + + + + Toma todos los elementos que se van a mover como resultado de la animación de diseño, y los ajusta en paneles de lienzo para que no afecten a los elementos relacionados con ellos. + + Conjunto de elementos que se van a mover. + + + + Toma todos los elementos que se han movido como resultado de la animación de diseño y los desajusta de sus paneles de lienzo. + + Conjunto de elementos que se han movido. + + + + Copie las propiedades de diseño del elemento de origen al elemento de destino. Esto los eliminará del origen. + + Origen de las propiedades de diseño. + Destino de las propiedades de diseño. + + + + Crea el guión gráfico que se usará para animar la transición. Use todos los resultados calculados previamente. + + Duración de la animación. + Función de entradas y salidas lentas que se usará en la animación. + Conjunto de elementos que se van a mover. + Opacidades antiguas de los elementos cuyas propiedades de visibilidad están cambiando. + Guión gráfico. + + + + OriginalValueRecord recuerda el valor original de una propiedad que se cambió en un estado. + + + + + Este tipo enumerado indica si FluidMoveBehavior se aplica al elemento al que se ha adjuntado, o bien a los elementos secundarios de ese elemento. "Self" es útil cuando hay un elemento individual que debería comportarse de un modo determinado; "Children" resulta útil cuando el mismo comportamiento debería aplicarse a todos los elementos secundarios de WrapPanel o del panel ItemsHost de ItemsControl. + + + + + Este tipo enumerado indica si un elemento está identificado por sí mismo o por su DataContext. La identificación de DataContext permite el movimiento de una ubicación controlada por datos a otra. + + + + + Propiedad de dependencia para el ámbito del comportamiento. Vea FluidMoveScope para obtener información más detallada. + + + + + Propiedad de dependencia para el estado activo del comportamiento. + + + + + Propiedad de dependencia que proporciona la capacidad de utilizar el elemento como su propia etiqueta, o el enlace en el elemento. + + + + + Propiedad de dependencia para el trazado adicional que hay que agregar al enlace cuando UsaBindingAsTag es true. + + + + + Etiqueta de identidad utilizada para detectar movimiento de elementos entre contenedores. + + + + + Indica si el comportamiento sólo se aplica a este elemento, o bien a todos los elementos secundarios del elemento (si el elemento es un panel). + + + + + Indica si el comportamiento está activo actualmente. + + + + + Indica si se va a utilizar el elemento como su propia etiqueta o el enlace en el elemento como la etiqueta. + + + + + Trazado adicional que se agrega al enlace cuando se especifica TagType. + + + + + Estructura privada que almacena todos los datos pertinentes relacionados con un elemento etiquetado. + + + + + Comportamiento que supervisa si se han producido cambios de diseño en un elemento (o conjunto de elementos) y que, cuando es necesario, mueve el elemento sin dificultad a la nueva posición. Este comportamiento no anima el tamaño ni la visibilidad de un elemento; únicamente anima el desplazamiento de dicho elemento dentro de su contenedor primario. + + + + + Propiedad de dependencia para la duración del movimiento. + + + + + Propiedad de dependencia para el tipo de etiqueta que se utilizará justo antes de que se cargue el objeto. + + + + + Propiedad de dependencia para el trazado adicional que hay que agregar al enlace cuando UsaBindingAsTag es true. + + + + + Etiqueta de identidad utilizada para detectar movimiento de elementos entre contenedores. + + + + + Propiedad de dependencia para la marca FloatAbove. + + + + + Propiedad de dependencia para la propiedad EasingFunction que se usará para el componente horizontal de la operación de movimiento. + + + + + Propiedad de dependencia para la propiedad EasingFunction que se usará para el componente vertical de la operación de movimiento. + + + + + Recuerda el elemento emergente/adorner utilizado, en caso de movimiento del elemento entre contenedores cuando el valor de FloatAbove es true. + + + + + Caché de opacidad utilizada cuando se hace flotante un elemento emergente. + + + + + Marca la transformación de la animación. + + + + + Duración de la operación de movimiento. + + + + + Punto de generación para este elemento. + + + + + Trazado adicional que se agrega al enlace cuando se especifica TagType. + + + + + Indicador que indica si se permite que los elementos floten sobre sus contenedores (en un elemento emergente o un adorner) al cambiar de contenedores. + + + + + La propiedad EasingFunction que se usará para el componente horizontal de la operación de movimiento. + + + + + La propiedad EasingFunction que se usará para el componente vertical de la operación de movimiento. + + + + + Clase auxiliar simple que permite utilizar cualquier elemento de UIElements como un adorner. + + + + + Una acción que efectuará la transición de FrameworkElement a la propiedad VisualState especificada cuando se invoca. + + + Si se ha establecido la propiedad TargetName, esta acción intentará cambiar el estado del elemento de destino. En caso contrario, se desplazará por el árbol de elementos con el fin de localizar el destino alternativo que define estados. ControlTemplate y UserControl son dos posibilidades habituales. + + + + + Se llama a este método cuando se producen cambios en el destino. Si la propiedad TargetName no se ha establecido, esta acción tendrá un comportamiento personalizado. + + + + No se pudo localizar una propiedad FrameworkElement con estados. + + + + Se llama a este método cuando se cumplen algunos criterios y se invoca la acción. + + + No se pudo cambiar el destino a la propiedad StateName especificada. + + + + Determina si se debe usar o no VisualTransition para efectuar una transición entre estados. + + + + + Nombre de VisualState. + + + + + Desencadenador que es desencadenado por un evento de teclado. Si se detectan los modificadores y la tecla de destino, se activa el desencadenador. + + + + + La tecla que se debe presionar para que el desencadenador se active. + + + + + Modificadores que deben estar activos para que el desencadenador se active (el valor predeterminado es ningún modificador presionado). + + + + + Si es True, el desencadenador solo escuchará a su objeto de origen de desencadenador, lo que significa que ese elemento debe estar enfocado para que el desencadenador se active. Si es False, el desencadenador escuchará en la raíz, por lo que cualquier mensaje KeyDown/Up que no se haya controlado será captado. + + + + + Determina si se va a escuchar o no el evento KeyDown o el evento KeyUp. + + + + + Acción que iniciará un proceso para abrir un archivo o URI. En el caso de los archivos, esta acción iniciará el programa predeterminado para la extensión determinada de archivo. Se abrirá un URI en un explorador web. + + + + + Se llama a este método cuando se cumplen algunos criterios y se invoca la acción. + + + + + + Archivo o URI que se abrirá. + + + + + Cambia la posición del elemento adjunto como respuesta a movimientos para arrastrar el mouse sobre el elemento. + + + + + Propiedad de dependencia para la posición X del elemento que se arrastra, tomando como referencia la parte izquierda del elemento raíz. + + + + + Propiedad de dependencia para la posición Y del elemento que se arrastra, tomando como referencia la parte superior del elemento raíz. + + + + + Propiedad de dependencia para la propiedad ConstrainToParentBounds. Si es True, el elemento que se arrastra se restringirá para permanecer dentro de los límites de su contenedor primario. + + + + + Intenta actualizar la posición del elemento asociado a las coordenadas especificadas. + + Posición deseada del elemento en coordenadas raíz. + + + + Aplica una traslación de posición relativa al elemento asociado. + + Componente X de la traslación deseada en las coordenadas raíz. + Componente Y de la traslación deseada en las coordenadas raíz. + + + + Aplica la traslación determinada a RenderTransform en el elemento asociado. + + Componente X de la traslación deseada en las coordenadas primarias. + Componente Y de la traslación deseada en las coordenadas primarias. + + + + Realiza una copia en profundidad recursiva de la transformación especificada. + + La transformación que se va a clonar. + Una copia en profundidad de la transformación especificada, o null si la transformación especificada es nula. + Se inicia si no se reconoce el tipo de la transformación. + + + + Actualiza las propiedades X e Y en función de la posición representada actual para el elemento asociado. + + + + + Comprueba si un rectángulo está contenido en otro. + + Rectángulo que contiene otro. + Rectángulo contenido en otro. + True si rect1 contiene a rect2; de lo contrario, False. + + + + Se transforma como un vector. + + Transformación. + Componente X del vector. + Componente Y del vector. + Punto que contiene los valores de X e Y transformados mediante la transformación como un vector. + + + + Obtiene el desplazamiento de la transformación. + + Transformación. + Desplazamiento de la transformación. + + + + Se llama a este método después de adjuntar el comportamiento a AssociatedObject. + + Reemplace este método para enlazar funcionalidad a AssociatedObject. + + + + Se llama a este método cuando el comportamiento se está desasociando de AssociatedObject, pero antes de que ocurra. + + Reemplace este método para desenlazar funcionalidad de AssociatedObject. + + + + Se produce al iniciar un movimiento de arrastre. + + + + + Se produce al procesar una actualización de movimiento de arrastre. + + + + + Se produce al finalizar un movimiento de arrastre. + + + + + Obtiene o establece la posición X del elemento que se arrastra, tomando como referencia la parte izquierda del elemento raíz. Ésta es una propiedad de dependencia. + + + + + Obtiene o establece la posición Y del elemento que se arrastra, tomando como referencia la parte superior del elemento raíz. Ésta es una propiedad de dependencia. + + + + + Obtiene o establece un valor que indica si el elemento que se arrastra está restringido para permanecer dentro de los límites de su contenedor primario. Ésta es una propiedad de dependencia. + + + Es True si el elemento que se arrastra debe restringirse a los límites de su contenedor primario; en caso contrario, será False. + + + + + Obtiene la posición en pantalla del elemento asociado en las coordenadas raíz. + + Posición en pantalla del elemento asociado en las coordenadas raíz. + + + + Obtiene los límites del elemento en las coordenadas de elemento. + + Límites del elemento en las coordenadas de elemento. + + + + Obtiene el elemento primario del objeto asociado. + + Elemento primario del objeto asociado. + + + + Obtiene el elemento raíz de la escena donde se encuentra el objeto asociado. + + Elemento raíz de la escena donde se encuentra el objeto asociado. + + + + Obtiene y establece la propiedad RenderTransform del elemento asociado. + + + + + Acción que reproducirá un sonido hasta que finalice. + + + Esta acción está destinada a efectos de sonido breves que no necesitan ser detenidos ni controlados. Si intenta crear un reproductor de música o un juego, es posible que esta acción no satisfaga sus necesidades. + + + + + Inicializa una nueva instancia de la clase . + + + + + Cuando se invoca la acción, este método se usa para personalizar el objeto MediaElement creado dinámicamente. + + + Este método puede resultar útil para los autores de acciones que desean ampliar PlaySoundAction. Si se desea controlar la propiedad MediaElement Balance, puede heredarla de PlaySoundAction y reemplazar este método. + + + + + + Se llama a este método cuando se cumplen algunos criterios; y la acción se debe invocar. + + + Cada vez que se invoca la acción, se reproduce un sonido nuevo. Aunque la implementación esta sujeta a cambios, el autor de la llamada debe prever que esto creará una nueva propiedad MediaElement, que se limpiará cuando el sonido finalice o si el elemento multimedia no se reproduce. + + + + + + URI que define la ubicación del archivo de sonido. Esto se utiliza para establecer la propiedad del origen de MediaElement. Ésta es una propiedad de dependencia. + + + El sonido puede tener cualquier formato de archivo admitido por MediaElement. En el caso de un vídeo, sólo se reproducirá la sección de audio. + + + + + Controle el volumen del sonido. Esto se utiliza para establecer la propiedad Volume de MediaElement. Ésta es una propiedad de dependencia. + + + + + Acción que eliminará el elemento de destino del árbol cuando se invoca. + + + Esta acción puede provocar un error. La acción entiende cómo quitar elementos de los elementos primarios comunes, pero no de las colecciones personalizadas o mediante la manipulación directa del árbol visual. + + + + + Una acción que cambiará el valor de una propiedad de un objeto de almacenamiento de datos. Esta clase es idéntica a ChangePropertyAction. La única diferencia es que se carga el selector de almacén de datos para esta acción. + + + + + Clase abstracta que permite establecer un guión gráfico como destino. + + + Para los autores de acciones, esta clase proporciona un método estándar para establecer un guión gráfico como destino. Las herramientas de diseño pueden ofrecer una experiencia de edición especial para las clases que se heredan de esta acción, y mejorar así la experiencia del diseñador. + + + + + Se llama a este método al cambiar la propiedad Storyboard. + + + + + + Guión gráfico de destino. Ésta es una propiedad de dependencia. + + + + + Acción que cambiará el estado del guión gráfico de destino cuando se invoca. + + + + + Se llama a este método cuando se cumplen algunos criterios; y la acción se debe invocar. Este método intentará cambiar el guión gráfico de destino del modo definido por ControlStoryboardOption. + + + + + + Clase abstracta que permite establecer un guión gráfico como destino. + + + Para los autores de desencadenadores, esta clase ofrece un método estándar para establecer un guión gráfico como destino. Las herramientas de diseño pueden ofrecer una experiencia de edición especial para las clases que se heredan de este desencadenador, y mejorar así la experiencia del diseñador. + + + + + Se llama a este método al cambiar la propiedad Storyboard. + + + + + Guión gráfico de destino. Ésta es una propiedad de dependencia. + + + + + Desencadenador que escucha un guión gráfico hasta que finaliza. + + + + + Inicializa una nueva instancia de la clase . + + + + + Desencadenador que se activa por un evento especificado que se produce en su origen y se activa después de un período de tiempo cuando el evento se activa. + + + + + Inicializa una nueva instancia de la clase . + + + + + Obtiene o establece el número de milisegundos de espera entre marcas de graduación. Ésta es una propiedad de dependencia. + + + + + Obtiene o establece el número total de marcas de graduación que se activarán antes de que el desencadenador finalice. Ésta es una propiedad de dependencia. + + + + + Define un sombreado de efecto de transición que realiza la transición de un elemento visual a otro con un valor interpolado entre 0 y 1. + + + + + Propiedades con valores de pincel que se convierten en propiedades de muestrario en el sombreador. Representa la imagen presente en el estado final de la transición. + + + + + Propiedades con valores de pincel que se convierten en propiedades de muestrario en el sombreador. Representa la imagen presente en el estado inicial de la transición. + + + + + Utiliza una propiedad de dependencia como memoria auxiliar para el progreso. También se utiliza para representar el estado de una transición de principio a fin (intervalo entre 0 y 1). + + + + + Crea un clon modificable (copia en profundidad) de con sus valores actuales. + + + + + Realiza una copia en profundidad del efecto de transición. Implementa CloneCurrentValue en Silverlight. + + Un clon de la instancia actual del efecto de transición. + + + + Actualiza las variables del sombreador a los valores predeterminados. + + + + + Obtiene o establece la variable de entrada en el sombreador. + + + + + Obtiene o establece la variable OldImage en el sombreador. + + + + + Obtiene o establece la variable Progress en el sombreador. + + + + + Permite que el usuario utilice gestos táctiles comunes para trasladar, aplicar zoom y girar el objeto adjunto. + + + + + Se llama a este método después de adjuntar el comportamiento a AssociatedObject. + + Reemplace este método para enlazar funcionalidad a AssociatedObject. + + + + Se llama a este método cuando el comportamiento se está desasociando de AssociatedObject, pero antes de que ocurra. + + Reemplace este método para desenlazar funcionalidad de AssociatedObject. + + + + Obtiene o establece un valor que especifica qué variantes de traslación y zoom se admiten. + + + + + Obtiene o establece un número que describe la velocidad a la que disminuye la traslación. + + + + + Obtiene o establece un número que describe la velocidad a la que disminuye el giro. + + + + + Obtiene o establece el valor que indica si el zoom y la posición de traslación del objeto adjunto están limitados por los límites del objeto primario. + + + + + Obtiene o establece un número que indica el valor mínimo de zoom permitido. + + + + + Obtiene o establece un número que indica el valor máximo de zoom permitido. + + + + + Esta clase proporciona diversas operaciones estándar independientes de la plataforma para trabajar con VisualStateManager. + + + + + Realiza la transición del control entre dos estados. + + Elemento del que se realiza la transición entre estados. + El estado al que se realiza la transición. + True si se utiliza System.Windows.VisualTransition para realizar la transición entre estados; en caso contrario, false. + True si se realiza correctamente la transición del control al nuevo estado; en caso contrario, false. + Control es null. + stateName es null. + + + + Obtiene el valor de la propiedad adjunta VisualStateManager.VisualStateGroups. + + Elemento del que se va a obtener VisualStateManager.VisualStateGroups. + + + + + Busca el elemento primario más cercano que contiene estados visuales. + + Elemento del que se va a buscar el control con estado más cercano. + El control con estado más cercano si es True; de lo contrario, null. + True si un elemento primario contiene estados visuales; de lo contrario, False. + + + + Clase de recurso con establecimiento inflexible de tipos para buscar cadenas localizadas, etc. + + + + + Devuelve la instancia de ResourceManager almacenada en caché y usada por esta clase. + + + + + Reemplaza la propiedad CurrentUICulture del subproceso actual para todas las búsquedas de recursos mediante el uso de esta clase de recurso con establecimiento inflexible de tipos. + + + + + Busca una cadena localizada similar a No se pudo encontrar el método denominado '{0}' en el objeto de tipo '{1}' que coincida con la firma esperada. + + + + + Busca una cadena localizada similar a Se han encontrado varios operadores de suma posibles en el tipo '{0}' + + + + + Busca una cadena localizada similar a No se puede animar un cambio de propiedad en un destino de tipo '{0}'. Sólo se pueden animar cambios de propiedades en tipos derivados de DependencyObject. + + + + + Busca una cadena localizada similar a No se puede encontrar una propiedad con el nombre "{0}" en el tipo "{1}". + + + + + Busca una cadena localizada similar a No se puede establecer la propiedad Increment en True si la propiedad Duration está establecida. + + + + + Busca una cadena localizada similar a No se puede incrementar la propiedad '{0}' porque no se puede leer su valor. + + + + + Busca una cadena localizada similar a No se puede asignar un valor del tipo "{0}" a la propiedad "{1}" del tipo "{2}". A la propiedad "{1}" solo se le pueden asignar valores del tipo "{2}". + + + + + Busca una cadena localizada similar a La propiedad "{0}" definida por el tipo "{1}" no expone un método establecido y, por lo tanto, no se puede modificar. + + + + + Busca una cadena localizada similar a No se encuentra el estado denominado '{0}' en el tipo '{1}'. Asegúrese de que el estado existe y se puede obtener acceso al mismo desde este contexto. + + + + + Busca una cadena localizada similar a El destino {0} no define VisualStateGroups. . + + + + + Busca una cadena localizada similar a No se puede usar LeftOperand de tipo "{0}" con el operador "{1}". + + + + + Busca una cadena localizada similar a No se puede usar LeftOperand de tipo "{1}" y RightOperand de tipo "{0}" con el operador "{2}". + + + + + Busca una cadena localizada similar a No se puede usar RightOperand de tipo "{0}" con el operador "{1}". + + + + + Busca una cadena localizada similar a No se admite el destino de RemoveElementAction. + + + + \ No newline at end of file diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/es/Microsoft.Expression.Prototyping.Interactivity.resources.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/es/Microsoft.Expression.Prototyping.Interactivity.resources.dll new file mode 100644 index 0000000..74cdf24 Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/es/Microsoft.Expression.Prototyping.Interactivity.resources.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/es/System.Windows.Interactivity.resources.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/es/System.Windows.Interactivity.resources.dll new file mode 100644 index 0000000..bc65afb Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/es/System.Windows.Interactivity.resources.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/es/System.Windows.Interactivity.xml b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/es/System.Windows.Interactivity.xml new file mode 100644 index 0000000..e1bbdbc --- /dev/null +++ b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/es/System.Windows.Interactivity.xml @@ -0,0 +1,1046 @@ + + + + System.Windows.Interactivity + + + + + Representa una colección de IAttachedObject con una propiedad AssociatedObject compartida y proporciona notificaciones de cambio de su contenido cuando se producen cambios en AssociatedObject. + + + + + Interfaz para un objeto que se puede adjuntar a otro. + + + + + Se adjunta al objeto especificado. + + Objeto al que se adjunta otro. + + + + Desasocia esta instancia de su objeto asociado. + + + + + Obtiene el objeto asociado. + + Objeto asociado. + Representa el objeto al que se adjunta la instancia. + + + + Inicializa una nueva instancia de la clase . + + Interna, porque no debe ser heredada fuera de este conjunto. + + + + Se llama a este método después de adjuntar la colección a AssociatedObject. + + + + + Se llama a este método cuando la colección se está desasociando de AssociatedObject, pero antes de que esto ocurra. + + + + + Se llama a este método cuando se agrega un nuevo elemento a la colección. + + Nuevo elemento. + + + + Se llama a este método cuando se elimina un elemento de la colección. + + Elemento eliminado. + + + No se puede agregar una instancia a una colección más de una vez. + + + + Se adjunta al objeto especificado. + + Objeto al que se adjunta otro. + IAttachedObject ya se ha adjuntado a otro objeto. + + + + Desasocia esta instancia de su objeto asociado. + + + + + Objeto donde se hospeda la colección. + + + + + Obtiene el objeto asociado. + + Objeto asociado. + + + + Encapsula información de estado y cero o más ICommands en un objeto que se puede adjuntar. + + Tipo al que se puede adjuntar . + + El comportamiento es la clase base para proporcionar comandos y un estado que se puede adjuntar a un objeto. Los tipos a los que se puede adjuntar el comportamiento pueden controlarse por medio del parámetro genérico. Reemplace los métodos OnAttached() y OnDetaching() para enlazar y desenlazar cualquier controlador necesario de AssociatedObject. + + + + + Encapsula información de estado y cero o más ICommands en un objeto que se puede adjuntar. + + Ésta es una clase de infraestructura. Los autores de comportamientos deben derivar de Behavior<T> en lugar de hacerlo de esta clase. + + + + Se llama a este método después de adjuntar el comportamiento a AssociatedObject. + + Reemplace este método para enlazar funcionalidad a AssociatedObject. + + + + Se llama a este método cuando el comportamiento se está desasociando de AssociatedObject, pero antes de que ocurra. + + Reemplace este método para desenlazar funcionalidad de AssociatedObject. + + + + Se adjunta al objeto especificado. + + Objeto al que se adjunta otro. + El comportamiento ya está hospedado en otro elemento. + dependencyObject no satisface la restricción de tipo de comportamiento. + + + + Desasocia esta instancia de su objeto asociado. + + + + + Tipo al que se puede adjuntar este comportamiento. + + + + + Obtiene el objeto al que se ha adjuntado este comportamiento. + + + + + Obtiene el objeto asociado. + + Objeto asociado. + + + + Inicializa una nueva instancia de la clase . + + + + + Obtiene el objeto al que se ha adjuntado . + + + + + Representa una colección de comportamientos con una propiedad AssociatedObject compartida y proporciona notificaciones de cambio de su contenido cuando se producen cambios en AssociatedObject. + + + + + Inicializa una nueva instancia de la clase . + + Interna, porque no debe ser heredada fuera de este conjunto. + + + + Se llama a este método después de adjuntar la colección a AssociatedObject. + + + + + Se llama a este método cuando la colección se está desasociando de AssociatedObject, pero antes de que esto ocurra. + + + + + Se llama a este método cuando se agrega un nuevo elemento a la colección. + + Nuevo elemento. + + + + Se llama a este método cuando se elimina un elemento de la colección. + + Elemento eliminado. + + + + Crea una nueva instancia de BehaviorCollection. + + Nueva instancia. + + + + Enumera valores posibles para editores de valores de propiedad reutilizables. + + + + + Usa el selector de elementos, si está disponible, para editar esta propiedad en tiempo de diseño. + + + + + Usa el selector de guiones gráficos, si está disponible, para editar esta propiedad en tiempo de diseño. + + + + + Usa el selector de estados, si está disponible, para editar esta propiedad en tiempo de diseño. + + + + + Usa el selector de enlace de elementos, si está disponible, para editar esta propiedad en tiempo de diseño. + + + + + Usa el selector de enlace de propiedades, si está disponible, para editar esta propiedad en tiempo de diseño. + + + + + Asocia el tipo de editor con la propiedad a la que se ha aplicado CustomPropertyValueEditor. + + Use este atributo con el fin de mejorar la edición en tiempo de diseño para propiedades que denotan elementos (por nombre), guiones gráficos o estados (por nombre). + + + + Inicializa una nueva instancia de la clase . + + Editor de valores de propiedad personalizado. + + + + Obtiene o establece el editor de valores de propiedad personalizado. + + Editor de valores de propiedad personalizado. + + + + Proporciona información de herramientas de diseño acerca de cómo puede crear instancias para una acción o un comando determinados. + + + + + Inicializa una nueva instancia de la clase . + + Tipo al que se aplica este atributo. + Tipo de para crear instancias. + Un único argumento para la clase especificada. + no se deriva de TriggerBase. + Este constructor es útil si la clase especificada tiene un único argumento. El código resultante será compatible con CLS. + + + + Inicializa una nueva instancia de la clase . + + Tipo al que se aplica este atributo. + Tipo de para crear instancias. + Argumentos del constructor para la clase especificada. + no se deriva de TriggerBase. + + + + Crea esta instancia. + + Clase especificada por DefaultTriggerAttribute. + + + + Obtiene el tipo al que se aplica DefaultTriggerAttribute. + + Tipo al que se aplica DefaultTriggerAttribute. + + + + Obtiene el tipo de para crear instancias. + + Tipo de para crear instancias. + + + + Obtiene los parámetros para pasar al constructor . + + Parámetros para pasar al constructor . + + + + Este método utilizará el método VisualTreeHelper.GetParent para hacer un recorrido de búsqueda en profundidad hasta el árbol visual y devuelve todos los antecesores del objeto especificado, incluido el propio objeto. + + Objeto del árbol visual del que se van a buscar antecesores. + Se devuelve a sí mismo y devuelve todos los antecesores del árbol visual. + + + + EventObserver está diseñado para ayudar a administrar controladores de eventos desasociándolos cuando se desechan. Al crear este objeto también se asociará el constructor. + + + + + Crea una instancia de EventObserver y se asocia al evento proporcionado en el destino proporcionado. Llama a dispose para desasociar. + + Evento que se va a asociar y desasociar. + El objeto de destino en el que se define el evento. Null si el método es estático. + Delegado que se va asociar al evento. + + + + Desasocia el controlador del evento. + + + + + Un desencadenador que escucha un evento especificado en su origen y se activa cuando lo hace el evento. + + + + + Representa un desencadenador que puede escuchar un elemento distinto a AssociatedObject. + + Tipo al que se puede asociar este desencadenador. + + EventTriggerBase extiende TriggerBase para agregar información de un objeto distinto al que se ha asociado. Esto permite al usuario asociar un par desencadenador/acción a un elemento e invocar la acción como respuesta a un cambio producido en otro objeto de otro lugar. Reemplace OnSourceChanged para enlazar y desenlazar controladores en el elemento de origen, y OnAttached/OnDetaching para el elemento asociado. El tipo del elemento de origen puede estar restringido por el parámetro de tipo genérico. Si necesita tener control sobre el tipo de AssociatedObject, establezca TypeConstraintAttribute en el tipo derivado. + + + + + Representa un desencadenador que puede escuchar un objeto distinto de AssociatedObject. + + Ésta es una clase de infraestructura. Los autores de desencadenadores deben derivar de EventTriggerBase<T>, en lugar de hacerlo de esta clase. + + + + Representa un objeto que puede invocar acciones de forma condicional. + + Ésta es una clase de infraestructura. Los autores de desencadenadores deben derivar de Trigger<T>, en lugar de hacerlo de esta clase. + + + + Invoca todas las acciones asociadas a este desencadenador. + + Las clases derivadas deben llamar a esta función para activar el desencadenador. + + + + Se llama a este método después de adjuntar el desencadenador a AssociatedObject. + + + + + Se llama a este método cuando el desencadenador se está desasociando de AssociatedObject, pero antes de que esto ocurra. + + + + + Crea una nueva instancia de la clase derivada TriggerBase. + + Nueva instancia. + + + + Se adjunta al objeto especificado. + + Objeto al que se adjunta otro. + El mismo desencadenador no se puede hospedar en más de un objeto simultáneamente. + dependencyObject no satisface la restricción de tipo de desencadenador. + + + + Desasocia esta instancia de su objeto asociado. + + + + + Obtiene el objeto al que se ha adjuntado el desencadenador. + + Objeto asociado. + + + + Obtiene la restricción de tipo para el objeto asociado. + + Restricción de tipo de objeto asociado. + + + + Obtiene las acciones asociadas a este desencadenador. + + Acciones asociadas a este desencadenador. + + + + Controlador de eventos para registrar en PreviewInvoke. + + + + + Obtiene el objeto asociado. + + Objeto asociado. + + + + Especifica el nombre del evento para el que EventTriggerBase está escuchando. + + + + + + Se llama a este método cuando el evento asociado con EventTriggerBase se activa. De forma predeterminada, esto invocará todas las acciones del desencadenador. + + Instancia de que contiene los datos del evento. + Reemplace esta función para proporcionar un control más granular cuando se invoquen las acciones asociadas a este desencadenador. + + + + Se llama a este método cuando se producen cambios en el origen. + + Origen antiguo. + Origen nuevo. + Esta función debe ser reemplazada en clases derivadas para enlazar y desenlazar funcionalidad de los objetos de origen que están cambiando. + + + + Se llama a este método después de adjuntar el desencadenador a AssociatedObject. + + + + + Se llama a este método cuando el desencadenador se está desasociando de AssociatedObject, pero antes de que esto ocurra. + + + + No se pudo encontrar eventName en el destino. + + + + Obtiene la restricción de tipo para el objeto asociado. + + Restricción de tipo de objeto asociado. + Defina TypeConstraintAttribute en un tipo derivado para restringir los tipos a los que se puede adjuntar. + + + + Obtiene la restricción de tipo de origen. + + Restricción de tipo de origen. + + + + Obtiene o establece el objeto de destino. Si no se ha establecido TargetObject, el destino buscará el objeto especificado por TargetName. Si no se encuentra un elemento al que se hace referencia en TargetName, el destino se establecerá de forma predeterminada en AssociatedObject. Ésta es una propiedad de dependencia. + + Objeto de destino. + + + + Obtiene o establece el nombre del elemento para el que EventTriggerBase escucha como un origen. Si el nombre no se ha establecido o no se puede resolver, se usará AssociatedObject. Ésta es una propiedad de dependencia. + + Nombre del elemento de origen. + + + + Obtiene el origen resuelto. Si no se ha establecido o no se puede resolver, AssociatedObject se establecerá de forma predeterminada. + + Objeto de origen resuelto. + Por lo general, esta propiedad debería usarse en lugar de AssociatedObject en clases derivadas. + El elemento al que apunta no satisface la restricción de tipo. + + + + Inicializa una nueva instancia de la clase . + + + + + Se llama a este método cuando se producen cambios en la propiedad de origen. + + Reemplace este método para enlazar y desenlazar funcionalidad del origen especificado, en lugar de hacerlo de AssociatedObject. + Origen antiguo. + Origen nuevo. + + + + Obtiene el origen resuelto. Si no se ha establecido o no se puede resolver, AssociatedObject se establecerá de forma predeterminada. + + Objeto de origen resuelto. + Por lo general, esta propiedad debería usarse en lugar de AssociatedObject en clases derivadas. + + + + Inicializa una nueva instancia de la clase . + + + + + Inicializa una nueva instancia de la clase . + + Nombre del evento. + + + + Obtiene o establece el nombre del evento para escuchar. Ésta es una propiedad de dependencia. + + Nombre del evento. + + + + Clase estática que posee las propiedades adjuntas a desencadenadores y comportamientos. La propagación de manipuladores de AssociatedObject cambia las notificaciones. + + + + + Esta propiedad se usa como el dispositivo de copia de seguridad interno para la propiedad adjunta a desencadenadores públicos. + + + Esta propiedad no está expuesta públicamente. Esto obliga a los clientes a usar los métodos GetTriggers y SetTriggers para obtener acceso a la colección, y garantizar que la colección exista y se haya establecido antes de su uso. + + + + + Esta propiedad se usa como el dispositivo de copia de seguridad interno para la propiedad adjunta a comportamientos públicos. + + + Esta propiedad no está expuesta públicamente. Esto obliga a los clientes a usar los métodos GetBehaviors y SetBehaviors para obtener acceso a la colección, y garantizar que la colección exista y se haya establecido antes de su uso. + + + + + Obtiene el TriggerCollection que contiene los desencadenadores asociados al objeto especificado. + + Objeto del que se recuperarán los desencadenadores. + Un TriggerCollection que contiene los desencadenadores asociados al objeto especificado. + + + + Obtiene el asociado al objeto especificado. + + Objeto del que se recuperará . + Un que contiene los comportamientos asociados al objeto especificado. + + + El mismo BehaviorCollection no se puede hospedar en más de un objeto simultáneamente. + + + El mismo TriggerCollection no se puede hospedar en más de un objeto simultáneamente. + + + + Una función auxiliar que sustituye a FrameworkElement.IsLoaded, dado que esta propiedad no está disponible en Silverlight. + + Elemento relevante. + Es True si el elemento se ha cargado; de lo contrario, es False. + + + + Obtiene o establece un valor que indica si la ejecución se producirá como en el modo de diseño. + + + Es True si [la ejecución se hará en el modo de diseño]; de lo contrario, será False. + + No se usará fuera de las pruebas de unidad. + + + + Ejecuta un ICommand especificado cuando se invoca. + + + + + Representa un objeto que se puede adjuntar y que encapsula una unidad de funcionalidad. + + Tipo al que se puede adjuntar esta acción. + + + + Representa un objeto que se puede adjuntar y que encapsula una unidad de funcionalidad. + + Ésta es una clase de infraestructura. Los autores de acciones deben derivar de TriggerAction<T>, en lugar de hacerlo de esta clase. + + + + Intenta invocar una acción. + + Parámetro para la acción. Si la acción no requiere un parámetro, éste se puede establecer en una referencia nula. + + + + Invoca la acción. + + Parámetro para la acción. Si la acción no requiere un parámetro, éste se puede establecer en una referencia nula. + + + + Se llama a este método después de adjuntar la acción a AssociatedObject. + + + + + Se llama a este método cuando la acción se está desasociando de AssociatedObject, pero antes de que esto ocurra. + + + + + Cuando se implementa en una clase derivada, crea una nueva instancia de la clase derivada . + + Nueva instancia. + + + + Se adjunta al objeto especificado. + + Objeto al que se adjunta otro. + El mismo TriggerAction no se puede hospedar en más de un objeto simultáneamente. + dependencyObject no satisface la restricción de tipo TriggerAction. + + + + Desasocia esta instancia de su objeto asociado. + + + + + Obtiene o establece un valor que indica si esta acción se ejecutará cuando se invoque. Ésta es una propiedad de dependencia. + + + Es True si la acción se ejecutará al invocarse; de lo contrario, será False. + + + + + Obtiene el objeto al que se ha adjuntado esta acción. + + Objeto asociado. + + + + Obtiene la restricción de tipo de objeto asociado. + + Restricción de tipo de objeto asociado. + + + + Obtiene o establece un valor que indica si la instancia está adjunta. + + Es True si la instancia está adjunta; de lo contrario, será False. + + + + Obtiene el objeto asociado. + + Objeto asociado. + + + + Inicializa una nueva instancia de la clase . + + + + + Obtiene el objeto al que se ha adjuntado . + + Objeto asociado. + + + + Obtiene la restricción de tipo de objeto asociado. + + Restricción de tipo de objeto asociado. + + + + Invoca la acción. + + Parámetro para la acción. Si la acción no requiere un parámetro, éste se puede establecer en una referencia nula. + + + + Obtiene o establece el nombre del comando al que debe invocar esta acción. + + Nombre del comando al que debe invocar esta acción. + Esta propiedad será reemplazada por la propiedad Command si se establecen ambas. + + + + Obtiene o establece el comando que esta acción debe invocar. Ésta es una propiedad de dependencia. + + Comando que se va a ejecutar. + Esta propiedad tendrá prioridad sobre la propiedad Command si se establecen ambas. + + + + Obtiene o establece el parámetro del comando. Ésta es una propiedad de dependencia. + + Parámetro del comando. + Éste es el valor que se pasa a ICommand.CanExecute e ICommand.Execute. + + + + Proporciona datos acerca de los objetos que se han visto afectados al resolver un cambio de nombre. + + + + + Clase auxiliar que maneja la lógica para resolver un TargetName en un elemento de destino en función del contexto proporcionado por un elemento host. + + + + + Intenta actualizar el objeto resuelto del nombre dentro del contexto del elemento de referencia del ámbito de nombres. + + Objeto resuelto antiguo. + + Establece el destino existente e intenta resolver el TargetName actual desde el contexto del host actual. Si no lo puede resolver desde el contexto del host, continuará ascendiendo por el árbol visual hasta que lo resuelva. Si no lo ha resuelto cuando llegue a la raíz, establecerá el destino en nulo y escribirá un mensaje de advertencia en la salida de depuración. + + + + + Se produce cuando el elemento resuelto ha cambiado. + + + + + Obtiene o establece el nombre del elemento que se intenta resolver. + + Nombre que se intenta resolver. + + + + Objeto resuelto. Devolverá el elemento de referencia si el valor de TargetName es null o está vacío, o si no se ha intentado una resolución. + + + + + Obtiene o establece el elemento de referencia desde el que se realizará la resolución de nombres. + + Elemento de referencia. + + + + Obtiene o establece un valor que indica si la carga del elemento de referencia está pendiente. + + + Es True si [la carga del elemento de referencia está pendiente]; de lo contrario, será False. + + + Si el host no se ha cargado, el nombre no se resolverá. En este caso, aplace la resolución y haga un seguimiento con esta propiedad. + + + + + Representa una acción que se puede establecer como destino para que influya en un objeto distinto a AssociatedObject. + + Restricción de tipo en el destino. + + TargetedTriggerAction amplía TriggerAction para agregar información acerca de un elemento distinto al elemento al que se ha adjuntado. Esto permite al usuario invocar la acción en un elemento distinto al elemento al que está adjunta como respuesta a la activación de un desencadenador. Reemplace OnTargetChanged para enlazar y desenlazar controladores en el elemento de destino, y OnAttached/OnDetaching para el elemento asociado. El tipo del elemento de destino puede estar restringido por el parámetro de tipo genérico. Si necesita tener control sobre el tipo de AssociatedObject, establezca TypeConstraintAttribute en el tipo derivado. + + + + + Representa una acción que se puede establecer como destino para que influya en un objeto distinto a AssociatedObject. + + Ésta es una clase de infraestructura. Los autores de acciones deben derivar de TargetedTriggerAction<T>, en lugar de hacerlo de esta clase. + + + + Se llama a este método cuando se producen cambios en el destino. + + Destino antiguo. + Destino nuevo. + Esta función debe ser reemplazada en clases derivadas para enlazar y desenlazar funcionalidad de los objetos de origen que están cambiando. + + + + Se llama a este método después de adjuntar la acción a AssociatedObject. + + + + + Se llama a este método cuando la acción se está desasociando de AssociatedObject, pero antes de que esto ocurra. + + + + + Obtiene o establece el objeto de destino. Si no se ha establecido TargetObject, el destino buscará el objeto especificado por TargetName. Si no se encuentra un elemento al que se hace referencia en TargetName, el destino se establecerá de forma predeterminada en AssociatedObject. Ésta es una propiedad de dependencia. + + Objeto de destino. + + + + Obtiene o establece el nombre del objeto en el que se realizará esta acción. Si el destino está establecido, se omite esta propiedad. Si no se ha establecido TargetName o no se puede resolver, el destino se establecerá en AssociatedObject de forma predeterminada. Ésta es una propiedad de dependencia. + + Nombre del objeto de destino. + + + + Obtiene el objeto de destino. Si se ha establecido TargetObject, devuelve TargetObject. De lo contrario, si no se ha establecido TargetName o no se puede resolver, se establecerá en AssociatedObject de forma predeterminada. + + Objeto de destino. + Por lo general, esta propiedad debería usarse en lugar de AssociatedObject en clases derivadas. + El elemento de destino no satisface la restricción de tipo. + + + + Obtiene la restricción de tipo de objeto asociado. + + Restricción de tipo de objeto asociado. + Defina TypeConstraintAttribute en un tipo derivado para restringir los tipos a los que se puede adjuntar. + + + + Obtiene la restricción de tipo de destino. + + Restricción de tipo de destino. + + + + Inicializa una nueva instancia de la clase . + + + + + Se llama a este método cuando se producen cambios en la propiedad de destino. + + Reemplace este método para enlazar y desenlazar funcionalidad en el destino especificado, en lugar de hacerlo en AssociatedObject. + Destino antiguo. + Destino nuevo. + + + + Obtiene el objeto de destino. Si no se ha establecido TargetName o no se puede resolver, se establecerá en AssociatedObject de forma predeterminada. + + Destino. + Por lo general, esta propiedad debería usarse en lugar de AssociatedObject en clases derivadas. + + + + Representa una colección de acciones con una propiedad AssociatedObject compartida y proporciona notificaciones de cambio de su contenido cuando se producen cambios en AssociatedObject. + + + + + Inicializa una nueva instancia de la clase . + + Interna, porque no debe ser heredada fuera de este conjunto. + + + + Se llama a este método después de adjuntar la colección a AssociatedObject. + + + + + Se llama a este método cuando la colección se está desasociando de AssociatedObject, pero antes de que esto ocurra. + + + + + Se llama a este método cuando se agrega un nuevo elemento a la colección. + + Nuevo elemento. + + + + Se llama a este método cuando se elimina un elemento de la colección. + + Elemento eliminado. + + + + Crea una nueva instancia de TriggerActionCollection. + + Nueva instancia. + + + + Representa un objeto que puede invocar acciones de forma condicional. + + Tipo al que se puede adjuntar este desencadenador. + + TriggerBase es la clase base para controlar acciones. Reemplace los métodos OnAttached() y OnDetaching() para enlazar y desenlazar controladores de AssociatedObject. Para restringir los tipos a los que se puede adjuntar un TriggerBase derivado, indique el parámetro genérico. Llame a InvokeActions() para activar todas las acciones asociadas a TriggerBase. + + + + + Inicializa una nueva instancia de la clase . + + + + + Obtiene el objeto al que se ha adjuntado el desencadenador. + + Objeto asociado. + + + + Obtiene la restricción de tipo para el objeto asociado. + + Restricción de tipo de objeto asociado. + + + + Argumentos que se pasan al evento PreviewInvoke. Si se establece Cancelling en True, se cancelará la invocación del desencadenador. + + Ésta es una clase de infraestructura. Comportamiento asociado a un objeto base de desencadenador. Se puede agregar su comportamiento como escucha a TriggerBase.PreviewInvoke. + + + + Representa una colección de desencadenadores con una propiedad AssociatedObject compartida y proporciona notificaciones de cambio de su contenido cuando se producen cambios en AssociatedObject. + + + + + Inicializa una nueva instancia de la clase . + + Interna, porque no debe ser heredada fuera de este conjunto. + + + + Se llama a este método después de adjuntar la colección a AssociatedObject. + + + + + Se llama a este método cuando la colección se está desasociando de AssociatedObject, pero antes de que esto ocurra. + + + + + Se llama a este método cuando se agrega un nuevo elemento a la colección. + + Nuevo elemento. + + + + Se llama a este método cuando se elimina un elemento de la colección. + + Elemento eliminado. + + + + Inicializa una nueva instancia de . + + Nueva instancia. + + + + Especifica restricciones de tipo en la propiedad AssociatedObject de TargetedTriggerAction y EventTriggerBase. + + + + + Inicializa una nueva instancia de la clase . + + Tipo de restricción. + + + + Obtiene el tipo de restricción. + + Tipo de restricción. + + + + Clase de recurso con establecimiento inflexible de tipos para buscar cadenas localizadas, etc. + + + + + Devuelve la instancia de ResourceManager almacenada en caché y usada por esta clase. + + + + + Reemplaza la propiedad CurrentUICulture del subproceso actual para todas las búsquedas de recursos mediante el uso de esta clase de recurso con establecimiento inflexible de tipos. + + + + + Busca una cadena localizada similar a No se puede establecer el mismo BehaviorCollection en varios objetos. + + + + + Busca una cadena localizada similar a No se puede adjuntar una instancia de Comportamiento a más de un objeto simultáneamente. + + + + + Busca una cadena localizada similar a No se puede hospedar una instancia de TriggerAction en varios TriggerCollections simultáneamente. Quítela de un TriggerCollection antes de agregarla a otro. + + + + + Busca una cadena localizada similar a No se puede establecer el mismo TriggerCollection en varios objetos. + + + + + Busca una cadena localizada similar a No se puede adjuntar una instancia de un desencadenador a más de un objeto simultáneamente. + + + + + Busca una cadena localizada similar a El comando "{0}" no existe o no se expone públicamente en {1}. + + + + + Busca una cadena localizada similar a "{0}" no es un tipo válido para el parámetro TriggerType. Asegúrese de que "{0}" derive de TriggerBase. + + + + + Busca una cadena localizada similar a No se puede agregar la misma instancia de "{0}" a un "{1}" más de una vez. + + + + + Busca una cadena localizada similar a El evento "{0}" del tipo "{1}" tiene una firma incompatible. Asegúrese de que el evento es público y compatible con el delegado EventHandler. + + + + + Busca una cadena localizada similar a No se puede encontrar un evento con el nombre "{0}" en el tipo "{1}". + + + + + Busca una cadena localizada similar a Un objeto del tipo "{0}" no puede tener una propiedad {3} del tipo "{1}". Las instancias del tipo "{0}" solo pueden tener una propiedad {3} del tipo "{2}". + + + + + Busca una cadena localizada similar a No se puede adjuntar el tipo "{0}" al tipo "{1}". Las instancias del tipo "{0}" solo se pueden adjuntar a objetos del tipo "{2}". + + + + + Busca una cadena localizada similar a No se puede resolver TargetName "{0}". + + + + \ No newline at end of file diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/fr/Microsoft.Expression.Controls.xml b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/fr/Microsoft.Expression.Controls.xml new file mode 100644 index 0000000..19995f6 --- /dev/null +++ b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/fr/Microsoft.Expression.Controls.xml @@ -0,0 +1,538 @@ + + + + Microsoft.Expression.Controls + + + + + Appelé avant de parcourir les polylignes en boucle. + + + + + Calcule la valeur utilisée lorsque LayoutPath.Capacity a la valeur Auto. + + + + + Vérifie s'il faut ou non continuer à parcourir les polylignes en boucle. + + + + + Appelé avant de pacourir une nouvelle polyligne. + + + + + Appelé lorsqu'une polyligne est terminée. + + Longueur d'arc restante dans la polyligne. + + + + Appelé lorsqu'une étape est correctement terminée. + + Distance réelle de l'étape. Celle-ci peut être différente de Step en cas de passage à une autre polyligne. + + + + Distribue les enfants d'un panneau de tracé le long d'un chemin de mise en page donné. + + Panneau de tracé. + Index du tracé dans pathPanel.LayoutPaths. + Index du premier enfant à fixer sur ce chemin d'accès. + Index du prochain enfant à distribuer. Si childIndex est renvoyé, cette fonction n'a rien fait. + + + + Index du prochain enfant à organiser. + + + + + Distance en longueur d'arc utilisée pour la disposition. + + + + + Distance en longueur d'arc à parcourir le long de la polyligne en cours. + + + + + Nombre total d'éléments à organiser sur le LayoutPath. + + + + + Distribue les enfants d'un panneau de tracé le long d'un chemin de mise en page. Une répartition égale signifie que la longueur d'arc entre les centres de tous les éléments du tracé est égale. + + + + + Spécifie quelles propriétés du chemin de mise en page ont changé. + + + + + Fournit des données pour l'événement . + + + + + Initialise une nouvelle instance de la classe . + + Données pour l'événement. + + + + Obtient les propriétés ayant été modifiées dans un événement . + + + + + Encapsule les données nécessaires pour mettre à jour un . + + + + + Obtient ou définit l'index du tracé sur lequel un élément est organisé. + + + + + Obtient ou définit l'index d'un élément dans une collection d'éléments. + + + + + Obtient ou définit l'index d'un élément sur un tracé. + + + + + Obtient ou définit le décalage d'un élément proportionnellement à la longueur totale d'une collection de tracés. + + + + + Obtient ou définit le décalage d'un élément proportionnellement à la longueur d'un tracé. + + + + + Obtient ou définit l'angle perpendiculaire au tracé au niveau de l'emplacement d'un élément. + + + + + Obtient ou définit l'angle perpendiculaire au tracé au niveau de l'emplacement d'un élément si celui-ci est orienté vers le tracé. + + + + + Obtient ou définit une valeur indiquant si un élément est organisé sur un tracé. + + + + + Représente un élément qui est organisé par un . + + + L'implémentation de cette interface permet à de définir ces propriétés lorsque l'élément est organisé. Cette interface n'est pas destinée à une implémentation générale. + + + + + Met à jour les propriétés basées sur les et déclenche l'événement . + + Données nécessaires pour mettre à jour le . + + + + Se produit lorsqu'une ou plusieurs des propriétés sont modifiées. + + + Cet événement est déclenché chaque fois que la position de l'élément le long du tracé est mise à jour. Cela peut être dû à des modifications apportées aux propriétés sur le ou à des modifications apportées à . + + + + + Obtient l'index du tracé sur lequel l'élément est organisé. + + + + + Obtient l'index de l'élément dans une collection d'éléments. + + + + + Obtient l'index de l'élément sur lequel le tracé est organisé. + + + + + Obtient le décalage de l'élément proportionnellement à la longueur totale d'une collection de tracés. + + + + + Obtient le décalage de l'élément proportionnel à la longueur du tracé sur lequel il est organisé. + + + + + Obtient l'angle perpendiculaire au tracé au niveau de l'emplacement de l'élément. + + + + + Obtient l'angle perpendiculaire au tracé au niveau de l'emplacement de l'élément si celui-ci est orienté vers le tracé. + + + + + Obtient ou définit une valeur indiquant si l'élément est organisé sur un tracé. + + + + + Convertit un qui indique si un élément est organisé en valeur utilisée pour mettre à l'échelle l'élément. + + + + + Lève une exception dans tous les cas. + + Données cibles passées à la source. + des données attendues par l'objet source. + Paramètre facultatif à utiliser dans la logique du convertisseur. + Culture de la conversion. + Valeur à passer à l'objet source. + + + + Convertit le spécifié en . + + Données sources passées à la cible. + des données attendues par la propriété de dépendance cible. + Paramètre facultatif à utiliser dans la logique du convertisseur. + Culture de la conversion. + Si a la valeur True, 1 est renvoyé. Sinon, 0 est renvoyé. + + + + Spécifie la distribution d'un . + + + + + Spécifie l'orientation des éléments sur un . + + + + + Spécifie la méthode de modification de la sur un tracé ouvert. + + + + + Décrit un tracé le long duquel les éléments sont organisés. + + + + + Il est préférable de mettre en cache les courbes de Bézier avant d'aplatir, car la transformation affecte l'aplatissement. Cela demande de mettre en cache des courbes que nous ne prenons pas encore très bien en charge. Il est donc préférable de mettre en cache les points aplatis dans une stratégie de distribution et de les transformer sur demande. + + + + + Obtient ou définit l'élément qui définit le tracé. + + + + + Obtient ou définit une valeur indiquant si les éléments sont présentés uniformément ou avec un remplissage fixe. + + + + + Obtient ou définit le nombre maximal d'éléments affichés sur le . + + + + + Obtient ou définit la distance en pixels le long de la longueur d'arc de entre deux éléments. + + + + + Obtient ou définit l'orientation des éléments. + + + Cette propriété est prise en charge sur , mais pas sur . + + + + + Obtient ou définit la distance entre début du et l'emplacement du premier élément. + + + + + Obtient ou définit le pourcentage du qui participe à disposition. + + + + + Obtient ou définit la méthode permettant de modifier la sur un tracé ouvert. + + + + + Obtient le calcul de la Capacity. + + + + + Obtient si le est valide ou non dans le contexte. Un n'est pas valide s'il s'agit d'un descendant du dans lequel il est utilisé. + + + + + Distribue les enfants d'un tracé de disposition selon la taille des enfants et un écart donné entre les enfants. La distance en longueur d'arc entre les enfants est déterminée par l'écart plus la somme des rayons des rectangles englobants des enfants. + + + + + Contient une liste d'éléments disposés le long d'un ou plusieurs tracés. + + + + + Initialise une nouvelle instance de la classe . + + + + + Crée l'élément utilisé pour afficher un élément spécifié. + + correspondant à un élément spécifié. + + + + Détermine si l'élément spécifié est (ou est susceptible d'être) son propre conteneur d'éléments. + + True si l'élément est son propre conteneur d'éléments ; sinon, False. + Élément spécifié. + + + + Positions des éléments enfants. + + Taille que doit utiliser cet objet pour réorganiser ses éléments enfants. + Taille réelle utilisée. + + + + Obtient ou définit une collection d'objets qui définit le(s) tracé(s) utilisé(s) pour la disposition. + + + + + Obtient ou définit l'index à utiliser dans la liste d'éléments. + + + + + Obtient ou définit si l'index de l'élément est renvoyé au début de la collection lorsque StartItemIndex est supérieur à 0. + + + + + Représente un élément dans une . + + + + + Initialise une nouvelle instance de la classe . + + + + + Pour obtenir la description de ce membre, voir . + + + + + Pour obtenir la description de ce membre, voir . + + + + + Pour obtenir la description de ce membre, voir . + + + + + Pour obtenir la description de ce membre, voir . + + + + + Pour obtenir la description de ce membre, voir . + + + + + Pour obtenir la description de ce membre, voir . + + + + + Pour obtenir la description de ce membre, voir . + + + + + Pour obtenir la description de ce membre, voir . + + + + + Pour obtenir la description de ce membre, voir . + + + + + Pour obtenir la description de ce membre, voir . + + + + + Organise les éléments enfants le long d'un ou plusieurs chemins. + + + peut être utilisé comme alternative à lorsque la sélection n'est pas nécessaire. La propriété n'est pas prise en charge sur . + + + + + Initialise une nouvelle instance de la classe . + + + + + Mesure la taille requise pour les éléments enfants. + + Taille disponible que l'élément peut attribuer aux éléments enfants. + Taille déterminée comme nécessaire par l'élément pendant la disposition, selon ses calculs des tailles des éléments enfants. + + + + Positions des éléments enfants. + + Taille que doit utiliser cet objet pour réorganiser ses éléments enfants. + Taille réelle utilisée. + + + + Organise l'enfant au niveau de l'index donné à un emplacement particulier sur un LayoutPath. + + Index de la plage 0 à PathPanel.Count. + Index du tracé de mise en page permettant d'organiser l'enfant. + Polyligne dans le tracé de mise en page. + Emplacement sur la polyligne. + Index de l'enfant sur le LayoutPath. + + + + Calcule le rayon du cercle englobant de l'enfant au niveau de l'index donné. + + Index de la plage 0 à PathPanel.Count. + + + + Obtient ou définit une collection d'objets qui définit le(s) tracé(s) utilisé(s) pour la disposition. + + + + + Obtient ou définit l'index à utiliser dans la liste d'éléments. + + + + + Obtient ou définit une valeur indiquant si l'index de l'élément est renvoyé au début de la collection lorsque est supérieur à 0. + + + + + Sous-ensemble de LayoutPaths qui sont connectés et ne sont pas réduits. + + + + + Valeur correspondant au nombre d'enfants que le PathPanel dispose. Si StartItemIndex > 0 et WrapItems a la valeur False, celle-ci peut être inférieure à PathPanel.Children.Count. + + + + + Obtient le panneau qui contient les conteneurs d'un ItemsControl. + + Contrôle ItemsControl. + + Panneau qui contient les conteneurs d'un contrôle ItemsControl ou Null si le panneau est introuvable. + + + a la valeur Null. + + + + + Parcourt une arborescence en acceptant une valeur initiale et une fonction qui récupère les nœuds enfants d'un nœud. + + Type de flux. + Nœud initial. + Fonction qui récupère les nœuds enfants d'un nœud. + Prédicat qui évalue un nœud et renvoie une valeur indiquant si ce nœud et ses enfants doivent être parcourus. + Flux de nœuds. + + + + Obtenir les enfants de l'arborescence visuelle d'un élément. + + Élément. + Enfants de l'arborescence visuelle d'un élément. + + a la valeur Null. + + + + + Obtenir les enfants de l'arborescence visuelle d'un élément et l'élément lui-même. + + Élément. + + Enfants de l'arborescence visuelle d'un élément et l'élément lui-même. + + + + + Récupère tous les enfants logiques d'un élément d'infrastructure à l'aide d'un algorithme de parcours en largeur. Pour des raisons de performances, cette méthode gère manuellement la pile au lieu d'utiliser la récursivité. + + Élément d'infrastructure parent. + Enfants logiques de l'élément d'infrastructure. + + + + Récupère tous les descendants logiques d'un élément d'infrastructure à l'aide d'un algorithme de parcours en largeur. Pour des raisons de performances, cette méthode gère manuellement la pile au lieu d'utiliser la récursivité. + + Élément d'infrastructure parent. + Enfants logiques de l’élément d’infrastructure. + + + diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/fr/Microsoft.Expression.Drawing.xml b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/fr/Microsoft.Expression.Drawing.xml new file mode 100644 index 0000000..a74d80d --- /dev/null +++ b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/fr/Microsoft.Expression.Drawing.xml @@ -0,0 +1,1631 @@ + + + + Microsoft.Expression.Drawing + + + + + Renvoie une forme de légende prenant en charge plusieurs formes combinée avec une flèche de légende. + + + + + Fournit une classe de base d'une forme composite dérivant de et applique . + + + implémente l'interface et offre un rendu correct de la géométrie semblable à , mais la géométrie peut s'afficher en dehors des limites de la disposition. + + Une implémentation classique a un modèle par défaut personnalisé dans generic.xaml qui établit une liaison par modèle entre la plupart des propriétés de forme et un . Il doit également étendre la propriété de pour personnaliser l'apparence du . + + Cette classe permet également d'afficher du contenu avec la forme. + + + + + Fournit une interface permettant de définir les paramètres d'une forme. + + + Cette interface correspond aux données permettant la communication entre la Forme et GeometrySource. En général, une implémentation concrète de IShape implémente cette interface et la fait passer dans GeometrySource.UpdateGeometry() qui utilise alors la forme en tant que fournisseur de données accessibles en lecture seule. + + + + + Fournit l'interface nécessaire pour définir une Forme. Les formes primitives et composites doivent correspondre à l'interface, bien qu'elles puissent dériver de types différents de FrameworkElement. + + + + + Invalide la géométrie pour une . Après l'invalidation, la recalcule la géométrie, ce qui se produit de manière asynchrone. + + + + Obtient ou définit le qui spécifie la manière de peindre l'intérieur de la forme. + qui décrit comment est peint l'intérieur de la forme. La valeur par défaut est Null. + + + Obtient ou définit le qui spécifie la manière de peindre la bordure de la . + qui spécifie la manière de peindre la bordure de la . + + + Obtient ou définit la largeur du trait de la bordure de la . + Largeur de la brodure de la en pixels. + + + Obtient ou définit une valeur d'énumération d'un qui décrit la manière dont la forme remplit l'espace qui lui est attribué. + Une des valeurs d'énumération de . La valeur par défaut pendant l'exécution dépend du type de . + + + + Obtient le rendu de géométrie présenté par le moteur de rendu. + + + + + Obtient la marge entre les limites logiques et les limites réelles de la géométrie. Celle-ci peut être soit positive (comme dans ) soit négative (comme dans ). + + + + + Se produit lorsque le RenderedGeometry est modifié. + + + + + Étend la manière dont la forme est dessinée avec la création de géométrie source. + + + + + Invalide la géométrie pour une . Après l'invalidation, la recalcule la géométrie, ce qui se produit de manière asynchrone. + + + + Fournit le comportement pour la partie réorganisation du cycle de disposition Silverlight. Les classes peuvent remplacer cette méthode pour définir leur propre comportement de passe de disposition. + Taille réelle utilisée une fois que l'élément est agencé dans la mise en page. + Zone finale dans le parent que l'objet doit utiliser pour s'organiser et organiser ses enfants. + régénère la Géométrie lorsqu'elle est invalidée et met à jour le RenderedGeometry et la GeometryMargin. + + + + Transforme un contenu de chaîne en centré pouvant contenir plusieurs lignes. + + + Utilisez la liaison par modèle avec au lieu de pour activer cette méthode. + + + + + Obtient ou définit le qui spécifie la manière de peindre l'intérieur de la forme. + + qui décrit comment est peint l'intérieur de la forme. + + + Obtient ou définit le qui spécifie la manière de peindre la bordure de la . + qui spécifie la manière de peindre la bordure de la . + + + Obtient ou définit la largeur du trait de la bordure de la . + Largeur de la brodure de la en pixels. + + + Obtient ou définit une valeur d'énumération d'un qui décrit la manière dont la forme remplit l'espace qui lui est attribué. + Une des valeurs d'énumération de . + + + Obtient ou définit une valeur d'énumération de qui décrit la au début d'un . + Valeur de l'énumération de qui spécifie la forme au début d'un . + + + Obtient ou définit une valeur d'énumération de qui décrit la à la fin d'une ligne. + Une des valeurs d'énumération de . + + + Obtient ou définit une valeur d'énumération de qui spécifie le type de jointure utilisé sur les sommets d'une . + Valeur de l'énumération de qui spécifie l'apparence de la jointure. + + + Obtient ou définit une limite sur le rapport de la longueur de l'onglet à la moitié du d'un élément . + Limite sur le rapport de la longueur de l'onglet d'un élément . Cette valeur est toujours un nombre positif supérieur ou égal à 1. + + + Obtient ou définit un ensemble de valeurs de qui indiquent la séquence de tirets et d'espaces permettant de tracer le contour d'une forme. + Ensemble de valeurs de qui spécifient la séquence de tirets et d'espaces. + + + Obtient ou définit une valeur d'énumération de qui spécifie la manière dont les extrémités d'un tiret sont dessinées. + Une des valeurs d'énumération de . La valeur par défaut est . + + + Obtient ou définit un qui spécifie la distance à laquelle un tiret commence dans une séquence de tirets. + qui représente la distance à laquelle un tiret commence dans la séquence de tirets. La valeur par défaut est 0. + + + + Obtient le rendu de géométrie présenté par le moteur de rendu. + + + + + Obtient la marge entre les limites logiques et les limites réelles de la géométrie. Celle-ci peut être soit positive (comme dans ) soit négative (comme dans ). + + + + + Obtient ou définit le contenu interne qui convertit une chaîne en TextBlock centré de plusieurs lignes. + + + + + Se produit lorsque le RenderedGeometry est modifié. + + + + + Obtient ou définit la position de la légende par rapport à l'angle supérieur gauche. + + + + + Obtient ou définit le style de légende. + + + + + Fournit une classe de base d'une forme composite dérivant de et applique . + + + implémente l'interface et offre un rendu correct de la géométrie semblable à , mais la géométrie peut s'afficher en dehors des limites de la disposition. + + Une implémentation classique a un modèle par défaut personnalisé dans generic.xaml qui établit une liaison par modèle entre la plupart des propriétés de forme et un . Il doit également étendre la propriété de pour personnaliser l'apparence du . + + + + + Étend la manière dont la forme est dessinée avec la création de géométrie source. + + + + + Invalide la géométrie pour une . Après l'invalidation, la recalcule la géométrie, ce qui se produit de manière asynchrone. + + + + Fournit le comportement pour la partie réorganisation du cycle de disposition Silverlight. Les classes peuvent remplacer cette méthode pour définir leur propre comportement de passe de disposition. + Taille réelle utilisée une fois que l'élément est agencé dans la mise en page. + Zone finale dans le parent que l'objet doit utiliser pour s'organiser et organiser ses enfants. + régénère la Géométrie lorsqu'elle est invalidée et met à jour le RenderedGeometry et la GeometryMargin. + + + + Obtient ou définit le qui spécifie la manière de peindre l'intérieur de la forme. + + qui décrit comment est peint l'intérieur de la forme. + + + Obtient ou définit le qui spécifie la manière de peindre la bordure de la . + qui spécifie la manière de peindre la bordure de la . + + + Obtient ou définit la largeur du trait de la bordure de la . + Largeur de la brodure de la en pixels. + + + Obtient ou définit une valeur d'énumération d'un qui décrit la manière dont la forme remplit l'espace qui lui est attribué. + Une des valeurs d'énumération de . + + + Obtient ou définit une valeur d'énumération de qui décrit la au début d'un . + Valeur de l'énumération de qui spécifie la forme au début d'un . + + + Obtient ou définit une valeur d'énumération de qui décrit la à la fin d'une ligne. + Une des valeurs d'énumération de . + + + Obtient ou définit une valeur d'énumération de qui spécifie le type de jointure utilisé sur les sommets d'une . + Valeur de l'énumération de qui spécifie l'apparence de la jointure. + + + Obtient ou définit une limite sur le rapport de la longueur de l'onglet à la moitié du d'un élément . + Limite sur le rapport de la longueur de l'onglet d'un élément . Cette valeur est toujours un nombre positif supérieur ou égal à 1. + + + Obtient ou définit un ensemble de valeurs de qui indiquent la séquence de tirets et d'espaces permettant de tracer le contour d'une forme. + Ensemble de valeurs de qui spécifient la séquence de tirets et d'espaces. + + + Obtient ou définit une valeur d'énumération de qui spécifie la manière dont les extrémités d'un tiret sont dessinées. + Une des valeurs d'énumération de . La valeur par défaut est . + + + Obtient ou définit un qui spécifie la distance à laquelle un tiret commence dans une séquence de tirets. + qui représente la distance à laquelle un tiret commence dans la séquence de tirets. La valeur par défaut est 0. + + + + Obtient le rendu de géométrie présenté par le moteur de rendu. + + + + + Obtient la marge entre les limites logiques et les limites réelles de la géométrie. Celle-ci peut être soit positive (comme dans ) soit négative (comme dans ). + + + + + Se produit lorsque le RenderedGeometry est modifié. + + + + + Génère le rendu d'un segment de ligne courbe avec des pointes de flèche facultatives aux deux extrémités. + + + + Fournit le comportement pour le passe de mesure de la mise en page Silverlight. Les classes peuvent remplacer cette méthode pour définir leur propre comportement de passe de mesure. + Taille nécessaire déterminée par l'objet pendant la disposition, basée sur les calculs des dimensions attribuées à l'objet enfant ou éventuellement sur d'autres facteurs tels qu'une taille fixe du conteneur. + Taille disponible que l'objet peut attribuer aux objets enfants. L'infini () peut être spécifié en tant que valeur pour indiquer que l'objet prendra la taille du contenu disponible quel qu'il soit. + + Une par défaut peut s'afficher quelle que soit la taille. Le s'étire jusqu'aux limites de la disposition, voire en dehors si nécessaire. + + + + + Obtient ou définit la courbure de la flèche. + + Courbure entre 0 et 1. + + + + Obtient ou définit le rendu de la tête de flèche en début de ligne. + + + + + Obtient ou définit le rendu de la tête de flèche en fin de ligne. + + + + + Obtient ou définit à partir de quel angle commencer à dessiner la flèche. + + + + + Obtient ou définit la longueur de la flèche en pixels. + + + + + Fournit un contrôle d'éléments qui affiche un élément sélectionné et qui permet de faire défiler les éléments à l'aide de mouvements tactiles. + + + + + Constructeur de PanningItems. + + + + + Appelé lorsque le modèle PanningItems est appliqué. + + + + + Obtient ou définit l'orientation des éléments dans le contrôle. + + + + + Obtient ou définit la tolérance de raccourci. Il peut s'agir d'une valeure entre 0 et 1. Elle représente le pourcentage de la taille des PanningItems sur laquelle doit être appliqué le mouvement de raccourci pour provoquer un changement d'éléments. + + + + + Obtient ou définit l'élément situé avant l'élément sélectionné. + + + + + Obtient ou définit l'élément situé après l'élément sélectionné. + + + + + Obtient ou définit une valeur indiquant si le contenu du contrôle d'éléments fait une boucle, afin que le premier élément suive le dernier élément. + + + + + Obtient ou définit la valeur du curseur qui contrôle le mouvement de défilement. + + + + + Classe d'assistance pour travailler avec PathGeometry. + + + + + Convertit une chaîne du mini-langage de tracé en PathGeometry. + + Chaîne dans le mini-langage de tracé. + + + + Convertit la géométrie donnée en un PathGeometry unique. + + + + + Met à jour la géométrie donnée en tant que PathGeometry avec une polyligne correspondant à une liste de points donnés. + + + + + Analyse la syntaxe abrégée de la géométrie. + + + + + Classe d'assistance pour convertir un ArcSegment en un ou plusieurs BezierSegment(s). + + + Classe d'assistance pour travailler avec PathSegment et toutes ses variantes. + + + Classes de stratégie pour gérer différents types de PathSegment. + + + + + Convertit un segment d'arc au format Bézier. Retourne BezierSegment, PolyBezierSegment, LineSegment ou Null. Lorsque Null est retourné, l'arc dégénère en point de départ. + + + + + Évite d'avoir recours au constructeur à trois paramètres, car il définit toujours une valeur locale pour IsStroked. + + + + + + + Met à jour la SegmentCollection avec une polyligne donnée correspondant à une liste de points donnée. Essaie d'effectuer un mimimum de modifications et renvoie la valeur False si rien n'a été changé. + + + + + Met à jour le segment de la collection[index] avec un segment poly-Bézier correspondant à une liste de points donnée. La liste de points donnée doit contenir 3*N points pour N segments Bézier. + + + + + Teste si un segment de tracé est vide. + + + + + Obtient le nombre de points d'un segment de tracé donné. + + + + + Obtient le dernier point d'un segment de tracé donné. + + + + + Obtient le point d'un index donné dans un segment donné. Renvoie le dernier point si l'entrée est (-1). + + + + + Aplatit un segment donné et ajoute les points résultants à une liste de points donnée. + + Segment à aplatir. + Liste des points résultants. + Point de départ du segment. + Tolérance d'erreur. Doit être une valeur positive. Ne peut pas être égal à zéro. La valeur de secours correspond à la tolérance par défaut. + + + + ArcToBezier, calcule l'approximation de Bézier d'un arc. + + + Cet utilitaire calcule l'approximation de Bézier pour un arc elliptique tel qu'il est défini dans la spécification SVG de l'arc. L'ellipse qui constitue l'arc est alignée par rapport aux axes de son propre système de coordonnées et elle y est définie par ses rayons x et y. L'angle de rotation définit comment les axes de l'ellipse pivotent par rapport à l'axe x. Les points de début et de fin définissent l'un des 4 arcs possibles ; les indicateurs des arcs de balayage et des grands arcs déterminent le choix de l'arc. + + Le renvoi cPieces = 0 indique une ligne au lieu d'un arc cPieces = -1 indique que l'arc dégénère en un point + + + + + Obtient le nombre d'arcs de Bézier et les sinus/cosinus de chacune d'entre elles. + + + Il s'agit d'un utilitaire privé utilisé par ArcToBezier. Divise l'arc en plusieurs parties afin qu'aucune partie ne couvre plus de 90 degrés. Les points d'entrée sont sur le cercle unité. + + + + + GetBezierDistance retourne la distance sous forme de fraction du rayon. + + + Obtenez la distance entre les points de terminaison d'un arc circulaire et les points de contrôle de l'arc de Bézier qui s'en approche, sous la forme d'une fraction du rayon de l'arc. + + Dans la mesure où le résultat est relatif au rayon de l'arc, il dépend strictement de l'angle de l'arc. Si l'arc est de 90 degrés au maximum, alors l'angle est déterminé par le cosinus de cet angle, qui dérive de rDot = le produit scalaire de deux rayons vecteurs. Nous avons besoin de la courbe de Bézier en accord avec les points et tangentes aux extrémités et au milieu de l'arc. Nous calculons alors la distance entre les points de terminaison de la courbe et ses points de contrôle. + + Étant à la recherche de la distance relative, nous pouvons travailler sur le cercle unité. Placez le centre du cercle à l'origine et l'axe X de façon à ce qu'il soit la bissectrice des deux vecteurs. Soit a l'angle entre les vecteurs. Les coordonnées X des premiers et derniers points sont donc cos(a/2). Soit x la coordonnée X des deuxième et troisième points. Quand t = 1/2 nous avons un point à (1,0). Mais les termes du polynôme tous égaux : + + (1-t)^3 = t*(1-t)^2 = t^2*(1-t) = t^3 = 1/8, + + donc, avec la formule de Bézier, nous obtenons : + + 1 = (1/8) * (cos(a/2) + 3x + 3x + cos(a/2)), + + donc + + x = (4 - cos(a/2)) / 3 + + La différence de X entre ce résultat et le premier point est : + + DX = x - cos(a/2) = 4(1-cos(a/2)) / 3. + + Mais DX = distance / sin(a/2), donc la distance est + + dist = (4/3)*(1 - cos(a/2)) / sin(a/2). + + Nous ne connaissons pas la valeur de l'angle a mais nous savons que rDot = R ^ 2 * cos(a), nous multiplions donc le numérateur et le dénominateur par R : + + dist = (4/3)*(R - Rcos(a/2)) / Rsin(a/2) + + et nous utilisons un peu de trigonométrie : ________________ cos(a/2) = \ / (1 + cos(a)) / 2 ______________________ R*cos(a/2) = \ / (R ^ 2 + R ^ 2 cos(a)) / 2 ________________ = \ /(R^2 + rDot) / 2 + + Soit A = (R ^ 2 + rDot) / 2. ____________________ R*sin(a/2) = \/R^2 - R ^ 2 cos^2(a/2) _______ = \/R^2 - A + + donc : _ 4 R - \/A dist = - * ------------ 3 _______ \/R^2 - A + + Historique : Créé par MichKa le 29/05/2001 + + + + + Renvoie False si le rayon est trop petit par rapport à la longueur de la corde (renvoie True pour les valeurs NaN). La valeur du rayon est remplacée par la valeur acceptée. + + + + + Classe utilitaire pour aplanir les courbes de Bézier. + + + + + Aplatit une courbe de Bézier cubique et ajoute la polyligne obtenue au troisième paramètre. + + Les quatre points de contrôle cubiques Bézier. + Distance maximale entre deux points correspondants sur la véritable courbe et sur la polyligne aplatie. Doit être strictement positive. + Où ajouter la polyligne aplatie. + Utilisez la valeur True pour ignorer le premier point de contrôle lors de l'ajout de la polyligne aplatie. + Où ajouter la valeur du paramètre de la courbe de Bézier associé à chacun des sommets de la polyligne. + Si est vide, le premier point de contrôle et son paramètre associé sont toujours ajoutés. + + + + Aplatit une courbe de Bézier quadratique et ajoute la polyligne obtenue au troisième paramètre. Utilise l'élévation de degré pour les courbes de Bézier afin de réutiliser le code pour le cas cubique. + + Les trois points de contrôle quadratiques Bézier. + Distance maximale entre deux points correspondants sur la véritable courbe et sur la polyligne aplatie. Doit être strictement positive. + Où ajouter la polyligne aplatie. + Ignorer ou non le premier point de contrôle lors de l'ajout de la polyligne aplatie. + Où ajouter la valeur du paramètre de la courbe de Bézier associé à chacun des sommets de la polyligne. + Si est vide, le premier point de contrôle et son paramètre associé sont toujours ajoutés. + + + + Méthodes d'extension prenant en charge les types hors géométrie. + + + + + Permet l'application d'un délégué d'action (souvent un lambda très simple) au lieu d'une séquence entière. + + + + + Permet l'application d'un délégué d'action (souvent un lambda très simple) au lieu d'une séquence entière. + + + + + Permet l'application d'un délégué d'action (souvent un lambda très simple) au lieu d'une séquence entière avec l'index de chaque élément. + + + + + Veille à ce que le nombre d'une liste corresponde à un nombre donné. Crée un facteur donné ou supprimer des éléments si besoin. Si la IList d'entrées est une liste, AddRange ou RemoveRange est utilisé lorsqu'il n'y a aucune usine. + + + + + Veille à ce que le nombre d'une liste corresponde au moins au nombre donné. Crée un facteur donné. + + + + + Ajoute une plage d'éléments à la fin d'une collection. Si la collection est une liste, List.AddRange est utilisé. + + + + + Obtient le dernier élément d'une liste donnée. + + + + + Supprime le dernier élément de la liste donnée. + + + + + Effectue une copie de l'objet et de toutes ses propriétés publiques, y compris toutes les propriétés de collection. + + + + + Définit la valeur si elle est différente. Évite de définir la valeur locale si possible. Renvoie True lorsque la valeur a été modifiée. + + + + + Efface la propriété de dépendance lorsqu'elle est définie localement sur l'objet de dépendance donné. Renvoie False si la propriété de dépendance n'est pas définie localement. + + + + + Recherche tous les descendants visuels d'un type et d'un état donnés à l'aide d'un algorithme de parcours en largeur. + + + + + Obtient tous les enfants visuels dans IEnumerable. + + + + + Unifie l'interface de PropertyMetadata dans WPF et Silverlight. Fournit les notifications nécessaires à propos du rendu, de la disposition ou des mesures. + + + + + Ce constructeur privé doit uniquement être utilisé par AttachCallback. + + + + + Chaîne InternalCallback() pour joindre l'instance de DrawingPropertyMetadata à un rappel de propriété. Dans Silverlight, les métadonnées de propriétés sont éliminées après la définition. Utilisez un rappel pour vous en souvenir. + + + + + Avant de chaîner le rappel d'origine, lancez DrawingPropertyChangedEvent. + + + + + Méthodes d'extension pour les structures de données liées de géometrie (point/Vector/taille/Rect). + + + + + Redimensionne le rectangle à une taille relative tout en maintenant le centre inchangé. + + + + + Obtient le vecteur de différence entre deux points. + + + + + Memberwise positif par point. + + + + + Memberwise négatif par point. + + + + + Convertit une chaîne de mini-langages en . + + Consultez le site : Syntaxe de balisage des tracés (http://msdn.microsoft.com/en-us/library/cc189041(VS.95).aspx) + Chaîne de mini-langages de chemins d'accès permettant de décrire des tracés géométriques. + converti à partir des mini-langages de tracé. + + + + Aplatit un et ajoute des points de résultat à un donné. + + d'entrée. + Liste de points à laquelle s'ajoutent les points de résultat. + Nombre positif indiquant l'erreur maximale autorisée des points de résultat à la figure du tracé d'entrée. Une valeur égale à zéro permet à l'algorithme de sélectionner automatiquement la tolérance. + + + + Obtient l'arc normalisé dans la case (0,0)(1,1). Le degré zéro est mappé vers [0.5, 0] (vers le haut) et dans le sens des aiguilles d'une montre. + + + + + Obtient le point de l'arc absolu dans une limite donnée avec un rayon relatif donné. + + + + + Affiche l'angle d'un arc par rapport à la case (0,0)(1,1). Le degré zéro est mappé vers [0.5, 0] (vers le haut) et dans le sens des aiguilles d'une montre. + + + + + Obtient l'angle d'un arc à partir d'un point absolu donné relatif à une limite. + + + + + Calcule la transformation qui permet de déplacer le rectangle d'origine vers le rectangle de destination. + + + + + Calcule la transformation de l'espace de coordonnées d'un UIElement à un autre. + + Élément source. + Élément de destination. + Transformation entre les UIElements, ou Null si elle ne peut pas être calculée. + + + + Mappe le point relatif vers un point absolu à l'aide du mappage d'une limite donnée sur la case (0,0)(1,1). + + + + + Mappe le point absolu vers un point relatif à l'aide du mappage d'une case (0,0)(1,1) sur une limite donnée. + + + + + Calcule la limite après étirement dans une limite logique donnée. Si l'étirement donne un résultat uniforme, utilisez l'aspectRatio donné. Si l'aspectRatio est vide, il est équivalent à Remplir. Si l'étirement a la valeur Aucun, il équivaut à Remplir ou Uniforme. + + + + + Renvoie le point central de deux points. + + Premier point. + Deuxième point. + Point central entre et . + + + + Renvoie le produit scalaire de deux vecteurs. + + Premier vecteur. + Deuxième vecteur. + Produit scalaire de et . + + + + Renvoie le produit scalaire de deux points. + + + + + Renvoie la distance entre deux points. + + Premier point. + Deuxième point. + Distance entre et . + + + + Renvoie le carré de la distance entre deux points. + + Premier point. + Deuxième point. + Carré de la distance entre et . + + + + Déterminant du produit vectoriel. Équivaut à la zone directionnelle. + + + + + Calcule le vecteur de direction normal des segments de ligne donnés. + + + + + Calcule le vecteur perpendiculaire, à 90 degrés dans le sens inverse des aiguilles d'une montre. Le vecteur à droite perpendiculaire donne un vecteur vers le haut. + + + + + Renvoie si les deux géométries sont identiques ou non. + + + + + Vérifie que la valeur est une instance du type de résultat (T). Si ce n'est pas le cas, remplace la valeur par une nouvelle instance de type (T). + + + + + Vérifie que la list[index] est une instance du type de résultat (T). Si ce n'est pas le cas, remplace la valeur par une nouvelle instance de type (T). + + + + + Classe d'assistance fournissant des propriétés statiques et des procédés liés au point arithmétique flottant. + + + + + Distance minimale pour considérer que deux valeurs sont identiques. Remarque : le point flottant interne dans MIL/SL est flottant, et non double. + + + + + Valeur de l'angle d'un cercle plein. + + + + + Rayon interne pour une forme de pentagramme, avec un degré de précision de trois pour cent. (1 Sin36 * Sin72 / Sin54) / (Cos36) ^ 2, qui font 0.47210998990512996761913067272407 + + + + + Détermine si une valeur de System.Double est suffisamment petite pour être considérée comme équivalente à zéro. + + + True si la valeur est inférieure à DoubleTolerance ; sinon, False. + + + + Renvoie la valeur comprise dans la plage donnée. Une valeur min/max donnée égale à Null équivaut à l'absence de limites. + + + + + Calcule la norme euclidienne du vecteur (x, y). + + Premier composant. + Deuxième composant. + Norme euclidienne du vecteur (x, y). + + + + Calcule un nombre réel à partir de la mantisse et de l'exposant. + + + + Valeur de x*2^exp en cas de réussite. + + + + Teste une valeur de type double. + + Valeur double à tester. + True si x n'est pas une valeur NaN et n'est pas égal à plus ou moins l'infini ; sinon, False. + + + + Classe d'assistance pour travailler avec PathFigure. + + + + + Aplatit la figure donnée et ajoute des points de résultat à la liste de points donnée. + + Tolérance d'erreur. Doit être une valeur positive. Ne peut pas être égal à zéro. La valeur de secours correspond à la tolérance par défaut. + + + + Effectue une itération de tous les segments situés dans la figure donnée et renvoie le point de départ correct pour chaque segment. + + + + + Synchronise la figure avec la liste de points donnée en tant que segment polyligne unique. Essaie d'effectuer un mimimum de modifications et renvoie la valeur False si rien n'a été changé. + + + + + Synchronise la figure donnée pour en faire une ellipse fermée avec deux segments d'arc. + + + + + Structure de données Tuple pour PathSegment et le StartPoint correspondant. + + + + + Représente une polyligne avec une liste de points de connexion. Un polygone fermé est représenté en répétant le premier point à la fin. Les différences, normales, angles et longueurs sont calculés à la demande. + + + + + Construit une polyligne avec deux ou plusieurs points. + + + + + Vecteur de différence de polyligne avant. Points[i] + différences[i] = points[i + 1] + + + + Calcule le vecteur normal d'un emplacement donné (lerp(index, index+1, fraction). Si celui-ci se trouve dans la plage du cornerRadius, interpoler la direction normale. + + Plage de lissage normal. Si zéro, aucun lissage effectué et renvoi de la normale exacte sur l'index. + + + + La polyligne est fermée lorsque le premier et le dernier points sont répétés. + + + + + Nombre de points de la polyligne. + + + + + Longueur d'arc totale de la polyligne. + + + + + Tableau de points de la polyligne. + + + + + Longueur entre les segments de ligne, points[i] à points[i+1]. + + + + + Liste des vecteurs normaux pour chaque segment. Normales[i] est la normale du segment p[i] à p[i + 1]. Normales[N-1] = Normales[N-2]. + + + + + Liste de Cos(angle) entre deux segments de ligne sur le point p[i]. Remarque : la valeur est cos(angle) = Dot(u, v). Pas en degrés. + + + + + Liste de longueur cumulée des points[i] aux points[0]. + + + + + Structure de données permettant de communiquer avec l'algorithme PathMarch. + + + + + Obtient la position interpolée de cette MarchLocation sur une liste de points donnée. + + + + + Obtient la direction normale interpolée de cette MarchLocation sur sur une liste de vecteurs normaux donnée. + + + + + Obtient la longueur d'arc de cette MarchLocation au début de la polyligne entière. + + + + + Raison pour laquelle cet emplacement est échantillonné. + + + + + Index du point sur la liste de points de polyligne. + + + + + Rapport : [0, 1], qui est toujours avant / (avant + après). + + + + + Longueur d'arc avant un point d'arrêt. Il s'agit d'une valeur non négative et inférieure à Length[index]. + + + + + Longueur d'arc après le point d'arrêt. Il s'agit d'une valeur non négative et inférieure à Length[index]. + + + + + Durée restante dans une étape avant d'atteindre le prochain arrêt. Positive pour aller vers l'avant. Négative pour revenir en arrière. + + + + + Classe d'assistance pour travailler avec une liste de points + + + + + Parcourt la polyligne donnée avec un intervalle donné et indique chaque arrêt au moyen d'un rappel. + + Points de la polyligne à parcourir. + Longueur d'arc à parcourir avant de s'arrêter au premier point. + Angle maximal entre les bords pour être considéré comme un sommet de coin. + Rappel lorsque l'algorithme de parcours s'arrête sur un point. Le rappel renvoie la longueur d'arc jusqu'à l'arrêt suivant. Si la longueur demandée est négative, parcours vers arrière. Si le rappel renvoie une valeur NaN, fin du parcours. + + + + Réorganise la liste donnée de polylignes afin que la polyligne ayant une longueur d'arc donnée soit la première de la liste. Les polylignes qui précédaient cette ligne sont concaténées à la fin de la liste, la première polyligne à la fin. + + Liste des polylignes. + Longueur d'arc dans la liste entière des polylignes à laquelle trouver la ligne de départ. La longueur d'arc dans cette ligne est renvoyée dans cette variable. + Liste réorganisée et encapsulée. + + + + Un générateur aléatoire prend en charge les distributions uniformes et gaussiennes. + + + + + Génère une paire de nombres aléatoires standard indépendants normalement distribués, attente zéro, variance de l'unité, en utilisant la forme polaire de la transformation de Box-Muller. + + + + + Constructeur privé Force à utiliser les méthodes de fabrique. + + + + + Crée un segment de ligne + + + + + Crée un segment de Bézier cubique à partir de la courbe quatratique (trois points de contrôle) + + + + + Crée un segment de Bézier cubique avec quatre points de contrôle. + + + + + Points de contrôle du segment de tracé. La longueur est variable. Le segment de ligne a deux points, le Bézier cubique a quatre points. + + + + + Compare deux transformations pour une correspondance exacte. Transforme avec une valeur identique mais une structure différente (par exemple, Translate(0,0) et Rotate(0) ne sont pas considérés comme équivalents). + + Première transformation. + Deuxième transformation. + + + + + Spécifie l'unité d'épaisseur. + + + + + Unité en pixels. + + + + + Unité en pourcentage par rapport à la zone de délimitation. + + + + + Fournit la classe de base d'une source de géométrie. Celle-ci génère et met en cache la géométrie en fonction des paramètres d'entrée et les limites de la disposition. + + + Une implémentation classique étendra la UpdateCachedGeometry() pour mettre à jour this.cachedGeometry. Cette classe de base traitera alors l'invalidation faisant suite aux effets de géométrie et la mise en cache relative aux limites de disposition. Une implémentation devrait essayer de réutiliser la géométrie mise en cache autant que possible afin d'éviter une reconstruction dans le thread de rendu. Une implémentation peut étendre les ComputeLogicalBounds afin de gérer l'étirement différemment. + + Type de paramètre de source de géométrie à partir duquel fonctionne la classe de base. + + + + Fournit une interface permettant de décrire la source d'une géométrie. + + + Cette interface est conçue pour exposer une source de géométrie de manière non générique. Une implémentation standard doit sous-classer la GeometrySource au lieu d'implémenter cette interface directement. + + + + + Notifie que la géométrie est invalidée en raison de modifications externes. + + + En général, une géométrie est invalidée lorsque les paramètres sont modifiés. Toute géométrie ayant été invalidée de manière externe sera recalculée même si des modifications sont apportées aux limites de la disposition. + + + + + Mettez à jour la géométrie à partir de paramètres et de limites de disposition donnés. Renvoie la valeur False si rien n'a été mis à jour. + + + + + Obtient ou définit la géométrie résultante après la dernière UpdateGeometry(). + + + + + Obtient la zone englobante dans laquelle la géométrie doit s'étendre. La géométrie réelle peut être inférieure ou supérieure à celle-ci. Normalement, prend déjà l'épaisseur de trait et l'étirement en considération. + + + + + Obtient les limites réelles du FrameworkElement. inclut les limites logiques, l'étirement et l'épaisseur de trait. + + + + + Spécifie la géométrie à partir du processus d'effet de géométrie précédent. + + + + + Notifie que la géométrie est invalidée en raison de modifications externes. + + + En général, la géométrie est invalidée lorsque les paramètres sont modifiés. Toute géométrie ayant été invalidée de manière externe sera recalculée même si des modifications sont apportées aux limites de la disposition. + + + + + Met à jour la géométrie à partir de paramètres et de layoutBounds donnés. Renvoie la valeur False si la géométrie n'a pas été modifiée. + + + + + Étend la manière de fournir une géométrie en mettant en œuvre cette fonction. Renvoie la valeur True lorsqu'une des géométries a été modifiée. + + + + + Étend la manière de gérer le mode d'étirement. Par défaut, Stretch.Fill et le trait central sont toujours utilisés. + + + + + Applique l'effet de géométrie lorsqu'il est sale ou forcé, met à jour this.Geometry. Sinon, conserve this.Geometry comme this.cachedGeometry. + + + + + Obtient ou définit la géométrie résultante après la dernière UpdateGeometry(). + + + + + Obtient la zone englobante dans laquelle la géométrie doit s'étendre. La géométrie réelle peut être inférieure ou supérieure à celle-ci. Normalement, prend déjà l'épaisseur de trait et l'étirement en considération. + + + + + + Obtient les limites réelles du FrameworkElement. inclut les limites logiques, l'étirement et l'épaisseur de trait. + + + + + + L'arc identifie Stretch.None comme étant identique à Stretch.Fill, en supposant que le rapport largeur/hauteur = 1:1. + + + + + Normalise l'épaisseur, à la fois par rapport à la zone englobante et à la valeur absolue en pixels. Épaisseur relative = 0 -> rayon complet du cercle ou bloquée. Épaisseur relative = 1-> réduite à un point ou dégénérée. + + + + + L'arc est dégénéré en ligne pointant vers le centre/intérieur normal. + + + + + Calculez la liste de paires d'angle, en définissant les plages dans lesquelles l'exemple d'arc doit se situer. La valeur de retour possède 2, 4 ou 6 valeurs doubles ; chaque paire définit une plage et se présente dans l'ordre permettant de couvrir les angles allant des angles de début aux angles de fin. Les plages se divisent à l'angle d'auto-intersection. Si le début/la fin d'entrée se trouvent dans la plage non valide entre l'angle d'auto-intersection, il ou elle est supprimé(e) de l'auto-intersection voisine. + + + + + Déplacez l'angle vers la plage 0-90. + + + + + Calculez toutes les parties des courbes intérieures avec chaque paire d'angles d'entrée, puis connectez-les à l'aide de segments poly-Bézier. Les nouveaux segments sont générés dans la liste figure.Segments à partir de l'index donné. Le point de départ est généré séparément. + + + + + Calculez une partie de la courbe intérieure à l'aide de la plage d'angles donnée, puis générez une partie de courbe lisse au format des segments poly-Bézier. + + + + + Calculez le paramètre (angle) du point d'auto-intersection de l'ellipse donnée avec l'épaisseur donnée. Le résultat est toujours dans le premier quadrant et peut être égal à 0 ou 90, ce qui indique une absence d'auto-intersection. L'algorithme de base consiste à rechercher la valeur binaire de l'angle dont l'exemple de point n'est pas dans le premier quadrant. + + + + + Spécifie la direction vers laquelle pointe la flèche. + + + + + La flèche pointe vers la gauche. + + + + + La flèche pointe vers la droite. + + + + + La flèche pointe vers le haut. + + + + + La flèche pointe vers le bas. + + + + + B /| / C--D A | \ C--D \| B L'algorithme utilise uniquement le rapport largeur/hauteur en supposant que l'angle supérieur gauche est à 0,0. + + + + + Spécifie le style de rendu d'une forme de légende. + + + + + Légende rectangulaire. + + + + + Légende rectangulaire sans coins arrondis. + + + + + Légende de forme ovale. + + + + + Légende en forme de nuage. + + + + + Met à jour la ligne du bord et se connecte au point d'ancrage si nécessaire. + + + + + Met à jour le segment de la polyligne, puis se connecte aux points de départ, d'ancrange et de fin avec le style de légende. + + + + + Met à jour le segment de ligne pour un point donné. + + + + + Calcule les points d'angle dans le sens des aiguilles d'une montre, avec huit points pour les quatre angles. + + + + + L'arc de coin est toujours inférieur à 90 degrés. + + + + + Fournit la classe de base de GeometryEffect qui transforme une géométrie en une autre. + + + Cette classe fournit l'implémentation de base de traitement de la géométrie de rendu d'une IShape avant d'être transmise au rendu. Une implémentation classique étend la de fonction virtuelle pour transformer une géométrie d'entrée. est généralement attaché à en tant que propriété attachée et activé lorsque la géométrie de est mise à jour. Le d'un remplace le rendu de géométrie dans . + + + + + Obtient l'effet géométrie en tant que propriété attachée à un objet de dépendance donné. + + + + + Définit l'effet géométrie en tant que propriété attachée à un objet de dépendance donné. + + + + + Crée une copie complète de à l’aide de ses valeurs actuelles. + + + + + Effectue une copie complète de l'effet de géométrie. Implémente une CloneCurrentValue dans Silverlight. + + Clone de l'instance actuelle de l'effet de géométrie. + + + + Teste si l'effet de géométrie donné est équivalent à l'instance actuelle. + + Effet de géométrie à comparer. + Renvoie la valeur True lorsque deux effets génèrent la même apparence. + + + + Spécifie la géométrie à partir du processus d'effet de géométrie précédent. + + + + + Invalide l'effet de géométrie sans calculer réellement la géométrie. Informe de toutes les formes parentes ou effets à invalider en conséquence. + + + + + Traite l'effet de géométrie sur une géométrie d'entrée donnée. Enregistre le résultat dans GeometryEffect.OutputGeometry. + + Renvoie la valeur False si rien n'a été modifié. + + + + Étend la manière de mettre à jour une cachedGeometry en fonction d'une géométrie d'entrée donnée. + + + + + Notification en cas de détachement de la chaîne parente. + + + + + Notification en cas d'attachement à une chaîne parente. + + + + + Invalide la géométrie sur un objet de dépendance donné lorsque l'objet est un type de parent valide (IShape ou GeometryEffect). + + + + + Implémente le Freezable dans WPF. + + + + + Effet de géométrie par défaut qui ne fait que parcourir la géométrie d'entrée. + + + + + Obtient la géométrie de sortie de cet effet de géométrie. + + + + + Le parent peut être soit IShape soit GeometryEffectGroup. + + + + + Fournit la conversion entre la chaîne et les effets de géométrie. + + + Cette classe permet une syntaxe courte en XAML comme GeometryEffect="Sketch". Crée un clone de l'instance de l'effet de géométrie afin de pouvoir l'utiliser en tant que ressource. + + + + + Crée la liste prédéfinie des effets de géométrie pris en charge. + + + + + Un GeometryEffect peut être converti à partir d’une chaîne. + + + + + Un GeometryEffect peut être converti en chaîne. + + + + + Convertit une chaîne en effet de géométrie. La valeur de secours est Null. + + + + + Convertit un effet de géométrie en chaîne. La valeur de secours est Null. + + + + + Indique la raison de l'appel de . + + + + + La géométrie a été invalidée car une propriété a été modifiée. + + + + + La géométrie a été invalidée car une propriété est en cours d'animation. + + + + + La géométrie a été invalidée car un enfant a été invalidé. + + + + + La géométrie a été invalidée car un parent a été invalidé. + + + + + La géométrie a été invalidée car un nouveau modèle a été appliqué. + + + + + Fournit des méthodes d'extension de l'assistance pour travailler avec IGeometrySource et les paramètres. + + + + + Spécifie le type de tête de flèche. + + + + + Sans tête de flèche. + + + + + Tête de flèche triangulaire. + + + + + Tête de flèche élancée triangulaire. + + + + + Tête de flèche ouverte triangulaire. + + + + + Tête de flèche ovale. + + + + + Spécifie l'emplacement de l'angle. + + + + + Sur l'angle supérieur gauche du rectangle englobant. + + + + + Sur l'angle supérieur droit du rectangle englobant. + + + + + Sur l'angle inférieur droit du rectangle englobant. + + + + + Sur l'angle inférieur gauche du rectangle englobant. + + + + + Le polygone identifie Stretch.None comme étant identique à Stretch.Fill. + + + + + Effet de géométrie qui transforme toute géométrie en style de croquis comme dans SketchFlow. + + + + + Effectue une copie complète de l'effet de géométrie. + + Clone de l'instance actuelle de l'effet de géométrie. + + + + Teste si l'effet de géométrie donné est équivalent à l'instance actuelle. + + Effet de géométrie à comparer. + Renvoie la valeur True lorsque deux effets génèrent la même apparence. + + + + Mise à jour de la cachedGeometry basée sur une géométrie d'entrée donnée. + + Géométrie d'entrée. + Renvoie la valeur True lorsque la moindre mise à jour a été réalisée sur cachedGeometry. + + + + Utilisez la même valeur de départ aléatoire pour la création afin de conserver un scintillement visuel minimal. + + + + + Effectue une itération de tous les segments simples dans une figure de tracé donnée, y compris la corde de fermeture. + + + + + Affiche une forme d'arc prenant en charge les modes arc, cercle et camembert contrôlés par ArcThickness. + + + + + Plate-forme d'implémentation neutre de Shape dérivant de WPF : Shape ou SL:Path. + + + Fournit une implémentation WPF de Shape qui dérive de la plateforme Shape. + + + + + Étend la manière dont la forme est dessinée avec la création de géométrie source. + + + + + Invalide la géométrie pour une . Après l'invalidation, la recalcule la géométrie, ce qui se produit de manière asynchrone. + + + + Fournit le comportement pour la partie mesure du cycle de disposition Silverlight. Les classes peuvent remplacer cette méthode pour définir leur propre comportement de passe de mesure. + Taille nécessaire déterminée par l'objet pendant la disposition, basée sur les calculs des dimensions attribuées à l'objet enfant ou éventuellement sur d'autres facteurs tels qu'une taille fixe du conteneur. + Taille disponible que l'objet peut attribuer aux objets enfants. L'infini () peut être spécifié en tant que valeur pour indiquer que l'objet prendra la taille du contenu disponible quel qu'il soit. + + Dans WPF, le remplacement de la mesure fonctionne à partir de Shape.DefiningGeometry qui n'est pas toujours comme prévu. Voir bogue 99497 pour plus d'informations lorsque WPF ne dispose pas de la mesure par défaut correcte. + + Dans Silverlight, le remplacement de la mesure sur le tracé ne fonctionne pas de la même façon que les formes primitives. + + Nous devons renvoyer la plus petite taille que cette forme peut restituer correctement sans détourage. Par défaut, une forme peut apparaître aussi petite qu'un point et renvoyer par conséquent l'épaisseur du trait. + + + + Fournit le comportement pour la partie réorganisation du cycle de disposition Silverlight. Les classes peuvent remplacer cette méthode pour définir leur propre comportement de passe de disposition. + Taille réelle utilisée une fois que l'élément est agencé dans la mise en page. + Zone finale dans le parent que l'objet doit utiliser pour s'organiser et organiser ses enfants. + régénère la Géométrie lorsqu'elle est invalidée et met à jour le RenderedGeometry et la GeometryMargin. + + + + Se produit lorsque le RenderedGeometry est modifié. + + + + + Obtient la marge entre les limites logiques et les limites réelles de la géométrie. Celle-ci peut être soit positive (comme dans ) soit négative (comme dans ). + + + + + Obtient ou définit l'angle de départ. + + Angle de départ en degrés. Zéro degré pointe vers le haut. + + + + Obtient ou définit l'angle d'extrémité. + + Angle d'extrémité en degrés. Zéro degré pointe vers le haut. + + + + Obtient ou définit l'épaisseur de l'arc. + + Épaisseur de l'arc en pixels ou en pourcentage en fonction d'ArcThicnessUnit. + + + + Obtient ou définit l'unité de l'épaisseur de l'arc. + + Unité de l'épaisseur d'arc en pixels ou en pourcentage. + + + + Génère le rendu d'une forme de flèche de bloc qui prend en charge un corps et une pointe de flèche redimensionnables. + + + + + Obtient ou définit l'orientation. + + Orientation vers laquelle pointe la flèche. + + + + Obtient ou définit l'angle de la tête de flèche. + + Angle de la tête de flèche en degrés. + + + + Obtient ou définit la taille du corps de la flèche. + + Taille du corps de la flèche en pixels. + + + + Restitue une forme de polygone régulier ou une forme d'étoile avec un nombre variable de pointes. + + + + + Obtient ou définit le nombre de points du . + + + + + Obtient ou définit la distance entre le centre et le point plus profond. + + Distance entre le centre et le point plus profond. + + + diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/fr/Microsoft.Expression.Effects.xml b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/fr/Microsoft.Expression.Effects.xml new file mode 100644 index 0000000..2d8da01 --- /dev/null +++ b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/fr/Microsoft.Expression.Effects.xml @@ -0,0 +1,1041 @@ + + + + Microsoft.Expression.Effects + + + + + Déterminer l’orientation des stores. + + + + + Nuanceur de transition qui simule l’ouverture de stores lors de la transition d’un visuel à un autre. + + + + + Obtient ou définit l’orientation des stores. + + + + + Obtient ou définit le nombre de stores. + + + + + Obtient ou définit la variable d’amplitude dans le nuanceur. + + + + + Crée une instance du nuanceur. + + + + + Effectue une copie complète de l’effet BlindsTransitionEffect. + + Clone de l'instance actuelle de l'effet BlindsTransitionEffect. + + + + Obtient ou définit l’orientation des stores. + + + + + Obtient ou définit le nombre de stores à afficher. + + + + + Obtient ou définit l’orientation des stores. + + + + + Effet qui implémente un éclairage de bleu d’un visuel. + + + + + Entrée explicite pour ce nuanceur de pixels. + + + + + + Cette propriété est mappée à la variable BloomIntensity dans le nuanceur de pixels. + + + + + Cette propriété est mappée à la variable BaseIntensity dans le nuanceur de pixels. + + + + + Cette propriété est mappée à la variable BloomSaturation dans le nuanceur de pixels. + + + + + Cette propriété est mappée à la variable BaseSaturation dans le nuanceur de pixels. + + + + + Cette propriété est mappée à la variable BloomIntensity dans le nuanceur de pixels. + + + + + Cette propriété est mappée à la variable BloomSaturation dans le nuanceur de pixels. + + + + + Cette propriété est mappée à la variable BaseSaturation dans le nuanceur de pixels. + + + + + Crée une instance et met à jour les variables du nuanceur aux valeurs par défaut. + + + + + Obtient ou définit l’intensité minimale qui sera utilisée pour le bleu. + + + + + Obtient ou définit l’intensité de base. + + + + + Obtient ou définit l’intensité du bleu. + + + + + Obtient ou définit la saturation de base + + + + + Obtient ou définit la saturation du bleu. + + + + + Obtient ou définit l’échantillonneur de nuanceur d’entrée. + + + + + Obtient ou définit la variable Base/BloomIntensity dans le nuanceur. + + + + + Obtient ou définit la variable BaseBloomSaturation dans le nuanceur. + + + + + Effet de transition qui révèle deux effets visuels par l’intermédiaire d’un cercle de croissance/réduction. + + + + + Propriété de dépendance qui modifie la variable de quantité de contour progressif dans le nuanceur de pixels. + + + + + Propriété de dépendance qui modifie le mouvement de cercle. + + + + + Propriété de dépendance qui modifie la variable reverseShader dans le nuanceur de pixels. + + + + + Crée une instance et met à jour les variables du nuanceur aux valeurs par défaut. + + + + + Effectue une copie complète de l’effet CircleRevealTransitionEffect. + + Clone de l'instance actuelle de l'effet CircleRevealTransitionEffect. + + + + Obtient ou définit la variable FuzzyAmount dans le nuanceur. + + + + + Obtient ou définit la lecture d’affichage du cercle vers l’arrière. + + + + + Obtient ou définit la lecture d’affichage du cercle vers l’arrière dans le nuanceur. + + + + + Effet de transition qui effectue le passage entre deux effets visuels à l’aide d’une texture de nuage en tant que seuil d’échantillonnage. + + + + + Définit un effet de transition de nuanceur qui utilise une image comme seuil d’échantillonnage pour interpoler la valeur en pixels entre deux éléments visuels. + + + + + Définit un effet de transition de nuanceur qui fournit une valeur aléatoire permettant à l’effet de fournir une variation à chaque fois qu’il est exécuté. + + + + + Propriété de dépendance qui modifie la variable RandomSeed dans le nuanceur de pixels. + + + + + Met à jour les variables du nuanceur pour les valeurs par défaut. + + + + + Obtient ou définit la variable RandomSeed dans le nuanceur. + + + + + Propriété de dépendance qui modifie la variable CloudImage dans le nuanceur de pixels. + + + + + Crée une instance et met à jour les variables du nuanceur aux valeurs par défaut. + + + + + Obtient ou définit la variable CloudImage dans le nuanceur utilisée pour l’échantillonnage. + + + + + Crée une instance du nuanceur. + + + + + Effectue une copie complète de l’effet CloudRevealTransitionEffect. + + Clone de l'instance actuelle de l'effet CloudRevealTransitionEffect. + + + + Effet qui modifie le ton de couleur d’un visuel en utilisant deux couleurs comme échantillonnage. + + + + + Entrée explicite pour ce nuanceur de pixels. + + + + + Cette propriété est mappée à la variable Desaturation dans le nuanceur de pixels. + + + + + Cette propriété est mappée à la variable Tone dans le nuanceur de pixels. + + + + + Cette propriété est mappée à la variable LightColor dans le nuanceur de pixels. + + + + + Cette propriété est mappée à la variable DarkColor dans le nuanceur de pixels. + + + + + Crée une instance et met à jour les variables du nuanceur aux valeurs par défaut. + + + + + Obtient ou définit la variable Desaturation dans le nuanceur. + + + + + Obtient ou définit la variable Tone dans le nuanceur. + + + + + Obtient ou définit la variable LightColor dans le nuanceur. + + + + + Obtient ou définit la variable DarkColor dans le nuanceur. + + + + + Obtient ou définit l’échantillonneur de nuanceur d’entrée. + + + + + Effet qui simule un effet de relief pour le visuel. + + + + + Entrée explicite pour ce nuanceur de pixels. + + + + + Cette propriété est mappée à la variable Amount dans le nuanceur de pixels. + + + + + Cette propriété est mappée à la variable Height dans le nuanceur de pixels. + + + + + Cette propriété est mappée à la variable Color dans le nuanceur de pixels. + + + + + Crée une instance et met à jour les variables du nuanceur aux valeurs par défaut. + + + + + Obtient ou définit la variable Amount dans le nuanceur. + + + + + Obtient ou définit la variable Height dans le nuanceur. + + + + + Obtient ou définit la variable Color dans le nuanceur. + + + + + Obtient ou définit l’échantillonneur de nuanceur d’entrée. + + + + + Effet de transition qui effectue un passage graduel d’un visuel à un autre. + + + + + Crée une instance du nuanceur. + + + + + Effectue une copie complète de l’effet FadeTransitionEffect. + + Clone de l'instance actuelle de l'effet FadeTransitionEffect. + + + + Effet qui simule une lentille grossissante. + + + + + Obtient ou définit la variable InnerRadius dans le nuanceur. + + + + + Obtient ou définit la variable OuterRadius dans le nuanceur. + + + + + Obtient ou définit la variable d’alignement au centre dans le nuanceur. + + + + + Obtient ou définit la variable de quantité dans le nuanceur. + + + + + Obtient ou définit l’entrée utilisée dans le nuanceur. + + + + + Transformation utilisée pour ce nuanceur. + + + + + Crée une instance et met à jour les variables du nuanceur aux valeurs par défaut. + + + + + Obtient ou définit la variable InnerRadius dans le nuanceur. + + + + + Obtient ou définit la variable OuterRadius dans le nuanceur. + + + + + Obtient ou définit la variable d’alignement au centre dans le nuanceur. + + + + + Obtient ou définit le ShrinkFactor. Plus le facteur de réduction est élevé, plus le contenu à l’intérieur de l’ellipse apparaîtra « petit ». + + + + + Obtient le EffectMapping. + + + + + Obtient ou définit l’échantillonneur de nuanceur d’entrée. + + + + + GeneralTransform correspondant à l’effet Magnify. + + + + + Essayez de transformer un point en fonction de l’effet. + + Point à transformer. + Résultat si disponible. + Renvoyez True en cas de succès. + + + + Instance d’effet. + + + + + Si la transformation est un inverse. + + + + + Transformation spécifique à cet effet. + + + + + Crée une nouvelle instance. + + Effet de source. + + + + Cet effet particulier maintient l’alignement en fonction de l’axe des lignes alignées en fonction de l’axe, de sorte que la transformation du rectangle est une simple transformation de ses points d’angles. + + Rectangle d’entrée. + Rectangulaire de sortie. + + + + Pour calculer l’inverse du nuanceur, nous devons rechercher Pin, qui est la sortie des pixels, Pout étant l’entrée de texture (il s’agit du contraire du nuanceur). Cependant, l’algorithme du nuanceur dépend du rayon de la sortie de pixels à partir du centre, qui est une variable dont il n’est pas nécessaire de calculer l’inverse. Nous devons effectuer la bissection pour converger à l’aide de l’équation ci-dessous PHatout = PHat_in*Scalar où PHatout = Pout - Pcenter pHatin = Pin - Pcenter + + Scalar dépend du rayon de Pin (que nous ne connaissons pas). + + + + + Soit une sortie de pixels donnée(Pin), trouvez l’entrée de texture (Pout). + + + + + Crée une nouvelle instance. + + Une nouvelle instance de cela. + + + + Détermine si un point se trouve à l’intérieur d’une ellipse. + + Point test. + Point central de l’ellipse. + Rayon de l’ellipse. + Renvoyez True en cas de succès. + + + + Obtient la transformation inverse. + + + + + Effet qui transforme un visuel en couleur monochrome. + + + + + Obtient ou définit la variable Color dans le nuanceur. + + + + + Obtient ou définit l’entrée du nuanceur. + + + + + Crée une instance et met à jour les variables du nuanceur aux valeurs par défaut. + + + + + Obtient ou définit la variable Color dans le nuanceur. + + + + + Obtient ou définit l’entrée utilisée dans le nuanceur. + + + + + Effet qui pixellise un visuel. + + + + + Entrée explicite pour ce nuanceur de pixels. + + + + + Cette propriété est mappée à la variable Pixelation dans le nuanceur de pixels. + + + + + Crée une instance et met à jour les variables du nuanceur aux valeurs par défaut. + + + + + Obtient ou définit la quantité de pixellisation dans le nuanceur. + + + + + Obtient ou définit l’échantillonneur de nuanceur d’entrée. + + + + + Effet de transition qui augmente ou diminue la pixellisation entre deux visuels. + + + + + Crée une instance du nuanceur. + + + + + Effectue une copie complète de l’effet PixelateTransitionEffect. + + Clone de l'instance actuelle de l'effet PixelateTransitionEffect. + + + + Effet de transition qui effectue un flou radial du visuel en cours lors de l’introduction d’un nouveau visuel. + + + + + Crée une instance du nuanceur. + + + + + Effectue une copie complète de l’effet RadialBlurTransitionEffect. + + Clone de l'instance actuelle de l'effet RadialBlurTransitionEffect. + + + + Effet qui simule une ondulation sur le visuel. + + + + + Obtient ou définit la variable d’alignement au centre dans le nuanceur. + + + + + Obtient ou définit la variable d’amplitude dans le nuanceur. + + + + + Obtient ou définit la variable Frequency dans le nuanceur. + + + + + Obtient ou définit la variable de Phase dans le nuanceur. + + + + + Obtient ou définit le pinceau d’entrée utilisé dans le nuanceur. + + + + + Crée une instance et met à jour les variables du nuanceur aux valeurs par défaut. + + + + + Obtient ou définit la variable d’alignement au centre dans le nuanceur. + + + + + Obtient ou définit la variable d’amplitude dans le nuanceur. + + + + + Obtient ou définit la variable Frequency dans le nuanceur. + + + + + Obtient ou définit la variable de Phase dans le nuanceur. + + + + + Obtient ou définit l’échantillonneur de nuanceur d’entrée. + + + + + Effet de transition qui simule une ondulation au cours de la transition. + + + + + Crée une instance du nuanceur. + + + + + Effectue une copie complète de l’effet RippleTransitionEffect. + + Clone de l'instance actuelle de l'effet RippleTransitionEffect. + + + + Effet qui rend un visuel plus précis et plus net. + + + + + Entrée explicite pour ce nuanceur de pixels. + + + + + Cette propriété est mappée à la variable Amount dans le nuanceur de pixels. + + + + + Cette propriété est mappée à la variable Width dans le nuanceur de pixels. + + + + + Crée une instance et met à jour les variables du nuanceur aux valeurs par défaut. + + + + + Obtient ou définit la variable Amount dans le nuanceur. + + + + + Obtient ou définit la variable Height dans le nuanceur. + + + + + Obtient ou définit l’échantillonneur de nuanceur d’entrée. + + + + + Définit l’orientation de la diapositive. + + + + + Effet de transition qui fait glisser le visuel en cours, révélant le nouveau visuel. + + + + + Propriété de dépendance qui modifie la variable SlideAmount dans le nuanceur de pixels. + + + + + Propriété de dépendance qui modifie la variable SlideAmount dans le nuanceur de pixels. + + + + + Crée une instance et met à jour les variables du nuanceur aux valeurs par défaut. + + + + + Effectue une copie complète de l’effet SlideInTransitionEffect. + + Clone de l'instance actuelle de l'effet SlideInTransitionEffect. + + + + Obtient ou définit la variable SlideAmount dans le nuanceur. + + + + + Obtient ou définit la variable SlideAmount dans le nuanceur. + + + + + Effet de transition qui fait disparaître le visuel en cours dans un tourbillon, révélant le nouveau visuel. + + + + + Propriété de dépendance qui modifie la variable TwistAmount dans le nuanceur de pixels. + + + + + Propriété de dépendance qui modifie le nombre de cellules dans lesquelles les pixels sont torsadés. + + + + + Crée une instance et définit les variables de torsion du nuanceur aux valeurs par défaut. + + Niveau de torsion de tourbillon. + + + + Crée une instance et met à jour les variables du nuanceur aux valeurs par défaut. + + + + + Effectue une copie complète de l’effet SmoothSwirlGridTransitionEffect. + + Clone de l'instance actuelle de l'effet SmoothSwirlGridTransitionEffect. + + + + Obtient ou définit la variable TwistAmount dans le nuanceur. + + + + + Obtient ou définit la variable CellCount dans le nuanceur. + + + + + Effet qui fait tourbillonner le visuel en cours. + + + + + Entrée explicite pour ce nuanceur de pixels. + + + + + Cette propriété est mappée à la variable Center dans le nuanceur de pixels. + + + + + Cette propriété est mappée à la variable TwistAmount dans le nuanceur de pixels. + + + + + Cette propriété est mappée à la variable AngleFrequency dans le nuanceur de pixels. + + + + + Transformation utilisée lorsque cet effet est appliqué. + + + + + Crée une instance et met à jour les variables du nuanceur aux valeurs par défaut. + + + + + Obtient ou définit la variable d’alignement au centre dans le nuanceur. + + + + + Obtient ou définit la variable TwistAmount dans le nuanceur. + + + + + Obtient ou définit la variable AngleFrequency dans le nuanceur. Cette propriété n’est pas exposée. + + + + + Obtient ou définit l’échantillonneur de nuanceur d’entrée. + + + + + Obtient la GeneralTransform pour cet effet. + + + + + Utilisé pour transformer des transformations d’entrée et d’arborescence. + + + + + Instance de l’effet. + + + + + Inverse de la transformation. + + + + + Inverse de cette GeneralTransform. + + + + + Crée une instance de cette classe. + + L’effet lui-même. + + + + Pour cette opération, les limites correspondent au rectangle englobant de quatre points transformés. Il est nécessaire de transformer chacun d’eux, puis de les délimiter. Cela est vrai pour le déplacement vers l’avant et l’inversion. + + Rectangle d’entrée. + Rectangle transformé. + + + + Essayez de transformer inPoint avec l’effet de tourbillon. + + Point d’entrée. + Point de sortie après transformation à l’aide de l’effet de tourbillon. + Renvoie True mais lève une exception si False. + + + + Renvoie une nouvelle instance de cela. + + Nouvelle instance. + + + + Obtient un clone de l’inverse de la transformation en cours. + + + + + Effet de transition qui fait disparaître le visuel en cours dans une vague, révélant le nouveau visuel. + + + + + Propriété de dépendance qui modifie la variable Magnitude dans le nuanceur de pixels. + + + + + Propriété de dépendance qui modifie la variable Phase dans le nuanceur de pixels. + + + + + Propriété de dépendance qui modifie la variable Frequency dans le nuanceur de pixels. + + + + + Crée une instance du nuanceur. + + + + + Effectue une copie complète de l’effet WaveTransitionEffect. + + Clone de l'instance actuelle de l'effet WaveTransitionEffect. + + + + Obtient ou définit l’amplitude de la vague. + + + + + Obtient ou définit la phase de la vague. + + + + + Obtient ou définit l’amplitude de la vague. + + + + + Définissez la direction de balayage. + + + + + Effet de transition qui balaie le visuel en cours, révélant le nouveau visuel. + + + + + Propriété de dépendance qui modifie la variable WipeDirection dans le nuanceur de pixels. + + + + + Propriété de dépendance qui modifie la variable FeatherAmount dans le nuanceur de pixels. + + + + + Propriété de dépendance qui modifie la variable LineOrigin dans le nuanceur de pixels. + + + + + Propriété de dépendance qui modifie la variable LineNormal dans le nuanceur de pixels. + + + + + Propriété de dépendance qui modifie la variable LineOffset dans le nuanceur de pixels. + + + + + Crée une instance et met à jour les variables du nuanceur aux valeurs par défaut. + + + + + Effectue une copie complète de l’effet WipeTransitionEffect. + + Clone de l'instance actuelle de l'effet WipeTransitionEffect. + + + + Obtient ou définit la direction du balayage. + + + + + Obtient ou définit la variable FeatherAmount dans le nuanceur. + + + + + Obtient ou définit la variable LineOrigin dans le nuanceur. + + + + + Obtient ou définit la variable LineNormal dans le nuanceur. + + + + + Obtient ou définit la variable LineOffset dans le nuanceur. + + + + diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/fr/Microsoft.Expression.Interactions.resources.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/fr/Microsoft.Expression.Interactions.resources.dll new file mode 100644 index 0000000..3540f1e Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/fr/Microsoft.Expression.Interactions.resources.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/fr/Microsoft.Expression.Interactions.xml b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/fr/Microsoft.Expression.Interactions.xml new file mode 100644 index 0000000..7fa32b4 --- /dev/null +++ b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/fr/Microsoft.Expression.Interactions.xml @@ -0,0 +1,1241 @@ + + + + Microsoft.Expression.Interactions + + + + + Implémentation de base de ICommand qui inclut dans un wrapper une méthode qui accepte l’absence de paramètres ou une méthode qui en accepte un seul. + + + + + Initialise une nouvelle instance de la classe . + + Action. + Utilisez ce constructeur pour fournir une action qui ignore le paramètre ICommand. + + + + Initialise une nouvelle instance de la classe . + + Action qui accepte un paramètre d’objet. + Utilisez ce constructeur pour fournir une action qui utilise le paramètre d’objet passé par la méthode Execute. + + + + Définit la méthode qui détermine si la commande peut s’exécuter dans son état actuel. + + Données utilisées par la commande. Si la commande ne nécessite pas que des données soient passées, alors cet objet peut avoir la valeur Null. + + Renvoie toujours la valeur True. + + + + + Définit la méthode à appeler lorsque la commande est invoquée. + + Données utilisées par la commande. Si la commande ne nécessite pas que des données soient passées, alors cet objet peut avoir la valeur Null. + + + + Se produit lorsque des modifications qui affectent la détermination de l’exécution de la commande se produisent. Ne sera pas déclenché par ActionCommand. + + + + + Appelle une méthode sur un objet spécifié lorsqu’elle est appelée. + + + + + Invoque l’action. + + Paramètre de l'action. Si l'action ne nécessite pas de paramètre, le paramètre peut être défini sur une référence null. + + + + Appelé une fois que l’action est attachée à un AssociatedObject. + + Substituez-le pour connecter la fonctionnalité à l’AssociatedObject. + + + + Appelé lorsque l’action se détache de son AssociatedObject, mais avant que ce se soit réellement produit. + + Substituez-le pour déconnecter la fonctionnalité de l’AssociatedObject. + + + + Objet qui expose la méthode d’intérêt. Il s’agit d’une propriété de dépendance. + + + + + Nom de la méthode à appeler. Il s’agit d’une propriété de dépendance. + + + + + Action qui modifie une propriété spécifiée en valeur spécifiée lorsqu’elle est invoquée. + + + + + Initialise une nouvelle instance de la classe . + + + + + Invoque l’action. + + Paramètre de l'action. Si l'action ne nécessite pas de paramètre, le paramètre peut être défini sur une référence null. + Propriété avec introuvable sur la cible. + Impossible de définir sur la valeur spécifiée par . + + + + Obtient ou définit le nom de la propriété à modifier. Il s’agit d’une propriété de dépendance. + + Nom de la propriété à modifier. + + + + Obtient ou définit la valeur à définir. Il s’agit d’une propriété de dépendance. + + Valeur à définir. + + + + Obtient ou définit la durée de l’animation qui se produit lors de l’appel de ChangePropertyAction. Il s’agit d’une propriété de dépendance. Si la durée n’est pas définie, aucune animation n’est appliquée. + + + + + Incrémenter par valeur si celle-ci est True ; sinon, définir la valeur directement Si la propriété ne peut pas être incrémentée, la valeur est définie directement. + + + + + Représente une condition ternaire. + + + + + Méthode qui évalue la condition. Notez que cette méthode peut lever ArgumentException si l’opérateur n’est pas compatible avec le type. Par exemple, les opérateurs LessThan, LessThanOrEqual, GreaterThan et GreaterThanOrEqual ont besoin que les deux opérateurs implémentent IComparable. + + Renvoie True si la condition est remplie ; sinon, renvoie False. + + + + Assurez-vous que toutes les liaisons sur les opérandes de points de distribution sont à jour. + + + + + Obtient ou définit l'opérande de gauche. + + + + + Obtient ou définit l'opérande de droite. + + + + + Obtient ou définit l'opérateur de comparaison. + + + + + Énumération des différents opérateurs de comparaison. + + + + + Cette méthode évalue les opérandes. + + Opérande de gauche à partir de la propriété LeftOperand. + Opérateur de la propriété Operator. + Opérande de droite à partir de la propriété RightOperand. + Renvoie True si la condition est remplie ; sinon, renvoie False. + + + + Évalue les opérandes qui implémentent toutes les deux l’interface IComparable. + + Opérande de gauche à partir de la propriété LeftOperand. + Opérateur de la propriété Operator. + Opérande de droite à partir de la propriété RightOperand. + Renvoie True si la condition est remplie ; sinon, renvoie False. + + + + Chaînage avant. + + + + + Représente une expression conditionnelle définie sur une propriété ConditionBehavior.Condition. Contient la liste des conditions évaluée afin de renvoyer True ou False pour ICondition.Evaluate(). + + + + + Interface qu’un objet donné doit implémenter afin d’être défini sur une propriété ConditionBehavior.Condition. + + + + + Initialise une nouvelle instance de la classe . + + + + + Parcourt la collection de conditions et évalue chaque condition en fonction de la propriété ForwardChaining. + + Renvoie True si les conditions sont remplies ; sinon, renvoie False. + + + + Obtient ou définit le chaînage avant des conditions. Si le chaînage avant est défini sur ForwardChaining.And, toutes les conditions doivent être remplies. Si le chaînage avant est défini sur ForwardChaining.Or, une seule condition doit être remplie. + + + + + Renvoyez les collections de conditions. + + + + + Comportement qui s'attache à un déclencheur et contrôle les conditions pour déclencher les actions. + + + + + + Initialise une nouvelle instance de la classe . + + + + + Gestionnaire d'événements qui écoute l'événement d'appel d'aperçu déclenché par le déclencheur. La définition de PreviewInvokeEventArgs.Cancelling sur True annule l’appel. + + Objet de base du déclencheur. + Objet de type PreviewInvokeEventArgs où e.Cancelling peut être défini sur True. + + + + Obtient ou définit l’objet ICondition sur le comportement. + + Nom de la condition à modifier. + + + + Classe d’assistance pour la gestion des expressions de liaison sur des objets de dépendance. + + + + + Assurez-vous que tous les points de distribution sur une action avec des expressions de liaison sont à jour. DataTrigger se déclenche pendant la phase de liaison de données. Les actions étant des enfants du déclencheur, une liaison sur l’action risque de ne pas être à jour. Cette routine est appelée avant l’action afin de garantir que toutes les liaisons sont à jour avec les données les plus récentes. + + + + + Garantit que toutes les expressions de liaison sur des actions sont à jour + + + + + Cette fonction d’assistance garantit que si une propriété de dépendance sur un objet de dépendance a une expression de liaison, l’expression de liaison est à jour. + + + + + + + Bascule entre deux états en fonction d’une instruction conditionnelle. + + + + + Appelé une fois que le comportement est attaché à un AssociatedObject. + + Substituez-le pour connecter la fonctionnalité à l’AssociatedObject. + + + + Fonction d'assistance qui se sustitue à FrameworkElement.IsLoaded, étant donné que cette propriété n'est pas disponible dans Silverlight. + + Élément d’intérêt. + Renvoie True si l'élément a été chargé ; sinon, renvoie False. + + + + Obtient ou définit la liaison qui produit la valeur de propriété de l’objet de données. Il s’agit d’une propriété de dépendance. + + + + + Obtient ou définit la valeur à comparer avec la valeur de propriété de l’objet de données. Il s’agit d’une propriété de dépendance. + + + + + Obtient ou définit le nom de l’état visuel vers lequel effectuer la transition lorsque la condition est remplie. Il s’agit d’une propriété de dépendance. + + + + + Obtient ou définit le nom de l’état visuel vers lequel effectuer la transition lorsque la condition n’est pas remplie. Il s’agit d’une propriété de dépendance. + + + + + Déclencheur conçu pour être lié sur une propriété de magasin de données. Se déclenche lorsque la propriété change. + + + + + Représente un déclencheur qui exécute des actions lorsque les données liées ont changé. + + UA_REVIEW:chabiss + + + + Appelé en cas de modification de la propriété de liaison. UA_REVIEW:chabiss + + argument. + + + + Appelé une fois que le déclencheur est attaché à un AssociatedObject. UA_REVIEW:chabiss + + + + + Appelé lorsque le déclencheur est détaché de son AssociatedObject, mais avant qu’il ne se soit produit réellement. UA_REVIEW:chabiss + + + + + Objet de liaison que le déclencheur écoute, et qui déclenche le déclencheur lorsqu'il change. + + UA_REVIEW:chabiss + + + + Représente un déclencheur qui exécute des actions lorsque les données liées remplissent une condition spécifiée. + + + + + Appelé en cas de modification de la propriété de liaison. UA_REVIEW:chabiss + + argument. + + + + Obtient ou définit la valeur à comparer avec la valeur de propriété de l’objet de données. Il s’agit d’une propriété de dépendance. + + + + + Obtient ou définit le type de comparaison à effectuer entre les valeurs spécifiées. Il s’agit d’une propriété de dépendance. + + + + + ExtendedVisualStateManager est un VisualStateManager personnalisé capable de lisser l’animation des propriétés de disposition. Avec ce VisualStateManager personnalisé, les états peuvent inclure des modifications apportées aux propriétés telles que Grid.Column, modifier des hauteurs d’éléments par ou depuis Auto, et ainsi de suite. Ces modifications sont lissées au fil du temps à l’aide des GeneratedDuration et GeneratedEasingFunction de la transition appropriée. Voir la région « Remplacements de VisualStateManager » ci-dessous pour obtenir une description générale de l’algorithme. + + + + + VisualStateGroup pouvant utiliser ou non FluidLayout. + + + + + La visibilité est occultée par une propriété attachée personnalisée pendant l’exécution. + + + + + Un VisualStateGroup conserve la liste de ces valeurs d’origine dans une propriété jointe. + + + + + Pour chaque état, les propriétés propres à la disposition sont extraites, puis jointes à l’état. Ces propriétés sont supprimées de l’état lui-même. + + + + + Mémorisez l’état actuel. + + + + + TransitionEffect à utiliser en cas de modification de l’état. + + + + + TransitionEffectStoryboard utilisée au cours de la modification de l’état. + + + + + Arrière-plan mis en cache utilisé au cours de la modification de l’état. + + + + + Arrière-plan mis en cache utilisé au cours de la modification de l’état. + + + + + Arrière-plan mis en cache utilisé au cours de la modification de l’état. + + + + + Il s’agit du jeu d’éléments actuellement en mouvement. + + + + + Il s’agit de la table de montage séquentiel qui anime la transition. + + + + + Cette liste contient toutes les propriétés de disposition connues. + + + + + Arrêtez l’animation et remplacez les modifications de disposition qui ont été apportées pour prendre en charge cette animation. + + + + + Localisez la transition que VisualStateManager va utiliser pour animer la modification, afin que l’animation de la disposition puisse correspondre à la durée et à l’accélération. + + Groupe dans lequel la transition se produit. + État d’origine. + État de destination. + Transition + + + + Supprimez toutes les propriétés qui affectent la disposition depuis la table de montage séquentiel pour l’état, puis mettez-les en cache dans une propriété jointe. + + État vers lequel vous passez. + Table de montage séquentiel contenant les propriétés de disposition dans cet état. + + + + Le jeu d’éléments cibles correspond au jeu complet des éléments pouvant s’être déplacés dans une transition de disposition. Ce jeu est la fermeture de : - Éléments avec des propriétés de disposition animées dans l’état. - Frères des éléments dans le jeu. - Parents des éléments dans le jeu. + + Le code suivant vérifie ces rectangles avant et après la modification de la disposition. + + Contrôle dont la disposition change d’état. + Table de montage séquentiel contenant les modifications de disposition. + Valeurs précédentes des navigations d’états précédents pouvant être rétablies. + Jeu d’éléments actuellement en mouvement, en cas de transition de modification d’état en cours. + Jeu complet d’éléments dont la disposition peut avoir changé. + + + + Obtient un jeu de rectangles pour tous les éléments dans la liste cible. + + Jeu d’éléments à considérer. + Jeu d’éléments actuellement en mouvement. + Dictionnaire qui associe les éléments à leurs rectangles. + + + + Obtenez le rectangle de disposition d’un élément, en obtenant l’emplacement de la disposition, puis en calculant quelle partie de l’emplacement est utilisée. + + Élément dont le rectangle de disposition est récupéré. + Rectangle de disposition de cet élément. + + + + Obtenez les opacités des éléments au moment de la modification de l’état, plutôt que les visibilités, car la modification de l’état est peut-être en cours et la valeur actuelle est la plus importante. + + Contrôle dont l’état change. + Table de montage séquentiel avec les propriétés de disposition. + Jeu de valeurs d’origine. + + + + + Parcourez la table de montage séquentiel de la disposition et définissez toutes les propriétés à l’aide de SetValue pour permettre l’appel de UpdateLayout sans cocher la chronologie, ce qui engendrerait un rendu. Toutes les valeurs écrasées sont stockées dans la collection de OriginalValueRecords afin de pouvoir être remplacées ultérieurement. + + Contrôle dont l’état change. + Table de montage séquentiel conservant les propriétés de disposition. + Magasin de valeurs d’origine. + + + + Prend tous les éléments qui se déplaceront à la suite de l’animation de la disposition, puis les enveloppe dans des panneaux canevas afin qu’ils n’affectent pas leurs éléments frères. + + Jeu d’éléments qui vont se déplacer. + + + + Prend tous les éléments qui se sont déplacés à la suite de l’animation de la disposition, puis les enlève de leurs panneaux canevas. + + Jeu d’éléments qui se sont déplacés. + + + + Copiez les propriétés de disposition depuis l’élément source vers l’élément cible, en les supprimant de la source. + + Source des propriétés de disposition. + Destination des propriétés de disposition. + + + + Créez la table de montage séquentiel réelle qui sera utilisée pour animer la transition. Utilisez tous les résultats précédemment calculés. + + Durée de l’animation. + Fonction d’accélération à utiliser dans l’animation. + Jeu d’éléments qui vont se déplacer. + Anciennes opacités des éléments dont les propriétés de visibilité changent. + Table de montage séquentiel. + + + + OriginalValueRecord mémorise la valeur d’origine d’une propriété qui a été modifiée dans un état. + + + + + Ce type énuméré indique si un FluidMoveBehavior s’applique à l’élément auquel il est joint ou à l’enfant de cet élément. « Self » s’avère utile lorsqu’il existe un seul élément qui doit se comporter d’une certaine manière ; « Children » s’avère utile lorsque le même comportement doit s’appliquer à tous les enfants d’un WrapPanel ou au panneau ItemsHost d’un ItemsControl. + + + + + Ce type énuméré indique si un élément est identifié par lui-même ou par son DataContext. L’identification DataContext permet le déplacement d’un emplacement piloté par les données à un autre. + + + + + Propriété de dépendance pour l’étendue du comportement. Voir FluidMoveScope pour plus d’informations. + + + + + Propriété de dépendance pour l’état actif du comportement. + + + + + Propriété de dépendance qui donne la possibilité d’utiliser l’élément en tant que sa propre balise ou la liaison sur l’élément. + + + + + Propriété de dépendance pour le chemin d'accès supplémentaire à ajouter à la liaison lorsque UsaBindingAsTag a la valeur True. + + + + + Balise d’identité utilisée pour détecter le mouvement de l’élément entre les conteneurs. + + + + + Indique si le comportement s’applique simplement à cet élément ou à tous ses enfants (si l’élément est un panneau). + + + + + Indique si le comportement est actuellement actif. + + + + + Indique s’il faut utiliser l’élément comme sa propre balise, ou utiliser la liaison de l’élément comme balise. + + + + + Chemin d‘accès supplémentaire à ajouter à la liaison lorsque TagType est spécifié. + + + + + Structure privée qui stocke toutes les données pertinentes relatives à un élément balisé. + + + + + Comportement qui surveille les modifications de disposition d’un élément (ou d’un jeu d’éléments), puis qui déplace l’élément progressivement vers la nouvelle position au moment requis. Ce comportement n‘anime pas la taille ni la visibilité d‘un élément ; il anime uniquement le décalage de cet élément au sein de son conteneur parent. + + + + + Propriété de dépendance pour la durée du déplacement. + + + + + Propriété de dépendance pour le type de balise à utiliser avant que l‘objet soit chargé. + + + + + Propriété de dépendance pour le chemin d'accès supplémentaire à ajouter à la liaison lorsque UsaBindingAsTag a la valeur True. + + + + + Balise d‘identité utilisée pour détecter le mouvement de l‘élément entre les conteneurs. + + + + + Propriété de dépendance de l'indicateur FloatAbove. + + + + + Propriété de dépendance pour la EasingFunction à utiliser pour le composant horizontal du déplacement. + + + + + Propriété de dépendance pour la EasingFunction à utiliser pour le composant vertical du déplacement. + + + + + N‘oubliez pas le popup/ornement utilisé, en cas de mouvement de l‘élément entre les conteneurs lorsque FloatAbove a la valeur True. + + + + + Cache d'opacité utilisé en cas de popup flottant. + + + + + Marque la transformation de l’animation. + + + + + Durée du déplacement. + + + + + Création de points pour cet élément. + + + + + Chemin d‘accès supplémentaire à ajouter à la liaison lorsque TagType est spécifié. + + + + + Indicateur qui précise si les éléments sont autorisés à flotter au-dessus de leurs conteneurs (dans un Popup ou un ornement) lors de la modification des conteneurs. + + + + + EasingFunction à utiliser pour le composant horizontal du déplacement. + + + + + EasingFunction à utiliser pour le composant vertical du déplacement. + + + + + Classe d‘assistance simple pour permettre à n‘importe quel UIElements d‘être utilisé comme un ornement. + + + + + Action qui permet la transition d‘un FrameworkElement vers un VisualState spécifié lorsqu‘elle est appelée. + + + Si la propriété TargetName est définie, cette action essaie de modifier l‘état de l‘élément ciblé. Dans le cas contraire, elle parcourt l‘arborescence d’éléments afin d‘essayer de localiser une cible alternative qui définit des états. ControlTemplate et UserControl sont deux éventualités courantes. + + + + + Appelé lorsque la cible change. Si la propriété TargetName n‘est pas définie, cette action possède un comportement personnalisé. + + + + Impossible de localiser un FrameworkElement approprié avec des états. + + + + Cette méthode est appelée lorsque certains critères sont remplis et que l‘action est invoquée. + + + Impossible de modifier la cible par le StateName spécifié. + + + + Détermine s'il convient ou non d'utiliser un VisualTransition pour passer d'un état à un autre. + + + + + Nom du VisualState. + + + + + Déclencheur déclenché par un événement de clavier. Si la touche et les modificateurs cibles sont détectés, il se déclenche. + + + + + Touche sur laquelle il convient d‘appuyer pour déclencher le déclencheur. + + + + + Modificateurs qui doivent être actifs pour que le déclencheur se déclenche (par défaut, il ne faut appuyer sur aucun modificateur). + + + + + Avec la valeur true, le Trigger écoute uniquement son objet Source de déclencheur, ce qui signifie que l‘élément doit avoir le focus pour que le déclencheur se déclenche. Avec la valeur false, le Trigger écoute à la racine, donc tous les messages KeyDown/Up non gérés sont détectés. + + + + + Détermine s‘il convient ou non d‘écouter l‘événement KeyDown ou KeyUp. + + + + + Action qui lance un processus afin d‘ouvrir un fichier ou URI. Pour les fichiers, cette action lance le programme par défaut pour l‘extension de fichier donnée. Un URI s‘ouvre dans un navigateur Web. + + + + + Cette méthode est appelée lorsque certains critères sont remplis et que l’action est invoquée. + + + + + + Fichier ou URI à ouvrir. + + + + + Repositionne l’élément joint en réponse aux mouvements de glissement de la souris sur l’élément. + + + + + Propriété de dépendance pour la position X de l’élément glissé, par rapport à la gauche de l’élément racine. + + + + + Propriété de dépendance pour la position Y de l’élément glissé, par rapport au haut de l’élément racine. + + + + + Propriété de dépendance pour la propriété ConstrainToParentBounds. S’il a la valeur True, l’élément glissé est contraint de rester dans les limites de son conteneur parent. + + + + + Essaie de mettre à jour la position de l’élément associé en fonction des coordonnées spécifiées. + + Position souhaitée de l’élément en coordonnées racine. + + + + Applique une translation de position relative à l’élément associé. + + Composent X de la translation souhaitée en coordonnées racine. + Composent Y de la translation souhaitée en coordonnées racine. + + + + Applique la translation donnée au RenderTransform de l’élément associé. + + Composent X de la translation en coordonnées parent. + Composent Y de la translation en coordonnées parent. + + + + Effectue une copie complète récursive de la transformation spécifiée. + + Transformation à cloner. + Copie complète de la transformation spécifiée, ou Null si la transformation spécifiée est nulle. + Levée si le type de la transformation n’est pas reconnu. + + + + Met à jour les propriétés X et Y en fonction de la position rendue actuelle de l’élément associé. + + + + + Vérifiez si un rectangle est contenu par un autre. + + Rectangle conteneur. + Rectangle contenu. + True si rect1 contient rect2 ; sinon, False. + + + + Transforme en vecteur. + + Transformation. + Composant X du vecteur. + Composant Y du vecteur. + Point contenant les valeurs de X et Y transformées par la transformation en vecteur. + + + + Obtient le décalage de la transformation. + + Transformation. + Décalage de la transformation. + + + + Appelé une fois que le comportement est attaché à un AssociatedObject. + + Substituez-le pour connecter la fonctionnalité à l’AssociatedObject. + + + + Appelé lorsque le comportement est détaché de son AssociatedObject, mais avant qu’il ne se soit produit réellement. + + Substituez-le pour déconnecter la fonctionnalité de l’AssociatedObject. + + + + Se produit lorsqu’un mouvement de glissement est initialisé. + + + + + Se produit lorsqu’une mise à jour de mouvement de glissement est traitée. + + + + + Se produit lorsqu’un mouvement de glissement est terminé. + + + + + Obtient ou définit la position X de l’élément glissé, par rapport à la gauche de l’élément racine. Il s’agit d’une propriété de dépendance. + + + + + Obtient ou définit la position Y de l’élément glissé, par rapport au haut de l’élément racine. Il s’agit d’une propriété de dépendance. + + + + + Obtient ou définit une valeur qui indique si l’élément glissé est contraint de rester dans les limites de son conteneur parent. Il s’agit d’une propriété de dépendance. + + + True si l’élément glissé doit être contraint aux limites de son parent ; sinon, False. + + + + + Obtient la position à l’écran de l’élément associé en coordonnées racine. + + Position à l’écran de l’élément associé en coordonnées racine. + + + + Obtient les limites de l’élément en coordonnées d’élément. + + Limites de l’élément en coordonnées d’élément. + + + + Obtient l’élément parent de l’objet associé. + + Élément parent de l’objet associé. + + + + Obtient l’élément racine de la scène dans laquelle se trouve l’objet associé. + + Élément racine de la scène dans laquelle se trouve l’objet associé. + + + + Obtient et définit le RenderTransform de l’élément associé. + + + + + Action qui permet de lire un son jusqu’à sa fin. + + + Cette action est destinée à être utilisée avec de courts effets sonores qui n’ont pas besoin d’être arrêtés ou contrôlés. Si vous essayez de créer un lecteur de musique ou un jeu, elle risque de ne pas répondre à vos besoins. + + + + + Initialise une nouvelle instance de la classe . + + + + + Lorsque l’action est invoquée, cette méthode est utilisée pour personnaliser le MediaElement créé dynamiquement. + + + Cette méthode peut s’avérer utile pour les auteurs d’actions qui souhaitent étendre PlaySoundAction. Si vous souhaitez contrôler la propriété Balance du MediaElement, vous pouvez hériter de PlaySoundAction et remplacer cette méthode. + + + + + + Cette méthode est appelée lorsque certains critères sont remplis et que l’action doit être invoquée. + + + Chaque invocation de l’action lit un nouveau son. Bien que l’implémentation soit susceptible de changer, l’appelant doit s’attendre à ce que cela crée un nouveau MediaElement, qui sera nettoyé à la fin du son ou en cas d’échec de lecture par le média. + + + + + + URI qui définit l’emplacement du fichier audio. Cet URI est utilisé pour définir la propriété source du MediaElement. Il s’agit d’une propriété de dépendance. + + + Le format du fichier audio peut être tout format pris en charge par MediaElement. Dans le cas d’une vidéo, seule la partie audio est lue. + + + + + Contrôle le volume du son. Ce contrôle est utilisé pour définir la propriété Volume du MediaElement. Il s’agit d’une propriété de dépendance. + + + + + Action qui supprime l’élément cible de l’arborescence lorsqu’elle est invoquée. + + + Cette action peut échouer. Elle comprend comment supprimer des éléments à partir de parents courants mais pas de collections personnalisées ni de la manipulation directe de l’arborescence d’éléments visuels. + + + + + Action qui va modifier la valeur d’une propriété à partir d’un objet de magasin de données. Cette classe est identique à ChangePropertyAction. La seule différence est que le sélecteur de magasin de données est chargé pour cette action. + + + + + Classe abstraite qui fournit la capacité de cibler une table de montage séquentiel. + + + Pour les auteurs d’actions, cette classe fournit un moyen standard de cibler une table de montage séquentiel. Les outils de conception peuvent choisir de fournir des fonctionnalités d’édition spéciales pour les classes qui héritent de cette action, afin d’améliorer l’expérience du concepteur. + + + + + Cette méthode est appelée lorsque la propriété Storyboard est modifiée. + + + + + + Table de montage séquentiel ciblé. Il s’agit d’une propriété de dépendance. + + + + + Action qui modifie l’état d’une table de montage séquentiel ciblé lorsqu’elle est invoquée. + + + + + Cette méthode est appelée lorsque certains critères sont remplis et que l’action doit être invoquée. Cette méthode essaie de modifier la table de montage séquentiel ciblée d’une manière définie par la ControlStoryboardOption. + + + + + + Classe abstraite qui fournit la capacité de cibler une table de montage séquentiel. + + + Pour les auteurs de déclencheurs, cette classe fournit un moyen standard de cibler une table de montage séquentiel. Les outils de conception peuvent choisir de fournir des fonctionnalités d’édition spéciales pour les classes qui héritent de ce déclencheur, afin d’améliorer l’expérience du concepteur. + + + + + Cette méthode est appelée lorsque la propriété Storyboard est modifiée. + + + + + Table de montage séquentiel ciblé. Il s’agit d’une propriété de dépendance. + + + + + Déclencheur qui écoute le déroulement d’une table de montage séquentiel. + + + + + Initialise une nouvelle instance de la classe . + + + + + Déclencheur qui est déclenché par un événement spécifié se produisant sur sa source à l’issue d’un délai à compter du déclenchement de cet événement. + + + + + Initialise une nouvelle instance de la classe . + + + + + Obtient ou définit le nombre de millisecondes d’attente entre les taquets. Il s’agit d’une propriété de dépendance. + + + + + Obtient ou définit le nombre total de taquets à déclencher avant la fin du déclencheur. Il s’agit d’une propriété de dépendance. + + + + + Définit un nuanceur d’effet de transition qui passe d’un visuel à un autre en utilisant une valeur interpolée située entre 0 et 1. + + + + + Propriétés de valeurs pinceau transformées en propriétés d’échantillonneur dans le nuanceur. Représente l’image présente dans l’état final de la transition. + + + + + Propriétés de valeurs pinceau transformées en propriétés d’échantillonneur dans le nuanceur. Représente l’image présente dans l’état initial de la transition. + + + + + Propriété de dépendance en tant que magasin de sauvegarde en cours de progression. Également utilisée pour représenter l’état de transition du début à la fin (comprise entre 0 et 1) + + + + + Crée un clone modifiable (copie complète) du à l’aide de ses valeurs en cours. + + + + + Effectue une copie complète de l’effet de transition. Implémente une CloneCurrentValue dans Silverlight. + + Clone de l’instance en cours de l’effet de transition. + + + + Met à jour les variables du nuanceur pour les valeurs par défaut. + + + + + Obtient ou définit la variable d’entrée dans le nuanceur. + + + + + Obtient ou définit la variable OldImage dans le nuanceur. + + + + + Obtient ou définit la variable de progression dans le nuanceur. + + + + + Permet à l’utilisateur à utiliser des gestes tactiles communs pour effectuer une translation, effectuer un zoom et faire pivoter l’objet joint. + + + + + Appelé une fois que le comportement est attaché à un AssociatedObject. + + Substituez-le pour connecter la fonctionnalité à l’AssociatedObject. + + + + Appelé lorsque le comportement est détaché de son AssociatedObject, mais avant qu’il ne se soit produit réellement. + + Substituez-le pour déconnecter la fonctionnalité de l’AssociatedObject. + + + + Obtient ou définit une valeur spécifiant les variantes de traduction et de zoom à prendre en charge. + + + + + Obtient ou définit un nombre décrivant le taux auquel la translation va diminuer. + + + + + Obtient ou définit un nombre décrivant le taux auquel la rotation va diminuer. + + + + + Obtient ou définit la valeur indiquant si le zoom et la position de translation de l’objet joint est limité par les limites de l’objet parent. + + + + + Obtient ou définit un nombre indiquant la valeur de zoom minimale autorisée. + + + + + Obtient ou définit un nombre indiquant la valeur de zoom maximale autorisée. + + + + + Cette classe fournit diverses opérations standard agnostiques de plateforme pour une utilisation avec VisualStateManager. + + + + + Fait passer le contrôle d’un état à un autre. + + Élément à faire passer entre les états. + État vers lequel effectuer la transition. + True pour utiliser un System.Windows.VisualTransition pour effectuer la transition entre les états ; sinon, False. + True si le contrôle passe avec succès vers le nouvel état ; sinon, False. + Le contrôle a la valeur Null. + StateName a la valeur Null. + + + + Obtient la valeur de la propriété attachée VisualStateManager.VisualStateGroups. + + Élément à partir duquel obtenir le VisualStateManager.VisualStateGroups. + + + + + Trouver le plus proche parent qui contient les états visuels. + + Élément à partir duquel rechercher le contrôle avec état le plus proche. + Contrôle avec état le plus proche si la valeur est True ; sinon Null. + True si un parent contient des états visuels ; sinon False. + + + + Classe de ressource fortement typée pour rechercher des chaînes localisées, etc. + + + + + Renvoie l’instance ResourceManager mise en cache utilisée par cette classe. + + + + + Remplace la propriété CurrentUICulture du thread actuel pour toutes les recherches de ressources à l’aide de cette classe de ressource fortement typée. + + + + + Recherche une chaîne localisée semblable à Impossible de trouver une méthode nommée « {0} » sur le type « {1} » qui correspond à la signature attendue.. + + + + + Recherche une chaîne localisée semblable à Plus d’un opérateur d’addition potentiel a été trouvé sur le type « {0} ».. + + + + + Recherche une chaîne localisée semblable à Impossible d’animer une modification de propriété sur une cible de type « {0} ». Les modifications de propriété peuvent uniquement être animées sur les types dérivés de DependencyObject. + + + + + Recherche une chaîne localisée semblable à Impossible de trouver une propriété nommée « {0} » sur le type « {1} ». + + + + + Recherche une chaîne localisée semblable à La propriété d’incrémentation ne peut pas être définie sur True si la propriété Duration est définie.. + + + + + Recherche une chaîne localisée semblable à La propriété « {0} » ne peut pas être incrémentée car sa valeur ne peut pas être lue. + + + + + Recherche une chaîne localisée semblable à Impossible d’attribuer une valeur de type « {0} » à la propriété « {1} » de type « {2} ». Seules des valeurs de type « {2} » peuvent être attribuées à la propriété « {1} ». + + + + + Recherche une chaîne localisée semblable à La propriété « {0} » définie par le type « {1} » n’expose pas une méthode définie et ne peut, par conséquent, pas être modifiée. + + + + + Recherche une chaîne localisée semblable à Impossible de trouver un état nommé « {0} » sur le type « {1} ». Vérifie que l’état existe et qu’il est accessible à partir de ce contexte.. + + + + + Recherche une chaîne localisée semblable à La cible {0} ne définit pas de VisualStateGroups. . + + + + + Recherche une chaîne localisée semblable à LeftOperand de type « {0} » ne peut pas être utilisé avec l’opérateur « {1} ». + + + + + Recherche une chaîne localisée semblable à LeftOperand de type « {1} » et RightOperand de type « {0} » ne peuvent pas être utilisés avec l’opérateur « {2} ». + + + + + Recherche une chaîne localisée semblable à RightOperand de type « {0} » ne peut pas être utilisé avec l’opérateur « {1} ». + + + + + Recherche une chaîne localisée semblable à La cible de RemoveElementAction n’est pas prise en charge. + + + + diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/fr/Microsoft.Expression.Prototyping.Interactivity.resources.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/fr/Microsoft.Expression.Prototyping.Interactivity.resources.dll new file mode 100644 index 0000000..7f14c3f Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/fr/Microsoft.Expression.Prototyping.Interactivity.resources.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/fr/System.Windows.Interactivity.resources.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/fr/System.Windows.Interactivity.resources.dll new file mode 100644 index 0000000..e4b0407 Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/fr/System.Windows.Interactivity.resources.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/fr/System.Windows.Interactivity.xml b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/fr/System.Windows.Interactivity.xml new file mode 100644 index 0000000..4f85d0c --- /dev/null +++ b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/fr/System.Windows.Interactivity.xml @@ -0,0 +1,1046 @@ + + + + System.Windows.Interactivity + + + + + Représente une collection de IAttachedObject avec un AssociatedObject partagé et fournit des notifications de modification à son contenu lorsque cet AssociatedObject change. + + + + + Interface pour un objet pouvant être attaché à un autre objet. + + + + + S'attache à l'objet spécifié. + + Objet auquel attacher. + + + + Détache cette instance de son objet associé. + + + + + Obtient l'objet associé. + + Objet associé. + Représente l'objet auquel l'instance est attachée. + + + + Initialise une nouvelle instance de la classe . + + Interne, car elle ne doit pas être héritée en dehors de cet assembly. + + + + Appelé immédiatement une fois que la collection est attachée à un AssociatedObject. + + + + + Appelé lorsque la collection est détachée de son AssociatedObject, mais avant qu'il ne se soit produit réellement. + + + + + Appelé lorsqu'un nouvel élément est ajouté à la collection. + + Nouvel élément. + + + + Appelé lorsqu'un élément est supprimé de la collection. + + Élément supprimé. + + + Impossible d'ajouter plusieurs fois l'instance à une collection. + + + + S'attache à l'objet spécifié. + + Objet auquel attacher. + Le IAttachedObject est déjà attaché à un autre objet. + + + + Détache cette instance de son objet associé. + + + + + Objet sur lequel la collection est hébergée. + + + + + Obtient l'objet associé. + + Objet associé. + + + + Encapsule des informations d'état et zéro ou plusieurs ICommands dans un objet attachable. + + Type auquel le peut être attaché. + + Le comportement est la classe de base permettant de fournir un état attachable et des commandes à un objet. Le paramètre générique peut contrôler les types auxquels le comportement peut être attaché. Remplacez les méthodes OnAttached() et OnDetaching() pour connecter et déconnecter tous les gestionnaires nécessaires à partir de l'AssociatedObject. + + + + + Encapsule des informations d'état et zéro ou plusieurs ICommands dans un objet attachable. + + Il s'agit d'une classe d'infrastructure. Les auteurs de comportements doivent dériver de Behavior<T> plutôt que de cette classe. + + + + Appelé une fois que le comportement est attaché à un AssociatedObject. + + Substituez-le pour connecter la fonctionnalité à l'AssociatedObject. + + + + Appelé lorsque le comportement est détaché de son AssociatedObject, mais avant qu'il ne se soit produit réellement. + + Substituez-le pour déconnecter la fonctionnalité de l'AssociatedObject. + + + + S'attache à l'objet spécifié. + + Objet auquel attacher. + Le comportement est déjà hébergé sur un autre élément. + dependencyObject ne satisfait pas la contrainte de type de comportement. + + + + Détache cette instance de son objet associé. + + + + + Type auquel ce comportement peut être attaché. + + + + + Obtient l'objet auquel ce comportement est attaché. + + + + + Obtient l'objet associé. + + Objet associé. + + + + Initialise une nouvelle instance de la classe . + + + + + Obtient l'objet auquel ce est attaché. + + + + + Représente une collection de comportements avec un AssociatedObject partagé et fournit des notifications de modification à son contenu lorsque cet AssociatedObject change. + + + + + Initialise une nouvelle instance de la classe . + + Interne, car elle ne doit pas être héritée en dehors de cet assembly. + + + + Appelé immédiatement une fois que la collection est attachée à un AssociatedObject. + + + + + Appelé lorsque la collection est détachée de son AssociatedObject, mais avant qu'il ne se soit produit réellement. + + + + + Appelé lorsqu'un nouvel élément est ajouté à la collection. + + Nouvel élément. + + + + Appelé lorsqu'un élément est supprimé de la collection. + + Élément supprimé. + + + + Crée une nouvelle instance de la BehaviorCollection. + + Nouvelle instance. + + + + Énumère les valeurs possibles pour les éditeurs de valeurs de propriétés réutilisables. + + + + + Utilise le sélecteur d'éléments, s'il est pris en charge, pour modifier cette propriété au moment du design. + + + + + Utilise le sélecteur de tables de montage séquentiel, s'il est pris en charge, pour modifier cette propriété au moment du design. + + + + + Utilise le sélecteur d'états, s'il est pris en charge, pour modifier cette propriété au moment du design. + + + + + Utilise le sélecteur de liaisons d'éléments, s'il est pris en charge, pour modifier cette propriété au moment du design. + + + + + Utilise le sélecteur de liaisons de propriétés, s'il est pris en charge, pour modifier cette propriété au moment du design. + + + + + Associe le type d'éditeur donné à la propriété à laquelle le CustomPropertyValueEditor est appliqué. + + Utilisez cet attribut pour améliorer l'édition au moment du design pour les propriétés qui indiquent des éléments (par nom), des tables de montage séquentiel ou des états (par nom). + + + + Initialise une nouvelle instance de la classe . + + Éditeur de valeur de propriété personnalisé. + + + + Obtient ou définit l'éditeur de valeur de propriété personnalisé. + + Éditeur de valeur de propriété personnalisé. + + + + Fournit des informations d'outils de conception sur le à instancier pour une action ou commande donnée. + + + + + Initialise une nouvelle instance de la classe . + + Type auquel cet attribut s'applique. + Type de à instancier. + Argument unique pour le spécifié. + n'est pas dérivé de TriggerBase. + Ce constructeur s'avère utile si le spécifié possède un seul argument. Le code obtenu sera conforme CLS. + + + + Initialise une nouvelle instance de la classe . + + Type auquel cet attribut s'applique. + Type de à instancier. + Argument du constructeur pour le spécifié. + n'est pas dérivé de TriggerBase. + + + + Instancie cette instance. + + spécifié par le DefaultTriggerAttribute. + + + + Obtient le type auquel ce DefaultTriggerAttribute s'applique. + + Type auquel ce DefaultTriggerAttribute s'applique. + + + + Obtient le type de à instancier. + + Type de à instancier. + + + + Obtient les paramètres à passer au constructeur . + + Paramètres à passer au constructeur . + + + + Cette méthode utilisera la méthode VisualTreeHelper.GetParent pour effectuer un premier parcours en profondeur en remontant l'arborescence visuelle et renvoyer tous les ancêtres de l'objet spécifié, y compris l'objet lui-même. + + Objet dans l'arborescence visuelle pour rechercher les ancêtres de. + Renvoie lui-même et tous les ancêtres situés dans l'arborescence visuelle. + + + + EventObserver est conçu pour faciliter la gestion des gestionnaires d'événements en les détachant lorsqu'ils sont supprimés. Créer cet objet attache également dans le constructeur. + + + + + Crée une instance de EventObserver et attache à l'événement fourni sur la cible fournie. Appelez la suppression pour détacher. + + Événement auquel attacher et détacher. + Objet cible sur lequel l'événement est défini. Null si la méthode est statique. + Délégué à attacher à l'événement. + + + + Détache le Gestionnaire de l'événement. + + + + + Déclencheur qui écoute un événement spécifié sur sa source et qui se déclenche lorsque cet événement est déclenché. + + + + + Représente un déclencheur capable d'écouter un élément autre que son AssociatedObject. + + Type auquel ce déclencheur peut être associé. + + EventTriggerBase étend TriggerBase pour ajouter les connaissances d'un autre objet que celui auquel il est attaché. Cela permet à l'utilisateur d'attacher une paire Déclencheur/Action à un seul élément et d'invoquer l'action en réponse à une modification dans un autre objet ailleurs. Remplacez OnSourceChanged pour connecter ou déconnecter des gestionnaires sur l'élément source, et OnAttached/OnDetaching pour l'élément associé. Le paramètre de type générique peut contraindre le type de l'élément Source. Si vous avez besoin de contrôler le type de l'AssociatedObject, définissez un TypeConstraintAttribute sur votre type dérivé. + + + + + Représente un déclencheur capable d'écouter un objet autre que son AssociatedObject. + + Il s'agit d'une classe d'infrastructure. Les auteurs de déclencheurs doivent dériver d'EventTriggerBase<T> plutôt que de cette classe. + + + + Représente un objet capable d'invoquer des actions de manière conditionnelle. + + Il s'agit d'une classe d'infrastructure. Les auteurs de déclencheurs doivent dériver de Trigger<T> plutôt que de cette classe. + + + + Invoque toutes les actions associées à ce déclencheur. + + Des classes dérivées doivent l'appeler pour déclencher le déclencheur. + + + + Appelé une fois que le déclencheur est attaché à un AssociatedObject. + + + + + Appelé lorsque le déclencheur est détaché de son AssociatedObject, mais avant qu'il ne se soit produit réellement. + + + + + Crée une nouvelle instance de la classe dérivée TriggerBase. + + Nouvelle instance. + + + + S'attache à l'objet spécifié. + + Objet auquel attacher. + Impossible d'héberger le même déclencheur sur plusieurs objets en même temps. + dependencyObject ne satisfait pas la contrainte de type de déclencheur. + + + + Détache cette instance de son objet associé. + + + + + Obtient l'objet auquel le déclencheur est attaché. + + Objet associé. + + + + Obtient la contrainte de type de l'objet associé. + + Contrainte de type d'objet associé. + + + + Obtient les actions associées à ce déclencheur. + + Actions associées à ce déclencheur. + + + + Gestionnaire d'événements pour l'enregistrement dans PreviewInvoke. + + + + + Obtient l'objet associé. + + Objet associé. + + + + Spécifie le nom de l'événement que cet EventTriggerBase écoute. + + + + + + Appelé lorsque l'événement associé à cet EventTriggerBase se déclenche. Par défaut, il invoque toutes les actions sur le déclencheur. + + Instance contenant les données d'événement. + Remplacez-la pour fournir un contrôle plus précis sur le moment auquel les actions associées à ce déclencheur sont invoquées. + + + + Appelé lorsque la source change. + + Ancienne source. + Nouvelle source. + Cette fonction doit être remplacée dans des classes dérivées pour connecter la fonctionnalité et la déconnecter des objets source modifiés. + + + + Appelé une fois que le déclencheur est attaché à un AssociatedObject. + + + + + Appelé lorsque le déclencheur est détaché de son AssociatedObject, mais avant qu'il ne se soit produit réellement. + + + + Impossible de trouver eventName sur la cible. + + + + Obtient la contrainte de type de l'objet associé. + + Contrainte de type d'objet associé. + Définissez un TypeConstraintAttribute sur un type dérivé pour contraindre les types auxquels il peut être attaché. + + + + Obtient la contrainte de type de source. + + Contrainte de type de source. + + + + Obtient ou définit l'objet cible. Si TargetObject n'est pas défini, la cible va rechercher l'objet spécifié par TargetName. Si un élément auquel il a été fait référence par TargetName ne peut pas être trouvé, la cible par défaut sera le AssociatedObject. Il s'agit d'une propriété de dépendance. + + Objet cible. + + + + Obtient ou définit le nom de l'élément que cet EventTriggerBase écoute en tant que source. Si le nom n'est pas défini ou ne peut pas être résolu, l'AssociatedObject est utilisé. Il s'agit d'une propriété de dépendance. + + Nom de l'élément source. + + + + Obtient la source résolue. Si n'est pas défini ou ne peut pas être résolu, AssociatedObject est utilisé par défaut. + + Objet source résolue. + En général, cette propriété doit être utilisée à la place de l'AssociatedObject dans des classes dérivées. + L'élément vers lequel pointe ne satisfait pas la contrainte de type. + + + + Initialise une nouvelle instance de la classe . + + + + + Appelé lorsque la propriété de la source change. + + Remplacez-le pour connecter la fonctionnalité et la déconnecter de la source spécifiée, plutôt que de l'AssociatedObject. + Ancienne source. + Nouvelle source. + + + + Obtient la source résolue. Si n'est pas défini ou ne peut pas être résolu, AssociatedObject est utilisé par défaut. + + Objet source résolue. + En général, cette propriété doit être utilisée à la place de l'AssociatedObject dans des classes dérivées. + + + + Initialise une nouvelle instance de la classe . + + + + + Initialise une nouvelle instance de la classe . + + Nom de l'événement. + + + + Obtient ou définit le nom de l'événement à écouter. Il s'agit d'une propriété de dépendance. + + Nom de l'événement. + + + + Classe statique qui possède les propriétés jointes des déclencheurs et comportements. Gère la propagation des notifications de modification de l'AssociatedObject. + + + + + Cette propriété est utilisée en tant que magasin de stockage interne pour la propriété jointe des déclencheurs publics. + + + Cette propriété n'est pas exposée publiquement. Cela force les clients à utiliser les méthodes GetTriggers et SetTriggers pour accéder à la collection, afin de veiller à ce qu'elle existe et qu'elle soit définie avant d'être utilisée. + + + + + Cette propriété est utilisée en tant que magasin de stockage interne pour la propriété jointe des comportements publics. + + + Cette propriété n'est pas exposée publiquement. Cela force les clients à utiliser les méthodes GetBehaviors et SetBehaviors pour accéder à la collection, afin de veiller à ce qu'elle existe et qu'elle soit définie avant d'être utilisée. + + + + + Obtient la TriggerCollection contenant les déclencheurs associés à l'objet spécifié. + + Objet à partir duquel récupérer les déclencheurs. + TriggerCollection contenant les déclencheurs associés à l'objet spécifié. + + + + Obtient la associée à l'objet spécifié. + + Objet à partir duquel récupérer la . + contenant les comportements associés à l'objet spécifié. + + + Impossible d'héberger la même BehaviorCollection sur plusieurs objets en même temps. + + + Impossible d'héberger la même TriggerCollection sur plusieurs objets en même temps. + + + + Fonction d'assistance qui se sustitue à FrameworkElement.IsLoaded, étant donné que cette propriété n'est pas disponible dans Silverlight. + + Élément d'intérêt. + True si l'élément a été chargé ; sinon, False. + + + + Obtient ou définit une valeur qui indique s'il convient de procéder à l'exécution comme en mode design. + + + True si [l'exécution doit être en mode design] ; sinon, False. + + À ne pas utiliser en dehors des tests unitaires. + + + + Exécute une ICommand spécifiée en cas d'appel. + + + + + Représente un objet attachable qui encapsule une unité de fonctionnalité. + + Type auquel cette action peut être attachée. + + + + Représente un objet attachable qui encapsule une unité de fonctionnalité. + + Il s'agit d'une classe d'infrastructure. Les auteurs d'actions doivent dériver de TriggerAction<T> plutôt que de cette classe. + + + + Tentatives d'appel de l'action. + + Paramètre de l'action. Si l'action ne nécessite pas de paramètre, le paramètre peut être défini sur une référence null. + + + + Invoque l'action. + + Paramètre de l'action. Si l'action ne nécessite pas de paramètre, le paramètre peut être défini sur une référence null. + + + + Appelé une fois que l'action est attachée à un AssociatedObject. + + + + + Appelé lorsque l'action est détachée de son AssociatedObject, mais avant qu'il ne se soit produit réellement. + + + + + Dans le cadre d'une implémentation dans une classe dérivée, crée une nouvelle instance de la classe dérivée . + + Nouvelle instance. + + + + S'attache à l'objet spécifié. + + Objet auquel attacher. + Impossible d'héberger la même TriggerAction sur plusieurs objets en même temps. + dependencyObject ne satisfait pas la contrainte de type de TriggerAction. + + + + Détache cette instance de son objet associé. + + + + + Obtient ou définit une valeur qui indique si cette action s'exécute lorsqu'elle est invoquée. Il s'agit d'une propriété de dépendance. + + + True si cette action est exécutée lorsqu'elle est invoquée ; sinon, False. + + + + + Obtient l'objet auquel cette action est attachée. + + Objet associé. + + + + Obtient la contrainte de type d'objet associé. + + Contrainte de type d'objet associé. + + + + Obtient ou définit une valeur qui indique si cette instance est attachée. + + True si cette instance est attachée ; sinon, False. + + + + Obtient l'objet associé. + + Objet associé. + + + + Initialise une nouvelle instance de la classe . + + + + + Obtient l'objet auquel ce est attaché. + + Objet associé. + + + + Obtient la contrainte de type d'objet associé. + + Contrainte de type d'objet associé. + + + + Invoque l'action. + + Paramètre de l'action. Si l'action ne nécessite pas de paramètre, le paramètre peut être défini sur une référence null. + + + + Obtient ou définit le nom de la commande que cette action doit invoquer. + + Nom de la commande que cette action doit invoquer. + Cette propriété va être remplacée par la propriété Command si elles sont toutes les deux définies. + + + + Obtient ou définit la commande que cette action doit appeler. Il s'agit d'une propriété de dépendance. + + Commande à exécuter. + Cette propriété va remplacer la propriété CommandName si elles sont toutes les deux définies. + + + + Obtient ou définit le paramètre de la commande. Il s'agit d'une propriété de dépendance. + + Paramètre de la commande. + Il s'agit de la valeur passée à ICommand.CanExecute et ICommand.Execute. + + + + Fournit des données sur les objets qui ont été affectés lors de la résolution d'un changement de nom. + + + + + Classe d'application auxiliaire permettant de gérer la logique de résolution d'un TargetName en élément Target en fonction du contexte fourni par un élément hôte. + + + + + Tentatives de mise à jour de l'objet résolu à partir du nom dans le contexte de l'élément de référence NameScope. + + Ancien objet résolu. + + Réinitialise la cible existante et tente de résoudre le TargetName actuel à partir du contexte de l'hôte actuel. S'il ne parvient pas à effectuer la résolution à partir du contexte de l'hôte, il continue à remonter l'arborescence d'éléments visuels jusqu'à ce qu'il y parvienne. Si la résolution n'est pas effectuée lorsqu'il atteint la racine, il définit la cible sur null et écrit un message d'avertissement dans la sortie de débogage. + + + + + Se produit lorsque l'élément résolu a changé. + + + + + Obtient ou définit le nom de l'élément à essayer de résoudre. + + Nom à essayer de résoudre. + + + + Objet résolu. Renvoie l'élément de référence si TargetName est nul ou vide, ou si aucune résolution n'a été tentée. + + + + + Obtient ou définit l'élément de référence à partir duquel effectuer la résolution de nom. + + Élément de référence. + + + + Obtient ou définit une valeur qui indique si le chargement de l'élément de référence est en attente. + + + True si [chargement de l'élément de référence en attente] ; sinon, False. + + + Si l'hôte n'a pas été chargé, le nom n'est pas résolu. Le cas échéant, reportez la résolution et suivez ce fait à l'aide de cette propriété. + + + + + Représente une action pouvant être ciblée pour affecter un objet autre que son AssociatedObject. + + Contrainte de type sur la cible. + + TargetedTriggerAction étend TriggerAction pour ajouter les connaissances d'un autre élément que celui auquel il est attaché. Cela permet à l'utilisateur d'invoquer l'action sur un élément autre que celui auquel elle est attachée en réponse à un déclenchement de déclencheur. Remplacez OnTargetChanged pour connecter ou déconnecter des gestionnaires sur l'élément cible, et OnAttached/OnDetaching pour l'élément associé. Le paramètre de type générique peut contraindre le type de l'élément cible. Si vous avez besoin de contrôler le type de l'AssociatedObject, définissez un TypeConstraintAttribute sur votre type dérivé. + + + + + Représente une action pouvant être ciblée pour affecter un objet autre que son AssociatedObject. + + Il s'agit d'une classe d'infrastructure. Les auteurs d'actions doivent dériver de TargetedTriggerAction<T> plutôt que de cette classe. + + + + Appelé lorsque la cible change. + + Ancienne cible. + Nouvelle cible. + Cette fonction doit être remplacée dans des classes dérivées pour connecter la fonctionnalité et la déconnecter des objets source modifiés. + + + + Appelé une fois que l'action est attachée à un AssociatedObject. + + + + + Appelé lorsque l'action est détachée de son AssociatedObject, mais avant qu'il ne se soit produit réellement. + + + + + Obtient ou définit l'objet cible. Si TargetObject n'est pas défini, la cible va rechercher l'objet spécifié par TargetName. Si un élément auquel il a été fait référence par TargetName ne peut pas être trouvé, la cible par défaut sera le AssociatedObject. Il s'agit d'une propriété de dépendance. + + Objet cible. + + + + Obtient ou définit le nom de l'objet que cette action cible. Si la cible est définie, cette propriété est ignorée. Si la cible n'est pas définie et si TargetName n'est pas défini ou ne peut pas être résolu, la cible par défaut est AssociatedObject. Il s'agit d'une propriété de dépendance. + + Nom de l'objet cible. + + + + Obtient l'objet cible. Si TargetObject est défini, renvoie TargetObject. Sinon, si TargetName n'est pas défini ou ne peut pas être résolu, AssociatedObject est utilisé par défaut. + + Objet cible. + En général, cette propriété doit être utilisée à la place de l'AssociatedObject dans des classes dérivées. + L'élément cible ne satisfait pas la contrainte de type. + + + + Obtient la contrainte de type d'objet associé. + + Contrainte de type d'objet associé. + Définissez un TypeConstraintAttribute sur un type dérivé pour contraindre les types auxquels il peut être attaché. + + + + Obtient la contrainte de type de cible. + + Contrainte de type de cible. + + + + Initialise une nouvelle instance de la classe . + + + + + Appelé lorsque la propriété de la cible change. + + Remplacez-le pour connecter la fonctionnalité et la déconnecter de la cible spécifiée, plutôt que l'AssociatedObject. + Ancienne cible. + Nouvelle cible. + + + + Obtient l'objet cible. Si TargetName n'est pas défini ou ne peut pas être résolu, AssociatedObject est utilisé par défaut. + + Cible. + En général, cette propriété doit être utilisée à la place de l'AssociatedObject dans des classes dérivées. + + + + Représente une collection d'actions avec un AssociatedObject partagé et fournit des notifications de modification à son contenu lorsque cet AssociatedObject change. + + + + + Initialise une nouvelle instance de la classe . + + Interne, car elle ne doit pas être héritée en dehors de cet assembly. + + + + Appelé immédiatement une fois que la collection est attachée à un AssociatedObject. + + + + + Appelé lorsque la collection est détachée de son AssociatedObject, mais avant qu'il ne se soit produit réellement. + + + + + Appelé lorsqu'un nouvel élément est ajouté à la collection. + + Nouvel élément. + + + + Appelé lorsqu'un élément est supprimé de la collection. + + Élément supprimé. + + + + Crée une nouvelle instance de la TriggerActionCollection. + + Nouvelle instance. + + + + Représente un objet capable d'invoquer des actions de manière conditionnelle. + + Type auquel ce déclencheur peut être attaché. + + TriggerBase est la classe de base pour contrôler les actions. Remplacez OnAttached() et OnDetaching() pour connecter et déconnecter les gestionnaires sur l'AssociatedObject. Vous pouvez contraindre les types auxquels un TriggerBase dérivé peut être attaché en spécifiant le paramètre générique. Invoque InvokeActions() pour déclencher toutes les actions associées à ce TriggerBase. + + + + + Initialise une nouvelle instance de la classe . + + + + + Obtient l'objet auquel le déclencheur est attaché. + + Objet associé. + + + + Obtient la contrainte de type de l'objet associé. + + Contrainte de type d'objet associé. + + + + Argument passé à l'événement PreviewInvoke. L'affectation de la valeur True à Cancelling annulera l'appel du déclencheur. + + Il s'agit d'une classe d'infrastructure. Un comportement attaché à un objet de base de déclencheur peut ajouter son comportement en tant qu'écouteur à TriggerBase.PreviewInvoke. + + + + Représente une collection de déclencheurs avec un AssociatedObject partagé et fournit des notifications de modification à son contenu lorsque cet AssociatedObject change. + + + + + Initialise une nouvelle instance de la classe . + + Interne, car elle ne doit pas être héritée en dehors de cet assembly. + + + + Appelé immédiatement une fois que la collection est attachée à un AssociatedObject. + + + + + Appelé lorsque la collection est détachée de son AssociatedObject, mais avant qu'il ne se soit produit réellement. + + + + + Appelé lorsqu'un nouvel élément est ajouté à la collection. + + Nouvel élément. + + + + Appelé lorsqu'un élément est supprimé de la collection. + + Élément supprimé. + + + + Crée une nouvelle instance de la . + + Nouvelle instance. + + + + Spécifie des contraintes de type sur l'AssociatedObject de TargetedTriggerAction et EventTriggerBase. + + + + + Initialise une nouvelle instance de la classe . + + Type de contrainte. + + + + Obtient le type de contrainte. + + Type de contrainte. + + + + Classe de ressource fortement typée pour rechercher des chaînes localisées, etc. + + + + + Renvoie l'instance ResourceManager mise en cache utilisée par cette classe. + + + + + Remplace la propriété CurrentUICulture du thread actuel pour toutes les recherches de ressources à l'aide de cette classe de ressource fortement typée. + + + + + Recherche une chaîne localisée semblable à Impossible de définir la même BehaviorCollection sur plusieurs objets. + + + + + Recherche une chaîne localisée semblable à Une instance d'un comportement ne peut pas être attachée à plus d'un objet à la fois. + + + + + Recherche une chaîne localisée semblable à Impossible d'héberger simultanément une instance d'une TriggerAction dans plusieurs TriggerCollections. Supprimez-la d'une TriggerCollection avant de l'ajouter à une autre. + + + + + Recherche une chaîne localisée semblable à Impossible de définir la même TriggerCollection sur plusieurs objets. + + + + + Recherche une chaîne localisée semblable à Une instance d'un déclencheur ne peut pas être attachée à plus d'un objet à la fois. + + + + + Recherche une chaîne localisée semblable à La commande « {0} » n'existe pas ou n'est pas exposée publiquement sur {1}. + + + + + Recherche une chaîne localisée semblable à « {0} » n'est pas un type valide pour le paramètre TriggerType. Vérifiez que « {0} » provient de TriggerBase. + + + + + Recherche une chaîne localisée semblable à Impossible d'ajouter la même instance de « {0} » à « {1} » plus d'une fois. + + + + + Recherche une chaîne localisée semblable à L'événement « {0} » sur le type « {1} » comporte une signature incompatible. Vérifiez que l'événement est public et satisfait le délégué EventHandler. + + + + + Recherche une chaîne localisée semblable à Impossible de trouver un événement nommé « {0} » sur le type « {1} ». + + + + + Recherche une chaîne localisée semblable à Un type d'objet « {0} » ne peut pas avoir une propriété {3} de type « {1} ». Des instances du type « {0} » ne peuvent avoir qu'une propriété {3} du type « {2} ». + + + + + Recherche une chaîne localisée semblable à Impossible d'attacher le type « {0} » au type « {1} ». Des instances du type « {0} » ne peuvent être attachées qu'à des objets de type « {2} ». + + + + + Recherche une chaîne localisée semblable à Impossible de résoudre TargetName « {0} ». + + + + diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/it/Microsoft.Expression.Controls.xml b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/it/Microsoft.Expression.Controls.xml new file mode 100644 index 0000000..c9c8c20 --- /dev/null +++ b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/it/Microsoft.Expression.Controls.xml @@ -0,0 +1,538 @@ + + + + Microsoft.Expression.Controls + + + + + Viene chiamato prima che le polilinee vengano riprodotte a ciclo continuo. + + + + + Calcola il valore usato quando LayoutPath.Capacity è impostato su Auto. + + + + + Verifica se continuare a riprodurre le polilinee a ciclo continuo o meno. + + + + + Viene chiamato prima che venga seguita una nuova polilinea. + + + + + Viene chiamato in seguito al completamento di una polilinea. + + La lunghezza d'arco rimanente nella polilinea. + + + + Viene chiamato in seguito al completamento corretto di un passaggio. + + La distanza effettiva di un passaggio. Può essere diversa da Step se è stato eseguito il wrapping a un'altra polilinea. + + + + Distribuisce gli elementi figlio di un pannello Path lungo il tracciato di un layout specificato. + + Il pannello Path. + L'indice del tracciato in pathPanel.LayoutPaths. + L'indice del primo elemento figlio da disporre su questo tracciato. + L'indice dell'elemento figlio successivo da distribuire. Se viene restituito childIndex, questa funzione non ha eseguito alcuna operazione. + + + + L'indice dell'elemento figlio successivo da disporre. + + + + + La distanza in lunghezza d'arco che si desidera utilizzare per il layout. + + + + + La distanza in lunghezza d'arco lungo la polilinea corrente. + + + + + Il numero totale di elementi da disporre sul tracciato LayoutPath. + + + + + Distribuisce gli elementi figlio di un pannello Path lungo un tracciato di layout. Con la distribuzione uniforme fra i centri di tutti gli elementi sul tracciato è presente la medesima lunghezza d'arco. + + + + + Specifica quali proprietà del layout del tracciato sono state modificate. + + + + + Fornisce i dati per l'evento . + + + + + Inizializza una nuova istanza della classe . + + I dati per l'evento. + + + + Recupera le proprietà modificate in un evento . + + + + + Incapsula i dati necessari per aggiornare un elemento . + + + + + Recupera o imposta l'indice del tracciato lungo il quale è disposto un elemento. + + + + + Recupera o imposta l'indice di un elemento in un insieme di elementi. + + + + + Recupera o imposta l'indice di un elemento su un tracciato. + + + + + Recupera o imposta lo scostamento di un elemento proporzionale alla lunghezza totale di un insieme di tracciati. + + + + + Recupera o imposta lo scostamento di un elemento proporzionale alla lunghezza del tracciato. + + + + + Recupera o imposta l'angolo perpendicolare al tracciato in corrispondenza della posizione di un elemento. + + + + + Recupera o imposta l'angolo perpendicolare al tracciato in corrispondenza della posizione di un elemento se l'elemento è orientato in base al tracciato. + + + + + Recupera o imposta se un elemento viene disposto su un tracciato o meno. + + + + + Rappresenta un elemento che viene disposto da . + + + L'implementazione di questa interfaccia consente a di impostare queste proprietà quando l'elemento viene disposto. Questa interfaccia non è progettata per l'implementazione generale. + + + + + Aggiorna le proprietà di in base all'elemento specificato e genera l'evento . + + I dati necessari per aggiornare l'elemento . + + + + Si verifica quando una o più delle proprietà dell'elemento cambiano. + + + Questo evento viene generato ogni volta che viene aggiornata la posizione degli elementi lungo il tracciato. Può verificarsi a causa di modifiche nelle proprietà dell'elemento o di modifiche apportate all'elemento . + + + + + Recupera l'indice del tracciato su cui l'elemento è disposto. + + + + + Recupera l'indice dell'elemento in un insieme di elementi. + + + + + Recupera l'indice dell'elemento sul tracciato su cui è disposto. + + + + + Recupera lo scostamento dell'elemento proporzionale alla lunghezza totale di un insieme di tracciati. + + + + + Recupera lo scostamento dell'elemento proporzionale alla lunghezza del tracciato su cui è disposto. + + + + + Recupera l'angolo perpendicolare al tracciato in corrispondenza della posizione dell'elemento. + + + + + Recupera l'angolo perpendicolare al tracciato in corrispondenza della posizione degli elementi se l'elemento è orientato in base al tracciato. + + + + + Recupera o imposta se l'elemento viene disposto sul tracciato o meno. + + + + + Converte un valore che rappresenta se un elemento viene disposto o meno su un valore usato per ridimensionare in scala l'elemento. + + + + + Genera un'eccezione in tutti i casi. + + I dati di destinazione che vengono passati all'origine. + Il di dati previsti dall'oggetto di origine. + Un parametro facoltativo da utilizzare nella logica del convertitore. + La lingua della conversione. + Il valore da passare all'oggetto di origine. + + + + Converti il valore specificato in un valore . + + I dati di origine che vengono passati alla destinazione. + Il di dati previsti dalla proprietà di dipendenza della destinazione. + Un parametro facoltativo da utilizzare nella logica del convertitore. + La lingua della conversione. + Se il valore è true, viene restituito 1. In caso contrario viene restituito 0. + + + + Specifica la distribuzione di un tracciato . + + + + + Specifica l'orientamento degli elementi su un tracciato . + + + + + Specifica il metodo per la modifica dell'elemento in un tracciato aperto. + + + + + Descrive un tracciato lungo il quale gli elementi vengono disposti. + + + + + La soluzione ideale consiste nel memorizzare nella cache le curve di Bézier prima di appiattirle, poiché la trasformazione avrà effetto su questa operazione, che rende necessaria la memorizzazione nella cache delle curve che non sono ancora supportate al meglio. Vengono invece memorizzati nella cache i punti dell'appiattimento con una strategia di distribuzione, per poi eseguire la trasformazione su richiesta. + + + + + Recupera o imposta l'elemento che definisce il tracciato. + + + + + Recupera o imposta il posizionamento degli elementi in modo uniforme o con una spaziatura fissa. + + + + + Recupera o imposta il numero massimo di elementi visualizzati sul tracciato . + + + + + Recupera o imposta la distanza in pixel tra due elementi lungo l'arco del tracciato tra due elementi. + + + + + Recupera o imposta l'orientamento degli elementi. + + + Questa proprietà è supportata in , ma non in . + + + + + Recupera o imposta la distanza dall'inizio dell'elemento per posizionare il primo elemento. + + + + + Recupera o imposta la percentuale dell'elemento che partecipa al layout. + + + + + Recupera o imposta il metodo per modificare la proprietà in un tracciato aperto. + + + + + Recupera la capacità calcolata. + + + + + Recupera se la proprietà è valida o meno nel contesto. Una proprietà non è valida se è un discendente dell'elemento in cui è utilizzata. + + + + + Distribuisce gli elementi figlio di un tracciato di layout in base alle dimensioni degli elementi figlio stessi e a un determinato riempimento tra di essi. La distanza in lunghezza d'arco tra gli elementi figlio è determinata dalla spaziatura più la somma dei raggi dei rettangoli di selezione degli elementi figlio. + + + + + Contiene un elenco di elementi posizionati lungo uno o più tracciati. + + + + + Inizializza una nuova istanza della classe . + + + + + Crea l'elemento utilizzato per visualizzare un elemento specificato. + + Un elemento corrispondente a un elemento specificato. + + + + Determina se l'elemento specificato è (o è idoneo a essere) il proprio contenitore. + + True se l'elemento è il proprio contenitore; in caso contrario, false. + L'elemento specificato. + + + + Posiziona gli elementi figlio. + + La dimensione che questo oggetto deve utilizzare per disporre i propri elementi figlio. + La dimensione effettiva utilizzata. + + + + Recupera o imposta un insieme di oggetti che definisce i tracciati utilizzati per il layout. + + + + + Recupera o imposta l'indice da utilizzare all'interno dell'elenco di elementi. + + + + + Recupera o imposta se l'indice degli elementi va a capo all'inizio dell'insieme quando StartItemIndex è maggiore di 0. + + + + + Rappresenta un elemento in un . + + + + + Inizializza una nuova istanza della classe . + + + + + Per una descrizione di questo membro, vedere . + + + + + Per una descrizione di questo membro, vedere . + + + + + Per una descrizione di questo membro, vedere . + + + + + Per una descrizione di questo membro, vedere . + + + + + Per una descrizione di questo membro, vedere . + + + + + Per una descrizione di questo membro, vedere . + + + + + Per una descrizione di questo membro, vedere . + + + + + Per una descrizione di questo membro, vedere . + + + + + Per una descrizione di questo membro, vedere . + + + + + Per una descrizione di questo membro, vedere . + + + + + Dispone gli elementi figlio lungo uno o più tracciati. + + + può essere utilizzato come alternativa a quando la selezione non è necessaria. La proprietà non è supportata in . + + + + + Inizializza una nuova istanza della classe . + + + + + Misura la dimensione richiesta per gli elementi figlio. + + La dimensione disponibile che questo elemento può assegnare agli elementi figlio. + La dimensione che questo elemento determina come necessaria durante il layout in base ai propri calcoli delle dimensioni degli elementi figlio. + + + + Posiziona gli elementi figlio. + + La dimensione che questo oggetto deve utilizzare per disporre i propri elementi figlio. + La dimensione effettiva utilizzata. + + + + Dispone l'elemento figlio in corrispondenza dell'indice specificato in una posizione particolare su un elemento LayoutPath. + + Un indice dell'intervallo da 0 a PathPanel.Count. + L'indice del tracciato del layout in cui si desidera disporre l'elemento figlio. + La polilinea nel tracciato del layout. + La posizione sulla polilinea. + L'indice dell'elemento figlio sull'elemento LayoutPath. + + + + Calcola il raggio del cerchio di selezione per l'elemento figlio in corrispondenza dell'indice specificato. + + Un indice dell'intervallo da 0 a PathPanel.Count. + + + + Recupera o imposta un insieme di oggetti che definisce i tracciati utilizzati per il layout. + + + + + Recupera o imposta l'indice da utilizzare all'interno dell'elenco di elementi. + + + + + Recupera o imposta se l'indice degli elementi torna all'inizio dell'insieme quando è maggiore di 0. + + + + + Il sottoinsieme degli elementi LayoutPaths collegati e non compressi. + + + + + Count indica il numero di elementi figlio che PathPanel utilizzerà nel layout. Se StartItemIndex è maggiore di 0 e WrapItems è false, può essere inferiore a PathPanel.Children.Count. + + + + + Recupera il pannello che contiene i contenitori di un elemento ItemsControl. + + L'elemento ItemsControl. + + Il pannello che contiene i contenitori di un elemento ItemsControl, oppure null se il pannello non è stato trovato. + + + è null. + + + + + Attraversa una struttura accettando un valore iniziale e una funzione che recupera i nodi figlio di un nodo. + + Il tipo di flusso. + Il nodo iniziale. + Una funzione che recupera i nodi figlio di un nodo. + Un predicato che valuta un nodo e restituisce un valore che indica se tale nodo e i propri elementi figlio devono essere attraversati. + Un flusso di nodi. + + + + Recupera gli elementi figlio della struttura ad albero visuale di un elemento. + + L'elemento. + Gli elementi figlio della struttura ad albero visuale di un elemento. + + è null. + + + + + Recupera gli elementi figlio della struttura ad albero visuale di un elemento e l'elemento stesso. + + L'elemento. + + Gli elementi figlio della struttura ad albero visuale di un elemento e l'elemento stesso. + + + + + Recupera tutti gli elementi figlio logici di un elemento framework utilizzando una ricerca in ampiezza. Per motivi di prestazione questo metodo gestisce manualmente lo stack anziché utilizzare la ricorsione. + + L'elemento framework padre. + Gli elementi figlio logici dell'elemento framework. + + + + Recupera tutti i discendenti logici di un elemento framework utilizzando una ricerca in ampiezza. Per motivi di prestazione questo metodo gestisce manualmente lo stack anziché utilizzare la ricorsione. + + L'elemento framework padre. + Gli elementi figlio logici dell'elemento framework. + + + diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/it/Microsoft.Expression.Drawing.xml b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/it/Microsoft.Expression.Drawing.xml new file mode 100644 index 0000000..fc0c02a --- /dev/null +++ b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/it/Microsoft.Expression.Drawing.xml @@ -0,0 +1,1631 @@ + + + + Microsoft.Expression.Drawing + + + + + Esegue il rendering di una forma callout che supporta diverse forme combinate con una freccia di callout. + + + + + Fornisce una classe di base per una forma composita che deriva da e implementa . + + + implementa l'interfaccia e supporta il rendering di una geometria simile all'elemento , ma il rendering della geometria può essere eseguito all'esterno dei limiti del layout. + + Un'implementazione tipica include un modello predefinito personalizzato in generic.xaml che associa mediante modelli la maggior parte delle proprietà delle forme a un elemento . Dovrà inoltre estendere la proprietà per personalizzare l'aspetto dell'elemento . + + Questa classe supporta inoltre la visualizzazione del contenuto con la forma. + + + + + Fornisce un'interfaccia per descrivere i parametri di una forma. + + + Questa interfaccia include i dati per la comunicazione tra Shape e GeometrySource. Tipicamente un'implementazione concreta di IShape implementerà questa interfaccia e la passerà a GeometrySource.UpdateGeometry(), che utilizzerà la forma come provider di dati di sola lettura. + + + + + Fornisce l'interfaccia necessaria per definire una forma. Le forme primitive e composite devono essere conformi a questa interfaccia, sebbene possano derivare da tipi diversi di elementi FrameworkElement. + + + + + Invalida la geometria per un elemento . In seguito all'invalidazione, verrà ricalcolata la geometria di tramite un'operazione eseguita in modo asincrono. + + + + Recupera o imposta l'elemento che specifica come disegnare l'interno della forma. + Un elemento che descrive come disegnare l'interno della forma. L'impostazione predefinita è null. + + + Recupera o imposta l'elemento che specifica come disegnare il contorno dell'elemento . + Un elemento che specifica come disegnare il contorno dell'elemento . + + + Recupera o imposta lo spessore del contorno del tratto dell'elemento . + Lo spessore del contorno dell'elemento in pixel. + + + Recupera o imposta un valore dell'enumerazione che descrive il modo in cui la forma riempie il relativo spazio allocato. + Uno dei valori dell'enumerazione . Il valore predefinito durante l'esecuzione dipende dal tipo di elemento . + + + + Recupera la geometria sottoposta a rendering presentata dal motore di rendering. + + + + + Recupera il margine fra i limiti logici e i limiti effettivi della geometria. Può essere sia positivo (come nel caso di ) che negativo (come nel caso di ). + + + + + Si verifica in seguito alla modifica di RenderedGeometry. + + + + + Estende la modalità in cui la forma viene disegnata durante la creazione dell'origine della geometria. + + + + + Invalida la geometria per un elemento . In seguito all'invalidazione, verrà ricalcolata la geometria di tramite un'operazione eseguita in modo asincrono. + + + + Specifica il comportamento per la parte di disposizione del passaggio di layout di Silverlight. Le classi possono eseguire l'override di questo metodo per definire un comportamento per il passaggio di disposizione personalizzato. + La dimensione effettiva utilizzata dopo la disposizione dell'elemento. + L'area finale all'interno dell'elemento padre che deve essere utilizzata dall'oggetto per la propria disposizione e per quella dei relativi elementi figlio. + ricalcolerà la geometria quando viene invalidata e aggiornerà RenderedGeometry e GeometryMargin. + + + + Esegue la trasformazione del contenuto di una stringa in con allineamento al centro e supporto per più righe. + + + Per attivare questo metodo utilizzare l'associazione mediante modello a anziché . + + + + + Recupera o imposta l'elemento che specifica come disegnare l'interno della forma. + + Un elemento che descrive come disegnare l'interno della forma. + + + Recupera o imposta l'elemento che specifica come disegnare il contorno dell'elemento . + Un elemento che specifica come disegnare il contorno dell'elemento . + + + Recupera o imposta lo spessore del contorno del tratto dell'elemento . + Lo spessore del contorno dell'elemento in pixel. + + + Recupera o imposta un valore dell'enumerazione che descrive il modo in cui la forma riempie il relativo spazio allocato. + Uno dei valori dell'enumerazione . + + + Recupera o imposta un valore dell'enumerazione che descrive l'elemento all'inizio di una proprietà . + Un valore dell'enumerazione che specifica la forma all'inizio di una proprietà . + + + Recupera o imposta un valore dell'enumerazione che descrive l'elemento all'estremità di una linea. + Uno dei valori dell'enumerazione per . + + + Recupera o imposta un valore dell'enumerazione che specifica il tipo di giunzione utilizzato ai vertici di un elemento . + Un valore dell'enumerazione che specifica l'aspetto della giunzione. + + + Recupera o imposta un limite per il rapporto tra la lunghezza dello smusso e la metà del valore della proprietà di un elemento. + Il limite per il rapporto tra la lunghezza dello smusso e la proprietà di un elemento . Questo valore è sempre un numero positivo maggiore o uguale a 1. + + + Recupera o imposta un insieme di valori che indica la sequenza di trattini e spazi vuoti utilizzata per disegnare il contorno delle forme. + Un insieme di valori che specifica la sequenza di trattini e spazi vuoti. + + + Recupera o imposta un valore dell'enumerazione che specifica la modalità di disegno delle estremità di un trattino. + Uno dei valori dell'enumerazione per . L'impostazione predefinita è . + + + Recupera o imposta un valore che specifica la distanza di inizio di un trattino nella sequenza di tratteggio. + Un valore che rappresenta la distanza di inizio di un trattino nella sequenza di tratteggio. Il valore predefinito è 0. + + + + Recupera la geometria sottoposta a rendering presentata dal motore di rendering. + + + + + Recupera il margine fra i limiti logici e i limiti effettivi della geometria. Può essere sia positivo (come nel caso di ) che negativo (come nel caso di ). + + + + + Recupera o imposta il contenuto interno per la conversione da stringa in oggetto TextBlock allineato al centro e con più righe. + + + + + Si verifica in seguito alla modifica di RenderedGeometry. + + + + + Recupera o imposta la posizione del callout rispetto all'angolo in alto a sinistra. + + + + + Recupera o imposta lo stile del callout. + + + + + Fornisce una classe di base per una forma composita che deriva da e implementa . + + + implementa l'interfaccia e supporta il rendering di una geometria simile all'elemento , ma il rendering della geometria può essere eseguito all'esterno dei limiti del layout. + + Un'implementazione tipica include un modello predefinito personalizzato in generic.xaml che associa mediante modelli la maggior parte delle proprietà delle forme a un elemento . Dovrà inoltre estendere la proprietà per personalizzare l'aspetto dell'elemento . + + + + + Estende la modalità in cui la forma viene disegnata durante la creazione dell'origine della geometria. + + + + + Invalida la geometria per un elemento . In seguito all'invalidazione, verrà ricalcolata la geometria di tramite un'operazione eseguita in modo asincrono. + + + + Specifica il comportamento per la parte di disposizione del passaggio di layout di Silverlight. Le classi possono eseguire l'override di questo metodo per definire un comportamento per il passaggio di disposizione personalizzato. + La dimensione effettiva utilizzata dopo la disposizione dell'elemento. + L'area finale all'interno dell'elemento padre che deve essere utilizzata dall'oggetto per la propria disposizione e per quella dei relativi elementi figlio. + ricalcolerà la geometria quando viene invalidata e aggiornerà RenderedGeometry e GeometryMargin. + + + + Recupera o imposta l'elemento che specifica come disegnare l'interno della forma. + + Un elemento che descrive come disegnare l'interno della forma. + + + Recupera o imposta l'elemento che specifica come disegnare il contorno dell'elemento . + Un elemento che specifica come disegnare il contorno dell'elemento . + + + Recupera o imposta lo spessore del contorno del tratto dell'elemento . + Lo spessore del contorno dell'elemento in pixel. + + + Recupera o imposta un valore dell'enumerazione che descrive il modo in cui la forma riempie il relativo spazio allocato. + Uno dei valori dell'enumerazione . + + + Recupera o imposta un valore dell'enumerazione che descrive l'elemento all'inizio di una proprietà . + Un valore dell'enumerazione che specifica la forma all'inizio di una proprietà . + + + Recupera o imposta un valore dell'enumerazione che descrive l'elemento all'estremità di una linea. + Uno dei valori dell'enumerazione per . + + + Recupera o imposta un valore dell'enumerazione che specifica il tipo di giunzione utilizzato ai vertici di un elemento . + Un valore dell'enumerazione che specifica l'aspetto della giunzione. + + + Recupera o imposta un limite per il rapporto tra la lunghezza dello smusso e la metà del valore della proprietà di un elemento. + Il limite per il rapporto tra la lunghezza dello smusso e la proprietà di un elemento . Questo valore è sempre un numero positivo maggiore o uguale a 1. + + + Recupera o imposta un insieme di valori che indica la sequenza di trattini e spazi vuoti utilizzata per disegnare il contorno delle forme. + Un insieme di valori che specifica la sequenza di trattini e spazi vuoti. + + + Recupera o imposta un valore dell'enumerazione che specifica la modalità di disegno delle estremità di un trattino. + Uno dei valori dell'enumerazione per . L'impostazione predefinita è . + + + Recupera o imposta un valore che specifica la distanza di inizio di un trattino nella sequenza di tratteggio. + Un valore che rappresenta la distanza di inizio di un trattino nella sequenza di tratteggio. Il valore predefinito è 0. + + + + Recupera la geometria sottoposta a rendering presentata dal motore di rendering. + + + + + Recupera il margine fra i limiti logici e i limiti effettivi della geometria. Può essere sia positivo (come nel caso di ) che negativo (come nel caso di ). + + + + + Si verifica in seguito alla modifica di RenderedGeometry. + + + + + Esegue il rendering di un segmento di linea curvo, eventualmente con una punta a ciascuna estremità. + + + + Fornisce il comportamento per il passaggio di misurazione del layout di Silverlight. Le classi possono sostituire questo metodo e definire il loro comportamento per il passaggio di misurazione. + La dimensione determinata da questo oggetto come necessaria durante il layout, in base ai calcoli delle dimensioni assegnate agli oggetti figlio, o eventualmente in base ad altre considerazioni quali la dimensione fissa di un contenitore. + La dimensione disponibile che questo oggetto può assegnare agli oggetti figlio. È possibile specificare Infinity () come valore per indicare che l'oggetto verrà ridimensionato in base al contenuto disponibile. + + Un valore predefinito consente di eseguire il rendering con qualsiasi dimensione. La proprietà verrà adattata in base ai limiti del layout e, se necessario, il rendering verrà eseguito all'esterno. + + + + + Recupera o imposta il grado di curvatura per la freccia. + + Il grado di curvatura tra 0 e 1. + + + + Recupera o imposta la modalità di rendering della punta della freccia all'inizio della linea. + + + + + Recupera o imposta la modalità di rendering della punta della freccia alla fine della linea. + + + + + Recupera o imposta l'angolo dal quale iniziare a disegnare la freccia. + + + + + Recupera o imposta la lunghezza della freccia in pixel. + + + + + Fornisce un controllo elementi che consente di visualizzare un elemento selezionato e di scorrere la visualizzazione tra gli elementi mediante movimenti tocco. + + + + + Il costruttore per PanningItems. + + + + + Chiamato quando viene applicato il modello PanningItems. + + + + + Recupera o imposta l'orientamento degli elementi nel controllo. + + + + + Ottiene o imposta la tolleranza del gesto rapido. Può essere un valore compreso fra 0 e 1. Rappresenta la percentuale della dimensione di PanningItems su cui deve avvenire il gesto rapido per attivare una modifica degli elementi. + + + + + Recupera o imposta l'elemento prima di quello selezionato. + + + + + Recupera o imposta l'elemento dopo quello selezionato. + + + + + Recupera o imposta se il contenuto del controllo elementi eseguirà un ciclo, in modo che il primo elemento segua l'ultimo. + + + + + Recupera o imposta il valore del dispositivo di scorrimento che controlla il movimento panoramica. + + + + + Classe helper per utilizzare PathGeometry. + + + + + Converte una stringa nel minilinguaggio Path in un elemento PathGeometry. + + Una stringa nel minilinguaggio Path. + + + + Converte la geometria specificata in un singolo elemento PathGeometry. + + + + + Aggiorna la geometria specificata come elemento PathGeometry con una polilinea corrispondente a un elenco di punti specificato. + + + + + Analizza la sintassi abbreviata della geometria. + + + + + Classe helper per convertire ArcSegment in uno o più BezierSegment. + + + Classe helper per utilizzare PathSegment e tutte le sue varianti. + + + Classi di strategia per la gestione di tipi diversi di PathSegment. + + + + + Converte un elemento ArcSegment in formato Bézier. Restituisce BezierSegment, PolyBezierSegment, LineSegment oppure null. Quando restituisce null, l'arco degenera nel suo punto iniziale. + + + + + Consente di evitare di chiamare il costruttore a tre parametri, poiché imposta sempre un valore locale per IsStroked. + + + + + + + Aggiorna l'elemento SegmentCollection con una polilinea specificata corrispondente a un elenco di punti specificato. Tenta di ridurre al minimo le modifiche e restituisce false in assenza di modifiche. + + + + + Aggiorna il segmento insieme[indice] con il segmento PolyBezier corrispondente a un elenco di punti specificato. Per N segmenti di Bézier, l'elenco di punti specificato deve contenere 3*N punti. + + + + + Verifica se un segmento di tracciato specificato è vuoto. + + + + + Recupera il conteggio di punti in un segmento di tracciato specificato. + + + + + Recupera l'ultimo punto del segmento di tracciato specificato. + + + + + Recupera il punto di un indice specificato in un segmento specificato. Se l'input è (-1), restituisce l'ultimo punto. + + + + + Appiattisce un segmento specificato e aggiunge i punti risultanti in un elenco di punti specificato. + + Il segmento da appiattire. + L'elenco di punti risultanti. + Il punto iniziale del segmento. + La tolleranza di errore. Deve essere positiva. Può essere pari a zero. Fallback alla tolleranza predefinita. + + + + ArcToBezier, calcola l'approssimazione di Bézier di un arco. + + + Questa utilità calcola l'approssimazione di Bézier per un arco ellittico come definito nelle specifiche SVG per gli archi. L'ellisse da cui l'arco deriva è allineata all'asse in base alle proprie coordinate e definita dai relativi raggi x e y. L'angolo di rotazione definisce la modalità di rotazione degli assi dell'ellisse rispetto all'asse x. I punti iniziale e finale definisco uno dei 4 archi possibili; large-arc-flag e sweep-flag determinano quale di questi archi verrà scelto. + + Se viene restituito cPieces = 0 si ottiene una linea invece di un arco. Se viene restituito cPieces = -1 l'arco degenera in un singolo punto. + + + + + Recupera il numero di archi di Bézier e il seno/coseno di ciascuno. + + + Utilità privata utilizzata da ArcToBezier. L'arco viene suddiviso in parti che non superino i 90 gradi. I punti di input sono sulla circonferenza unitaria. + + + + + GetBezierDistance restituisce la distanza come frazione del raggio. + + + Recupera la distanza dagli estremi di un arco circolare ai punti di controllo dell'arco di Bézier di approssimazione, come frazione del raggio dell'arco. + + Poiché il risultato è relativo al raggio dell'arco, esso è strettamente correlato all'angolo dell'arco stesso. Si presume che l'arco sia al massimo di 90 gradi e l'angolo viene pertanto determinato dal coseno di tale angolo, derivato da rDot = prodotto scalare di due vettori del raggio. È necessario utilizzare la curva di Bézier che coincide con i punti e le tangenti dell'arco alle estremità e nel punto intermedio. Si calcola quindi la distanza tra i punti alle estremità della curva e relativi punti di controllo. + + Poiché è necessario ottenere la distanza relativa, è possibile utilizzare la circonferenza unitaria. Posizionare il centro del cerchio in corrispondenza dell'origine e inserire l'asse X come bisettrice tra i due vettori. Indicare con a l'angolo tra i vettori. Le coordinate X del primo e dell'ultimo punto sono quindi cos(a/2). Indicare con x la coordinata X del secondo e terzo punto. In corrispondenza di t=1/2 è presente un punto su (1,0). I termini del polinomio sono tutti uguali: + + (1-t)^3 = t*(1-t)^2 = t^2*(1-t) = t^3 = 1/8 + + Dalla formula di Bézier si ottiene quindi: + + 1 = (1/8) * (cos(a/2) + 3x + 3x + cos(a/2)) + + Di conseguenza + + x = (4 - cos(a/2)) / 3 + + La differenza X tra questo e il primo punto è: + + DX = x - cos(a/2) = 4(1 - cos(a/2)) / 3. + + Ma DX = distanza / sin(a/2), pertanto la distanza è + + dist = (4/3)*(1 - cos(a/2)) / sin(a/2). + + Anziché l'angolo a, viene specificato rDot = R^2 * cos(a); si moltiplica quindi per R: + + dist = (4/3)*(R - Rcos(a/2)) / Rsin(a/2) + + E si ricorre a un po' di trigonometria: ________________ cos(a/2) = \/(1 + cos(a)) / 2 ______________________ R*cos(a/2) = \/(R^2 + R^2 cos(a)) / 2 ________________ = \/(R^2 + rDot) / 2 + + A = (R^2 + rDot)/2. ____________________ R*sin(a/2) = \/R^2 - R^2 cos^2(a/2) _______ = \/R^2 - A + + Quindi: _ 4 R - \/A dist = - * ------------ 3 _______ \/R^2 - A + + Cronologia: 29/05/2001 creato da MichKa. + + + + + Restituisce false se il raggio è troppo piccolo rispetto alla lunghezza della corda (restituisce true per NaNs). Il raggio viene modificato in base al valore accettato. + + + + + Classe di utilità per appiattire curve di Bézier. + + + + + Consente di appiattire una curva di Bézier cubica e aggiungere la polilinea risultante al terzo parametro. + + I 4 punti di controllo della curva di Bézier cubica. + La distanza massima tra due punti corrispondenti sulla curva vera e propria e sulla polilinea appiattita. Deve necessariamente essere positiva. + Posizione in cui aggiungere la polilinea appiattita. + True per ignorare il primo punto di controllo durante l'aggiunta della polilinea appiattita. + Posizione in cui aggiungere il valore del parametro della curva di Bézier associato a ciascuno dei vertici della polilinea. + Se il parametro è vuoto, il primo punto di controllo e il relativo parametro associato vengono sempre aggiunti. + + + + Consente di appiattire una curva di Bézier quadratica e di aggiungere la polilinea risultante al terzo parametro. Per poter riutilizzare il codice relativo alla curva cubica, per le curve di Bézier utilizza l'elevazione di grado. + + I 3 punti di controllo quadratici di Bézier. + La distanza massima tra due punti corrispondenti sulla curva vera e propria e sulla polilinea appiattita. Deve necessariamente essere positiva. + Posizione in cui aggiungere la polilinea appiattita. + Se ignorare il primo punto di controllo durante l'aggiunta della polilinea appiattita. + Posizione in cui aggiungere il valore del parametro della curva di Bézier associato a ciascuno dei vertici della polilinea. + Se il parametro è vuoto, il primo punto di controllo e il relativo parametro associato vengono sempre aggiunti. + + + + Metodi di estensione che supportano tipi non geometrici. + + + + + Consente l'applicazione di un delegato dell'azione (spesso un lambda molto semplice) a un'intera sequenza. + + + + + Consente l'applicazione di un delegato dell'azione (spesso un lambda molto semplice) a un'intera sequenza. + + + + + Consente l'applicazione di un delegato dell'azione (spesso un lambda molto semplice) a un'intera sequenza all'interno dell'indice di ciascun elemento. + + + + + Verifica il conteggio dell'elenco rispetto al conteggio specificato. Crea elementi in base a un valore Factory specificato o, se necessario, rimuove degli elementi. Se IList di input è un elenco, viene utilizzato AddRange o RemoveRange in assenza di Factory. + + + + + Verifica che il conteggio di un elenco corrisponda almeno al conteggio specificato. Crea elementi in base a un valore Factory specificato. + + + + + Aggiunge un intervallo di elementi alla fine di un insieme. Se l'insieme è un elenco, viene utilizzato List.AddRange. + + + + + Recupera l'ultimo elemento di un elenco specificato. + + + + + Rimuove l'ultimo elemento dall'elenco specificato. + + + + + Crea una copia dell'oggetto e di tutte le sue proprietà pubbliche, incluse tutte le proprietà di insiemi. + + + + + Imposta il valore se diverso. Se possibile, evita di impostare un valore locale. Restituisce true se il valore è stato modificato. + + + + + Cancella la proprietà di dipendenza quando è impostata localmente sull'oggetto di dipendenza specificato. Restituisce false se la proprietà di dipendenza non è impostata localmente. + + + + + Trova tutti i discendenti visivi di un tipo e una condizione specificati utilizzando la ricerca in ampiezza. + + + + + Recupera tutti gli elementi figlio visivi in IEnumerable. + + + + + Unifica l'interfaccia di PropertyMetadata in WPF e Silverlight. Fornisce le notifiche necessarie relative al rendering, alla disposizione e alla misurazione. + + + + + Questo costruttore privato deve essere utilizzato solo da AttachCallback. + + + + + Concatena InternalCallback() per associare l'instanza di DrawingPropertyMetadata al callback della proprietà. In Silverlight, i metadati della proprietà vengono eliminati dopo l'impostazione. Per memorizzarli utilizzare il callback. + + + + + Prima di concatenare il callback originale, attiva DrawingPropertyChangedEvent. + + + + + Metodi di estensione per strutture di dati correlate alla geometria (Point/Vector/dimensione/Rect). + + + + + Ridimensiona il rettangolo in base a una dimensione relativa, mantenendo il centro invariato. + + + + + Recupera il vettore differenza tra due punti. + + + + + In base al membro, più per Point. + + + + + In base al membro, meno per Point. + + + + + Converte una stringa di minilinguaggi in un elemento . + + Vedere Sintassi di markup del percorso (http://msdn.microsoft.com/en-us/library/cc189041(VS.95).aspx) + La stringa di minilinguaggi Path per descrivere percorsi geometrici. + Un elemento convertito dai minilinguaggi Path. + + + + Appiattisce un elemento e aggiunge i punti risultanti a un dato parametro . + + L'elemento di input. + L'elenco di punti a cui verranno aggiunti i punti risultanti. + Un numero positivo che specifica l'errore massimo consentito dai punti risultanti alla figura del tracciato di input. Il valore 0 consente all'algoritmo di selezionare automaticamente la tolleranza. + + + + Recupera l'arco normalizzato in un riquadro (0,0)(1,1). Zero gradi corrisponde a [0,5, 0] (in alto) e in senso orario. + + + + + Recupera il punto dell'arco assoluto entro un limite specificato con un raggio relativo specificato. + + + + + Recupera l'angolo su un arco relativo al riquadro (0,0)(1,1). Zero gradi corrisponde a [0,5, 0] (in alto) e in senso orario. + + + + + Recupera l'angolo su un arco da un punto assoluto specificato in relazione a un limite. + + + + + Calcola la trasformazione che sposta RectFrom in RectTo. + + + + + Calcola la trasformazione dallo spazio delle coordinate di un elemento UIElement a un altro. + + L'elemento di origine. + L'elemento di destinazione. + La trasformazione tra gli elementi UIElement o null se non può essere calcolata. + + + + Esegue il mapping di un punto relativo su un punto assoluto utilizzando il mapping da un limite specificato rispetto al riquadro (0,0)(1,1). + + + + + Esegue il mapping di un punto assoluto su un punto relativo utilizzando il mapping da un riquadro (0,0)(1,1) a un limite specificato. + + + + + Calcola il limite dopo l'adattamento entro un limite logico specificato. Se Stretch è Uniform, utilizza il valore aspectRatio specificato. Se aspectRatio è vuoto, è equivalente a Fill. Se Stretch è None, è equivalente a Fill o Uniform. + + + + + Restituisce il punto intermedio fra 2 punti. + + Il primo punto. + Il secondo punto. + Il punto intermedio tra e . + + + + Restituisce il prodotto scalare di due vettori. + + Il primo vettore. + Il secondo vettore. + Il prodotto scalare di e . + + + + Restituisce il prodotto scalare di due punti. + + + + + Restituisce la distanza tra due punti. + + Il primo punto. + Il secondo punto. + La distanza tra e . + + + + Restituisce il quadrato della distanza tra due punti. + + Il primo punto. + Il secondo punto. + Il quadrato della distanza tra e . + + + + Determinante del prodotto incrociato. Equivale all'area della direzione. + + + + + Calcola il vettore di direzione normale di segmenti di linea specificati. + + + + + Calcola il vettore perpendicolare, 90 gradi in senso antiorario. Un vettore perpendicolare verso destra genera come risultato un vettore verso l'alto. + + + + + Restituisce il valore della proprietà se le due geometrie sono identiche. + + + + + Verifica che il valore sia un'istanza del tipo di risultato (T). In caso contrario, lo sostituisce con una nuova istanza del tipo (T). + + + + + Verifica che l'elenco[indice] sia un'istanza del tipo di risultato (T). In caso contrario, lo sostituisce con una nuova istanza del tipo (T). + + + + + Classe helper che fornisce metodi e proprietà statiche correlati all'aritmetica a virgola mobile. + + + + + La distanza minima in base alla quale due valori possono essere considerati uguali. Nota: la virgola mobile interna in MIL/SL è Float, non Double. + + + + + Il valore dell'angolo di una circonferenza intera. + + + + + Il raggio interno della forma poligonale a pentagramma, con precisione di tre cifre in percentuale. (1 - Sin36 * Sin72 / Sin54) / (Cos36) ^ 2, corrispondente a 0,47210998990512996761913067272407 + + + + + Determina se un valore System.Double è sufficientemente piccolo per essere considerato equivalente a zero. + + + True se il valore è minore di DoubleTolerance. In caso contrario, False. + + + + Restituisce il valore compreso nell'intervallo specificato. Un intervallo min/max specificato pari a null indica che non è previsto alcun limite. + + + + + Calcola la norma euclidea del vettore (x, y). + + Il primo componente. + Il secondo componente. + La norma euclidea del vettore (x, y). + + + + Calcola un numero reale da mantissa ed esponente. + + + + Il valore di x * 2^exp se ha esito positivo. + + + + Verifica un valore Double. + + Il valore Double da verificare. + True se x non è un valore NaN e non è uguale a PositiveInfinity o NegativeInfinity. In caso contrario, False. + + + + Classe helper per utilizzare PathFigure. + + + + + Appiattisce la figura specificata e aggiunge i punti risultanti all'elenco di punti specificato. + + La tolleranza di errore. Deve essere positiva. Può essere pari a zero. Fallback alla tolleranza predefinita. + + + + Esegue l'iterazione di tutti i segmenti all'interno di una figura specificata e restituisce il punto iniziale corretto di ciascun segmento. + + + + + Sincronizza la figura con l'elenco di punti specificato come segmento di polilinea singolo. Tenta di ridurre al minimo la modifica e restituisce false in assenza di modifiche. + + + + + Sincronizza la figura specificata affinché sia un'ellisse chiusa con due segmenti d'arco. + + + + + Una struttura di dati tupla per PathSegment e StartPoint corrispondente. + + + + + Rappresenta una polilinea con un elenco di punti di congiunzione. Un poligono chiuso viene rappresentato ripetendo il primo punto alla fine. Su richiesta vengono calcolate differenze, normali, angoli e lunghezze. + + + + + Costruisce una polilinea con due o più punti. + + + + + Il vettore delle differenze in avanti della polilinea. Points[i] + Differences[i] = Points[i+1] + + + + Calcola il vettore normale della posizione specificata (lerp(indice, indice+1, frazione). Se la posizione rientra nell'intervallo di cornerRadius, esegue l'interpolazione della direzione normale. + + L'intervallo di arrotondamento normale. Se è zero, nessun arrotondamento e restituisce la normale esatta nell'indice. + + + + La polilinea è chiusa quando il primo e l'ultimo punto sono punti ripetuti. + + + + + Il conteggio di punti di questa polilinea. + + + + + La lunghezza totale dell'arco di questa polilinea. + + + + + La matrice di punti di questa polilinea. + + + + + La lunghezza tra i segmenti della linea, da Points[i] a Points[i+1]. + + + + + L'elenco di vettori normali per ciascun segmento. Normals[i] è la normale del segmento da p[i] a p[i + 1]. Normals[N-1] == Normals[N-2]. + + + + + L'elenco di Cos(angle) tra due segmenti di linea sul punto p[i]. Nota: il valore è Cos(angle) = Dot(u, v). Non è epresso in gradi. + + + + + L'elenco di lunghezza accumulata da Points[i] a Points[0]. + + + + + La struttura di dati per comunicare con l'algoritmo PathMarch. + + + + + Recupera la posizione interpolata di questo elemento MarchLocation in un elenco di punti specificato. + + + + + Recupera la direzione normale interpolata di questo elemento MarchLocation in un elenco di vettori normali specificato. + + + + + Recupera la lunghezza dell'arco di questo elemento MarchLocation fino all'inizio della polilinea intera. + + + + + Il motivo per cui questa posizione viene campionata. + + + + + L'indice del punto in un elenco di punti di polilinea. + + + + + Rapporto: [0, 1], che è sempre prima / (prima + dopo). + + + + + Lunghezza dell'arco prima di un punto di interruzione. È un valore non negativo minore di Length[indice]. + + + + + Lunghezza dell'arco dopo il punto di interruzione. È un valore non negativo minore di Length[indice]. + + + + + Lunghezza rimanente all'interno di un passaggio per toccare l'interruzione successiva. Positivo per lo spostamento in avanti. Negativo per lo spostamento indietro. + + + + + Classe helper per utilizzare un elenco di punti + + + + + Segue la polilinea specificata con un intervallo specificato e genera in output ciascun punto di interruzione tramite callback. + + I punti della polilinea da seguire. + La lunghezza dell'arco da seguire prima dell'interruzione al primo punto. + L'angolo massimo tra i bordi da considerare come vertice dell'angolo. + Callback quando l'algoritmo di inseguimento si interrompe in un punto. Il callback restituisce la lunghezza dell'arco per l'interruzione successiva. Se la lunghezza richiesta è negativa, inseguimento a ritroso. Se il callback restituisce NaN, l'inseguimento viene completato. + + + + Riordina l'elenco di polilinee specificato in modo che inizi con la polilinea con una lunghezza d'arco specificata. Le polilinee che precedono questa linea vengono concatenate alla fine dell'elenco, con la prima polilinea per ultima. + + Un elenco di polilinee. + La lunghezza dell'arco nell'elenco completo di polilinee corrispondente alla linea iniziale. In questa variabile viene restituita la lunghezza dell'arco in tale linea. + L'elenco riordinato e con ritorno a capo. + + + + Un generatore casuale supporta distribuzioni uniformi e gaussiane. + + + + + Generare una coppia di numeri casuali indipendenti e distribuiti gaussianamente con media nulla e varianza unitaria, utilizzando la forma polare della trasformazione di Box-Muller. + + + + + Costruttore privato. Forza l'utilizzo di metodi Factory. + + + + + Crea un segmento di linea + + + + + Crea un segmento di Bézier cubico dalla curva quadratica (3 punti di controllo) + + + + + Crea un segmento di Bézier cubico con 4 punti di controllo. + + + + + Punti di controllo del segmento di tracciato. La lunghezza è variabile. Il segmento di linea utilizza 2 punti, il segmento di Bézier cubico 4 punti. + + + + + Confronta due trasformazioni per cercare una corrispondenza esatta. Esegue la trasformazione con lo stesso valore ma con una struttura differente (ad esempio Translate(0,0) e Rotate(0) non sono considerati equivalenti). + + La prima trasformazione. + La seconda trasformazione. + + + + + Specifica l'unità dello spessore. + + + + + Unità in pixel. + + + + + Unità in percentuale rispetto al rettangolo di selezione. + + + + + Fornisce la classe di base per l'origine di una geometria. Genera e memorizza nella cache la geometria in base ai parametri di input e ai limiti del layout. + + + Un'implementazione tipica estenderà l'elemento UpdateCachedGeometry() per aggiornare questa cachedGeometry. La classe di base gestirà quindi l'invalidazione, la pipeline degli effetti geometrici e la memorizzazione nella cache rispetto ai limiti del layout. L'implementazione deve tentare di riutilizzare per quanto possibile la geometria memorizzata nella cache, al fine di evitare la ricostruzione nel thread di rendering. L'implementazione può estendere l'elemento ComputeLogicalBounds per gestire Stretch in modo diverso. + + Il tipo di parametro dell'origine della geometria utilizzato dalla classe di base. + + + + Fornisce un'interfaccia per descrivere l'origine di una geometria. + + + Questa interfaccia è concepita per esporre l'origine della geometria in modo non generico. L'implementazione tipica deve utilizzare la sottoclasse GeometrySource anziché l'implementazione diretta di questa interfaccia. + + + + + Notifica che la geometria è stata invalidata a causa di modifiche esterne. + + + In genere una geometria viene invalidata quando vengono modificati i parametri. Se una geometria viene invalidata esternamente, verrà ricalcolata anche qualora vengano modificati i limiti di layout. + + + + + Aggiorna la geometria utilizzando i parametri specificati e i limiti del layout. Restituisce false se non sono stati apportati aggiornamenti. + + + + + Recupera o imposta la geometria risultante dopo l'ultimo UpdateGeometry(). + + + + + Recupera il rettangolo di selezione a cui la geometria deve essere adattata. La geometria effettiva potrebbe essere più piccola o più grande di questa. deve prendere in considerazione lo spessore del tratto e l'adattamento. + + + + + Recupera i limiti effettivi dell'elemento FrameworkElement. include i limiti logici, l'adattamento e lo spessore del tratto. + + + + + Specifica la geometria dal precedente processo dell'effetto geometria. + + + + + Notifica che la geometria è stata invalidata a causa di modifiche esterne. + + + In genere una geometria viene invalidata quando vengono modificati i parametri. Se una geometria viene invalidata esternamente, verrà ricalcolata a prescindere dalla modifica dei limiti del layout. + + + + + Aggiorna la geometria in base ai parametri specificati e ai limiti del layout. Restituisce false se la geometria non è stata modificata. + + + + + Estende il metodo per fornire la geometria mediante l'implementazione di questa funzione. Restituisce true quando una geometria viene modificata. + + + + + Estende il metodo per gestire la modalità di adattamento. Il valore predefinito prevede di utilizzare sempre Stretch.Fill e il tratto centrale. + + + + + Applica l'effetto geometria se modificato o forzato e aggiorna this.Geometry. In caso contrario, mantiene this.Geometry come this.cachedGeometry. + + + + + Recupera o imposta la geometria risultante dopo l'ultimo UpdateGeometry(). + + + + + Recupera il rettangolo di selezione a cui la geometria deve essere adattata. La geometria effettiva potrebbe essere più piccola o più grande di questa. deve prendere in considerazione lo spessore del tratto e l'adattamento. + + + + + + Recupera i limiti effettivi dell'elemento FrameworkElement. include i limiti logici, l'adattamento e lo spessore del tratto. + + + + + + Lo spessore dell'arco Stretch.None è uguale a Stretch.Fill, presupponendo che le proporzioni siano pari a 1:1. + + + + + Normalizza lo spessore rispetto sia al rettangolo di selezione, sia al pixel assoluto. Spessore relativo = 0 -> raggio dell'intera circonferenza o bloccato. Spessore relativo = 1 -> ridotto a un punto o degenerato. + + + + + L'arco degenera in una linea rivolta verso il centro / normale verso l'interno. + + + + + Calcola un elenco di coppie di angoli che definisce gli intervalli in cui si può trovare il campione di arco. Il valore restituito ha 2, 4 oppure 6 valori doppi, ogni coppia definisce un intervallo e le coppie sono nell'ordine in cui disporre gli angoli in base ad angoli di inizio e fine specificati. Gli intervalli si interrompono in corrispondenza dell'angolo di autointersezione. Se il valore immesso di inizio/fine rientra nell'intervallo non valido compreso tra l'angolo di autointersezione, verrà spostato all'autointersezione più prossima. + + + + + Sposta l'angolo in un intervallo da 0 a 90. + + + + + Calcola tutte le parti delle curve interne con ciascuna coppia di angoli di input e le collega con segmenti PolyBezier. Viene effettuato l'output dei nuovi segmenti nell'elenco figure.Segments specificato dall'indice specificato. L'outout del punto iniziale viene effettuato separatamente. + + + + + Calcola una parte di curva interna con un intervallo di angoli specificato ed effettua l'output di una parte di curva uniforme sotto forma di segmenti PolyBezier. + + + + + Calcola il parametro (angolo) del punto di autointersezione per un'ellisse specificata con uno spessore specificato. Il risultato si trova sempre nel primo quadrante. Se è pari a 0 o 90 indica l'assenza di autointersezione. L'algoritmo di base prevede la ricerca binaria dell'angolo in base al quale il punto campione non si trova nel primo quadrante. + + + + + Specifica la direzione delle punte delle frecce. + + + + + La freccia è rivolta a sinistra. + + + + + La freccia è rivolta a destra. + + + + + La freccia è rivolta verso l'alto. + + + + + La freccia è rivolta verso il basso. + + + + + L'algoritmo B /| / C--D A | \ C--D \| B utilizza solo Width/Height presupponendo che l'angolo superiore sinistro coincida con 0,0. + + + + + Specifica lo stile di rendering di una forma Callout. + + + + + Un Callout di forma rettangolare. + + + + + Un Callout di forma rettangolare con angoli arrotondati. + + + + + Un Callout di forma ovale. + + + + + Un Callout a forma di nuvola. + + + + + Aggiorna la linea del bordo e, se necessario, la collega al punto di ancoraggio. + + + + + Aggiorna il segmento di polilinea, quindi collega i punti iniziale, di ancoraggio e finale allo stile Callout. + + + + + Aggiorna il segmento di linea in base a un punto specificato. + + + + + Calcola i punti degli angoli in senso orario, con 8 punti per i 4 angoli. + + + + + L'arco d'angolo è sempre un arco più piccolo di 90 gradi. + + + + + Fornisce la classe di base di GeometryEffect che trasforma una geometria in un'altra geometria. + + + Questa classe fornisce l'implementazione di base dell'elaborazione della geometria sottoposta a rendering di un elemento IShape prima che venga passato al rendering. Un'implementazione tipica estenderà la funzione virtuale per trasformare la geometria di input. viene tipicamente associato a come proprietà collegata e attivato quando la geometria viene aggiornata. L'elemento di un elemento sostituirà la geometria sottoposta a rendering in . + + + + + Recupera l'effetto geometria come proprietà associata a un oggetto di dipendenza specificato. + + + + + Imposta l'effetto geometria come proprietà associata a un oggetto di dipendenza specificato. + + + + + Esegue una copia completa dell'effetto utilizzandone i valori correnti. + + + + + Esegue una copia completa dell'effetto geometria. Implementa CloneCurrentValue in Silverlight. + + Un clone dell'istanza corrente dell'effetto geometria. + + + + Verifica se l'effetto geometria specificato equivale all'istanza corrente. + + Un effetto geometria con cui effettuare un confronto. + Restituisce true quando il rendering di due effetti genera lo stesso aspetto. + + + + Specifica la geometria dal precedente processo dell'effetto geometria. + + + + + Invalida l'effetto geometria senza calcolare effettivamente la geometria. Notifica tutte le forme o tutti gli effetti padre da invalidare di conseguenza. + + + + + Esegue l'elaborazione dell'effetto geometria su una geometria di input specificata. Il risultato viene memorizzato in GeometryEffect.OutputGeometry. + + Restituisce false se non sono state apportate modifiche. + + + + Estende la modalità di aggiornamento di cachedGeometry in base alla geometria di input specificata. + + + + + Notifica quando il collegamento con un elemento padre viene interrotto. + + + + + Notifica quando viene stabilito il collegamento con l'elemento padre. + + + + + Invalida la geometria su un oggetto di dipendenza specificato quando l'oggetto è un tipo di elemento padre valido (IShape o GeometryEffect). + + + + + Implementa il Freezable in WPF. + + + + + L'effetto geometria predefinito che si limita a passare la geometria di input. + + + + + Recupera la geometria di output di questo effetto geometria. + + + + + L'elemento padre può essere IShape o GeometryEffectGroup. + + + + + Fornisce la conversione tra stringa ed effetti di geometria. + + + Questa classe consente la sintassi breve in xaml del tipo GeometryEffect="Sketch". Crea un clone dell'istanza dell'effetto geometria in modo che possa essere utilizzato come risorsa. + + + + + Genera un elenco predefinito di effetti geometria supportati. + + + + + Un effetto GeometryEffect che può essere convertito da un tipo stringa. + + + + + Un effetto GeometryEffect che può essere convertito in un tipo stringa. + + + + + Converte una stringa in un effetto geometria. Il valore fallback è null. + + + + + Converte un effetto geometria in una stringa. Il valore fallback è null. + + + + + Specifica la ragione per la quale viene chiamato. + + + + + La geometria è stata invalidata a causa della modifica di una proprietà. + + + + + La geometria è stata invalidata a causa dell'animazione di una proprietà. + + + + + La geometria è stata invalidata perché un elemento figlio è stato invalidato. + + + + + La geometria è stata invalidata perché un elemento padre è stato invalidato. + + + + + La geometria è stata invalidata perché è stato applicato un nuovo modello. + + + + + Fornisce metodi di estensione helper da utilizzare con IGeometrySource e parametri. + + + + + Specifica il tipo di punta della freccia. + + + + + Nessuna punta della freccia. + + + + + Una punta della freccia a triangolo. + + + + + Una punta della freccia 3 a triangolo. + + + + + Una punta della freccia a triangolo aperto. + + + + + Una punta della freccia ovale. + + + + + Specifica la posizione dell'angolo. + + + + + Nell'angolo superiore sinistro del rettangolo di selezione. + + + + + Nell'angolo superiore destro del rettangolo di selezione. + + + + + Nell'angolo inferiore destro del rettangolo di selezione. + + + + + Nell'angolo inferiore sinistro del rettangolo di selezione. + + + + + Il poligono riconosce Stretch.None come uguale a Stretch.Fill. + + + + + Un effetto geometria per trasformare una geometria in uno stile Sketch come in SketchFlow. + + + + + Esegue una copia completa dell'effetto geometria. + + Un clone dell'istanza corrente dell'effetto geometria. + + + + Verifica se l'effetto geometria specificato equivale all'istanza corrente. + + Un effetto geometria con cui effettuare un confronto. + Restituisce true quando il rendering di due effetti genera lo stesso aspetto. + + + + Aggiornamento di cachedGeometry in base a una geometria di input specificata. + + Una geometria di input + Restituisce true quando un elemento di cachedGeometry è stato aggiornato. + + + + Utilizza lo stesso valore di inizializzazione casuale durante la creazione per mantenere minimo lo sfarfallio visivo. + + + + + Esegue l'iterazione di tutti i segmenti semplici nella figura del tracciato specificata inclusa la corda di chiusura. + + + + + Esegue il rendering di una forma arco che supporta la modalità Arc, Ring e Pie controllata da ArcThickness. + + + + + Implementazione di Shape non associata ad alcuna piattaforma derivante da WPF:Shape o SL:Path. + + + Fornisce l'implementazione in WPF di Shape che deriva dalla piattaforma Shape. + + + + + Estende la modalità in cui la forma viene disegnata durante la creazione dell'origine della geometria. + + + + + Invalida la geometria per un elemento . In seguito all'invalidazione, verrà ricalcolata la geometria di tramite un'operazione eseguita in modo asincrono. + + + + Fornisce il comportamento per la parte di misurazione del passaggio di layout di Silverlight. Le classi possono sostituire questo metodo e definire il loro comportamento per il passaggio di misurazione. + La dimensione determinata da questo oggetto come necessaria durante il layout, in base ai calcoli delle dimensioni assegnate agli oggetti figlio, o eventualmente in base ad altre considerazioni quali la dimensione fissa di un contenitore. + La dimensione disponibile che questo oggetto può fornire agli oggetti figlio. È possibile specificare Infinity () come valore per indicare che l'oggetto verrà ridimensionato in base al contenuto disponibile. + + In WPF, l'override della misura utilizza Shape.DefiningGeometry che non dà sempre i risultati previsti. Per informazioni vedere il bug 99497 in cui WPF non ha la misura corretta per impostazione predefinita. + + In Silverlight, l'override della misura su Path non funziona come la forma primitiva. + + È necessario restituire la dimensione minima per il rendering corretto di questa forma senza ritaglio. Per impostazione predefinita, il rendering più piccolo di una forma può essere un punto e restituisce quindi StrokeThickness. + + + + Fornisce il comportamento per la parte di disposizione del passaggio di layout di Silverlight. Le classi possono eseguire l'override di questo metodo per definire un comportamento per il passaggio di disposizione personalizzato. + La dimensione effettiva utilizzata dopo la disposizione dell'elemento. + L'area finale all'interno dell'elemento padre che deve essere utilizzata dall'oggetto per la propria disposizione e per quella dei relativi elementi figlio. + ricalcolerà la geometria quando viene invalidata e aggiornerà RenderedGeometry e GeometryMargin. + + + + Si verifica in seguito alla modifica di RenderedGeometry. + + + + + Recupera il margine fra i limiti logici e i limiti effettivi della geometria. Può essere sia positivo (come nel caso di ) che negativo (come nel caso di ). + + + + + Recupera o imposta l'angolo iniziale. + + L'angolo iniziale in gradi. 0 gradi è rivolto verso l'alto. + + + + Recupera o imposta l'angolo finale. + + L'angolo finale in gradi. 0 gradi è rivolto verso l'alto. + + + + Recupera o imposta lo spessore dell'arco. + + Lo spessore dell'arco espresso in pixel o percentuale in base a "ArcThicknessUnit". + + + + Recupera o imposta l'unità dello spessore dell'arco. + + L'unità dello spessore dell'arco, in pixel o percentuale. + + + + Esegue il rendering di una forma freccia a blocco che supporta punta e corpo ridimensionabili. + + + + + Recupera o imposta l'orientamento. + + La direzione verso cui la freccia è rivolta. + + + + Recupera o imposta l'angolo della punta della freccia. + + L'angolo della punta della freccia in gradi. + + + + Recupera o imposta la dimensione del corpo della freccia. + + La dimensione del corpo della freccia in pixel. + + + + Esegue il rendering di una forma poligono regolare o della corrispondente forma stella con un numero variabile di punti. + + + + + Recupera o imposta il numero di punti dell'elemento + + + + + Recupera o imposta la distanza tra il centro e il punto più interno. + + La distanza tra il centro e il punto più interno. + + + diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/it/Microsoft.Expression.Effects.xml b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/it/Microsoft.Expression.Effects.xml new file mode 100644 index 0000000..809b81f --- /dev/null +++ b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/it/Microsoft.Expression.Effects.xml @@ -0,0 +1,1041 @@ + + + + Microsoft.Expression.Effects + + + + + Determina l'orientamento della veneziana. + + + + + Shader di transizione che simula l'apertura di una veneziana durante la transizione da un elemento visivo a un altro. + + + + + Recupera o imposta l'orientamento della veneziana. + + + + + Recupera o imposta il numero di lamelle della veneziana. + + + + + Recupera o imposta la variabile Amplitude nello shader. + + + + + Crea un'istanza dello shader. + + + + + Esegue una copia completa dell'effetto BlindsTransitionEffect. + + Un clone dell'istanza corrente dell'effetto BlindsTransitionEffect. + + + + Recupera o imposta l'orientamento della veneziana. + + + + + Recupera o imposta il numero di lamelle della veneziana da visualizzare. + + + + + Recupera o imposta l'orientamento della veneziana. + + + + + Effetto che implementa un'illuminazione bloom di un elemento visivo. + + + + + L'input esplicito per questo pixel shader. + + + + + + Questa proprietà è mappata sulla variabile BloomIntensity nel pixel shader. + + + + + Questa proprietà è mappata sulla variabile BaseIntensity nel pixel shader. + + + + + Questa proprietà è mappata sulla variabile BloomSaturation nel pixel shader. + + + + + Questa proprietà è mappata sulla variabile BaseSaturation nel pixel shader. + + + + + Questa proprietà è mappata sulla variabile BloomIntensity nel pixel shader. + + + + + Questa proprietà è mappata sulla variabile BloomSaturation nel pixel shader. + + + + + Questa proprietà è mappata sulla variabile BaseSaturation nel pixel shader. + + + + + Crea un'istanza e aggiorna le variabili dello shader ai valori predefiniti. + + + + + Recupera o imposta l'intensità minima che verrà utilizzata per il bloom. + + + + + Recupera o imposta l'intensità di base. + + + + + Recupera o imposta l'intensità del bloom. + + + + + Recupera o imposta la saturazione di base. + + + + + Recupera o imposta la saturazione del bloom. + + + + + Recupera o imposta il sampler dello shader Input. + + + + + Recupera o imposta la variabile Base/BloomIntensity nello shader. + + + + + Recupera o imposta la variabile BaseBloomSaturation nello shader. + + + + + Effetto di transizione che rivela due elementi visivi attraverso un cerchio che si espande/restringe. + + + + + Proprietà di dipendenza che modifica la variabile della quantità di sfumatura nel pixel shader. + + + + + Proprietà di dipendenza che modifica il movimento del cerchio. + + + + + Proprietà di dipendenza che modifica la variabile reverseShader nel pixel shader. + + + + + Crea un'istanza e aggiorna le variabili dello shader ai valori predefiniti. + + + + + Esegue una copia completa dell'effetto CircleRevealTransitionEffect. + + Un clone dell'istanza corrente dell'effetto CircleRevealTransitionEffect. + + + + Recupera o imposta la variabile FuzzyAmount nello shader. + + + + + Recupera o imposta se invertire la direzione della comparsa a cerchio. + + + + + Recupera o imposta se invertire la direzione della comparsa a cerchio nello shader. + + + + + Effetto di transizione fra due elementi visivi che utilizza un motivo simile a una nuvola come soglia del sampler. + + + + + Definisce un effetto dello shader di transizione che utilizza un'immagine come soglia del sampler per interpolare il valore in pixel tra due elementi visivi. + + + + + Definisce un effetto dello shader di transizione che fornisce un valore casuale, facendo sì che l'effetto fornisca variazioni ogni volta che viene eseguito. + + + + + Proprietà di dipendenza che modifica la variabile RandomSeed nel pixel shader. + + + + + Aggiorna le variabili dello shader ai valori predefiniti. + + + + + Recupera o imposta la variabile RandomSeed nello shader. + + + + + Proprietà di dipendenza che modifica la variabile CloudImage nel pixel shader. + + + + + Crea un'istanza e aggiorna le variabili dello shader ai valori predefiniti. + + + + + Recupera o imposta la variabile CloudImage nello shader utilizzato per il campionamento. + + + + + Crea un'istanza dello shader. + + + + + Esegue una copia completa dell'effetto CloudRevealTransitionEffect. + + Un clone dell'istanza corrente dell'effetto CloudRevealTransitionEffect. + + + + Effetto che modifica la tonalità di colore di un elemento visivo utilizzando due colori come campionamento. + + + + + L'input esplicito per questo pixel shader. + + + + + Questa proprietà è mappata sulla variabile Desaturation nel pixel shader. + + + + + Questa proprietà è mappata sulla variabile Toned nel pixel shader. + + + + + Questa proprietà è mappata sulla variabile LightColor nel pixel shader. + + + + + Questa proprietà è mappata sulla variabile DarkColor nel pixel shader. + + + + + Crea un'istanza e aggiorna le variabili dello shader ai valori predefiniti. + + + + + Recupera o imposta la variabile Desaturation nello shader. + + + + + Recupera o imposta la variabile Toned nello shader. + + + + + Recupera o imposta la variabile LightColor nello shader. + + + + + Recupera o imposta la variabile DarkColor nello shader. + + + + + Recupera o imposta il sampler dello shader Input. + + + + + Effetto che simula un aspetto in rilievo nell'elemento visivo. + + + + + L'input esplicito per questo pixel shader. + + + + + Questa proprietà è mappata sulla variabile Amount nel pixel shader. + + + + + Questa proprietà è mappata sulla variabile Height nel pixel shader. + + + + + Questa proprietà è mappata sulla variabile Color nel pixel shader. + + + + + Crea un'istanza e aggiorna le variabili dello shader ai valori predefiniti. + + + + + Recupera o imposta la variabile Amount nello shader. + + + + + Recupera o imposta la variabile Height nello shader. + + + + + Recupera o imposta la variabile Color nello shader. + + + + + Recupera o imposta il sampler dello shader Input. + + + + + Effetto di transizione che passa gradualmente da un elemento visivo a un altro. + + + + + Crea un'istanza dello shader. + + + + + Esegue una copia completa dell'effetto FadeTransitionEffect. + + Un clone dell'istanza corrente dell'effetto FadeTransitionEffect. + + + + Effetto che simula una lente di ingrandimento. + + + + + Recupera o imposta la variabile InnerRadius nello shader. + + + + + Recupera o imposta la variabile OuterRadius nello shader. + + + + + Recupera o imposta la variabile Center nello shader. + + + + + Recupera o imposta la variabile Amount nello shader. + + + + + Recupera o imposta l'input utilizzato nello shader. + + + + + La trasformazione utilizzata per questo shader. + + + + + Crea un'istanza e aggiorna le variabili dello shader ai valori predefiniti. + + + + + Recupera o imposta la variabile InnerRadius nello shader. + + + + + Recupera o imposta la variabile OuterRadius nello shader. + + + + + Recupera o imposta la variabile Center nello shader. + + + + + Recupera o imposta il valore ShrinkFactor. Con un fattore di riduzione maggiore, il contenuto all'interno dell'ellisse apparirà più piccolo. + + + + + Recupera l'effetto EffectMapping. + + + + + Recupera o imposta il sampler dello shader Input. + + + + + GeneralTransform corrispondente all'effetto Magnify. + + + + + Tenta di trasformare un punto in base all'effetto. + + Il punto da trasformare. + Il risultato, se disponibile. + Restituisce true se l'operazione viene completata. + + + + L'istanza dell'effetto. + + + + + Se la trasformazione è un inverso. + + + + + La trasformazione specifica per questo effetto. + + + + + Crea una nuova istanza. + + L'effetto di origine. + + + + Questo particolare effetto mantiene allineate sull'asse le linee allineate all'asse, in modo che la trasformazione dell'elemento Rect interessi solamente i punti d'angolo. + + L'elemento Rect di input. + L'elemento Rect di output. + + + + Per ottenere l'inverso dello shader è necessario trovare Pin, vale a dire l'output pixel, considerando Pout come l'input della trama (l'inverso dello shader). Tuttavia l'algoritmo dello shader dipende dal raggio dell'output pixel dal centro, cioè una variabile di cui non si dispone quando si calcola l'inverso. Per ottenere la convergenza è necessario eseguire la bisezione utilizzando l'equazione seguente PHatout = PHat_in*Scalar dove PHatout = Pout - Pcenter pHatin = Pin -Pcenter + + Scalar dipende dal raggio di Pin (non disponibile). + + + + + Dato un output pixel (Pin) trova l'input della trama (Pout). + + + + + Crea una nuova istanza. + + Una nuova istanza. + + + + Determina se un punto è all'interno di un'ellisse. + + Il punto di test. + Il punto centrale dell'ellisse. + Il raggio dell'ellisse. + Restituisce true se l'operazione viene completata. + + + + Recupera la trasformazione inversa. + + + + + Effetto che trasforma un elemento visivo in monocromatico. + + + + + Recupera o imposta la variabile Color nello shader. + + + + + Recupera o imposta l'input dello shader. + + + + + Crea un'istanza e aggiorna le variabili dello shader ai valori predefiniti. + + + + + Recupera o imposta la variabile Color nello shader. + + + + + Recupera o imposta l'input utilizzato nello shader. + + + + + Effetto che applica un effetto pixel a un elemento visivo. + + + + + L'input esplicito per questo pixel shader. + + + + + Questa proprietà è mappata sulla variabile Pixelation nel pixel shader. + + + + + Crea un'istanza e aggiorna le variabili dello shader ai valori predefiniti. + + + + + Recupera o imposta la quantità di effetto pixel nello shader. + + + + + Recupera o imposta il sampler dello shader Input. + + + + + Effetto di transizione che aumenta o diminuisce l'effetto pixel tra due elementi visivi. + + + + + Crea un'istanza dello shader. + + + + + Esegue una copia completa dell'effetto PixelateTransitionEffect. + + Un clone dell'istanza corrente dell'effetto PixelateTransitionEffect. + + + + Effetto di transizione che esegue una sfocatura radiale dell'elemento visivo corrente mentre appare quello successivo. + + + + + Crea un'istanza dello shader. + + + + + Esegue una copia completa dell'effetto RadialBlurTransitionEffect. + + Un clone dell'istanza corrente dell'effetto RadialBlurTransitionEffect. + + + + Effetto che simula un'increspatura sull'elemento visivo. + + + + + Recupera o imposta la variabile Center nello shader. + + + + + Recupera o imposta la variabile Amplitude nello shader. + + + + + Recupera o imposta la variabile Frequency nello shader. + + + + + Recupera o imposta la variabile Phase nello shader. + + + + + Recupera o imposta il pennello di input utilizzato nello shader. + + + + + Crea un'istanza e aggiorna le variabili dello shader ai valori predefiniti. + + + + + Recupera o imposta la variabile Center nello shader. + + + + + Recupera o imposta la variabile Amplitude nello shader. + + + + + Recupera o imposta la variabile Frequency nello shader. + + + + + Recupera o imposta la variabile Phase nello shader. + + + + + Recupera o imposta il sampler dello shader Input. + + + + + Effetto di transizione che simula un'increspatura durante la transizione. + + + + + Crea un'istanza dello shader. + + + + + Esegue una copia completa dell'effetto RippleTransitionEffect. + + Un clone dell'istanza corrente dell'effetto RippleTransitionEffect. + + + + Effetto che rende un elemento visivo più nitido e delineato. + + + + + L'input esplicito per questo pixel shader. + + + + + Questa proprietà è mappata sulla variabile Amount nel pixel shader. + + + + + Questa proprietà è mappata sulla variabile Width nel pixel shader. + + + + + Crea un'istanza e aggiorna le variabili dello shader ai valori predefiniti. + + + + + Recupera o imposta la variabile Amount nello shader. + + + + + Recupera o imposta la variabile Height nello shader. + + + + + Recupera o imposta il sampler dello shader Input. + + + + + Definisce la direzione dello scorrimento. + + + + + Effetto di transizione che fa scorrere via l'elemento visivo corrente per rivelare quello successivo. + + + + + Proprietà di dipendenza che modifica la variabile SlideAmount nel pixel shader. + + + + + Proprietà di dipendenza che modifica la variabile SlideAmount nel pixel shader. + + + + + Crea un'istanza e aggiorna le variabili dello shader ai valori predefiniti. + + + + + Esegue una copia completa dell'effetto SlideInTransitionEffect. + + Un clone dell'istanza corrente dell'effetto SlideInTransitionEffect. + + + + Recupera o imposta la variabile SlideAmount nello shader. + + + + + Recupera o imposta la variabile SlideAmount nello shader. + + + + + Effetto di transizione che applica un vortice all'elemento visivo corrente per rivelare quello successivo. + + + + + Proprietà di dipendenza che modifica la variabile TwistAmount nel pixel shader. + + + + + Proprietà di dipendenza che modifica il numero di celle in cui verrà applicato il vortice ai pixel. + + + + + Crea un'istanza e imposta la variabile del vortice dello shader ai valori predefiniti. + + Livello della spirale del vortice. + + + + Crea un'istanza e aggiorna le variabili dello shader ai valori predefiniti. + + + + + Esegue una copia completa dell'effetto SmoothSwirlGridTransitionEffect. + + Un clone dell'istanza corrente dell'effetto SmoothSwirlGridTransitionEffect. + + + + Recupera o imposta la variabile TwistAmount nello shader. + + + + + Recupera o imposta la variabile CellCount nello shader. + + + + + Effetto che crea una spirale sull'elemento visivo corrente. + + + + + L'input esplicito per questo pixel shader. + + + + + Questa proprietà è mappata sulla variabile Center nel pixel shader. + + + + + Questa proprietà è mappata sulla variabile TwistAmount nel pixel shader. + + + + + Questa proprietà è mappata sulla variabile AngleFrequency nel pixel shader. + + + + + La trasformazione utilizzata quando questo effetto viene applicato. + + + + + Crea un'istanza e aggiorna le variabili dello shader ai valori predefiniti. + + + + + Recupera o imposta la variabile Center nello shader. + + + + + Recupera o imposta la variabile TwistAmount nello shader. + + + + + Recupera o imposta la variabile AngleFrequency nello shader. Questa proprietà non è esposta. + + + + + Recupera o imposta il sampler dello shader Input. + + + + + Recupera GeneralTransform per questo effetto. + + + + + Viene utilizzato per la trasformazione dell'input e le trasformazioni ad albero. + + + + + L'istanza dell'effetto. + + + + + L'inverso della trasformazione. + + + + + L'inverso di questa trasformazione GeneralTransform. + + + + + Crea un'istanza di questa classe. + + L'effetto stesso. + + + + Per questa operazione, i limiti sono definiti dal rettangolo di selezione dei 4 punti trasformati. È necessario per trasformare ciascuno di essi e quindi circoscriverli. È valido sia per l'effetto in avanti che inverso. + + L'elemento Rect di input. + L'elemento Rect trasformato. + + + + Tenta di trasformare inPoint con l'effetto Swirl. + + Il punto di input. + Il punto di output dopo la trasformazione con l'effetto Swirl. + Restituisce true ma genera un'eccezione se è false. + + + + Restituisce una nuova istanza. + + Una nuova istanza. + + + + Recupera un clone dell'inverso della trasformazione corrente. + + + + + Effetto di transizione che applica un motivo a onda all'elemento visivo corrente per rivelare quello successivo. + + + + + Proprietà di dipendenza che modifica la variabile Magnitude nel pixel shader. + + + + + Proprietà di dipendenza che modifica la variabile Phase nel pixel shader. + + + + + Proprietà di dipendenza che modifica la variabile Frequency nel pixel shader. + + + + + Crea un'istanza dello shader. + + + + + Esegue una copia completa dell'effetto WaveTransitionEffect. + + Un clone dell'istanza corrente dell'effetto WaveTransitionEffect. + + + + Recupera o imposta l'ampiezza dell'onda. + + + + + Recupera o imposta la fase dell'onda. + + + + + Recupera o imposta l'ampiezza dell'onda. + + + + + Definisce la direzione della comparsa. + + + + + Effetto di transizione che fa scomparire l'elemento visivo corrente per rivelare quello successivo. + + + + + Proprietà di dipendenza che modifica la variabile WipeDirection nel pixel shader. + + + + + Proprietà di dipendenza che modifica la variabile FeatherAmount nel pixel shader. + + + + + Proprietà di dipendenza che modifica la variabile LineOrigin nel pixel shader. + + + + + Proprietà di dipendenza che modifica la variabile LineNormal nel pixel shader. + + + + + Proprietà di dipendenza che modifica la variabile LineOffset nel pixel shader. + + + + + Crea un'istanza e aggiorna le variabili dello shader ai valori predefiniti. + + + + + Esegue una copia completa dell'effetto WipeTransitionEffect. + + Un clone dell'istanza corrente dell'effetto WipeTransitionEffect. + + + + Recupera o imposta la direzione della comparsa. + + + + + Recupera o imposta la variabile FeatherAmount nello shader. + + + + + Recupera o imposta la variabile LineOrigin nello shader. + + + + + Recupera o imposta la variabile LineNormal nello shader. + + + + + Recupera o imposta la variabile LineOffset nello shader. + + + + diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/it/Microsoft.Expression.Interactions.resources.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/it/Microsoft.Expression.Interactions.resources.dll new file mode 100644 index 0000000..0fcd653 Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/it/Microsoft.Expression.Interactions.resources.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/it/Microsoft.Expression.Interactions.xml b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/it/Microsoft.Expression.Interactions.xml new file mode 100644 index 0000000..19d7537 --- /dev/null +++ b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/it/Microsoft.Expression.Interactions.xml @@ -0,0 +1,1241 @@ + + + + Microsoft.Expression.Interactions + + + + + Un'implementazione base di ICommand che esegue il wrapping di un metodo che non accetta parametri o di un metodo che accetta un solo parametro. + + + + + Inizializza una nuova istanza della classe . + + L'azione. + Utilizzare questo costruttore per implementare un'azione che ignora il parametro ICommand. + + + + Inizializza una nuova istanza della classe . + + Un'azione che accetta un parametro oggetto. + Utilizzare questo costruttore per implementare un'azione che utilizza il parametro oggetto passato dal metodo Execute. + + + + Definisce il metodo che determina se il comando può essere eseguito nello stato corrente. + + Dati utilizzati dal comando. Se il comando non richiede dati da passare, questo oggetto può essere impostato su null. + + Restituisce sempre true. + + + + + Definisce il metodo da chiamare quando il comando viene richiamato. + + Dati utilizzati dal comando. Se il comando non richiede dati da passare, questo oggetto può essere impostato su null. + + + + Si verifica in caso di modifiche che influenzano l'esecuzione del comando. Non è attivato da ActionCommand. + + + + + Chiama un metodo su un oggetto specificato quando viene richiamato. + + + + + Richiama l'azione. + + Il parametro dell'azione. Se l'azione non richiede un parametro, è possibile impostare il parametro su un riferimento con valore null. + + + + Chiamato dopo che l'azione è associata a un AssociatedObject. + + Sottoporre a override per eseguire l'hook della funzionalità all'elemento AssociatedObject. + + + + Viene chiamato quando l'azione si sta scollegando dal proprio AssociatedObject, ma prima che questo si verifichi. + + Sottoporre a override per eseguire l'unhook della funzionalità dall'elemento AssociatedObject. + + + + L'oggetto che espone il metodo di interesse. Si tratta di una proprietà di dipendenza. + + + + + Il nome del metodo da richiamare. Si tratta di una proprietà di dipendenza. + + + + + Un'azione che modifica una proprietà specificata in un valore specificato quando viene richiamata. + + + + + Inizializza una nuova istanza della classe . + + + + + Richiama l'azione. + + Il parametro dell'azione. Se l'azione non richiede un parametro, è possibile impostare il parametro su un riferimento con valore null. + Impossibile trovare una proprietà con sulla destinazione. + Impossibile impostare sul valore specificato da . + + + + Recupera o imposta il nome della proprietà da modificare. Si tratta di una proprietà di dipendenza. + + Il nome della proprietà da modificare. + + + + Recupera o imposta il valore da impostare. Si tratta di una proprietà di dipendenza. + + Il valore da impostare. + + + + Recupera o imposta la durata dell'animazione che si verifica quando si richiama l'azione ChangePropertyAction. Si tratta di una proprietà di dipendenza. Se l'impostazione della durata è stata annullata, non viene applicata nessuna animazione. + + + + + Incrementa di Value se è true; in caso contrario, imposta direttamente il valore. Se la proprietà non può essere incrementata, tenterà invece di impostare il valore direttamente. + + + + + Rappresenta una condizione ternaria. + + + + + Metodo che valuta la condizione. Si noti che questo metodo può generare ArgumentException se l'operatore non è compatibile con il tipo. Ad esempio, gli operatori LessThan, LessThanOrEqual, GreaterThan e GreaterThanOrEqual richiedono entrambi gli operatori per implementare IComparable. + + Restituisce true se la condizione è stata soddisfatta. In caso contrario restituisce false. + + + + Garantisce che le eventuali associazioni sugli operandi DP siano aggiornate. + + + + + Recupera o imposta l'operando di sinistra. + + + + + Recupera o imposta l'operando di destra. + + + + + Recupera o impostare l'operatore di confronto. + + + + + Enumerazione di diversi operatori di confronto. + + + + + Questo metodo valuta gli operandi. + + Operando di sinistra dalla proprietà LeftOperand. + Operatore dalla proprietà Operator. + Operando di destra dalla proprietà RightOperand. + Restituisce true se la condizione è soddisfatta. In caso contrario restituisce false. + + + + Valuta entrambi gli operandi che implementano l'interfaccia IComparable. + + Operando di sinistra dalla proprietà LeftOperand. + Operatore dalla proprietà Operator. + Operando di destra dalla proprietà RightOperand. + Restituisce true se la condizione è soddisfatta. In caso contrario restituisce false. + + + + Concatenamento in avanti. + + + + + Rappresenta un'espressione condizionale che si imposta su una proprietà ConditionBehavior.Condition. Contiene un elenco di condizioni che viene valutato per restituire true o false per ICondition.Evaluate(). + + + + + Un'interfaccia che un oggetto specificato deve implementare per essere impostato su una proprietà ConditionBehavior.Condition. + + + + + Inizializza una nuova istanza della classe . + + + + + Esamina l'insieme di condizioni e valuta ciascuna di esse in base alla proprietà ForwardChaining. + + Restituisce true se le condizioni sono soddisfatte. In caso contrario restituisce false. + + + + Recupera o imposta il concatenamento in avanti per le condizioni. Se il concatenamento in avanti è impostato su ForwardChaining.And, devono essere soddisfatte tutte le condizioni. Se il concatenamento in avanti è impostato su ForwardChaining.Or, solo una di esse deve essere soddisfatta. + + + + + Restituisce gli insiemi di condizioni. + + + + + Un comportamento associato a un trigger che controlla le condizioni per generare le azioni. + + + + + + Inizializza una nuova istanza della classe . + + + + + Il gestore eventi in ascolto dell'evento che richiama l'anteprima, generato dal trigger. Se si imposta PreviewInvokeEventArgs.Cancelling su true, la chiamata verrà annullata. + + L'oggetto di base del trigger. + Un oggetto di tipo PreviewInvokeEventArgs dove e.Cancelling può essere impostato su true. + + + + Recupera o imposta l'oggetto IConditon sul comportamento. + + Il nome della condizione da modificare. + + + + Classe helper per la gestione delle espressioni di associazione su oggetti di dipendenza. + + + + + Garantisce che tutti i DP su un'azione con espressioni di associazione siano aggiornati. DataTrigger si attiva durante la fase di associazione dati. Poiché le azioni sono elementi figlio del trigger, eventuali associazioni sull'azione potrebbero non essere aggiornate. Questa routine viene chiamata prima che l'azione venga richiamata, affinché tutte le associazioni siano aggiornate con i dati più recenti. + + + + + Garantisce che tutte le espressioni di associazione sulle azioni siano aggiornate + + + + + Questa funzione helper garantisce che l'espressione di associazione sia aggiornata nel caso in cui una proprietà di dipendenza su un oggetto di dipendenza includa un'espressione di associazione. + + + + + + + Alterna tra due stati in base a un'istruzione condizionale. + + + + + Chiamato dopo che il comportamento è associato a un AssociatedObject. + + Sottoporre a override per eseguire l'hook della funzionalità all'elemento AssociatedObject. + + + + Una funzione helper in sostituzione di FrameworkElement.IsLoaded, proprietà non disponibile in Silverlight. + + L'elemento di interesse. + Restituisce true se l'elemento è stata caricato. In caso contrario restituisce false. + + + + Recupera o imposta l'associazione che genera il valore della proprietà dell'oggetto dati. Si tratta di una proprietà di dipendenza. + + + + + Recupera o imposta il valore da confrontare con il valore della proprietà dell'oggetto dati. Si tratta di una proprietà di dipendenza. + + + + + Recupera o imposta il nome dello stato di visualizzazione da attivare quando la condizione viene soddisfatta. Si tratta di una proprietà di dipendenza. + + + + + Recupera o imposta il nome dello stato di visualizzazione da attivare quando la condizione non viene soddisfatta. Si tratta di una proprietà di dipendenza. + + + + + Trigger concepito per l'associazione a una proprietà dell'archivio dati. Viene attivato in caso di modifica della proprietà. + + + + + Rappresenta un trigger che esegue azioni quando i dati associati vengono modificati. + + UA_REVIEW:chabiss + + + + Chiamato quando viene modificata la proprietà di associazione. UA_REVIEW:chabiss + + Argomento . + + + + Chiamato dopo che il trigger è associato a un AssociatedObject. UA_REVIEW:chabiss + + + + + Chiamato quando il trigger viene scollegato dal suo AssociatedObject, ma prima che questo si verifichi. UA_REVIEW:chabiss + + + + + Un oggetto di associazione che viene ascoltato dal trigger. In caso di modifica, il trigger viene attivato. + + UA_REVIEW:chabiss + + + + Rappresenta un trigger che esegue azioni quando i dati associati soddisfano una condizione specificata. + + + + + Chiamato quando viene modificata la proprietà di associazione. UA_REVIEW:chabiss + + Argomento . + + + + Recupera o imposta il valore da confrontare con il valore della proprietà dell'oggetto dati. Si tratta di una proprietà di dipendenza. + + + + + Recupera o imposta il tipo di confronto da eseguire tra i valori specificati. Si tratta di una proprietà di dipendenza. + + + + + ExtendedVisualStateManager è un elemento VisualStateManager personalizzato che consente di semplificare l'animazione di proprietà di layout. Grazie a questo elemento VisualStateManager personalizzato, gli stati possono includere modifiche a proprietà come Grid.Column, possono modificare le altezze elementi in o da Auto e così via. Queste modifiche verranno distribuite nel tempo utilizzando le funzioni GeneratedDuration e GeneratedEasingFunction della transizione appropriata. Per una descrizione generale dell'algoritmo, vedere la regione "Override di VisualStateManager" sottostante. + + + + + Un elemento VisualStateGroup che può utilizzare o meno FluidLayout. + + + + + La visibilità è nascosta da una proprietà personalizzata associata in fase di esecuzione. + + + + + VisualStateGroup mantiene un elenco di questi valori originali in una proprietà associata. + + + + + Per ogni stato, le proprietà specifiche del layout vengono estratte e quindi associate allo stato. Queste proprietà vengono rimosse dallo stato stesso. + + + + + Ricorda lo stato corrente. + + + + + L'effetto di transizione da utilizzare quando si modifica lo stato. + + + + + L'elemento TransitionEffectStoryboard in uso durante la modifica dello stato. + + + + + Lo sfondo memorizzato nella cache in uso durante la modifica dello stato. + + + + + Lo sfondo memorizzato nella cache in uso durante la modifica dello stato. + + + + + Lo sfondo memorizzato nella cache in uso durante la modifica dello stato. + + + + + Insieme di elementi attualmente in movimento. + + + + + Storyboard che anima la transizione. + + + + + Questo elenco contiene tutte le proprietà di layout conosciute. + + + + + Interrompere l'animazione e sostituire le modifiche layout apportate per supportare l'animazione. + + + + + Individuare la transizione utilizzata da VisualStateManager per animare la modifica, in modo che l'animazione del layout corrisponda in termini di durata e variazione. + + Il gruppo in cui viene eseguita la transizione. + Lo stato di provenienza. + Lo stato di destinazione. + La transizione + + + + Rimuovere tutte le proprietà che influenzano il layout dallo storyboard per lo stato e memorizzarle nella cache in una proprietà associata. + + Lo stato verso il quale ci si sposta. + Uno storyboard contenente le proprietà di layout in quello stato. + + + + L'insieme di elementi di destinazione è l'insieme di tutti gli elementi che possono essersi spostati in una transizione di layout. Questo insieme è la chiusura di: - Elementi con proprietà di layout animate nello stato. - Pari livello di elementi nell'insieme. - Padri di elementi nell'insieme. + + Il codice seguente esegue il controllo dei rettangoli prima e dopo la modifica del layout. + + Il controllo il cui layout cambia stato. + Lo storyboard contenente le modifiche di layout. + Eventuali valori precedenti da spostamenti di stato precedenti che possono essere ripristinati. + L'insieme di elementi attualmente in movimento, se è in corso una transizione di cambiamento di stato. + L'insieme completo di elementi il cui layout potrebbe essere cambiato. + + + + Recupera un insieme di rettangoli per tutti gli elementi nell'elenco di destinazione. + + L'insieme di elementi da considerare. + L'insieme di elementi attualmente in movimento. + Un dizionario che mappa gli elementi ai rispettivi elementi Rect. + + + + Recuperare il rettangolo di layout di un elemento, recuperando lo slot di layout e quindi calcolando la porzione dello slot in uso. + + L'elemento il cui elemento Rect di layout verrà recuperato. + L'elemento Rect di layout dell'elemento. + + + + Recuperare le opacità degli elementi al momento del cambiamento di stato, anziché le visibilità, poiché il cambiamento di stato può essere in corso e il valore corrente è il più importante. + + Il controllo il cui stato sta cambiando. + Lo storyboard con le proprietà di layout. + L'insieme di valori originali. + + + + + Esaminare lo storyboard del layout e impostare tutte le proprietà utilizzando SetValue per abilitare la chiamata UpdateLayout senza contrassegnare la sequenza temporale, che causerebbe un rendering. Tutti i valori sovrascritti verranno archiviati nella raccolta di OriginalValueRecords in modo da poter essere sostituiti in seguito. + + Il controllo il cui stato sta cambiando. + Lo storyboard contenente le proprietà del layout. + L'archivio di valori originali. + + + + Prendere tutti gli elementi che verranno spostati come risultato dell'animazione layout ed eseguire il wrapping degli stessi in pannelli Canvas in modo che non influenzino i loro elementi di pari livello. + + L'insieme di elementi che verranno spostati. + + + + Prendere tutti gli elementi che sono stati spostati come risultato dell'animazione layout e rimuovere il wrapping degli stessi dai loro pannelli Canvas. + + L'insieme di elementi che sono stati spostati. + + + + Copiare le proprietà del layout dall'elemento di origine nell'elemento di destinazione, cancellandole dall'origine. + + L'origine delle proprietà del layout. + La destinazione delle proprietà del layout. + + + + Creare lo storyboard effettivo che verrà utilizzato per animare la transizione. Utilizzare tutti i risultati calcolati in precedenza. + + La durata dell'animazione + La funzione di interpolazione da utilizzare nell'animazione. + L'insieme di elementi che verranno spostati. + Le vecchie opacità degli elementi le cui proprietà di visibilità sono cambiate. + Lo storyboard. + + + + OriginalValueRecord ricorda il valore originale di una proprietà cambiata in uno stato. + + + + + Questo tipo enumerato indica se un FluidMoveBehavior si applica all'elemento a cui è associato o al figlio dell'elemento. "Self" è utile quando esiste un singolo elemento che deve comportarsi in maniera speciale; "Children" è utile quando lo stesso comportamento si applica a tutti i figli di un WrapPanel o al pannello ItemsHost di un ItemsControl. + + + + + Questo tipo enumerato indica se un elemento è identificato da se stesso o dal proprio DataContext. L'identificazione di DataContext consente lo spostamento da una posizione basata su dati a un'altra. + + + + + Proprietà di dipendenza per l'ambito del comportamento. Per ulteriori dettagli, vedere FluidMoveScope. + + + + + Proprietà di dipendenza per lo stato attivo del comportamento. + + + + + Proprietà di dipendenza per poter utilizzare l'elemento come il proprio tag o l'associazione dell'elemento. + + + + + Proprietà di dipendenza per il percorso supplementare da aggiungere all'associazione quando UsaBindingAsTag è true. + + + + + Tag di identità utilizzato per rilevare il movimento di un elemento tra contenitori. + + + + + Indica se il comportamento si applica solo a questo elemento o a tutti i figli dell'elemento (se l'elemento è un pannello). + + + + + Indica se il comportamento è attualmente attivo. + + + + + Indica se utilizzare l'elemento come il proprio tag oppure utilizzare l'associazione dell'elemento come il tag. + + + + + Percorso aggiuntivo per aggiungere l'associazione quando TagType è specificato. + + + + + Struttura privata che memorizza tutti i dati rilevanti relativi a un elemento con tag. + + + + + Comportamento che controlla un elemento (o un insieme di elementi) per modifiche di layout e sposta l'elemento in modo graduale nella nuova posizione quando richiesto. Questo comportamento non anima la dimensione o visibilità di un elemento ma solo il suo scostamento all'interno del contenitore padre. + + + + + Proprietà di dipendenza per la durata dello spostamento. + + + + + Proprietà di dipendenza per il tipo di tag da utilizzare subito prima che l'oggetto venga caricato. + + + + + Proprietà di dipendenza per il percorso supplementare da aggiungere all'associazione quando UsaBindingAsTag è true. + + + + + Tag di identità utilizzato per rilevare il movimento di un elemento tra contenitori. + + + + + Proprietà di dipendenza per il flag FloatAbove. + + + + + Proprietà di dipendenza per la EasingFunction da utilizzare per la componente orizzontale dello spostamento. + + + + + Proprietà di dipendenza per la EasingFunction da utilizzare per la componente verticale dello spostamento. + + + + + Memorizza il popup/Adorner in uso in caso di movimento dell'elemento fra contenitori quando FloatAbove è true. + + + + + Cache di opacità utilizzata quando si sposta un popup. + + + + + Contrassegna la trasformazione dell'animazione. + + + + + La durata dello spostamento. + + + + + Punto di propagazione per questo elemento. + + + + + Percorso aggiuntivo per aggiungere l'associazione quando TagType è specificato. + + + + + Flag che indica se gli elementi possono spostarsi al di sopra del contenitore (in un popup o Adorner) quando passano a un altro contenitore. + + + + + EasingFunction da utilizzare per la componente orizzontale dello spostamento. + + + + + EasingFunction da utilizzare per la componente verticale dello spostamento. + + + + + Classe helper semplice che consente di utilizzare un elemento UIElements come Adorner. + + + + + Un'azione che esegue la transizione di un FrameworkElement a un VisualState specificato quando viene richiamata. + + + Se la proprietà TargetName è impostata, questa azione tenta di modificare lo stato dell'elemento di destinazione. In caso contrario, percorre la struttura di elementi nel tentativo di individuare una destinazione alternativa che definisce gli stati. ControlTemplate e UserControl sono due possibilità comuni. + + + + + Chiamato quando la destinazione cambia. Se la proprietà TargetName non è impostata, questa azione ha un comportamento personalizzato. + + + + Impossibile individuare un FrameworkElement appropriato con stati. + + + + Questo metodo è chiamato quando sono soddisfatti alcuni criteri e richiamata l'azione. + + + Impossibile modificare la destinazione nell'elemento StateName specificato. + + + + Determina se utilizzare o meno VisualTransition per la transizione tra stati. + + + + + Il nome di VisualState. + + + + + Un trigger che è attivato da un evento di tastiera. Viene attivato se vengono rilevati il tasto e i modificatori di destinazione. + + + + + Il tasto da premere per attivare il trigger. + + + + + I tasti modificatori che devono essere attivi per attivare il trigger (l'impostazione predefinita è nessun tasto modificatore premuto). + + + + + Se true, il trigger ascolta solo il suo oggetto origine trigger, il che significa che l'elemento deve essere attivo per attivare il trigger. Se false, il trigger ascolta alla radice, per cui qualsiasi messaggio KeyDown/Up non gestito verrà individuato. + + + + + Determina se ascoltare o meno l'evento KeyDown o KeyUp. + + + + + Un'azione che avvia un processo per aprire un file o Uri. Per i file, questa azione avvia il programma predefinito per l'estensione file specificata. Un Uri viene aperto in un browser web. + + + + + Questo metodo è chiamato quando sono soddisfatti alcuni criteri e richiamata l'azione. + + + + + + Il file o l'Uri da aprire. + + + + + Riposiziona l'elemento associato in risposta a movimenti di trascinamento con il mouse sull'elemento. + + + + + Proprietà di dipendenza per la posizione X dell'elemento trascinato, relativa al bordo sinistro dell'elemento radice. + + + + + Proprietà di dipendenza per la posizione Y dell'elemento trascinato, relativa al bordo superiore dell'elemento radice. + + + + + Proprietà di dipendenza per la proprietà ConstrainToParentBounds. Se true, l'elemento trascinato verrà vincolato a rimanere entro i limiti del suo contenitore padre. + + + + + Tentativi di aggiornare la posizione dell'elemento associato alle coordinate specificate. + + La posizione desiderata dell'elemento in coordinate radice. + + + + Applica una traslazione di posizione relativa all'elemento associato. + + Il componente X della traslazione desiderata in coordinate radice. + Il componente Y della traslazione desiderata in coordinate radice. + + + + Applica la traslazione specificata a RenderTransform dell'elemento associato. + + Il componente X della traslazione in coordinate padre. + Il componente Y della traslazione in coordinate padre. + + + + Una copia completa ricorsiva della trasformazione specificata. + + La trasformazione da clonare. + Una copia completa della trasformazione specificata, oppure null se la trasformazione specificata è null. + Eccezione generata se non viene riconosciuto il tipo di trasformazione. + + + + Aggiorna le proprietà X e Y in base alla posizione di rendering corrente dell'elemento associato. + + + + + Controlla se un rettangolo è contenuto da un altro. + + Il rettangolo contenente. + Il rettangolo contenuto. + True se rect1 contiene rect2. In caso contrario, False. + + + + Trasforma come vettore. + + La trasformazione. + Il componente X del vettore. + Il componente Y del vettore. + Un punto contenente i valori di X e Y trasformati da una trasformazione come un vettore. + + + + Recupera lo scostamento di trasformazione. + + La trasformazione. + Lo scostamento della trasformazione. + + + + Chiamato dopo che il comportamento è associato a un AssociatedObject. + + Sottoporre a override per eseguire l'hook della funzionalità all'elemento AssociatedObject. + + + + Chiamato quando il comportamento si sta scollegando dal suo AssociatedObject, ma prima che questo si verifichi. + + Sottoporre a override per eseguire l'unhook della funzionalità dall'elemento AssociatedObject. + + + + Si verifica quando viene iniziato un movimento di trascinamento. + + + + + Si verifica quando viene elaborato un aggiornamento del movimento di trascinamento. + + + + + Si verifica quando un movimento di trascinamento è terminato. + + + + + Recupera o imposta la posizione X dell'elemento trascinato, relativa al bordo sinistro dell'elemento radice. Si tratta di una proprietà di dipendenza. + + + + + Recupera o imposta la posizione Y dell'elemento trascinato, relativa al bordo sinistro dell'elemento radice. Si tratta di una proprietà di dipendenza. + + + + + Recupera o imposta un valore che indica se l'elemento trascinato è vincolato a rimanere entro i limiti del suo contenitore padre. Si tratta di una proprietà di dipendenza. + + + True se l'elemento trascinato deve essere vincolato ai suoi limiti padre. In caso contrario, False. + + + + + Recupera la posizione su schermo dell'elemento associato in coordinate radice. + + La posizione su schermo dell'elemento associato in coordinate radice. + + + + Recupera i limiti elemento in coordinate elemento. + + I limiti elemento in coordinate elemento. + + + + Recupera l'elemento padre dell'oggetto associato. + + L'elemento padre dell'oggetto associato. + + + + Recupera l'elemento radice della scena in cui si trova l'oggetto associato. + + L'elemento radice della scena in cui si trova l'oggetto associato. + + + + Recupera e imposta RenderTransform dell'elemento associato. + + + + + Un'azione che riproduce un suono al completamento. + + + Questa azione è destinata all'utilizzo con effetti sonori brevi che non devono essere interrotti o controllati. Se si cerca di creare un lettore musicale o un gioco, potrebbe non soddisfare le esigenze dell'utente. + + + + + Inizializza una nuova istanza della classe . + + + + + Quando viene richiamata l'azione, questo metodo è utilizzato per personalizzare l'elemento MediaElement creato dinamicamente. + + + Questo metodo può essere utile per gli autori di azioni che desiderano estendere PlaySoundAction. Se si desidera controllare la proprietà MediaElement Balance, è possibile ereditare da PlaySoundAction ed eseguire l'override del metodo. + + + + + + Questo metodo è chiamato quando sono soddisfatti alcuni criteri e deve essere richiamata l'azione. + + + Ogni chiamata dell'azione genera un nuovo suono. Sebbene l'implementazione sia soggetta a modifiche, il chiamante deve prevedere che questa azione crea un nuovo MediaElement, che verrà eliminato alla fine del suono o se non è possibile riprodurre l'elemento multimediale. + + + + + + Un Uri che definisce il percorso del file audio. È utilizzato per impostare la proprietà origine del MediaElement. Si tratta di una proprietà di dipendenza. + + + Il formato file del suono può essere uno di quelli supportati da MediaElement. Nel caso di un video, verrà riprodotta solo la porzione audio. + + + + + Controlla il volume del suono. È utilizzato per impostare la proprietà Volume di MediaElement. Si tratta di una proprietà di dipendenza. + + + + + Un'azione che, quando richiamata, rimuove l'elemento di destinazione dalla struttura. + + + Questa azione potrebbe non riuscire. L'azione consente di rimuovere elementi da padri comuni ma non da raccolte personalizzate o manipolazione diretta della struttura ad albero visiva. + + + + + Un'azione che modifica il valore di una proprietà da un oggetto dell'archivio dati. Questa classe è identica a ChangePropertyAction. Si distingue unicamente per il fatto che per questa azione viene caricata la selezione archivio dati. + + + + + Una classe astratta che offre la possibilità di utilizzare come destinazione uno storyboard. + + + Per gli autori di azioni, questa classe offre un modo standard per utilizzare come destinazione uno storyboard. È possibile scegliere strumenti di progettazione per offrire un'esperienza di modifica speciale per classi che ereditano da questa azione, migliorando pertanto l'esperienza del progettista. + + + + + Questo metodo viene chiamato quando la proprietà Storyboard viene modificata. + + + + + + Lo storyboard di destinazione. Si tratta di una proprietà di dipendenza. + + + + + Un'azione che cambia lo stato di uno storyboard di destinazione quando richiamata. + + + + + Questo metodo viene chiamato quando sono soddisfatti alcuni criteri e deve essere richiamata l'azione. Questo metodo tenta di modificare lo storyboard di destinazione in un modo definito da ControlStoryboardOption. + + + + + + Una classe astratta che offre la possibilità di utilizzare come destinazione uno storyboard. + + + Per gli autori di trigger, questa classe offre un modo standard per utilizzare come destinazione uno storyboard. È possibile scegliere strumenti di progettazione per offrire un'esperienza di modifica speciale per classi che ereditano da questo trigger, migliorando pertanto l'esperienza del progettista. + + + + + Questo metodo viene chiamato quando la proprietà Storyboard viene modificata. + + + + + Lo storyboard di destinazione. Si tratta di una proprietà di dipendenza. + + + + + Un trigger che rimane in ascolto del completamento di uno storyboard. + + + + + Inizializza una nuova istanza della classe . + + + + + Un trigger che viene attivato quando si verifica un evento specificato nella sua origine e che si attiva dopo un ritardo quando l'evento viene attivato. + + + + + Inizializza una nuova istanza della classe . + + + + + Recupera o imposta il numero di millisecondi di attesa tra un segno di graduazione e l'altro. Si tratta di una proprietà di dipendenza. + + + + + Recupera o imposta il numero totale di cicli macchina da attivare prima che il trigger sia terminato. Si tratta di una proprietà di dipendenza. + + + + + Definisce uno shader per l'effetto di transizione che esegue la transizione da un elemento visivo a un altro utilizzando un valore interpolato compreso tra 0 e 1 + + + + + Proprietà con valore Brush trasformate in proprietà sampler nello shader. Rappresenta l'immagine presente nello stato finale della transizione. + + + + + Proprietà con valore Brush trasformate in proprietà sampler nello shader. Rappresenta l'immagine presente nello stato iniziale della transizione. + + + + + Una proprietà di dipendenza come archivio corrispondente per Progress. Viene utilizzato inoltre per rappresentare lo stato di transizione dall'inizio alla fine (intervallo compreso tra 0 e 1) + + + + + Crea un clone modificabile (copia completa) dell'elemento utilizzando i valori correnti. + + + + + Esegue una copia completa dell'effetto di transizione. Implementa CloneCurrentValue in Silverlight. + + Un clone dell'istanza corrente dell'effetto geometria. + + + + Aggiorna le variabili dello shader ai valori predefiniti. + + + + + Recupera o imposta la variabile Input nello shader. + + + + + Recupera o imposta la variabile OldImage nello shader. + + + + + Recupera o imposta la variabile Progress nello shader. + + + + + Consente di utilizzare movimenti tocco comuni per traslazioni, zoom e rotazioni dell'oggetto collegato. + + + + + Chiamato dopo che il comportamento è associato a un AssociatedObject. + + Sottoporre a override per eseguire l'hook della funzionalità all'elemento AssociatedObject. + + + + Chiamato quando il comportamento si sta scollegando dal suo AssociatedObject, ma prima che questo si verifichi. + + Sottoporre a override per eseguire l'unhook della funzionalità dall'elemento AssociatedObject. + + + + Recupera o imposta un valore che specifica quali varianti supportare per zoom e traslazione. + + + + + Recupera o imposta un numero che descrive la frequenza di diminuzione della traslazione. + + + + + Recupera o imposta un numero che descrive la frequenza di diminuzione della rotazione. + + + + + Recupera o imposta il valore che indica se la posizione di zoom e traslazione dell'oggetto associato è vincolata ai limiti dell'oggetto padre. + + + + + Recupera o imposta un numero che indica il valore di zoom minimo consentito. + + + + + Recupera o imposta un numero che indica il valore di zoom massimo consentito. + + + + + Questa classe fornisce varie operazioni standard non vincolate ad alcuna piattaforma specifica per utilizzare VisualStateManager. + + + + + Esegue la transizione del controllo tra due stati. + + L'elemento oggetto della transizione tra due stati. + Lo stato finale della transizione. + True per utilizzare System.Windows.VisualTransition per la transizione tra stati. In caso contrario, false. + True se il controllo esegue correttamente la transizione al nuovo stato. In caso contrario, false. + Il controllo è null. + StateName è null. + + + + Recupera il valore della proprietà associata VisualStateManager.VisualStateGroups. + + L'elemento da cui recuperare la proprietà VisualStateManager.VisualStateGroups. + + + + + Trova l'elemento padre più vicino che contiene gli stati visivi. + + L'elemento in cui trovare il controllo con stato più vicino. + Il controllo con stato più vicino, se è true. In caso contrario, null. + True se un elemento padre contiene stati visivi. In caso contrario, false. + + + + Una classe di risorse fortemente tipizzata per la ricerca di stringhe localizzate e così via. + + + + + Restituisce l'istanza ResourceManager memorizzata nella cache utilizzata da questa classe. + + + + + Esegue l'override della proprietà CurrentUICulture del thread corrente per tutte le ricerche di risorse eseguite utilizzando questa classe di risorse fortemente tipizzata. + + + + + Ricerca una stringa localizzata simile a Impossibile trovare il metodo denominato '{0}' nell'oggetto di tipo '{1}' che corrisponde alla firma prevista. + + + + + Ricerca una stringa localizzata simile a Individuati più operatori di addizione potenziali per il tipo '{0}'. + + + + + Ricerca una stringa localizzata simile a Impossibile animare una modifica di proprietà per una Destinazione di tipo '{0}'. Le modifiche delle proprietà possono essere animate solo per i tipi derivati da DependencyObject. + + + + + Ricerca una stringa localizzata simile a Impossibile trovare una proprietà denominata "{0}" nel tipo "{1}". + + + + + Ricerca una stringa localizzata simile a La proprietà Increment non può essere impostata su True se è impostata la proprietà Duration. + + + + + Ricerca una stringa localizzata simile a Impossibile incrementare la proprietà '{0}' in quanto è impossibile leggerne il valore. + + + + + Ricerca una stringa localizzata simile a Impossibile assegnare un valore di tipo "{0}" alla proprietà "{1}" di tipo "{2}". È possibile assegnare alla proprietà "{1}" solo valori di tipo "{2}". + + + + + Ricerca una stringa localizzata simile a La proprietà "{0}" definita dal tipo "{1}" non espone un metodo set, pertanto non può essere modificata. + + + + + Ricerca una stringa localizzata simile a Impossibile trovare lo stato denominato '{0}' per il tipo '{1}'. Assicurarsi che lo stato esista e che sia accessibile da questo contesto. + + + + + Ricerca una stringa localizzata simile a La destinazione {0} non definisce alcun elemento VisualStateGroups. . + + + + + Ricerca una stringa localizzata simile a Impossibile utilizzare LeftOperand di tipo "{0}" con l'operatore "{1}". + + + + + Ricerca una stringa localizzata simile a Impossibile utilizzare LeftOperand di tipo "{1}" e RightOperand di tipo "{0}" con l'operatore "{2}". + + + + + Ricerca una stringa localizzata simile a Impossibile utilizzare RightOperand di tipo "{0}" con l'operatore "{1}". + + + + + Ricerca una stringa localizzata simile a La destinazione di RemoveElementAction non è supportata. + + + + diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/it/Microsoft.Expression.Prototyping.Interactivity.resources.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/it/Microsoft.Expression.Prototyping.Interactivity.resources.dll new file mode 100644 index 0000000..9d147d7 Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/it/Microsoft.Expression.Prototyping.Interactivity.resources.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/it/System.Windows.Interactivity.resources.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/it/System.Windows.Interactivity.resources.dll new file mode 100644 index 0000000..758cb54 Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/it/System.Windows.Interactivity.resources.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/it/System.Windows.Interactivity.xml b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/it/System.Windows.Interactivity.xml new file mode 100644 index 0000000..89997f6 --- /dev/null +++ b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/it/System.Windows.Interactivity.xml @@ -0,0 +1,1046 @@ + + + + System.Windows.Interactivity + + + + + Rappresenta una raccolta di IAttachedObject con un AssociatedObject condiviso e offre notifiche di modifica del suo contenuto quando AssociatedObject cambia. + + + + + Un'interfaccia per un oggetto che può essere associata a un altro oggetto. + + + + + Associa all'oggetto specificato. + + L'oggetto a cui associarsi. + + + + Scollega questa istanza dall'oggetto associato. + + + + + Recupera l'oggetto associato. + + L'oggetto associato. + Rappresenta l'oggetto a cui l'istanza è associata. + + + + Inizializza una nuova istanza della classe . + + Interna, perché non deve essere ereditata al di fuori di questo assembly. + + + + Chiamato immediatamente dopo che la raccolta è associata a un AssociatedObject. + + + + + Chiamato quando la raccolta viene scollegata dal suo AssociatedObject, ma prima che questo si verifichi. + + + + + Chiamato quando un nuovo elemento viene aggiunto alla raccolta. + + Il nuovo elemento. + + + + Chiamato quando un elemento viene rimosso dalla raccolta. + + L'elemento rimosso. + + + Impossibile aggiungere l'istanza a una raccolta più di una volta. + + + + Associa all'oggetto specificato. + + L'oggetto a cui associarsi. + IAttachedObject è già collegato a un oggetto diverso. + + + + Scollega questa istanza dall'oggetto associato. + + + + + L'oggetto su cui la raccolta è ospitata. + + + + + Recupera l'oggetto associato. + + L'oggetto associato. + + + + Incapsula informazioni di stato e zero o più ICommands in un oggetto associabile. + + Il tipo a cui è associabile. + + Behavior è la classe base per fornire stato e comandi associabili a un oggetto. I tipi a cui Behavior può essere associato possono essere controllati dal parametro generic. Eseguire l'override dei metodi OnAttached() e OnDetaching() per eseguire l'hook e l'unhook degli eventuali gestori necessari dall'elemento AssociatedObject. + + + + + Incapsula informazioni di stato e zero o più ICommands in un oggetto associabile. + + Questa è una classe infrastruttura. Gli autori di comportamenti devono derivare da Behavior<T> invece che da questa classe. + + + + Chiamato dopo che il comportamento è associato a un AssociatedObject. + + Sottoporre a override per eseguire l'hook della funzionalità all'elemento AssociatedObject. + + + + Chiamato quando il comportamento viene scollegato dal suo AssociatedObject, ma prima che questo si verifichi. + + Sottoporre a override per eseguire l'unhook della funzionalità dall'elemento AssociatedObject. + + + + Associa all'oggetto specificato. + + L'oggetto a cui associarsi. + Il Behavior è già ospitato su un elemento diverso. + dependencyObject non soddisfa il vincolo di tipo Behavior. + + + + Scollega questa istanza dall'oggetto associato. + + + + + Il tipo a cui è possibile associare questo comportamento. + + + + + Recupera l'oggetto a cui questo comportamento è associato. + + + + + Recupera l'oggetto associato. + + L'oggetto associato. + + + + Inizializza una nuova istanza della classe . + + + + + Recupera l'oggetto a cui questo comportamento è associato. + + + + + Rappresenta una raccolta di comportamenti con un AssociatedObject condiviso e offre notifiche di modifica del suo contenuto quando AssociatedObject cambia. + + + + + Inizializza una nuova istanza della classe . + + Interna, perché non deve essere ereditata al di fuori di questo assembly. + + + + Chiamato immediatamente dopo che la raccolta è associata a un AssociatedObject. + + + + + Chiamato quando la raccolta viene scollegata dal suo AssociatedObject, ma prima che questo si verifichi. + + + + + Chiamato quando un nuovo elemento viene aggiunto alla raccolta. + + Il nuovo elemento. + + + + Chiamato quando un elemento viene rimosso dalla raccolta. + + L'elemento rimosso. + + + + Crea una nuova istanza di BehaviorCollection. + + La nuova istanza. + + + + Enumera possibili valori per editor del valore di proprietà riutilizzabili. + + + + + Utilizza la selezione elemento, se supportata, per modificare questa proprietà in fase di progettazione. + + + + + Utilizza la selezione storyboard, se supportata, per modificare questa proprietà in fase di progettazione. + + + + + Utilizza la selezione stato, se supportata, per modificare questa proprietà in fase di progettazione. + + + + + Utilizza la selezione associazione elemento, se supportata, per modificare questa proprietà in fase di progettazione. + + + + + Utilizza la selezione associazione proprietà, se supportata, per modificare questa proprietà in fase di progettazione. + + + + + Associa il tipo di editor specificato con la proprietà in cui CustomPropertyValueEditor è applicato. + + Utilizzare questo attributo per ottenere una modifica in fase di progettazione migliorata per proprietà che denotano elementi (per nome), storyboard o stati (per nome). + + + + Inizializza una nuova istanza della classe . + + L'editor del valore di proprietà personalizzato. + + + + Recupera o imposta l'editor del valore di proprietà personalizzato. + + L'editor del valore di proprietà personalizzato. + + + + Fornisce informazioni strumenti di progettazione su cosa creare un'istanza per un'azione o comando specificato. + + + + + Inizializza una nuova istanza della classe . + + Il tipo a cui si applica l'attributo. + Il tipo di di cui creare un'istanza. + Un argomento singolo per il specificato. + non è derivato da TriggerBase. + Questo costruttore è utile se il specificato dispone di un singolo argomento. Il codice risultante sarà conforme a CLS. + + + + Inizializza una nuova istanza della classe . + + Il tipo a cui si applica l'attributo. + Il tipo di di cui creare un'istanza. + Gli argomenti del costruttore per il specificato. + non è derivato da TriggerBase. + + + + Crea un'istanza di questa istanza. + + Il specificato da DefaultTriggerAttribute. + + + + Recupera il tipo a cui si applica questo DefaultTriggerAttribute. + + Il tipo a cui si applica questo DefaultTriggerAttribute. + + + + Recupera il tipo di di cui creare un'istanza. + + Il tipo di di cui creare un'istanza. + + + + Recupera i parametri da passare al costruttore . + + I parametri da passare al costruttore . + + + + Questo metodo utilizzerà il metodo VisualTreeHelper.GetParent per eseguire una ricerca in profondità nella struttura ad albero visuale e restituire tutti i predecessori dell'oggetto specificato, incluso l'oggetto stesso. + + L'oggetto nella struttura ad albero visuale per trovare i relativi predecessori. + Restituisce se stesso e tutti i predecessori nella struttura ad albero visuale. + + + + EventObserver è concepito per semplificare la gestione dei gestori di eventi interrompendo il collegamento quando vengono eliminati. Creando questo oggetto si eseguirà il collegamento anche nel costruttore. + + + + + Crea un'istanza di EventObserver e la associa all'evento fornito nella destinazione specificata. Chiama Dispose per interrompere il collegamento. + + L'evento da collegare e scollegare. + L'oggetto di destinazione in base al quale l'evento viene definito. Valore null se il metodo è statico. + Il delegato da associare all'evento. + + + + Scollega il gestore dall'evento. + + + + + Un trigger che ascolta un evento specificato sulla sua origine e si attiva quando l'evento viene attivato. + + + + + Rappresenta un trigger che può ascoltare un elemento diverso da AssociatedObject. + + Il tipo a cui è possibile associare il trigger. + + EventTriggerBase estende TriggerBase per aggiungere informazioni di un altro oggetto diverso da quello a cui è associato. Questo consente a un utente di associare una coppia trigger/azione a un solo oggetto e richiamare l'azione in risposta a una modifica in un altro elemento da qualche altra parte. Sottoporre a override OnSourceChanged per eseguire l'hook e l'unhook del gestori sull'elemento di origine e OnAttached/OnDetaching per l'elemento associato. Il tipo dell'elemento di origine può essere vincolato dal parametro di tipo generic. Se è necessario il controllo sul tipo di AssociatedObject, impostare un TypeConstraintAttribute sul tipo derivato. + + + + + Rappresenta un trigger che può ascoltare un oggetto diverso da AssociatedObject. + + Questa è una classe infrastruttura. Gli autori di trigger devono derivare da EventTriggerBase<T> invece che da questa classe. + + + + Rappresenta un oggetto che può richiamare azioni in maniera condizionale. + + Questa è una classe infrastruttura. Gli autori di trigger devono derivare da Trigger<T> invece che da questa classe. + + + + Richiama tutte le azioni associate a questo trigger. + + Deve essere chiamato dalle classi derivate per attivare il trigger. + + + + Chiamato dopo che il trigger è associato a un AssociatedObject. + + + + + Chiamato quando il trigger viene scollegato dal suo AssociatedObject, ma prima che questo si verifichi. + + + + + Crea una nuova istanza della classe derivata TriggerBase. + + La nuova istanza. + + + + Associa all'oggetto specificato. + + L'oggetto a cui associarsi. + Impossibile ospitare lo stesso Trigger su più di un oggetto per volta. + dependencyObject non soddisfa il vincolo di tipo Trigger. + + + + Scollega questa istanza dall'oggetto associato. + + + + + Recupera l'oggetto a cui il trigger è associato. + + L'oggetto associato. + + + + Recupera il vincolo di tipo dell'oggetto associato. + + Il vincolo di tipo dell'oggetto associato. + + + + Recupera le azioni associate a questo trigger. + + Le azioni associate a questo trigger. + + + + Gestore di eventi per la registrazione in PreviewInvoke. + + + + + Recupera l'oggetto associato. + + L'oggetto associato. + + + + Specifica il nome dell'evento ascoltato da EventTriggerBase. + + + + + + Chiamato quando viene attivato l'evento associato con questo EventTriggerBase. Per impostazione predefinita, questa operazione richiama tutte le azioni sul trigger. + + L'istanza contenente i dati evento. + Eseguire l'override per offrire un controllo più granulare quando le azioni associate a questo trigger vengono richiamate. + + + + Chiamato quando l'origine cambia. + + La vecchia origine. + La nuova origine. + Eseguire l'override di questa funzione in classi derivate per eseguire l'hook e l'unhook della funzionalità dagli oggetti origine modificati. + + + + Chiamato dopo che il trigger è associato a un AssociatedObject. + + + + + Chiamato quando il trigger viene scollegato dal suo AssociatedObject, ma prima che questo si verifichi. + + + + Impossibile trovare eventName sulla destinazione. + + + + Recupera il vincolo di tipo dell'oggetto associato. + + Il vincolo di tipo dell'oggetto associato. + Definire un TypeConstraintAttribute su un tipo derivato per vincolare i tipi a cui può essere associato. + + + + Recupera il vincolo di tipo origine. + + Il vincolo di tipo origine. + + + + Recupera o imposta l'oggetto di destinazione. Se TargetObject non è impostato, la destinazione cercherà l'oggetto specificato da TargetName. Se non è possibile trovare un elemento a cui fa riferimento TargetName, la destinazione verrà impostata su AssociatedObject. Si tratta di una proprietà di dipendenza. + + L'oggetto di destinazione. + + + + Recupera o imposta il nome dell'elemento ascoltato da EventTriggerBase come un'origine. Se il nome non è impostato o non può essere risolto, verrà utilizzato AssociatedObject. Si tratta di una proprietà di dipendenza. + + Il nome dell'elemento di origine. + + + + Recupera l'origine risolta. Se l'impostazione di è annullata o non può essere risolto, si assume come valore AssociatedObject. + + L'oggetto di origine risolto. + In generale, questa proprietà deve essere utilizzata al posto di AssociatedObject nelle classi derivate. + L'elemento a cui fa riferimento non soddisfa il vincolo di tipo. + + + + Inizializza una nuova istanza della classe . + + + + + Chiamato quando la proprietà origine cambia. + + Sottoporre a override per eseguire l'hook e l'unhook della funzionalità dall'origine specificata, anziché da AssociatedObject. + La vecchia origine. + La nuova origine. + + + + Recupera l'origine risolta. Se l'impostazione di è annullata o non può essere risolto, si assume come valore AssociatedObject. + + L'oggetto di origine risolto. + In generale, questa proprietà deve essere utilizzata al posto di AssociatedObject nelle classi derivate. + + + + Inizializza una nuova istanza della classe . + + + + + Inizializza una nuova istanza della classe . + + Nome dell'evento. + + + + Recupera o imposta il nome dell'evento da ascoltare. Si tratta di una proprietà di dipendenza. + + Il nome dell'evento. + + + + Classe statica a cui appartengono le proprietà associate Triggers e Behaviors. Gestisce la propagazione delle notifiche di modifica AssociatedObject. + + + + + Questa proprietà è utilizzata come archivio di backup interno per la proprietà associata Triggers pubblica. + + + Questa proprietà non è esposta pubblicamente. Questo forza i client a utilizzare i metodi GetTriggers e SetTriggers per accedere alla raccolta, verificando che la raccolta esiste e che è impostata prima che sia utilizzata. + + + + + Questa proprietà è utilizzata come archivio di backup interno per la proprietà associata Behaviors pubblica. + + + Questa proprietà non è esposta pubblicamente. Questo forza i client a utilizzare i metodi GetBehaviors e SetBehaviors per accedere alla raccolta, verificando che la raccolta esiste e che è impostata prima che sia utilizzata. + + + + + Recupera la TriggerCollection contenente i trigger associati con l'oggetto specificato. + + L'oggetto da cui recuperare i trigger. + Una TriggerCollection contenente i trigger associati con l'oggetto specificato. + + + + Recupera la associata con un oggetto specificato. + + L'oggetto da cui recuperare la . + Una contenente i comportamenti associati con l'oggetto specificato. + + + Impossibile ospitare la stessa BehaviorCollection su più di un oggetto alla volta. + + + Impossibile ospitare la stessa TriggerCollection su più di un oggetto alla volta. + + + + Una funzione helper in sostituzione di FrameworkElement.IsLoaded, proprietà non disponibile in Silverlight. + + L'elemento di interesse. + True se l'elemento è stato caricato. In caso contrario, false. + + + + Recupera o imposta un valore che indica se eseguire come in modalità progettazione. + + + True se [eseguire in modalità progettazione]. In caso contrario, False. + + Da non utilizzare al di fuori delle unit test. + + + + Quando viene richiamato esegue un ICommand specificato. + + + + + Rappresenta un oggetto associabile che incapsula un'unità di funzionalità. + + Il tipo a cui è possibile associare questa azione. + + + + Rappresenta un oggetto associabile che incapsula un'unità di funzionalità. + + Questa è una classe infrastruttura. Gli autori di azioni devono derivare da TriggerAction<T> invece che da questa classe. + + + + Tenta di richiamare l'azione. + + Il parametro dell'azione. Se l'azione non richiede un parametro, è possibile impostare il parametro su un riferimento con valore null. + + + + Richiama l'azione. + + Il parametro dell'azione. Se l'azione non richiede un parametro, è possibile impostare il parametro su un riferimento con valore null. + + + + Chiamato dopo che l'azione è associata a un AssociatedObject. + + + + + Chiamato quando l'azione viene scollegata dal proprio AssociatedObject, ma prima che questo si verifichi. + + + + + Se implementata in una classe derivata, crea una nuova istanza della classe derivata . + + La nuova istanza. + + + + Associa all'oggetto specificato. + + L'oggetto a cui associarsi. + Impossibile ospitare la stessa TriggerAction su più di un oggetto per volta. + dependencyObject non soddisfa il vincolo di tipo TriggerAction. + + + + Scollega questa istanza dall'oggetto associato. + + + + + Recupera o imposta un valore che indica se l'azione viene eseguita quando richiamata. Si tratta di una proprietà di dipendenza. + + + True se l'azione viene eseguita quando richiamata. In caso contrario, False. + + + + + Recupera l'oggetto a cui questa azione è associata. + + L'oggetto associato. + + + + Recupera il vincolo di tipo dell'oggetto associato. + + Il vincolo di tipo dell'oggetto associato. + + + + Recupera o imposta un valore che indica se questa istanza è associata. + + True se questa istanza è associata. In caso contrario, False. + + + + Recupera l'oggetto associato. + + L'oggetto associato. + + + + Inizializza una nuova istanza della classe . + + + + + Recupera l'oggetto a cui questa azione è associata. + + L'oggetto associato. + + + + Recupera il vincolo di tipo dell'oggetto associato. + + Il vincolo di tipo dell'oggetto associato. + + + + Richiama l'azione. + + Il parametro dell'azione. Se l'azione non richiede un parametro, è possibile impostare il parametro su un riferimento con valore null. + + + + Recupera o imposta il nome del comando che questa azione deve richiamare. + + Il nome del comando che questa azione deve richiamare. + Questa proprietà prevarrà sulla proprietà Command se entrambe sono impostate. + + + + Recupera o imposta il comando che questa azione deve richiamare. Si tratta di una proprietà di dipendenza. + + Il comando da eseguire. + Questa proprietà avrà la precedenza sulla proprietà CommandName se entrambe sono impostate. + + + + Recupera o imposta il parametro comando. Si tratta di una proprietà di dipendenza. + + Il parametro comando. + Questo è il valore passato a ICommand.CanExecute e ICommand.Execute. + + + + Offre dati riguardo gli oggetti interessati durante la risoluzione di una modifica nome. + + + + + Classe helper per gestire la logica di risoluzione di TargetName in un elemento di destinazione in base al contesto fornito da un elemento host. + + + + + Tenta di aggiornare l'oggetto risolto dal nome all'interno del contesto dell'elemento di riferimento NameScope. + + Il vecchio oggetto risolto. + + Ripristina la destinazione esistente e tenta di risolvere il TargetName corrente dal contesto dell'host corrente. Se non può essere risolto dal contesto dell'host, continua a risalire la struttura ad albero visivo fino a quando non viene risolto. Se non è stato risolto quando raggiunge la radice, imposta la destinazione su null e scrive un messaggio di avviso nell'output di debug. + + + + + Si verifica quando l'elemento risolto è cambiato. + + + + + Recupera o imposta il nome dell'elemento per cercare di risolverlo. + + Il nome che si tenta di risolvere. + + + + L'oggetto risolto. Restituisce l'elemento di riferimento se TargetName è null o vuoto, oppure se non è stata tentata una risoluzione. + + + + + Recupera o imposta l'elemento di riferimento da cui eseguire la risoluzione del nome. + + L'elemento di riferimento. + + + + Recupera o imposta un valore che indica se il caricamento dell'elemento di riferimento è sospeso. + + + True se [caricamento elemento di riferimento sospeso]. In caso contrario, False. + + + Se l'host non è stato caricato, il nome non verrà risolto. In questo caso, ritardare la risoluzione e tracciare il fatto con questa proprietà. + + + + + Rappresenta un'azione che può essere utilizzata come destinazione per influenzare un oggetto diverso dal suo AssociatedObject. + + Il vincolo di tipo sulla destinazione. + + TargetedTriggerAction estende TriggerAction per aggiungere informazioni di un altro elemento rispetto a quello a cui è associato. Questo consente a un utente di invocare l'azione su un elemento diverso da quello a cui è associato in risposta a un'attivazione di trigger. Eseguire l'override di OnTargetChanged per eseguire l'hook e l'unhook dei gestori sull'elemento di destinazione e l'override di OnAttached/OnDetaching per l'elemento associato. Il tipo di elemento di destinazione può essere vincolato dal parametro di tipo generic. Se è necessario il controllo sul tipo di AssociatedObject, impostare un TypeConstraintAttribute sul tipo derivato. + + + + + Rappresenta un'azione che può essere utilizzata come destinazione per influenzare un oggetto diverso dal suo AssociatedObject. + + Questa è una classe infrastruttura. Gli autori di azioni devono derivare da TargetedTriggerAction<T> invece che da questa classe. + + + + Chiamato quando la destinazione cambia. + + La vecchia destinazione. + La nuova destinazione. + Eseguire l'override di questa funzione in classi derivate per eseguire l'hook e l'unhook della funzionalità dagli oggetti origine modificati. + + + + Chiamato dopo che l'azione è associata a un AssociatedObject. + + + + + Chiamato quando l'azione viene scollegata dal proprio AssociatedObject, ma prima che questo si verifichi. + + + + + Recupera o imposta l'oggetto di destinazione. Se TargetObject non è impostato, la destinazione cercherà l'oggetto specificato da TargetName. Se non è possibile trovare un elemento a cui fa riferimento TargetName, la destinazione verrà impostata su AssociatedObject. Si tratta di una proprietà di dipendenza. + + L'oggetto di destinazione. + + + + Recupera o imposta il nome dell'oggetto di destinazione di questa azione. Se Target è impostata, questa proprietà viene ignorata. Se Target non è impostata e TargetName non è impostata o non può essere risolta, la destinazione verrà impostata su AssociatedObject. Si tratta di una proprietà di dipendenza. + + Il nome dell'oggetto di destinazione. + + + + Recupera l'oggetto di destinazione. Se TargetObject è impostata, restituisce TargetObject. Se invece TargetName non è impostata o non può essere risolta, si assume come valore AssociatedObject. + + L'oggetto di destinazione. + In generale, questa proprietà deve essere utilizzata al posto di AssociatedObject nelle classi derivate. + L'elemento di destinazione non soddisfa il vincolo di tipo. + + + + Recupera il vincolo di tipo dell'oggetto associato. + + Il vincolo di tipo dell'oggetto associato. + Definire un TypeConstraintAttribute su un tipo derivato per vincolare i tipi a cui può essere associato. + + + + Recupera il vincolo di tipo destinazione. + + Il vincolo di tipo destinazione. + + + + Inizializza una nuova istanza della classe . + + + + + Chiamato quando la proprietà di destinazione cambia. + + Sottoporre a override per eseguire l'hook e l'unhook della funzionalità sulla destinazione specificata, anziché su AssociatedObject. + La vecchia destinazione. + La nuova destinazione. + + + + Recupera l'oggetto di destinazione. Se TargetName non è impostata o non può essere risolta, si assume come valore AssociatedObject. + + La destinazione. + In generale, questa proprietà deve essere utilizzata al posto di AssociatedObject nelle classi derivate. + + + + Rappresenta una raccolta di azioni con un AssociatedObject condiviso e offre notifiche di modifica al suo contenuto quando AssociatedObject cambia. + + + + + Inizializza una nuova istanza della classe . + + Interna, perché non deve essere ereditata al di fuori di questo assembly. + + + + Chiamato immediatamente dopo che la raccolta è associata a un AssociatedObject. + + + + + Chiamato quando la raccolta viene scollegata dal suo AssociatedObject, ma prima che questo si verifichi. + + + + + Chiamato quando un nuovo elemento viene aggiunto alla raccolta. + + Il nuovo elemento. + + + + Chiamato quando un elemento viene rimosso dalla raccolta. + + L'elemento rimosso. + + + + Crea una nuova istanza della TriggerActionCollection. + + La nuova istanza. + + + + Rappresenta un oggetto che può richiamare azioni in maniera condizionale. + + Il tipo a cui è possibile associare questo trigger. + + TriggerBase è la classe base per il controllo delle azioni. Eseguire l'override dei metodi OnAttached() e OnDetaching() per eseguire l'hook e l'unhook dei gestori sull'elemento AssociatedObject. È possibile vincolare i tipi a cui associare un TriggerBase derivato specificando il parametro generic. Richiamare InvokeActions() per attivare tutte le azioni associate con questo TriggerBase. + + + + + Inizializza una nuova istanza della classe . + + + + + Recupera l'oggetto a cui il trigger è associato. + + L'oggetto associato. + + + + Recupera il vincolo di tipo dell'oggetto associato. + + Il vincolo di tipo dell'oggetto associato. + + + + Argomento passato all'evento PreviewInvoke. Se si assegna true a Cancelling, verrà annullata la chiamata dal trigger. + + Questa è una classe infrastruttura. Comportamento collegato a un oggetto di base trigger che può aggiungere il comportamento come listener a TriggerBase.PreviewInvoke. + + + + Rappresenta una raccolta di trigger con un AssociatedObject condiviso e offre notifiche di modifica del suo contenuto quando AssociatedObject cambia. + + + + + Inizializza una nuova istanza della classe . + + Interna, perché non deve essere ereditata al di fuori di questo assembly. + + + + Chiamato immediatamente dopo che la raccolta è associata a un AssociatedObject. + + + + + Chiamato quando la raccolta viene scollegata dal suo AssociatedObject, ma prima che questo si verifichi. + + + + + Chiamato quando un nuovo elemento viene aggiunto alla raccolta. + + Il nuovo elemento. + + + + Chiamato quando un elemento viene rimosso dalla raccolta. + + L'elemento rimosso. + + + + Crea una nuova istanza della . + + La nuova istanza. + + + + Specificare i vincoli di tipo per AssociatedObject di TargetedTriggerAction ed EventTriggerBase. + + + + + Inizializza una nuova istanza della classe . + + Il tipo di vincolo. + + + + Recupera il tipo di vincolo. + + Il tipo di vincolo. + + + + Una classe di risorse fortemente tipizzata per la ricerca di stringhe localizzate e così via. + + + + + Restituisce l'istanza ResourceManager memorizzata nella cache utilizzata da questa classe. + + + + + Esegue l'override della proprietà CurrentUICulture del thread corrente per tutte le ricerche di risorse eseguite utilizzando questa classe di risorse fortemente tipizzata. + + + + + Ricerca una stringa localizzata simile a Impossibile impostare oggetti multipli per la stessa BehaviorCollection. + + + + + Ricerca una stringa localizzata simile a Impossibile associare un'istanza di un Behavior a più di un oggetto alla volta. + + + + + Ricerca una stringa localizzata simile a Impossibile ospitare un'istanza di TriggerAction in più TriggerCollections simultaneamente. Rimuoverla da una TriggerCollection prima di aggiungerla a un'altra. + + + + + Ricerca una stringa localizzata simile a Impossibile impostare oggetti multipli per la stessa TriggerCollection. + + + + + Ricerca una stringa localizzata simile a Impossibile associare un'istanza di un trigger a più di un oggetto alla volta. + + + + + Ricerca una stringa localizzata simile a Il comando "{0}" non esiste o non è esposto pubblicamente in {1}. + + + + + Ricerca una stringa localizzata simile a "{0}" non è un tipo valido per il parametro TriggerType. Assicurarsi che "{0}" derivi da TriggerBase. + + + + + Ricerca una stringa localizzata simile a Impossibile aggiungere la stessa istanza di "{0}" a "{1}" più di una volta. + + + + + Ricerca una stringa localizzata simile a L'evento "{0}" per il tipo "{1}" dispone di una firma non compatibile. Assicurarsi che si tratti di un evento pubblico e che soddisfi il delegato EventHandler. + + + + + Ricerca una stringa localizzata simile a Impossibile trovare un evento denominato "{0}" nel tipo "{1}". + + + + + Ricerca una stringa localizzata simile a Impossibile per un oggetto di tipo "{0}" avere una proprietà {3} di tipo "{1}". Le istanze di tipo "{0}" possono solo avere una proprietà {3} di tipo "{2}". + + + + + Ricerca una stringa localizzata simile a Impossibile associare il tipo "{0}" al tipo "{1}". È possibile associare istanze di tipo "{0}" solo a oggetti di tipo "{2}". + + + + + Ricerca una stringa localizzata simile a Impossibile risolvere TargetName "{0}". + + + + diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/ja/Microsoft.Expression.Controls.xml b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/ja/Microsoft.Expression.Controls.xml new file mode 100644 index 0000000..1e4c9e0 --- /dev/null +++ b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/ja/Microsoft.Expression.Controls.xml @@ -0,0 +1,538 @@ + + + + Microsoft.Expression.Controls + + + + +ポリラインをループ オーバーする前に呼び出されます。 + + + + +LayoutPath.Capacity が Auto に設定されているときに使用される値を計算します。 + + + + +ポリラインが引き続きループ オーバーされるべきかどうかをチェックします。 + + + + +新しいポリラインをマーチする前に呼び出されます。 + + + + +ポリラインが完了すると呼び出されます。 + +ポリライン内の残りの弧の長さ。 + + + +ステップが正常に完了すると呼び出されます。 + +実際のステップの距離。別のポリラインがラップされている場合は、これが Step とは異なることがあります。 + + + +指定されたレイアウト パスに沿って、パス パネルの子を配置します。 + +パス パネル。 +pathPanel.LayoutPaths のパスのインデックス。 +このパスにレイアウトする最初の子のインデックス。 +次に配置する子のインデックス。childIndex が返される場合、この関数は何も行わなかったことを意味します。 + + + +次に配置する子のインデックス。 + + + + +レイアウトに使用される弧長における距離。 + + + + +現在のポリラインに沿って進む弧長における距離。 + + + + +LayoutPath に配置する要素の合計数。 + + + + +レイアウト パスに沿って、パス パネルの子を配置します。均等配置では、パス上のすべての要素の各中心の間の弧長が等しくなります。 + + + + +どのパス レイアウト プロパティに変更があったかを指定します。 + + + + + イベントのデータを提供します。 + + + + + クラスの新しいインスタンスを初期化します。 + +イベントのデータ。 + + + + イベントで変更されたプロパティを取得します。 + + + + + を更新するのに必要なデータをカプセル化します。 + + + + +要素が整列されたパスのインデックスを取得または設定します。 + + + + +要素のコレクションにおける要素のインデックスを取得または設定します。 + + + + +パス上の要素のインデックスを取得または設定します。 + + + + +パスのコレクションの長さの合計に比例する要素のオフセットを取得または設定します。 + + + + +パスの長さに比例する要素のオフセットを取得または設定します。 + + + + +要素の位置でパスに垂直になる角度を取得または設定します。 + + + + +要素の向きをパスに合わせてある場合は、要素の位置でパスに垂直になる角度を取得または設定します。 + + + + +要素がパス上に整列されるかどうかを取得または設定します。 + + + + + によって整列される要素を表します。 + + +このインターフェイスを実装すると、要素を配置するときに でこれらのプロパティを設定できるようになります。このインターフェイスは、一般的な実装用ではありません。 + + + + +指定された を基に プロパティを更新し、 イベントを発生させます。 + + を更新するのに必要なデータ。 + + + + プロパティの変更があると発生します。 + + +このイベントは、パス上のアイテムの位置が更新されると発生します。これは、 のプロパティの変更、または、 の変更に起因して発生することがあります。 + + + + +要素が整列されたパスのインデックスを取得します。 + + + + +要素のコレクションにおけるこの要素のインデックスを取得します。 + + + + +アイテムが配置されているパス上のそのアイテムのインデックスを取得します。 + + + + +パスのコレクションの長さの合計に比例する要素のオフセットを取得します。 + + + + +アイテムが配置されているパスの長さに比例するそのアイテムのオフセットを取得します。 + + + + +アイテムの位置でパスに垂直になる角度を取得します。 + + + + +アイテムの向きをパスに合わせてある場合は、アイテムの位置でパスに垂直になる角度を取得します。 + + + + +アイテムがパス上に整列されるかどうかを取得または設定します。 + + + + +要素が整列されるかどうかを表す を、要素の拡大縮小に使用される 値に変換します。 + + + + +すべての場合に をスローします。 + +ソースに渡されているターゲット データ。 +ソース オブジェクトが必要とするデータの 。 +コンバーターのロジックで使用されるオプションのパラメーター。 +変換のカルチャー。 +ソース オブジェクトに渡される値。 + + + +指定の に変換します。 + +ターゲットに渡されているソース データ。 +ターゲットの依存関係プロパティが必要とするデータの 。 +コンバーターのロジックで使用されるオプションのパラメーター。 +変換のカルチャー。 + が true の場合は、1 が返されます。それ以外は、0 が返されます。 + + + + の配置を指定します。 + + + + + 上の要素の方向を指定します。 + + + + +開かれているパスの を変更するメソッドを指定します。 + + + + +要素が整列されたパスを記述します。 + + + + +変換により平面化に影響が及ぶため、平面化の前にベジエ曲線をキャッシュすることが推奨されます。そのためには、適切にサポートされていない段階の曲線をキャッシュしなければなりません。その代り、配置戦略において平面化された点群をキャッシュし、要求に応じて変換します。 + + + + +パスを定義する要素を取得または設定します。 + + + + +アイテムを均等に配置するか、固定のパディングを使用して配置するかを取得または設定します。 + + + + + に表示されるアイテムの最大数を取得または設定します。 + + + + + の弧に沿った 2 つのアイテムの間隔をピクセル単位で取得または設定します。 + + + + +アイテムの方向を取得または設定します。 + + +このプロパティは でサポートされますが、 ではサポートされません。 + + + + + の始点から 1 番目のアイテムまでの距離を取得または設定します。 + + + + +レイアウトに含まれる の割合 (パーセント) を取得または指定します。 + + + + +開かれているパスの を変更するメソッドを指定します。 + + + + +計算された Capacity を取得します。 + + + + + がコンテキストにおいて有効かどうかを取得します。 は、それ使用されている の子孫である場合は、有効ではありません。 + + + + +それぞれの子のサイズと子の間の指定されたパディングを基に、レイアウト パスの子を配置します。子と子の間の弧長における距離は、パディングとす子の境界ボックスの半径の合計の合算により決定されます。 + + + + +1 つまたは複数のパスに沿って配置されるアイテムのリストを含みます。 + + + + + クラスの新しいインスタンスを初期化します。 + + + + +指定のアイテムを表示するのに使用される要素を作成します。 + +指定のアイテムに相応する + + + +指定のアイテムがそれ自体のアイテム コンテナーであるかどうか (またはその資格があるかどうか) を決定します。 + +アイテムがそれ自体のコンテナーである場合は true、それ以外の場合は false。 +指定のアイテム。 + + + +子要素の位置。 + +このオブジェクトが子要素の配置に使用すべきサイズ。 +実際に使用されたサイズ。 + + + +レイアウトに使用されるパス (複数可) を定義するオブジェクトのコレクションを取得または設定します。 + + + + +アイテムのリスト内で使用するインデックスを取得または設定します。 + + + + +StartItemIndex が 0 より大きい場合、アイテムのインデックスをコレクションの先頭に折り返すかどうかを取得または設定します。 + + + + + 内のアイテムを表します。 + + + + + クラスの新しいインスタンスを初期化します。 + + + + +このメンバーの説明については、「」を参照してください。 + + + + +このメンバーの説明については、「」を参照してください。 + + + + +このメンバーの説明については、「」を参照してください。 + + + + +このメンバーの説明については、「」を参照してください。 + + + + +このメンバーの説明については、「」を参照してください。 + + + + +このメンバーの説明については、「」を参照してください。 + + + + +このメンバーの説明については、「」を参照してください。 + + + + +このメンバーの説明については、「」を参照してください。 + + + + +このメンバーの説明については、「」を参照してください。 + + + + +このメンバーの説明については、「」を参照してください。 + + + + +子要素を 1 つまたは複数のパスに沿って整列します。 + + +選択が必須でない場合は、 の代わりに使用することができます。 プロパティは ではサポートされません。 + + + + + クラスの新しいインスタンスを初期化します。 + + + + +子要素に必要なサイズを測定します。 + +このオブジェクトが子要素に割り当てることのできる使用可能サイズ。 +子要素のサイズ計算に基づいて、レイアウト過程でこの要素が必要であると判断するサイズ。 + + + +子要素の位置。 + +このオブジェクトが子要素の配置に使用すべきサイズ。 +実際に使用されたサイズ。 + + + +LayoutPath の特定位置のインデックスに子を配置します。 + +0 ~ PathPanel.Count の範囲からのインデックス。 +子を配置するレイアウト パスのインデックス。 +レイアウト パスのポリライン。 +ポリラインの位置。 +LayoutPath の子のインデックス。 + + + +指定のインデックス位置にある子の、境界円の半径を計算します。 + +0 ~ PathPanel.Count の範囲からのインデックス。 + + + +レイアウトに使用されるパス (複数可) を定義するオブジェクトのコレクションを取得または設定します。 + + + + +アイテムのリスト内で使用するインデックスを取得または設定します。 + + + + + が 0 より大きい場合、アイテムのインデックスをコレクションの先頭に折り返すかどうかを取得または設定します。 + + + + +アタッチされ、折りたたまれていない LayoutPath のサブセット。 + + + + +Count は、PathPanel が配置する Children の数です。StartItemIndex が 0 より大きくて WrapItems が false の場合は、この値が PathPanel.Children.Count 未満になることもあります。 + + + + +ItemsControl のコンテナーを含むパネルを取得します。 + +ItemsControl。 + +ItemsControl のコンテナーを含むパネル、または、パネルが見つからない場合は null。 + + + null です。 + + + + +初期値およびノードの子ノードを取得する関数を受け入れて、スキャンします。 + +ストリームの型。 +初期ノード。 +ノードの子ノードを取得する関数。 +ノードを評価して、ノードとその子をスキャンすべきかどうかを指定する値を返す述語。 +ノードのストリーム。 + + + +要素の子のビジュアル ツリーを取得します。 + +要素。 +要素の子のビジュアル ツリー。 + + null です。 + + + + +要素の子と要素自体のビジュアル ツリーを取得します。 + +要素。 + +要素の子と要素自体のビジュアル ツリー。 + + + + +幅優先検索を使用して、フレームワーク要素のすべての論理子を取得します。パフォーマンスのため、このメソッドは再帰を使用せずにスタックを手動で管理します。 + +親フレームワーク要素。 +フレームワーク要素の論理子。 + + + +幅優先検索を使用して、フレームワーク要素のすべての論理子孫を取得します。パフォーマンスのため、このメソッドは再帰を使用せずにスタックを手動で管理します。 + +親フレームワーク要素。 +フレームワーク要素の論理子。 + + + diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/ja/Microsoft.Expression.Drawing.xml b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/ja/Microsoft.Expression.Drawing.xml new file mode 100644 index 0000000..1843417 --- /dev/null +++ b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/ja/Microsoft.Expression.Drawing.xml @@ -0,0 +1,1631 @@ + + + + Microsoft.Expression.Drawing + + + + +複数の図形と吹き出し矢印の組み合わせをサポートする、吹き出し図形をレンダリングします。 + + + + + から派生し、 を実装する複合図形の基本クラスを提供します。 + + + インターフェイスを実装し、 に類似するジオメトリのレンダリングをサポートしますが、レイアウト境界の外側にジオメトリをレンダリングすることも可能です。 + +標準的な実装では、大半の図形のプロパティを にテンプレート バインドする generic.xaml に、カスタマイズした既定のテンプレートが格納されます。また、 の外観をカスタマイズするために、 プロパティを拡張します。 + +このクラスは、図形に伴うコンテンツの表示もサポートします。 + + + + +図形のパラメーターを記述するインターフェイスを提供します。 + + +このインターフェイスが、Shape と GeometrySource でやり取りするデータとなります。通常、IShape の具体的な実装では、このインターフェイスを実装して GeometrySource.UpdateGeometry() に渡し、それにより、図形が読み取り専用データ プロバイダーとして使用されます。 + + + + +Shape の定義に必要なインターフェイスを提供します。プリミティブ図形と複合図形は、異なる型の FrameworkElement から派生したものでも使用できますが、両方ともこのインターフェイスに一致する必要があります。 + + + + + のジオメトリを無効にします。無効化の後、 が非同期的にジオメトリを再計算します。 + + + +図形の内側の描画方法を指定する を取得または設定します。 +図形の内側の描画方法を指定する 。既定値は null です。 + + + の輪郭の描画方法を指定する を取得または設定します。 + の輪郭の描画方法を指定する + + + のストロークの輪郭の幅を取得または設定します。 + の輪郭の幅 (ピクセル単位)。 + + +図形がその割り当て領域を塗りつぶす方法を指定する 列挙値を取得または設定します。 + の列挙値の 1 つ。実行時の既定値は、 の型によって異なります。 + + + +レンダリング エンジンにより表示されるレンダリング後のジオメトリを取得します。 + + + + +論理境界と実際のジオメトリの境界の間の余白を取得します。これは正 () または負 () のいずれかになります。 + + + + +RenderedGeometry が変更されると発生します。 + + + + +ジオメトリ ソースを作成して図形の描画方法を拡張します。 + + + + + のジオメトリを無効にします。無効化の後、 がジオメトリを再計算します。これは、非同期的に行われます。 + + + +Silverlight レイアウト パスの Arrange 部分のビヘイビアーを提供します。このメソッドをクラスで上書きして、専用の Arrange パス ビヘイビアーを定義することができます。 +要素がレイアウト内に配置されると、実際のサイズが使用されます。 +このオブジェクトとその子の配置に使用すべき親オブジェクト内の最終的な面積。 + は、Geometry が無効化されると再計算を行い、RenderedGeometry と GeometryMargin を更新します。 + + + +文字列のコンテンツを、中央揃えと複数行に対応する に変換します。 + + + ではなく にテンプレート バインドを適用し、このメソッドを有効にします。 + + + + +図形の内側の描画方法を指定する を取得または設定します。 + +図形の内側の描画方法を指定する + + + の輪郭の描画方法を指定する を取得または設定します。 + の輪郭の描画方法を指定する + + + のストロークの輪郭の幅を取得または設定します。 + の輪郭の幅 (ピクセル単位)。 + + +図形がその割り当て領域を塗りつぶす方法を指定する 列挙値を取得または設定します。 + の列挙値の 1 つ。 + + + の始点の を指定する 列挙値を取得または設定します。 + の始点の図形を指定する 列挙値。 + + +線の終点の を指定する 列挙値を取得または設定します + 列挙値の 1 つ。 + + + の頂点で使用される結合の種類を指定する 列挙値を取得または設定します。 +結合の外観を指定する 列挙値。 + + +マイター長の、 の半分に対する比率について、その上限を取得または設定します。 +マイター長の、 の半分に対する比率について、その上限を取得または設定します。この値は、常に 1 以上の正数です。 + + +図形の輪郭を描画するときに使用される破線と間隔のパターンを示す 値のコレクションを取得または設定します。 +破線と間隔のパターンを指定する 値のコレクション。 + + +破線の終端がどのように描画されるかを指定する 列挙値を取得または設定します。 + 列挙値の 1 つ。既定値は です。 + + +破線パターン内の破線が始まる距離を指定する を取得または設定します。 +破線パターン内の破線が始まる距離を示す 。既定値は 0 です。 + + + +レンダリング エンジンにより表示されるレンダリング後のジオメトリを取得します。 + + + + +論理境界と実際のジオメトリの境界の間の余白を取得します。これは正 () または負 () のいずれかになります。 + + + + +中央揃えと複数行に対応する TextBlock に文字列を変換する内部コンテンツを取得または設定します。 + + + + +RenderedGeometry が変更されると発生します。 + + + + +吹き出しの左上隅に対する位置を取得または設定します。 + + + + +吹き出しのスタイルを取得または設定します。 + + + + + から派生し、 を実装する複合図形の基本クラスを提供します。 + + + インターフェイスを実装し、 に類似するジオメトリのレンダリングをサポートしますが、レイアウト境界の外側にジオメトリをレンダリングすることも可能です。 + +標準的な実装では、大半の図形のプロパティを にテンプレート バインドする generic.xaml に、カスタマイズした既定のテンプレートが格納されます。また、 の外観をカスタマイズするために、 プロパティを拡張します。 + + + + +ジオメトリ ソースを作成して図形の描画方法を拡張します。 + + + + + のジオメトリを無効にします。無効化の後、 がジオメトリを再計算します。これは、非同期的に行われます。 + + + +Silverlight レイアウト パスの Arrange 部分のビヘイビアーを提供します。このメソッドをクラスで上書きして、専用の Arrange パス ビヘイビアーを定義することができます。 +要素がレイアウト内に配置されると、実際のサイズが使用されます。 +このオブジェクトとその子の配置に使用すべき親オブジェクト内の最終的な面積。 + は、Geometry が無効化されると再計算を行い、RenderedGeometry と GeometryMargin を更新します。 + + + +図形の内側の描画方法を指定する を取得または設定します。 + +図形の内側の描画方法を指定する + + + の輪郭の描画方法を指定する を取得または設定します。 + の輪郭の描画方法を指定する + + + のストロークの輪郭の幅を取得または設定します。 + の輪郭の幅 (ピクセル単位)。 + + +図形がその割り当て領域を塗りつぶす方法を指定する 列挙値を取得または設定します。 + の列挙値の 1 つ。 + + + の始点の を指定する 列挙値を取得または設定します。 + の始点の図形を指定する 列挙値。 + + +線の終点の を指定する 列挙値を取得または設定します + 列挙値の 1 つ。 + + + の頂点で使用される結合の種類を指定する 列挙値を取得または設定します。 +結合の外観を指定する 列挙値。 + + +マイター長の、 の半分に対する比率について、その上限を取得または設定します。 +マイター長の、 の半分に対する比率について、その上限を取得または設定します。この値は、常に 1 以上の正数です。 + + +図形の輪郭を描画するときに使用される破線と間隔のパターンを示す 値のコレクションを取得または設定します。 +破線と間隔のパターンを指定する 値のコレクション。 + + +破線の終端がどのように描画されるかを指定する 列挙値を取得または設定します。 + 列挙値の 1 つ。既定値は です。 + + +破線パターン内の破線が始まる距離を指定する を取得または設定します。 +破線パターン内の破線が始まる距離を示す 。既定値は 0 です。 + + + +レンダリング エンジンにより表示されるレンダリング後のジオメトリを取得します。 + + + + +論理境界と実際のジオメトリの境界の間の余白を取得します。これは正 () または負 () のいずれかになります。 + + + + +RenderedGeometry が変更されると発生します。 + + + + +両端に任意の矢じりを伴う、屈曲した線セグメントをレンダリングします。 + + + +Silverlight レイアウトの Measure パスのビヘイビアーを提供します。このメソッドをクラスで上書きして、専用の Measure パス ビヘイビアーを定義することができます。 +子オブジェクトに割り当てられたサイズ計算、または、固定コンテナー サイズなどその他の事項も考慮して、レイアウト過程でこのオブジェクトが必要だと判断するサイズ。 +このオブジェクトが子オブジェクトに割り当てることのできる使用可能サイズ。Infinity () を値として指定して、使用可能なコンテンツに合わせてオブジェクトのサイズを設定することもできます。 + +既定値の の場合、どのサイズでもレンダリングできます。 は、レイアウト境界まで引き伸ばされ、必要な場合はその外側にもレンダリングされます。 + + + + +矢印の屈曲量を取得または設定します。 + +屈曲量は 0 ~ 1 の間です。 + + + +線の始点で矢じりがどのように描かれるかを取得または設定します。 + + + + +線の終点で矢じりがどのように描かれるかを取得または設定します。 + + + + +どの角から矢印を描き始めるかを取得または設定します。 + + + + +矢印のピクセル単位の長さを取得または設定します。 + + + + +選択されたアイテムを 1 つ表示するアイテム コントロールを提供し、タッチ ジェスチャーによるアイテム間の移動を可能にします。 + + + + +PanningItems のコンストラクター。 + + + + +PanningItems テンプレートが適用されると呼び出されます。 + + + + +コントロールのアイテムの方向を取得または設定します。 + + + + +フリックの許容範囲を取得または設定します。0 ~ 1 の間の値を指定できます。これは、アイテムの変更をトリガーするフリック ジェスチャーでカバーされる必要のある PanningItems のサイズの比率を示します。 + + + + +選択したアイテムの前のアイテムを取得または設定します。 + + + + +選択したアイテムの後のアイテムを取得または設定します。 + + + + +アイテム コントロールの最初のアイテムが最後のアイテムの後に続くように、コンテンツをループするかどうかを取得または設定します。 + + + + +パン モーションを制御するスライダーの値を取得または設定します。 + + + + +PathGeometry に使用するヘルパー クラス。 + + + + +パスのミニ言語の文字列を PathGeometry に変換します。 + +パスのミニ言語の文字列。 + + + +任意のジオメトリを単一の PathGeometry に変換します。 + + + + +任意のジオメトリを、一定の点群リストに一致するポリラインを持つ PathGeometry として更新します。 + + + + +ジオメトリの省略構文を解析します。 + + + + +ArcSegment を BezierSegment(s) に変換するヘルパー クラス。 + + +PathSegment とすべてのバリエーションに使用するヘルパー クラス。 + + +複数の型の PathSegment に対応するための Strategy クラス。 + + + + +弧セグメントをベジエ形式に変換しますBezierSegment、PolyBezierSegment、LineSegment、または null を返します。null を返す場合、弧は始点に退化されます。 + + + + +3 つのパラメーターを持つコンストラクターは、ローカル値を常に IsStroked に設定するため、呼び出さないようにします。 + + + + + + +SegmentCollection を、一定の点群リストに一致するポリラインで更新します。変更を最小限に抑えるようにします。何も変更がない場合は、false を返します。 + + + + +collection[index] セグメントを、一定の点群リストに一致する複数のベジエ曲線セグメントで更新します。点群リストは 3*N 個のセグメントを含む必要があります。 + + + + +任意のパス セグメントが空かどうかテストします。 + + + + +パス セグメントの点の数を取得します。 + + + + +パス セグメントの終点を取得します。 + + + + +任意のセグメントにおける特定のインデックス点を取得します。入力値が (-1) の場合、終点を返します。 + + + + +任意のセグメントを平面化し、結果の点を点群リストに追加します。 + +平面化するセグメント。 +結果の点群リスト。 +セグメントの始点。 +許容誤差。正の値でなければなりません。ゼロも可能。既定の許容誤差にフォールバックします。 + + + +ArcToBezier、ベジエ曲線から弧の近似計算を行います。 + + +このユーティリティは、SVG 円弧仕様の定義に従って、ベジエ曲線と楕円弧の近似計算を行います。弧の描画元の楕円は、各座標内の軸に配置され、x と y の半径で定義されます。回転角度は、楕円の軸が x 軸に対してどのように回転するかを定義します。始点と終点は、描画可能な 4 つの弧の 1 つを定義します。sweep フラグと large-arc フラグで、描画する弧を指定します。 + +cPieces = 0 が返される場合は弧ではなく直線を意味し、cPieces = -1 は弧の点への退化を示します。 + + + + +ベジエ曲線の弧の数を取得し、それぞれのサイン/コサインを取得します。 + + +これは ArcToBezier と呼ばれるプライベート ユーティリティです。弧を複数に分割し、どの部分も 90 度を超えて広がらないようにします。入力点は単位円上にあります。 + + + + +GetBezierDistance は、距離を半径の割合として返します。 + + +円弧の終点から、それに近似するベジエ曲線の弧の制御点までの距離を、弧の半径に対する割合として取得します。 + +結果は弧の半径に相対的な値となるため、厳密に弧の角度に依存します。弧は 90 度以下と仮定され、角度はその角度のコサイン値で決定されます。これは "rDot = 2 つの半径ベクトルのドット積" で求められます。ベジエ曲線が、中点と終端で弧の各点と接線に一致する必要があります。次に、曲線の終点から制御点までの距離を計算します。 + +相対的な距離を求めるため、単位円を使用できます。円の中心を原点に合わせ、X 軸を 2 つのベクトルの二等分線となるように配置します。a をベクトル間の角度とします。その場合、最初と最後の点の X 座標は (a/2) です。x を 2 番目と 3 番目の点の X 座標とします。t=1/2 のときの点の位置は (1,0) となります。ただし、多項式の項はすべて等しくなります。 + +(1-t)^3 = t*(1-t)^2 = t^2*(1-t) = t^3 = 1/8 + +ベジエ式からの計算結果: + +1 = (1/8) * (cos(a/2) + 3x + 3x + cos(a/2)) + +結果: + +x = (4 - cos(a/2)) / 3 + +それと最初の点の差分 X: + +DX = x - cos(a/2) = 4(1 - cos(a/2)) / 3 + +ただし DX = distance / sin(a/2) なので、距離は次のようになります: + +距離 = (4/3)*(1 - cos(a/2)) / sin(a/2). + +角度 a の代わりに、rDot = R^2 * cos(a) を使用するので、分母と分子に R を掛けます: + +距離 = (4/3)*(R - Rcos(a/2)) / Rsin(a/2) + +ここで三角関数を使用します: ________________ cos(a/2) = \/(1 + cos(a)) / 2 ______________________ R*cos(a/2) = \/(R^2 + R^2 cos(a)) / 2 ________________ = \/(R^2 + rDot) / 2 + +ここで、A = (R^2 + rDot)/2. ____________________ R*sin(a/2) = \/R^2 - R^2 cos^2(a/2) _______ = \/R^2 - A + +結果: _ 4 R - \/A dist = - * ------------ 3 _______ \/R^2 - A + +履歴: 5/29/2001 MichKa により作成。 + + + + +半径が弦長に比べて短すぎる場合は、false を返します (NaN の場合は true を返します)。半径は許容可能値に変更されます。 + + + + +ベジエ曲線を平面化するユーティリティ クラス。 + + + + +3 次ベジエ曲線を平面化して、結果のポリラインを 3 番目のパラメーターに追加します。 + +3 次ベジエ曲線の 4 つの制御点。 +実際の曲線上の平面化されたポリライン上の相応する 2 点間の最大距離。厳密な正の値でなければなりません。 +平面化したポリラインの追加位置。 +平面化されたポリラインを追加するときに、最初の制御点をスキップする場合は True。 +各ポリラインの頂点に関連付けられたベジエ曲線のパラメーター値を追加する位置。 +条件: 空の場合は、最初の制御点とそれに関連付けられたパラメーターは常に追加されます。 + + + +2 次ベジエ曲線を平面化して、結果のポリラインを 3 番目のパラメーターに追加します。ベジエ曲線では、次数上げを使用して、3 次曲線のコードを再利用します。 + +2 次ベジエ曲線の 3 つの制御点。 +実際の曲線上の平面化されたポリライン上の相応する 2 点間の最大距離。厳密な正の値でなければなりません。 +平面化したポリラインの追加位置。 +平面化されたポリラインを追加するときに、最初の制御点をスキップするかどうか。 +各ポリラインの頂点に関連付けられたベジエ曲線のパラメーター値を追加する位置。 +条件: 空の場合は、最初の制御点とそれに関連付けられたパラメーターは常に追加されます。 + + + +非ジオメトリ型をサポートする拡張メソッド。 + + + + +シーケンス全体を対象に 1 つのアクション デリゲート (通常は、極めて単純なラムダ式) を適用することを許可します。 + + + + +シーケンス全体を対象に 1 つのアクション デリゲート (通常は、極めて単純なラムダ式) を適用することを許可します。 + + + + +各アイテムのインデックス付きのシーケンス全体を対象に 1 つのアクション デリゲート (通常は、極めて単純なラムダ式) を適用することを許可します。 + + + + +リストの数が特定のカウント値となるようにします。任意の factory を使って作成するか、必要に応じてアイテムを削除します。入力 IList がリストの場合、factory がなければ AddRange または RemoveRange が使用されます。 + + + + +リストの数が特定のカウント値以上になるようにします。任意の factory で作成します。 + + + + +コレクションの最後に、アイテムの範囲を追加します。コレクションがリストの場合、List.AddRange が使用されます。 + + + + +任意のリストの最後のアイテムを取得します。 + + + + +任意のリストから最後のアイテムを削除します。 + + + + +すべてのコレクション プロパティも含め、obj とそのパブリック プロパティすべてのコピーを作成します。 + + + + +異なる場合は値を設定します。可能であればローカル値は設定しないようにします。値が変更されている場合は、true を返します。 + + + + +任意の依存関係オブジェクトに依存関係プロパティがローカル設定された場合、依存関係プロパティをクリアします。依存関係プロパティがローカル設定されていない場合は、false を返します。 + + + + +幅優先検索を使用して、特定の型と条件のビジュアル子孫をすべて見つけます。 + + + + +IEnumerable のビジュアルな子をすべて取得します。 + + + + +WPF と Silverlight の PropertyMetadata のインターフェイスを統一します。レンダリング、配置、測定サイズに関して必要な通知を行います。 + + + + +このプライベート Ctor は、AttachCallback でのみ使用します。 + + + + +InternalCallback() をチェーンして、DrawingPropertyMetadata のインスタンスをプロパティ コールバックにアタッチします。Silverlight では、プロパティのメタデータは設定後に破棄されます。callback を使ってこれを記憶します。 + + + + +元のコールバックをチェーンする前に、DrawingPropertyChangedEvent をトリガーします。 + + + + +ジオメトリに関連するデータ構造の拡張メソッド (Point/Vector/Size/Rect)。 + + + + +中心を変えずに四角形を相対サイズに変更します。 + + + + +2 点間の差分ベクトルを取得します。 + + + + +点のメンバーワイズの追加。 + + + + +点のメンバーワイズの減算。 + + + + +ミニ言語の文字列を に変換します。 + +「Path Markup Syntax (パス マークアップ構文)」(http://msdn.microsoft.com/en-us/library/cc189041(VS.95).aspx) を参照してください。 +ジオメトリック パスを記述するパスのミニ言語の文字列。 +パスのミニ言語から変換された + + + + を平面化して結果の点を次に追加します: . + +入力の 。 +結果の点が追加される点群リスト。 +結果の点から入力パス形状の間の最大許容誤差を指定する正数。この値が 0 の場合、アルゴリズムが自動的に許容誤差を設定します。 + + + +(0,0)(1,1) の枠内で正規化された弧を取得します。0 度は [0.5, 0] (up) にマップされます (時計回り)。 + + + + +任意の相対的半径の境界内の弧の絶対的な点を取得します。 + + + + +(0,0)(1,1) の枠に対して相対的な弧の角度を取得します。0 度は [0.5, 0] (up) にマップされます (時計回り)。 + + + + +境界に相対的な位置にある絶対的な点から弧への角度を取得します。 + + + + +"Rect from" から "Rect to" への変換を計算します。 + + + + +UIElement 間の座標空間の変換を計算します。 + +変換元の要素。 +変換先の要素。 +UIElement 間の変換。計算できない場合は null。 + + + +任意の境界から (0,0)(1,1) 枠へのマッピングを使用して、相対的な点を絶対的な点にマップします。 + + + + +(0,0)(1,1) 枠から任意の境界へのマッピングを使用して、絶対的な点を相対的な点にマップします。 + + + + +任意の論理境界内でストレッチを行った後の境界を計算します。stretch を uniform に指定した場合は、特定の aspectRatio を使用します。aspectRatio が空の場合、Fill と同等になります。ストレッチを None に指定する場合は、Fill または Uniform と同等になります。 + + + + +2 点間の中点を返します。 + +1 つめの点。 +2 つめの点。 +次の 2 点の中点: および . + + + +2 つのベクトルのドット積を返します。 + +1 つめのベクトル。 +2 つめのベクトル。 +次の 2 つのベクトルのドット積: および . + + + +2 点のドット積を返します。 + + + + +2 点間の距離を返します。 + +1 つめの点。 +2 つめの点。 +次の 2 点間の距離: および . + + + +2 点間の平方距離を返します。 + +1 つめの点。 +2 つめの点。 +次の 2 点の間の平方距離: および . + + + +クロス積の行列式。方向領域と同等です。 + + + + +任意の線セグメントの正常方向のベクトルを計算します。 + + + + +90 度の反時計回りで、垂直ベクトルを計算します。ベクトルの垂直を右に指定するとベクトルが上向きになります。 + + + + +2 つのジオメトリが同一であるかどうかを返します。 + + + + +値が結果型 (T) のインスタンスであることを確認します。そうでない場合は、新しいタイプ (T) インスタンスに置き換えます。 + + + + +list[index] が結果型 (T) のインスタンスであることを確認します。そうでない場合は、新しいタイプ (T) インスタンスに置き換えます。 + + + + +浮動小数点演算に関連する静的プロパティとメソッドを提供するヘルパー クラス。 + + + + +2 つの値が同じと判断する条件となる最小距離。注意: MIL/SL 内部の浮動小数点形式は float で double ではありません。 + + + + +全円の角度の値。 + + + + +五芒星形の図形の内縁半径 (精度は 3 桁のパーセント)。(1 - Sin36 * Sin72 / Sin54) / (Cos36) ^ 2、この値は 0.47210998990512996761913067272407 となります。 + + + + +System.Double 値が、ゼロと等価と判断される範囲内にあるかどうかを決定します。 + + +値が DoubleTolerance 未満の場合は True、それ以外は False + + + +任意の範囲内の値を返します。任意の min/max が null の場合は、制限なしと同じです。 + + + + +ベクトル (x, y) のユークリッド ノルムを計算します。 + +1 つめのコンポーネント。 +2 つめのコンポーネント。 +ベクトル (x, y) のユークリッド ノルム。 + + + +仮数と指数から実数を計算します。 + + + +成功の場合は x * 2^exp の値。 + + + +double をテストします。 + +テストする double。 +x が NaN ではなく、正または負の infinity に等しくない場合は True、それ以外は False + + + +PathFigure に使用するヘルパー クラス + + + + +任意の形状を平面化し、結果の点を点群リストに追加します。 + +許容誤差。正の値でなければなりません。ゼロも可能。既定の許容誤差にフォールバックします。 + + + +任意の形状内のセグメントをすべて繰り返して、各セグメントの正しい始点を返します。 + + + + +形状を単一のポリライン セグメントとして、任意の点群リストに同期します。変更を最小限に抑えるようにします。何も変更がない場合は、false を返します。 + + + + +任意の形状を、2 つの弧セグメントを持つ閉じた楕円に同期します。 + + + + +PathSegment と対応する StartPoint のタプル データ構造。 + + + + +接続された点群のリストからなるポリラインを表します。閉じた多角形は、最後に始点を繰り返すことで示されます。要求に応じて差分、法線、角度、長さが計算されます。 + + + + +複数の点でポリラインを構築します。 + + + + +ポリラインの前方差分のベクトル。Points[i] + Differences[i] = Points[i+1] + + + +任意の位置での法線ベクトルを計算します (lerp(index, index+1, fraction)。cornerRadius の範囲内の位置の場合は、正常方向に補間されます。 + +法線の円滑化の行われない範囲。ゼロを指定すると円滑化は行われず、インデックス上の法線が返されます。 + + + +始点と終点が繰り返されると、ポリラインは閉じます。 + + + + +このポリライン内の点の数。 + + + + +このポリラインの弧長の合計。 + + + + +このポリラインの点の配列。 + + + + +線セグメント間の長さ、Points[i] + Differences[i] = Points[i+1]。 + + + + +各セグメントの法線ベクトルのリスト。Normals[i] は、セグメント p[i] から p[i + 1] までの法線です。Normals[N-1] == Normals[N-2]. + + + + +p[i] の点にある 2 つの線セグメント間の Cos(angle) リスト。注意: 値は cos(angle) = Dot(u, v) です。度数ではありません。 + + + + +points[i] から points[0] までの長さの累計リスト。 + + + + +PathMarch アルゴリズムと通信するためのデータ構造。 + + + + +任意の点リストにおけるこの MarchLocation の補間位置を取得します。 + + + + +任意の法線ベクトル リストにおけるこの MarchLocation の正常補間方向を取得します。 + + + + +ポリライン全体の始点に対するこの MarchLocation の弧長を取得します。 + + + + +この位置が抽出された理由。 + + + + +ポリラインの点群リスト上の点のインデックス。 + + + + +比率: [0, 1]、常に before / (before + after) + + + + +停止点の前の弧の長さ。非不数で、Length[index] 未満。 + + + + +停止点の後の弧の長さ。非不数で、Length[index] 未満。 + + + + +次の停止位置までの、ステップ内の残りの長さ。正数の場合は、前方に進みます。負数の場合は、後方に進みます。 + + + + +点群リストに使用するヘルパー クラス + + + + +任意の間隔でポリラインをマーチし、コールバックまでの各停止点を出力します。 + +マーチするポリラインの点。 +最初の点で停止するまでマーチする弧の長さ。 +頂点と判断される 2 つの接線の内角の最大角度。 +マーチング アルゴリズムの点での停止時にコールバックします。コールバックにより、次の停止点までの弧の長さが返されます。負数の場合、後方にマーチします。コールバックにより NaN が返されると、マーチングを終了します。 + + + +ポリラインのリストを並べ替えて、一定の弧長のポリラインがリストの初めになるようにします。この位置の前にあるポリラインはリストの最後に連結され、最初のポリラインが一番最後に連結されます。 + +ポリラインのリスト。 +開始ラインを識別するために使用される、ポリラインの全リストを対象とした弧長。その位置までの弧長が、この変数で返されます。 +並べ替えてラップされたリスト。 + + + +一様分布およびガウス分布をサポートする乱数ジェネレーター。 + + + + +ボックス ミューラー法の極形式を使って、個別の標準正規分布を持つ乱数のペア、ゼロの期待値、単位分散を生成します。 + + + + +プライベート コンストラクターfactory メソッドの使用を強制します。 + + + + +線セグメントを作成します。 + + + + +2 次曲線 (3 つの制御点) から 3 次ベジエ曲線セグメントを作成します。 + + + + +4 つの制御点で 3 次ベジエ曲線セグメントを作成します。 + + + + +パス セグメントの制御点。長さはバリアントです。線セグメントは 2 点、3 次ベジエ曲線は 4 点の制御点を持ちます。 + + + + +2 つの変換を比較して完全一致を見つけます。値は同じでも構造が異なる変換は同一とは見なされません (Translate(0,0) と Rotate(0) など)。 + +1 つめの変換。 +2 つめの変換。 + + + + +太さの単位を指定します。 + + + + +ピクセル単位。 + + + + +境界ボックスに対する相対パーセント単位。 + + + + +ジオメトリのソースの基本クラスを提供します。入力パラメーターとレイアウト境界を基にジオメトリを生成してキャッシュします。 + + +標準的な実装では、UpdateCachedGeometry() を拡張してこの cachedGeometry を更新します。その後、この基本クラスは、レイアウト境界に相対的に、無効化とジオメトリ効果のパイプライン化を行ってから、ジオメトリをキャッシュします。できるだけキャッシュされたジオメトリを再利用し、レンダリング スレッドにおける再構築を回避するように実装すべきです。ComputeLogicalBounds を拡張して、Stretch をさまざまな方法で処理できます。 + +基本クラスの対象のジオメトリ ソース パラメーターの種類。 + + + +ジオメトリ ソースを記述するインターフェイスを提供します。 + + +ジオメトリ ソースを非汎用的な方法で公開するようにこのインターフェイスは設計されています。標準的な実装では、このインターフェイスを直接実装せずに、GeometrySource をサブクラス化すべきです。 + + + + +外部変更のためジオメトリが無効化されたことを通知します。 + + +パラメーターが変更されると通常ジオメトリが無効化されます。ジオメトリが外部で無効化された場合は、境界が変更される場合もジオメトリが再計算されます。 + + + + +任意のパラメーターとレイアウト境界を使用して、ジオメトリを更新します。何も更新されていない場合は、false を返します。 + + + + +最新の UpdateGeometry() 後の結果のジオメトリを取得または設定します。 + + + + +ジオメトリを引き伸ばす境界ボックスを取得します。実際のジオメトリは、これより小さな場合も大きな場合もあります。 は、ストロークの太さとストレッチを考慮済みです。 + + + + +FrameworkElement の実際の境界を取得します。 + には、論理境界、ストレッチ、ストロークの太さが含まれます。 + + + +前のジオメトリ効果のプロセスからジオメトリを指定します。 + + + + +外部変更のためジオメトリが無効化されたことを通知します。 + + +パラメーターが変更されると通常ジオメトリが無効化されます。ジオメトリが外部で無効化された場合は、境界が変更される場合もジオメトリが再計算されます。 + + + + +任意のパラメーターと layoutBounds を基に、ジオメトリを更新します。ジオメトリが変更されていない場合は、false を返します。 + + + + +この関数を実装して、ジオメトリを提供する方法を拡張します。ジオメトリが変更されている場合は、true を返します。 + + + + +ストレッチ モードの処理方法を拡張します。既定では、常に Stretch.Fill とセンター ストロークが使用されます。 + + + + +dirty または forced の場合はジオメトリ効果を適用し、この Geometry を更新します。それ以外の場合は、この Geometry を cachedGeometry として保持します。 + + + + +最新の UpdateGeometry() 後の結果のジオメトリを取得または設定します。 + + + + +ジオメトリを引き伸ばす境界ボックスを取得します。実際のジオメトリは、これより小さな場合も大きな場合もあります。 は、ストロークの太さとストレッチを考慮済みです。 + + + + + +FrameworkElement の実際の境界を取得します。 には、論理境界、ストレッチ、ストロークの太さが含まれます。 + + + + + +弧は、縦横比 1:1 と仮定し、Stretch.None は Stretch.Fill と同じと判断します。 + + + + +境界ボックスに対する相対値、および、絶対的なピクセル値で、太さを正規化します。相対的な太さ = 0 の場合は全幅の円半径または固定幅となり、相対的な太さ = 1 の場合はドットに縮小されるか退化されます。 + + + + +弧が中心/正常な内方向を差す線に退化されます。 + + + + +弧のサンプルの位置範囲を定義する角度のペアのリストを計算します。戻り値は、2、4、または 6 つの double 値で、それぞれのペアが範囲を定義し、任意の開始角度から終了角度の順序で並べられます。範囲は、自己交差角度で分割されます。入力の開始と終了角度が自己交差角度内の無効な範囲内の場合は、隣の自己交差位置に移されます。 + + + + +角度を 0 ~ 90 の範囲に移動します。 + + + + +入力角度の各ペアを使って内部曲線の全セグメントを計算し、複数のベジエ曲線セグメントに結合します。新しいセグメントが figure.Segments リストに任意のインデックスから出力されます。始点は個別に出力されます。 + + + + +任意の角度範囲で 1 つの内部曲線セグメントを計算し、複数のベジエ曲線セグメント形式で示される 1 つの円滑な曲線セグメントとして出力します。 + + + + +一定幅の任意の楕円の自己交差点のパラメーターを (角度) を計算します。結果は常に最初の四分円の範囲内で、0 または 90 の場合は自己交差のないことを示します。基本アルゴリズムでは、バイナリ サーチで、サンプル点が最初の四分円内にない角度が検索されます。 + + + + +矢印の方向を指定します。 + + + + +矢印は左向きになります。 + + + + +矢印は右向きになります。 + + + + +矢印は上向きになります。 + + + + +矢印は下向きになります。 + + + + +B /| / C--D A | \ C--D \| B アルゴリズムは、top-left は 0,0 と仮定し、Width/Height のみを使用します。 + + + + +吹き出し図形のレンダリング スタイルを指定します。 + + + + +四角形の吹き出し。 + + + + +角の丸い四角形の吹き出し。 + + + + +長円形の吹き出し。 + + + + +雲形の吹き出し。 + + + + +縁線を更新し、その後必要に応じてアンカー ポイントに結合します。 + + + + +吹き出しスタイルを使用して、ポリライン セグメントを更新してから、始点、アンカー ポイント、終点を結合します。 + + + + +任意の点に合わせて線セグメントを更新します。 + + + + +頂点を時計回りに計算します。角が 4 つの場合は 8 点を使用します。 + + + + +角の弧は常に、90 度の弧よりも小さくなります。 + + + + +ジオメトリを別のジオメトリに変換する GeometryEffect の基本クラスを提供します。 + + +このクラスは、レンダリングに渡す前の、IShape の表示ジオメトリの処理の基本実装を提供します。標準的な実装では、仮想関数 を拡張して、入力ジオメトリを変換します。通常、 は添付プロパティとして にアタッチされ、 ジオメトリが更新されるとアクティブになります。 で、 の描画後のジオメトリを置き換えます。 + + + + +ジオメトリ効果を任意の依存関係オブジェクトの添付プロパティとして取得します。 + + + + +ジオメトリ効果を任意の依存関係オブジェクトの添付プロパティとして設定します。 + + + + +現在値を使用して 効果のディープ コピーを作成します。 + + + + +ジオメトリ効果のディープ コピーを作成します。Silverlight で CloneCurrentValue を実装します。 + +ジオメトリ効果の現在のインスタンスのクローン。 + + + +任意のジオメトリ効果が、現在のインスタンスと同等かどうかをテストします。 + +比較するジオメトリ効果。 +2 つの効果が同じ外観をレンダリングする場合は true を返します。 + + + +前のジオメトリ効果のプロセスからジオメトリを指定します。 + + + + +ジオメトリを実際に計算せずに、ジオメトリ効果を無効化します。すべての親の図形または効果に適宜無効化するように通知します。 + + + + +任意の入力ジオメトリに対してジオメトリ効果を処理します。結果を GeometryEffect.OutputGeometry に保存します。 + +何も変更されていない場合は、false を返します。 + + + +任意の入力ジオメトリを基に cachedGeometry の更新方法を拡張します。 + + + + +親チェーンから切断されると通知されます。 + + + + +親チェーンにアタッチされると通知されます。 + + + + +依存関係オブジェクトが有効な親の型 (IShape または GeometryEffect) の場合に、そのジオメトリを無効化します。 + + + + +WPF で Freezable を実装します。 + + + + +入力ジオメトリを渡すだけの既定のジオメトリ効果。 + + + + +このジオメトリ効果の出力ジオメトリを取得します。 + + + + +IShape または GeometryEffectGroup のいずれかを親にすることができます。 + + + + +文字列とジオメトリ効果の間の変換を提供します。 + + +このクラスは、次の xaml のような形式の簡潔な構文を使用できるようにします。GeometryEffect="Sketch". ジオメトリ効果のインスタンスのクローンを作成し、リソースとして使用できるようにします。 + + + + +サポートされるジオメトリ効果のプリセット リストを作成します。 + + + + +文字列型から変換可能な GeometryEffect。 + + + + +文字列型に変換可能な GeometryEffect。 + + + + +文字列をジオメトリ効果に変換します。フォールバック値は null です。 + + + + +ジオメトリ効果を文字列に変換します。フォールバック値は null です。 + + + + + の呼び出し理由を指定します。 + + + + +プロパティが変更されたためジオメトリが無効化されました。 + + + + +プロパティがアニメーション化されているためジオメトリが無効化されました。 + + + + +子が無効化されたためジオメトリが無効化されました。 + + + + +親が無効化されたためジオメトリが無効化されました。 + + + + +新しいテンプレートが適用されたためジオメトリが無効化されました。 + + + + +IGeometrySource とパラメーターに使用できるヘルパー拡張メソッドを提供します。 + + + + +矢じりの種類を指定します。 + + + + +矢じりなし。 + + + + +三角形の矢じり。 + + + + +ステルス三角形の矢じり。 + + + + +開いた三角形の矢じり。 + + + + +長円形の矢じり。 + + + + +角の位置を指定します。 + + + + +境界ボックスの左上。 + + + + +境界ボックスの右上。 + + + + +境界ボックスの右下。 + + + + +境界ボックスの左下。 + + + + +多角形が Stretch.None は Stretch.Fill と同じであると認識します。 + + + + +SketchFlow と同様に、どのようなジオメトリでも Sketch スタイルに変換するジオメトリ効果。 + + + + +ジオメトリ効果のディープ コピーを作成します。 + +ジオメトリ効果の現在のインスタンスのクローン。 + + + +任意のジオメトリ効果が、現在のインスタンスと同等かどうかをテストします。 + +比較するジオメトリ効果。 +2 つの効果が同じ外観をレンダリングする場合は true を返します。 + + + +任意の入力ジオメトリを基に cachedGeometry を更新します。 + +入力ジオメトリ。 +cachedGeometry が更新されている場合は true を返します。 + + + +視覚的なちらつきを最小限に抑えるため、作成時に同じランダム シードを使用します。 + + + + +任意のパス形状内の、閉弦も含めてすべてのシンプル セグメントを繰り返します。 + + + + +ArcThickness で制御される Arc、Ring、および Pie モードをサポートする弧の図形をレンダリングします。 + + + + +WPF:Shape または SL:Path から派生するプラットフォームに中立な Shape の実装。 + + +プラットフォームの Shape から派生する Shape の WPF 実装を提供します。 + + + + +ジオメトリ ソースを作成して図形の描画方法を拡張します。 + + + + + のジオメトリを無効にします。無効化の後、 がジオメトリを再計算します。これは、非同期的に行われます。 + + + +Silverlight レイアウトの Measure 部分のビヘイビアーを提供します。このメソッドをクラスで上書きして、専用の Measure パス ビヘイビアーを定義することができます。 +子オブジェクトに割り当てられたサイズ計算、または、固定コンテナー サイズなどその他の考慮事項に基づいて、レイアウト過程でこのオブジェクトが必要だと判断するサイズ。 +このオブジェクトが子オブジェクトに割り当てることのできる使用可能サイズ。Infinity () を値として指定して、使用可能なコンテンツに合わせてオブジェクトのサイズを設定することもできます。 + +WPF で、測定サイズのオーバーライドは Shape.DefiningGeometry から実行されますが、これは常に正しく動作しないこともあります。詳細についてはバグ 99497 を参照してください。WPF は規定で正確な測定サイズを備えていません。 + +Silverlight では、パスの測定サイズのオーバーライドは、プリミティブ図形と同様には機能しません。 + +クリッピングせずに正しくレンダリングできるこの図形の最小サイズを返す必要があります。既定では、ドット サイズ程度の小さな図形をレンダリングできるため、strokethickness を返します。 + + + +Silverlight レイアウトの Arrange 部分のビヘイビアーを提供します。このメソッドをクラスで上書きして、専用の Arrange パス ビヘイビアーを定義することができます。 +要素がレイアウト内に配置されると、実際のサイズが使用されます。 +このオブジェクトとその子の配置に使用すべき親オブジェクト内の最終的な面積。 + は、Geometry が無効化されると再計算を行い、RenderedGeometry と GeometryMargin を更新します。 + + + +RenderedGeometry が変更されると発生します。 + + + + +論理境界と実際のジオメトリの境界の間の余白を取得します。これは正 () または負 () のいずれかになります。 + + + + +開始角度を取得または設定します。 + +開始角度の度数。0 度は上向きです。 + + + +終了角度を取得または設定します。 + +終了角度の度数。0 度は上向きです。 + + + +弧の太さを取得または設定します。 + +弧の太さは、""ArcThicknessUnit" によってピクセル単位かパーセント単位で示されます。 + + + +弧の太さの単位を取得または設定します。 + +弧の太さの単位は、ピクセルかパーセントのどちらかです。 + + + +サイズ変更可能な矢じりと矢印本体をサポートするブロック矢印図形をレンダリングします。 + + + + +方向を取得または設定します。 + +矢印の向きを示す方向。 + + + +矢じりの角度を取得または設定します。 + +矢じりの角度の度数。 + + + +矢印本体のサイズを取得または設定します。 + +矢印本体のピクセル単位のサイズ。 + + + +可変個の点を持つ標準的な多角形の図形または星形図形をレンダリングします。 + + + + + の点の数を取得または設定します。 + + + + +図形の中心から最も近い点までの距離を取得または設定します。 + +図形の中心から最も近い点までの距離。 + + + diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/ja/Microsoft.Expression.Effects.xml b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/ja/Microsoft.Expression.Effects.xml new file mode 100644 index 0000000..58104e4 --- /dev/null +++ b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/ja/Microsoft.Expression.Effects.xml @@ -0,0 +1,1041 @@ + + + + Microsoft.Expression.Effects + + + + +ブラインドの方向を決定します。 + + + + +表示状態の切り替え時に、ブラインドが徐々に開く状態をシミュレートする切り替え効果シェーダー。 + + + + +ブラインドの方向を取得または設定します。 + + + + +ブラインドの数を取得または設定します。 + + + + +シェーダー内で Amplitude 変数を取得または設定します。 + + + + +シェーダーのインスタンスを作成します。 + + + + +BlindsTransitionEffect 効果のディープ コピーを作成します。 + +BlindsTransitionEffect 効果の現在のインスタンスのクローン。 + + + +ブラインドの方向を取得または設定します。 + + + + +表示するブラインドの数を取得または設定します。 + + + + +ブラインドの方向を取得または設定します。 + + + + +画像にブルーム照明を適用する効果。 + + + + +このピクセル シェーダーの明示的入力。 + + + + + +このプロパティは、ピクセル シェーダー内で BloomIntensity 変数にマップされます。 + + + + +このプロパティは、ピクセル シェーダー内で BaseIntensity 変数にマップされます。 + + + + +このプロパティは、ピクセル シェーダー内で BaseIntensity 変数にマップされます。 + + + + +このプロパティは、ピクセル シェーダー内で BaseSaturation 変数にマップされます。 + + + + +このプロパティは、ピクセル シェーダー内で BloomIntensity 変数にマップされます。 + + + + +このプロパティは、ピクセル シェーダー内で BaseIntensity 変数にマップされます。 + + + + +このプロパティは、ピクセル シェーダー内で BaseSaturation 変数にマップされます。 + + + + +インスタンスを作成し、シェーダーの変数を既定値に更新します。 + + + + +ブルームの最小強度を取得または設定します。 + + + + +ベースの強度を取得または設定します。 + + + + +ブルームの強度を取得または設定します。 + + + + +ベースの彩度を取得または設定します。 + + + + +ブルームの彩度を取得または設定します。 + + + + +Input シェーダー サンプラーを取得または設定します。 + + + + +シェーダー内で Base/BloomIntensity 変数を取得または設定します。 + + + + +シェーダー内で BaseBloomSaturation 変数を取得または設定します。 + + + + +拡大/縮小中の円から 2 つの画像を徐々に表示していく切り替え効果。 + + + + +ピクセル シェーダー内でフェザー量の変数を変更する依存関係プロパティ。 + + + + +円の動きを変更する依存関係プロパティ。 + + + + +ピクセル シェーダー内で reverseShader 変数を変更する依存関係プロパティ。 + + + + +インスタンスを作成し、シェーダーの変数を既定値に更新します。 + + + + +CircleRevealTransitionEffect 効果のディープ コピーを作成します。 + +CircleRevealTransitionEffect 効果の現在のインスタンスのクローン。 + + + +シェーダー内で FuzzyAmount 変数を取得または設定します。 + + + + +Circle Reveal の背景の再生を取得または設定します。 + + + + +Circle Reveal の背景の再生をシェーダーに取得または設定します。 + + + + +雲のテクスチャーをサンプラーのしきい値として使用して、2 つの画像を切り替える切り替え効果。 + + + + +2 つのビジュアル間にピクセル値を補間するため、サンプラーのしきい値として 1 つのイメージを使用する、切り替えシェーダー効果を定義します。 + + + + +効果が実行されるたびに異なるバリエーションの効果を表示できるように、ランダム値を提供する切り替えシェーダー効果を定義します。 + + + + +ピクセル シェーダー内で RandomSeed 変数を変更する依存関係プロパティ。 + + + + +シェーダーの変数を既定値に更新します。 + + + + +シェーダー内で RandomSeed 変数を取得または設定します。 + + + + +ピクセル シェーダー内で CloudImage 変数を変更する依存関係プロパティ。 + + + + +インスタンスを作成し、シェーダーの変数を既定値に更新します。 + + + + +シェーダー内で CloudImage 変数を取得または設定します。 + + + + +シェーダーのインスタンスを作成します。 + + + + +CloudRevealTransitionEffect 効果のディープ コピーを作成します。 + +CloudRevealTransitionEffect 効果の現在のインスタンスのクローン。 + + + +2 色をサンプリングとして使用し、画像の色調を変化させる効果。 + + + + +このピクセル シェーダーの明示的入力。 + + + + +このプロパティは、ピクセル シェーダー内で Desaturation 変数にマップされます。 + + + + +このプロパティは、ピクセル シェーダー内で Tone 変数にマップされます。 + + + + +このプロパティは、ピクセル シェーダー内で LightColor 変数にマップされます。 + + + + +このプロパティは、ピクセル シェーダー内で DarkColor 変数にマップされます。 + + + + +インスタンスを作成し、シェーダーの変数を既定値に更新します。 + + + + +シェーダー内で Desaturation 変数を取得または設定します。 + + + + +シェーダー内で Tone 変数を取得または設定します。 + + + + +シェーダー内で LightColor 変数を取得または設定します。 + + + + +シェーダー内で DarkColor 変数を取得または設定します。 + + + + +Input シェーダー サンプラーを取得または設定します。 + + + + +画像のエンボス スタイルをシミュレートする効果。 + + + + +このピクセル シェーダーの明示的入力。 + + + + +このプロパティは、ピクセル シェーダー内で Amount 変数にマップされます。 + + + + +このプロパティは、ピクセル シェーダー内で Height 変数にマップされます。 + + + + +このプロパティは、ピクセル シェーダー内で Color 変数にマップされます。 + + + + +インスタンスを作成し、シェーダーの変数を既定値に更新します。 + + + + +シェーダー内で Amount 変数を取得または設定します。 + + + + +シェーダー内で Desaturation 変数を取得または設定します。 + + + + +シェーダー内で Desaturation 変数を取得または設定します。 + + + + +Input シェーダー サンプラーを取得または設定します。 + + + + +1 つの画像から別の画像へ徐々に移行していく切り替え効果 + + + + +シェーダーのインスタンスを作成します。 + + + + +FadeTransitionEffect 効果のディープ コピーを作成します。 + +FadeTransitionEffect 効果の現在のインスタンスのクローン。 + + + +拡大鏡をシミュレートする効果。 + + + + +シェーダー内で InnerRadius 変数を取得または設定します。 + + + + +シェーダー内で OuterRadius 変数を取得または設定します。 + + + + +シェーダー内で中心の変数を取得または設定します。 + + + + +シェーダー内で amount 変数を取得または設定します。 + + + + +シェーダーで使用される Input を取得または設定します。 + + + + +このシェーダーに使用される変換。 + + + + +インスタンスを作成し、シェーダーの変数を既定値に更新します。 + + + + +シェーダー内で InnerRadius 変数を取得または設定します。 + + + + +シェーダー内で OuterRadius 変数を取得または設定します。 + + + + +シェーダー内で Center 変数を取得または設定します。 + + + + +ShrinkFactor を取得または設定します。縮小係数が高いほうが、楕円内のコンテンツがより小さく表示されます。 + + + + +EffectMapping を取得します。 + + + + +Input シェーダー サンプラーを取得または設定します。 + + + + +Magnify 効果に相当する GeneralTransform。 + + + + +効果を基に点の変換を試みます。 + +変換する点。 +該当する場合の結果。 +成功すると true を返します。 + + + +効果のインスタンス。 + + + + +変換が逆の場合。 + + + + +この効果に固有の変換。 + + + + +新しいインスタンスを作成します。 + +ソースとなる効果。 + + + +この効果は、軸に配置された線をそのまま軸上に維持するため、Rect の変換は頂点の変換のみになります。 + +入力する Rect。 +出力される Rect。 + + + +シェーダーの逆変換の場合は、Pout をテクスチャー入力として、Pixel Ouput である Pin を見つけます (シェーダーの反対)。ただし、シェーダーのアルゴリズムは、中心からのピクセル出力に依存し、これは逆変換を計算する際には不明の変数となります。収束を行うには、次の方程式を使って二分法を行う必要があります: PHatout = PHat_in*Scalar where PHatout = Pout - Pcenter pHatin = Pin -Pcenter + +スカラーは Pin (不明) の半径に依存します。 + + + + +任意のピクセル出力 (Pin) で、テクスチャー入力 (Pout) を求めます。 + + + + +新しいインスタンスを作成します。 + +これの新しいインスタンス。 + + + +点が楕円内にあるかどうか決定します。 + +テスト点。 +楕円の中心点。 +楕円の半径。 +成功すると true を返します。 + + + +逆変換を取得します。 + + + + +画像をモノクロ色に変換する効果。 + + + + +シェーダー内で Desaturation 変数を取得または設定します。 + + + + +シェーダー内で Input を取得または設定します。 + + + + +インスタンスを作成し、シェーダーの変数を既定値に更新します。 + + + + +シェーダー内で Desaturation 変数を取得または設定します。 + + + + +シェーダーで使用される Input を取得または設定します。 + + + + +画像にモザイクをかける (ピクセル化) 効果。 + + + + +このピクセル シェーダーの明示的入力。 + + + + +このプロパティは、ピクセル シェーダー内で Pixelation 変数にマップされます。 + + + + +インスタンスを作成し、シェーダーの変数を既定値に更新します。 + + + + +シェーダー内でモザイク (ピクセル化) の量を取得または設定します。 + + + + +Input シェーダー サンプラーを取得または設定します。 + + + + +2 つの画像間でモザイク (ピクセル化) の量を増加または減少する切り替え効果 + + + + +シェーダーのインスタンスを作成します。 + + + + +PixelateTransitionEffect 効果のディープ コピーを作成します。 + +PixelateTransitionEffect 効果の現在のインスタンスのクローン。 + + + +Radial Blur を実行し、現在の画像を放射状にぼかして新しい画像を表示していく切り替え効果。 + + + + +シェーダーのインスタンスを作成します。 + + + + +RadialBlurTransitionEffect 効果のディープ コピーを作成します。 + +RadialBlurTransitionEffect 効果の現在のインスタンスのクローン。 + + + +画像に波紋をシミュレートする効果。 + + + + +シェーダー内で Center 変数を取得または設定します。 + + + + +シェーダー内で Amplitude 変数を取得または設定します。 + + + + +シェーダー内で Frequency 変数を取得または設定します。 + + + + +シェーダー内で Phase 変数を取得または設定します。 + + + + +シェーダーで使用される Input ブラシを取得または設定します。 + + + + +インスタンスを作成し、シェーダーの変数を既定値に更新します。 + + + + +シェーダー内で Center 変数を取得または設定します。 + + + + +シェーダー内で Amplitude 変数を取得または設定します。 + + + + +シェーダー内で Frequency 変数を取得または設定します。 + + + + +シェーダー内で Phase 変数を取得または設定します。 + + + + +Input シェーダー サンプラーを取得または設定します。 + + + + +切り替わり時に波紋をシミュレートする効果。 + + + + +シェーダーのインスタンスを作成します。 + + + + +RippleTransitionEffect 効果のディープ コピーを作成します。 + +RippleTransitionEffect 効果の現在のインスタンスのクローン。 + + + +画像をよりくっきりと鮮明にする効果。 + + + + +このピクセル シェーダーの明示的入力。 + + + + +このプロパティは、ピクセル シェーダー内で Amount 変数にマップされます。 + + + + +このプロパティは、ピクセル シェーダー内で Width 変数にマップされます。 + + + + +インスタンスを作成し、シェーダーの変数を既定値に更新します。 + + + + +シェーダー内で Amount 変数を取得または設定します。 + + + + +シェーダー内で Desaturation 変数を取得または設定します。 + + + + +Input シェーダー サンプラーを取得または設定します。 + + + + +スライドの方向を定義します。 + + + + +現在の画像を押し出すようにして、新しい画像を徐々に表示していく切り替え効果。 + + + + +ピクセル シェーダー内で SlideAmount 変数を変更する依存関係プロパティ。 + + + + +ピクセル シェーダー内で SlideAmount 変数を変更する依存関係プロパティ。 + + + + +インスタンスを作成し、シェーダーの変数を既定値に更新します。 + + + + +SlideInTransitionEffect 効果のディープ コピーを作成します。 + +SlideInTransitionEffect 効果の現在のインスタンスのクローン。 + + + +シェーダー内で SlideAmount 変数を取得または設定します。 + + + + +シェーダー内で SlideAmount 変数を取得または設定します。 + + + + +現在の画像に渦巻き効果を適用して、新しい画像を表示していく切り替え効果。 + + + + +ピクセル シェーダー内で TwistAmount 変数を変更する依存関係プロパティ。 + + + + +ピクセルをねじるセル数を変更する依存関係プロパティ。 + + + + +インスタンスを作成し、シェーダーの twist 変数を指定値に設定します。 + +渦巻きのねじりのレベル。 + + + +インスタンスを作成し、シェーダーの変数を既定値に更新します。 + + + + +SmoothSwirlGridTransitionEffect 効果のディープ コピーを作成します。 + +SmoothSwirlGridTransitionEffect 効果の現在のインスタンスのクローン。 + + + +シェーダー内で TwistAmount 変数を取得または設定します。 + + + + +シェーダー内で CellCount 変数を取得または設定します。 + + + + +現在の画像に渦巻きを適用する効果。 + + + + +このピクセル シェーダーの明示的入力。 + + + + +このプロパティは、ピクセル シェーダー内で Center 変数にマップされます。 + + + + +このプロパティは、ピクセル シェーダー内で TwistAmount 変数にマップされます。 + + + + +このプロパティは、ピクセル シェーダー内で AngleFrequency 変数にマップされます。 + + + + +この効果の適用時に使用する変換。 + + + + +インスタンスを作成し、シェーダーの変数を既定値に更新します。 + + + + +シェーダー内で Center 変数を取得または設定します。 + + + + +シェーダー内で TwistAmount 変数を取得または設定します。 + + + + +シェーダー内で AngleFrequency 変数を取得または設定します。このプロパティは公開されません。 + + + + +Input シェーダー サンプラーを取得または設定します。 + + + + +この効果の GeneralTransform を取得します。 + + + + +入力変換とツリー変換に使用されます。 + + + + +Effect のインスタンス。 + + + + +変換の逆転。 + + + + +GeneralTransform の逆転。 + + + + +このクラスのインスタンスを作成します。 + +効果自体。 + + + +この演算では、変換された 4 つの点を持つ境界ボックスが境界です。それぞれを変換して、外接させます。前方変換にも逆変換にも該当します。 + +入力する Rect。 +変換された Rect。 + + + +Swirl 効果を使って、inPoint を変換します。 + +入力点。 +Swirl 効果を使用した変換後の出力点。 +true を返しますが、false の場合はスローします。 + + + +これの新しいインスタンスを返します。 + +新しいインスタンス。 + + + +現在の変換の逆転のクローンを取得します。 + + + + +現在の画像に波の効果を適用して、新しい画像を表示していく切り替え効果。 + + + + +ピクセル シェーダー内で Magnitude 変数を変更する依存関係プロパティ。 + + + + +ピクセル シェーダー内で Phase 変数を変更する依存関係プロパティ。 + + + + +ピクセル シェーダー内で Frequency 変数を変更する依存関係プロパティ。 + + + + +シェーダーのインスタンスを作成します。 + + + + +WaveTransitionEffect 効果のディープ コピーを作成します。 + +WaveTransitionEffect 効果の現在のインスタンスのクローン。 + + + +波の大きさを取得または設定します。 + + + + +波のフェーズを取得または設定します。 + + + + +波の大きさを取得または設定します。 + + + + +ワイプの方向を定義します。 + + + + +現在の画像にワイプ効果を適用して、新しい画像を表示していく切り替え効果。 + + + + +ピクセル シェーダー内で WipeDirection 変数を変更する依存関係プロパティ。 + + + + +ピクセル シェーダー内で FeatherAmount 変数を変更する依存関係プロパティ。 + + + + +ピクセル シェーダー内で LineOrigin 変数を変更する依存関係プロパティ。 + + + + +ピクセル シェーダー内で LineNormal 変数を変更する依存関係プロパティ。 + + + + +ピクセル シェーダー内で LineOffset 変数を変更する依存関係プロパティ。 + + + + +インスタンスを作成し、シェーダーの変数を既定値に更新します。 + + + + +WipeTransitionEffect 効果のディープ コピーを作成します。 + +WipeTransitionEffect 効果の現在のインスタンスのクローン。 + + + +ワイプの方法を取得または設定します。 + + + + +シェーダー内で FeatherAmount 変数を取得または設定します。 + + + + +シェーダー内で LineOrigin 変数を取得または設定します。 + + + + +シェーダー内で LineNormal 変数を取得または設定します。 + + + + +シェーダー内で LineOffset 変数を取得または設定します。 + + + + diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/ja/Microsoft.Expression.Interactions.resources.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/ja/Microsoft.Expression.Interactions.resources.dll new file mode 100644 index 0000000..7ef3def Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/ja/Microsoft.Expression.Interactions.resources.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/ja/Microsoft.Expression.Interactions.xml b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/ja/Microsoft.Expression.Interactions.xml new file mode 100644 index 0000000..8d12a03 --- /dev/null +++ b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/ja/Microsoft.Expression.Interactions.xml @@ -0,0 +1,1241 @@ + + + + Microsoft.Expression.Interactions + + + + +パラメーターを取らないメソッド、または 1 つのパラメーターを取るメソッドをラップする、ICommand の基本的な実装です。 + + + + + クラスの新しいインスタンスを初期化します。 + +アクション。 +このコンストラクターを使用し、ICommand パラメーターを無視するアクションを提供します。 + + + + クラスの新しいインスタンスを初期化します。 + +オブジェクト パラメーターを取るアクション。 +このコンストラクターを使用して、Execute メソッドによって渡されるオブジェクト パラメーターを使用するアクションを提供します。 + + + +現在の状態でコマンドが実行可能かどうかを決定するメソッドを定義します。 + +コマンドにより使用されるデータです。このコマンドがデータの引き渡しを必要としない場合、オブジェクトを null に設定できます。 + +常に真を返します。 + + + + +コマンドが起動される際に呼び出すメソッドを定義します。 + +コマンドにより使用されるデータです。このコマンドがデータの引き渡しを必要としない場合、オブジェクトを null に設定できます。 + + + +コマンドを実行すべきかどうかに影響する変更があると発生します。ActionCommand によっては実行されません。 + + + + +指定のオブジェクトが呼び出されると、それに対してメソッドを呼び出します。 + + + + +アクションを起動します。 + +アクションのパラメーター。アクションがパラメーターを要求しない場合、パラメーターを null 参照に設定できます。 + + + +アクションが AssociatedObject にアタッチされた後で呼び出されます。 + +これをオーバーライドし、AssociatedObject に機能をフックアップします。 + + + +アクションが AssociatedObject からデタッチされるとき、その前に呼び出されます。 + +これをオーバーライドし、機能を AssociatedObject からアンフックします。 + + + +対象のメソッドを公開するオブジェクト。これは依存関係プロパティです。 + + + + +呼び出すメソッドの名前。これは依存関係プロパティです。 + + + + +起動されたときに、特定のプロパティを特定の値に変更するアクションです。 + + + + + クラスの新しいインスタンスを初期化します。 + + + + +アクションを起動します。 + +アクションのパラメーター。アクションがパラメーターを要求しない場合は、パラメーターを null 参照に設定できます。 + を伴うプロパティは、ターゲット上で見つかりませんでした。 + で指定された値に を設定できませんでした。 + + + +変更するプロパティの名前を取得または設定します。これは依存関係プロパティです。 + +変更するプロパティの名前。 + + + +設定する値を取得または設定します。これは依存関係プロパティです。 + +設定する値。 + + + +ChangePropertyAction が起動されたときに表示されるアニメーションの再生時間を取得または設定します。これは依存関係プロパティです。時間を設定しないと、アニメーションは適用されません。 + + + + +true の場合は Value 単位で増分し、それ以外の場合は値を直接設定します。プロパティが増分不可能な場合は、直接値を設定しようと試行します。 + + + + +1 つの三項条件を示します。 + + + + +条件を評価するメソッド。このメソッドは ArgumentException をスローすることができますが、演算子がその型と互換性のあることが条件となります。たとえば、LessThan、LessThanOrEqual、GreaterThan、および GreaterThanOrEqual の各演算子は、両方の演算子が IComparable を実装することを必要とします。 + +条件が満たされた場合は true、それ以外の場合は false を返します。 + + + +DP オペランドのバインドがすべて最新であるよう確認します。 + + + + +左オペランドを取得または設定します。 + + + + +右オペランドを取得または設定します。 + + + + +比較演算子を取得または設定します。 + + + + +複数の比較演算子の列挙。 + + + + +このメソッドはオペランドを評価します。 + +LeftOperand プロパティの左オペランド。 +Operator プロパティの演算子。 +RightOperand プロパティの右オペランド。 +条件が満たされた場合は true、それ以外の場合は false を返します。 + + + +IComparable インターフェイスを実装する両方のオペランドを評価します。 + +LeftOperand プロパティの左オペランド。 +Operator プロパティの演算子。 +RightOperand プロパティの右オペランド。 +条件が満たされた場合は true、それ以外の場合は false を返します。 + + + +前向き連鎖。 + + + + +ConditionBehavior.Condition プロパティに設定する条件式を表します。これに含まれる条件リストが評価され、ICondition.Evaluate() に対して true または false が返されます。 + + + + +任意のオブジェクトを ConditionBehavior.Condition プロパティに設定するために、オブジェクトに実装する必要のあるインターフェイス。 + + + + + クラスの新しいインスタンスを初期化します。 + + + + +条件コレクションを検証して、ForwardChaining プロパティを基に各条件を評価します。 + +条件が満たされる場合は true、それ以外の場合は false を返します。 + + + +条件の前向き連鎖を取得または設定します。前向き連鎖が ForwardChaining.And に設定される場合は、すべての条件を満たす必要があります。前向き連鎖が ForwardChaining.Or に設定される場合は、いずれか 1 つの条件を満たす必要があります。 + + + + +条件コレクションを返します。 + + + + +トリガーにアタッチされるビヘイビアーで、アクションを発生させる条件を制御します。 + + + + + + クラスの新しいインスタンスを初期化します。 + + + + +トリガーにより起動されるプレビュー呼び出しイベントをリッスンしているイベント ハンドラー。PreviewInvokeEventArgs.Cancelling を True に設定すると、呼び出しが取り消されます。 + +トリガー ベースのオブジェクト。 +e.Cancelling を True に設定可能な、PreviewInvokeEventArgs 型のオブジェクト。 + + + +ビヘイビアーの IConditon を取得または設定します。 + +変更する条件の名前。 + + + +依存関係オブジェクトのバインド式を制御するヘルパー クラス + + + + +バインド式を持つアクションの DP がすべて最新であることを確認します。データ バインド過程では、DataTrigger が発生されます。アクションはトリガーの子であるため、アクションのバインドは最新の状態でないことがあります。すべてのバインド式が最新情報に更新済みであることを確認するため、アクション実行の前にこのルーチンが呼び出されます。 + + + + +アクションのバインド式がすべて最新の状態であることを確認します。 + + + + +このヘルパー関数は、依存関係オブジェクトの依存関係プロパティがバインド式を持つ場合、バインド式が最新の状態であることを確認します。 + + + + + + +条件付きステートメントを基に 2 つの状態間を切り替えます。 + + + + +ビヘイビアーが AssociatedObject にアタッチされた後で呼び出されます。 + +これをオーバーライドし、AssociatedObject に機能をフックアップします。 + + + +Silverlight で FrameworkElement.IsLoaded が提供されないため、このプロパティの代わりに使用されるヘルパー関数。 + +関心の要素。 +この要素が読み込まれている場合は true、それ以外の場合は false を返します。 + + + +データ オブジェクトのプロパティ値を生成するバインド式を取得または設定します。これは依存関係プロパティです。 + + + + +データ オブジェクトのプロパティ値に比較する値を取得または設定します。これは依存関係プロパティです。 + + + + +条件を満たすときに表示状態が変更される場合、その切り替わり先の状態名を取得または設定します。これは依存関係プロパティです。 + + + + +条件が満たされないときに表示状態が変更される場合、その切り替わり先の状態名を取得または設定します。これは依存関係プロパティです。 + + + + +データ ストア プロパティにバインドするように設計されたトリガー。プロパティが変更されると起動されます。 + + + + +バインドされたデータが変更されるとアクションを実行するトリガーを示します。 + +UA_REVIEW:chabiss + + + +バインドしているプロパティが変更されると呼び出されます。UA_REVIEW:chabiss + + 引数です。 + + + +トリガーが AssociatedObject にアタッチされた後で呼び出されます。UA_REVIEW:chabiss + + + + +トリガーが AssociatedObject からからデタッチされるとき、その前に呼び出されます。UA_REVIEW:chabiss + + + + +トリガーがリッスンするバインド オブジェクトで、変更があるとトリガーを発生します。 + +UA_REVIEW:chabiss + + + +バインドされたデータが条件を満たすときにアクションを実行するトリガーを示します。 + + + + +バインドしているプロパティが変更されると呼び出されます。UA_REVIEW:chabiss + + 引数です。 + + + +データ オブジェクトのプロパティ値に比較する値を取得または設定します。これは依存関係プロパティです。 + + + + +指定値間で実行される比較の種類を取得または設定します。これは依存関係プロパティです。 + + + + +ExtendedVisualStateManager は、レイアウト プロパティのアニメーションを滑らかにするカスタム VisualStateManager です。このカスタム VisualStateManager により、状態は Grid.Column などのプロパティの変更を含むことができ、要素の高さを Auto に切り替えたり、戻したりできます。これらの変更は、適切な切り替え効果の GeneratedDuration および GeneratedEasingFunction を使用することによって、徐々に滑らかになります。このアルゴリズムの一般的な説明については、以下の "VisualStateManager オーバーライド" を参照してください。 + + + + +VisualStateGroup を使用できる、または、使用できない Fluid Layout。 + + + + +実行時にカスタムの添付プロパティにより、表示に影が付けられます。 + + + + +VisualStateGroup はこれらの元の値のリストをアタッチされたプロパティに保持します。 + + + + +すべての状態について、レイアウト固有のプロパティを抽出し、状態に添付します。これらのプロパティは、状態自体から削除されます。 + + + + +現在の状況を保存します。 + + + + +状態が変更したときに使用される TransitionEffect です。 + + + + +状態の変更中に使用される TransitionEffectStoryboard です。 + + + + +状態の変更中に使用されるキャッシュされた背景です。 + + + + +状態の変更中に使用されるキャッシュされた背景です。 + + + + +状態の変更中に使用されるキャッシュされた背景です。 + + + + +これは、現在モーション中の要素のセットです。 + + + + +これは、移行をアニメーション化するストーリーボードです。 + + + + +この一覧には、すべての既知のレイアウト プロパティが含まれます。 + + + + +アニメーションを停止し、アニメーションをサポートするために行ったレイアウト変更を置き換えます。 + + + + +変更のアニメーション化のために VisualStateManager が使用する切り替え効果を見つけ、レイアウト アニメーションが表示時間およびイージングに一致するようにします。 + +切り替えが進行中のグループ。 +切り替え元の状態。 +切り替え先の状態。 +移行 + + + +状態のストーリーボードからレイアウトに影響を及ぼすすべてのプロパティを削除し、アタッチされたプロパティにキャッシュします。 + +切り替え先の状態。 +状態内にレイアウト プロパティを含むストーリーボード。 + + + +このターゲット要素のセットは、レイアウト移行へ移動した可能性のあるすべての要素です。このセットは次を終了します: 状態内でアニメーション化されるレイアウト プロパティを伴う要素 - セット内の要素の兄弟 - セット内の要素の親 + +以降のコードは、レイアウトの変更前後にこれらの四角形をチェックします。 + +レイアウトの状態が変化しているコントロール。 +レイアウトの変更を含むストーリーボード。 +元に戻すことのできる、以前の状態ナビゲーションからの前の値。 +状態の変化が移行中の場合に、現在モーション進行中の要素セット。 +レイアウトが変更された可能性のあるすべての要素のセット。 + + + +ターゲット一覧内のすべての要素に対して四角形のセットを取得します。 + +対象となる要素のセット。 +現在モーション中の要素のセット。 +要素をそれらの Rect にマッピングするディクショナリ。 + + + +レイアウト スロットを取得してからスロットの使用される部分を計算することによって、要素のレイアウト四角形を取得します。 + +レイアウト Rect をを取得する要素。 +要素のレイアウト Rect。 + + + +可視性ではなく状態変化時の要素の不透明度を取得します。これは、状態の変化が途中である可能性があり、現在の値が最も重要であるためです。 + +状態が変化しているコントロール。 +レイアウトのプロパティを伴うストーリーボード。 +元の値のセット。 + + + + +ストーリーボードの中で SetValue を使用してすべてのプロパティを設定し、表示の原因となるタイムラインのティッキングを行わずに UpdateLayout を呼び出せるようにします。上書きされるすべての値は、後で置換できるように OriginalValueRecords のコレクションに保管されます。 + +状態が変化しているコントロール。 +レイアウトのプロパティを保持するストーリーボード。 +元の値のストア。 + + + +レイアウトのアニメーション化の結果として今後移動されりすべての要素を取得し、それらが兄弟要素に影響を与えないようにキャンバス パネルにラップします。 + +今後移動される要素のセット。 + + + +レイアウトのアニメーション化の結果としてこれまでに移動されたすべての要素を取得し、キャンバス パネルからラップ解除します。 + +これまで移動された要素のセット。 + + + +レイアウト プロパティをソース要素からターゲット要素にコピーし、ソースから削除します。 + +レイアウト プロパティのソース。 +レイアウト プロパティのコピー先。 + + + +以降のアニメーション化に使用する実際のストーリーボードを作成します。以前の計算結果をすべて使用します。 + +アニメーションの再生時間。 +アニメーションに使用するイージング機能。 +今後移動される要素のセット。 +表示プロパティが変化中の要素の元の不透明度。 +ストーリーボード。 + + + +OriginalValueRecord は状態に変化のあったプロパティの元の値を記録します。 + + + + +この列挙型は、それが添付されている要素か、またはその要素の子のどちらに FluidMoveBehavior が適用するかを示します。特別なビヘイビアーが必要な単一の要素がある場合は "Self" を使用し、同じ動作を WrapPanel のすべての子または ItemsControl の ItemsHost Panel に適用する場合は "Children" を使用します。 + + + + +この列挙型は要素が、それ自体によって識別されるか、その DataContext によって識別されるかを示します。DataContext による識別の場合は、1 つのデータ駆動場所から別の場所への移動が許可されます。 + + + + +動作のスコープの Dependency プロパティ。詳細については、「FluidMoveScope」を参照してください。 + + + + +ビヘイビアーのアクティブな状態の Dependency プロパティ。 + + + + +要素をそれ自体のタグとして使用、または、要素のバインドを使用する機能を提供する Dependency プロパティ。 + + + + +UsaBindingAsTag が true の場合にバインドに加える追加パスの Dependency プロパティ。 + + + + +コンテナー間の要素のモーションを検出するのに使用する識別タグ。 + + + + +動作がこの要素のみに適用するか、または要素のすべての子に適用するかを示します (要素が Panel の場合)。 + + + + +動作が現在アクティブ化どうかを示します。 + + + + +要素をそれ自体のタグとして使用するか、要素のバインドをタグとして使用するかを指定します。 + + + + +TagType が指定された場合にバインドに加える追加パス。 + + + + +タグ付きのアイテムに関連するすべてのデータを保存するプライベート構造。 + + + + +レイアウトの変更について要素 (または要素のセット) を監視し、必要に応じて新しい位置に要素を滑らかに移動するビヘイビアー。この動作は要素のサイズまたは可視性をアニメーション化せず、その親コンテナー内部の要素のオフセットをアニメーション化するだけです。 + + + + +移動期間の Dependency プロパティ。 + + + + +オブジェクトの読み込みの直前に使用するタグの種類の Dependency プロパティ。 + + + + +UsaBindingAsTag が true の場合にバインドに加える追加パスの Dependency プロパティ。 + + + + +コンテナー間の要素のモーションを検出するのに使用する識別タグ。 + + + + +FloatAbove フラグの Dependency プロパティ。 + + + + +移動の水平方向コンポーネントに使用する EasingFunction の Dependency プロパティ。 + + + + +移動の垂直方向コンポーネントに使用する EasingFunction の Dependency プロパティ。 + + + + +FloatAbove が true の場合にコンテナー間で要素を移動する場合に備えて、使用中のポップアップ/ガイドを記録します。 + + + + +ポップアップを浮動表示するときに使用する Opacity キャッシュ。 + + + + +アニメーションの変換をマークします。 + + + + +移動の時間。 + + + + +このアイテムの発生点。 + + + + +TagType が指定された場合にバインドに加える追加パス。 + + + + +コンテナーの変更時に、このコンテナーの上に要素 (ポップアップまたはガイド) を浮動表示できるかどうかを示すフラグ。 + + + + +移動の水平方向コンポーネントに使用する EasingFunction。 + + + + +移動の垂直方向コンポーネントに使用する EasingFunction。 + + + + +UIElements を Adorner として使用できるようにするシンプルなヘルパー クラス。 + + + + +起動されたときに、FrameworkElement を特定 FrameworkElement に移行するアクションです。 + + +TargetName プロパティが設定されると、このアクションはターゲット要素の状態の変更を試みます。設定されなければ、要素ツリー上で状態を定義する別のターゲットを検索します。ControlTemplate および UserControl が 可能性の高い 2 つの選択肢です。 + + + + +ターゲットが変化すると呼び出されます。TargetName プロパティが設定されない場合、このアクションはカスタム動作を有します。 + + + +状態のある適切な FrameworkElement が見つかりませんでした。 + + + +一部の条件が一致し、アクションが起動されると、このメソッドが呼び出されます。 + + +ターゲットを指定の StateName に変更できませんでした。 + + + +状態間の切り替えに VisualTransition を使用するかどうかを決定します。 + + + + +VisualState の名前。 + + + + +キーボード イベントによってトリガーされる Trigger。ターゲットの Key および Modifier が検出された場合に、起動します。 + + + + +トリガーを起動するために押す必要のあるキー。 + + + + +トリガーが起動するためには、修飾子がアクティブである必要があります (既定では修飾子は選択されていません)。 + + + + +true の場合、Trigger はそのトリガー ソース オブジェクトのみをリッスンします。つまり、要素のフォーカスが起動するトリガーにある必要があります。false の場合、Trigger はルートをリッスンするため、処理できない KeyDown/Up メッセージがあれば検出されます。 + + + + +KeyDown または KeyUp イベントをリッスンするかどうかを決定します。 + + + + +ファイルまたは URI を開くためのプロセスを起動するアクション。ファイルの場合、このアクションは指定されたファイル拡張子に対して既定のプログラムを起動します。URI は Web ブラウザーで開きます。 + + + + +一部の条件が一致し、アクションが起動されると、このメソッドが呼び出されます。 + + + + + +開こうとするファイルまたは URI。 + + + + +アタッチされた要素をマウスをドラッグのジェスチャに応答して要素の上に再配置します。 + + + + +ルート要素の左との相対で、ドラッグされる要素の X 位置の Dependency プロパティ。 + + + + +ルート要素の上方との相対で、ドラッグされる要素の Y 位置の Dependency プロパティ。 + + + + +ConstrainToParentBounds プロパティの Dependency プロパティ。true の場合、ドラッグされた要素はその親コンテナーの境界内に固定するように制約されます。 + + + + +特定の座標に関連要素の位置を更新しようとします。 + +ルート座標内の要素の目的の位置。 + + + +関連要素に相対位置移動を適用します。 + +ルート座標内の X コンポーネントの必要な移動。 +ルート座標内の Y コンポーネントの必要な移動。 + + + +特定の移動を関連要素の RenderTransform に適用します。 + +親座標内の X コンポーネントの移動。 +親座標内の Y コンポーネントの移動。 + + + +指定の変換の再帰的ディープ コピーを行います。 + +クローンへの変換。 +指定の変換のディープ コピー、指定の変換が null の場合は null を返します。 +変換タイプが認識されない場合はスローされます。 + + + +関連要素の現在レンダリングされた位置に基づいて X および Y のプロパティを更新します。 + + + + +1 つの四角形が別の四角形に含まれるかどうかチェックします。 + +含む四角形。 +含まれる四角形。 +rect1 が rect2 を含む場合は True、それ以外の場合は False + + + +ベクターとして変換します。 + +変換。 +ベクターの X コンポーネント。 +ベクターの Y コンポーネント。 +ベクトル変換により変換された X 値および Y 値を含む点。 + + + +変換オフセットを取得します。 + +変換。 +変換のオフセット。 + + + +ビヘイビアーが AssociatedObject にアタッチされた後で呼び出されます。 + +これをオーバーライドし、AssociatedObject に機能をフックアップします。 + + + +ビヘイビアーが AssociatedObject からデタッチされるとき、その前に呼び出されます。 + +これをオーバーライドし、機能を AssociatedObject からアンフックします。 + + + +ドラッグ ジェスチャーの開始時に発生します。 + + + + +ドラッグ ジェスチャーの更新処理時に発生します。 + + + + +ドラッグ ジェスチャーの終了時に発生します。 + + + + +ルート要素の左との相対で、ドラッグされる要素の X 位置を取得または設定します。これは依存関係プロパティです。 + + + + +ルート要素の上方との相対で、ドラッグされる要素の Y 位置を取得または設定します。これは依存関係プロパティです。 + + + + +ドラッグされる要素がその親コンテナーの境界内に固定するように制約されるかどうかを示す値を取得または設定します。これは依存関係プロパティです。 + + + ドラッグされる要素が親領域内に制約される必要がある場合はTrue、それ以外の場合はFalse。 + + + + +ルート座標内の関連要素の画面上の位置を取得します。 + +ルート座標内の関連要素の画面上の位置。 + + + +要素座標内にバインドする要素を取得します。 + +要素座標内にバインドする要素。 + + + +関連オブジェクトの親要素を取得します。 + +関連オブジェクトの親要素。 + + + +関連オブジェクトがあるシーンのルート要素を取得します。 + +関連オブジェクトがあるシーンのルート要素。 + + + +関連する要素の RenderTransform を取得または設定します。 + + + + +完了時にサウンドを鳴らすアクション。 + + +このアクションは、停止または制御する必要のない短いサウンド効果の利用を想定しています。音楽プレーヤやゲームを作成する場合には役に立たないかも知れません。 + + + + + クラスの新しいインスタンスを初期化します。 + + + + +アクションを起動するとき、動的に作成された MediaElement をカスタマイズするためにこのメソッドが利用されます。 + + +このメソッドは、Action 作成者が PlaySoundAction を拡張したい場合に役立つ可能性があります。MediaElement バランス プロパティを管理する場合、PlaySoundAction から継承してこのメソッドを上書きすることができます。 + + + + + +一部の条件が一致し、アクションを呼び出す必要がある場合に、このメソッドが呼び出されます。 + + +Action を呼び出すごとに新しいサウンドが再生されます。実装は変更される可能性がありますが、これにより再生の終了時またはメディアの再生に失敗した場合に消去される新しい MediaElement が作成されることを、呼び出し元は前提とすべきです。 + + + + + +サウンド ファイルの場所を定義する URI。これは、MediaElement のソース プロパティの設定に使用します。これは依存関係プロパティです。 + + +サウンドのファイル形式は MediaElement でサポートされていればどれでも使用できます。動画の場合には、オーディオのみが再生されます。 + + + + +サウンドの音量制御。これは、MediaElement の音量プロパティの設定に使用します。これは依存関係プロパティです。 + + + + +呼び出されると、ターゲット要素をツリーから削除するアクション。 + + +このアクションは失敗する場合があります。このアクションは、共通の親から要素を削除する方法は認識しますが、カスタム コレクションからの削除方法またはビジュアル ツリーを直接操作する方法は認識しません。 + + + + +プロパティの値をデータ ストア オブジェクトから変更するアクション。このクラスは、ChangePropertyAction と同じです。唯一の違いは、このアクションではデータ ストア ピッカーが読み込まれる点です。 + + + + +ストーリーボードをターゲットにする能力を提供する抽象的なクラス。 + + +このクラスは、アクション作成者にストーリーボードをターゲットにするための標準的な方法を提供します。設計ツールでは、より優れた設計環境を提供するため、このアクションから継承されるクラスを対象とした特殊な編集方法を提供する場合もあります。 + + + + +このメソッドは、ストーリーボード プロパティが変更される場合に呼び出されます。 + + + + + +対象のストーリーボード。これは依存関係プロパティです。 + + + + +呼び出されたときに、ターゲット ストーリーボードの状態を変更するアクションです。 + + + + +一部の条件が一致し、アクションを起動する必要がある場合に、このメソッドが呼び出されます。このメソッドは、ControlStoryboardOption で定義された方法でターゲット ストーリーボードの変更を試行します。 + + + + + +ストーリーボードをターゲットにする能力を提供する抽象的なクラス。 + + +このクラスは、Trigger 作成者にストーリーボードをターゲットにするための標準的な方法を提供します。設計ツールでは、より優れた設計環境を提供するため、このトリガーから継承されるクラスを対象とした特殊な編集方法を提供する場合もあります。 + + + + +このメソッドは、ストーリーボード プロパティが変更される場合に呼び出されます。 + + + + +対象のストーリーボード。これは依存関係プロパティです。 + + + + +ストーリーボードの完了をリッスンするトリガー。 + + + + + クラスの新しいインスタンスを初期化します。 + + + + +ソース上で発生する指定イベントによりトリガーされ、イベントが起動されたときに一定時間遅れて起動するトリガー。 + + + + + クラスの新しいインスタンスを初期化します。 + + + + +目盛の間の待ち時間 (ミリ秒) を取得または設定します。これは依存関係プロパティです。 + + + + +トリガーが終了する前に起動される目盛の合計数を取得または設定します。これは依存関係プロパティです。 + + + + +0 から 1 の間の補間値を使用して、表示状態を移行する切り替え効果シェーダーを定義します。 + + + + +シェーダーのサンプラー プロパティに変換されたブラシ値のプロパティ。切り替えの最終状態で表示されるイメージを示します。 + + + + +シェーダーのサンプラー プロパティに変換されたブラシ値のプロパティ。切り替えの初期状態で表示されるイメージを示します。 + + + + +Progress のバッキング ストアとして使用する Dependency プロパティ。Transition の開始から終了までの状態を表すためにも使用されます (0 ~ 1 の範囲)。 + + + + + の現在値を使用して、修正可能なクローン (ディープ コピー) を作成します。 + + + + +切り替え効果のディープ コピーを作成します。Silverlight で CloneCurrentValue を実装します。 + +切り替え効果の現在のインスタンスのクローン。 + + + +シェーダーの変数を既定値に更新します。 + + + + +シェーダー内で Input 変数を取得または設定します。 + + + + +シェーダー内で OldImage 変数を取得または設定します。 + + + + +シェーダー内で Progress 変数を取得または設定します。 + + + + +一般的なタッチ ジェスチャーによりユーザーがアタッチされたオブジェクトを平行移動、拡大縮小、および回転できるようにします。 + + + + +ビヘイビアーが AssociatedObject にアタッチされた後で呼び出されます。 + +これをオーバーライドし、AssociatedObject に機能をフックアップします。 + + + +ビヘイビアーが AssociatedObject からデタッチされるとき、その前に呼び出されます。 + +これをオーバーライドし、機能を AssociatedObject からアンフックします。 + + + +サポートするズームおよび平行移動のバリアントを指定する値を取得または設定します。 + + + + +平行移動が減少する割合を示す数を取得または設定します。 + + + + +回転が減少する割合を示す数を取得または設定します。 + + + + +アタッチされたオブジェクトのズームおよび平行移動の位置が、親オブジェクトの境界に制限されるかどうかを示す値を取得または設定します。 + + + + +ズームの最小値を示す数を取得または設定します。 + + + + +ズームの最大値を示す数を取得または設定します。 + + + + +このクラスは、VisualStateManager で使用できるプラットフォームに依存しないさまざまな標準演算を提供します。 + + + + +2 つの状態間の制御を切り替えます。 + +状態間で切り替える要素。 +切り替え先の状態。 +System.Windows.VisualTransition を使用して状態を切り替える場合は true、それ以外は false。 +制御が新しい状態に正常に切り替えられた場合は true、それ以外は false。 +control は null。 +stateName は null。 + + + +VisualStateManager.VisualStateGroups がアタッチされたプロパティの値を取得します。 + +VisualStateManager.VisualStateGroups の取得元の要素。 + + + + +表示状態を含む最も近い親を見つけます。 + +最も近いステートフル コントロールを見つける対象の要素。 +True の場合は最も近いステートフル コントロール、それ以外は null。 +親に表示状態が含まれる場合は True、それ以外は False。 + + + +ローカライズされた文字列などを調べるために、厳密に型指定されたリソース クラス。 + + + + +このクラスで使用される、キャッシュされた ResourceManager インスタンスに戻ります。 + + + + +この厳密に型指定されたリソース クラスを使用して、すべてのリソース ルックアップに対して現在のスレッドの CurrentUICulture プロパティを上書きします。 + + + + +「該当する署名に一致する型 "{1}" のオブジェクトに "{0}" という名前のメソッドは見つかりませんでした。」に類似したローカライズされた文字列を検索します。 + + + + +「型 '{0}' で 1 つ以上の該当する加算演算子が見つかりました。」に類似したローカライズされた文字列を検索します。 + + + + +次のようなローカライズされた文字列を検索します: 「型 "{1}" のターゲットでプロパティの変更をアニメーション化できません。プロパティの変更は、DependencyObject から派生する型に対してのみアニメーション化できます。」 + + + + +「型 "{1}" に "{0}" という名前のプロパティが見つかりません。」に類似したローカライズされた文字列を検索します。 + + + + +「Duration プロパティが設定されている場合は、Increment プロパティを True に設定できません。」に類似したローカライズされた文字列を検索します。 + + + + +「"{0}" プロパティの値が読み取れないため増分できません。」に類似したローカライズされた文字列を検索します。 + + + + +次のようなローカライズされた文字列を検索します: 「型 "{0}" の値を型 "{2}" のプロパティ "{1}" に割り当てることはできません。"{1}" プロパティには型 "{2}" の値のみ割り当てできます。」 + + + + +「型 "{1}" で定義されたプロパティ "{0}" は set メソッドを公開しないため、変更できません。」に類似したローカライズされた文字列を検索します。 + + + + +「型 "{1}" の "{0}" という名前の状態が見つかりません。この状態が存在していて、このコンテキストからアクセス可能であることを確認してください。」に類似したローカライズされた文字列を検索します。 + + + + +「ターゲット {0} は VisualStateGroups を定義しません。」に類似したローカライズされた文字列を検索します。 . + + + + +「型 "{0}" の LeftOperand は、演算子 "{1}" と合わせて使用できません。」に類似したローカライズされた文字列を検索します。 + + + + +「型 "{1}" の LeftOperand と型 "{0}" の RightOperand は、演算子 "{2}" と合わせて使用できません。」に類似したローカライズされた文字列を検索します。 + + + + +「型 "{0}" の RightOperand は、演算子 "{1}" に合わせて使用できません。」に類似したローカライズされた文字列を検索します。 + + + + +「RemoveElementAction のターゲットはサポートされていません。」に類似したローカライズされた文字列を検索します。 + + + + diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/ja/Microsoft.Expression.Prototyping.Interactivity.resources.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/ja/Microsoft.Expression.Prototyping.Interactivity.resources.dll new file mode 100644 index 0000000..d3a3b2e Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/ja/Microsoft.Expression.Prototyping.Interactivity.resources.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/ja/System.Windows.Interactivity.resources.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/ja/System.Windows.Interactivity.resources.dll new file mode 100644 index 0000000..94edbdc Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/ja/System.Windows.Interactivity.resources.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/ja/System.Windows.Interactivity.xml b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/ja/System.Windows.Interactivity.xml new file mode 100644 index 0000000..aacc687 --- /dev/null +++ b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/ja/System.Windows.Interactivity.xml @@ -0,0 +1,1046 @@ + + + + System.Windows.Interactivity + + + + +共有される AssociatedObject と共に IAttachedObject のコレクションを表し、AssociatedObject に変更が発生すると変更通知をコンテンツに提供します。 + + + + +別のオブジェクトにアタッチ可能なオブジェクトのインターフェイスです。 + + + + +指定されたオブジェクトにアタッチします。 + +アタッチするオブジェクト。 + + + +このインスタンスを関連オブジェクトからデタッチします。 + + + + +関連オブジェクトを取得します。 + +関連オブジェクト。 +インスタンスがアタッチされているオブジェクトを表します。 + + + + クラスの新しいインスタンスを初期化します。 + +アセンブリの外部で継承すべきではないため、内部とします。 + + + +コレクションが AssociatedObject にアタッチされる直後に呼び出されます。 + + + + +コレクションが AssociatedObject からデタッチされるとき、その前に呼び出されます。 + + + + +新しい項目がコレクションに追加されるときに呼び出されます。 + +新しい項目。 + + + +項目がコレクションから削除されるときに呼び出されます。 + +削除される項目。 + + +インスタンスをコレクションに再度追加することはできません。 + + + +指定されたオブジェクトにアタッチします。 + +アタッチするオブジェクト。 +IAttachedObject は既に別のオブジェクトにアタッチされています。 + + + +このインスタンスを関連オブジェクトからデタッチします。 + + + + +コレクションがホストされるオブジェクト。 + + + + +関連オブジェクトを取得します。 + +関連オブジェクト。 + + + +状態情報および 0 以上の ICommands をアタッチ可能なオブジェクトにカプセル化します。 + + をアタッチできる型。 + + Behavior とは、アタッチ可能な状態およびコマンドをオブジェクトに提供するための基本クラスです。Behavior をアタッチできる型は、ジェネリック パラメーターで制御可能です。OnAttached() および OnDetaching() メソッドをオーバーライドし、必要なハンドラーを AssociatedObject にフックしたり、アンフックします。 + + + + +状態情報および 0 以上の ICommands をアタッチ可能なオブジェクトにカプセル化します。 + +これはインフラストラクチャ クラスです。Behavior 作成者は、このクラスの代わりに Behavior<T> から派生する必要があります。 + + + +ビヘイビアーが AssociatedObject にアタッチされた後で呼び出されます。 + +これをオーバーライドし、AssociatedObject に機能をフックアップします。 + + + +ビヘイビアーが AssociatedObject からデタッチされるとき、その前に呼び出されます。 + +これをオーバーライドし、機能を AssociatedObject からアンフックします。 + + + +指定されたオブジェクトにアタッチします。 + +アタッチするオブジェクト。 +Behavior は既に別の要素上でホストされています。 +dependencyObject は、Behavior の型制約を満たしていません。 + + + +このインスタンスを関連オブジェクトからデタッチします。 + + + + +このビヘイビアーをアタッチできる型。 + + + + +このビヘイビアーがアタッチされるオブジェクトを取得します。 + + + + +関連オブジェクトを取得します。 + +関連オブジェクト。 + + + + クラスの新しいインスタンスを初期化します。 + + + + +この がアタッチされるオブジェクトを取得します。 + + + + +共有される AssociatedObject と共にビヘイビアーのコレクションを表し、AssociatedObject が変更するときに変更通知をコンテンツに提供します。 + + + + + クラスの新しいインスタンスを初期化します。 + +アセンブリの外部で継承すべきではないため、内部とします。 + + + +コレクションが AssociatedObject にアタッチされる直後に呼び出されます。 + + + + +コレクションが AssociatedObject からデタッチされるとき、その前に呼び出されます。 + + + + +新しい項目がコレクションに追加されるときに呼び出されます。 + +新しい項目。 + + + +項目がコレクションから削除されるときに呼び出されます。 + +削除される項目。 + + + +BehaviorCollection の新しいインスタンスを作成します。 + +新しいインスタンス。 + + + +再利用可能なプロパティ値エディターに対し可能な値をカプセル化します。 + + + + +デザイン時に、サポートされている場合は要素ピッカーを使用してこのプロパティを編集します。 + + + + +デザイン時に、サポートされている場合はストーリーボード ピッカーを使用してこのプロパティを編集します。 + + + + +デザイン時に、サポートされている場合は状態ピッカーを使用してこのプロパティを編集します。 + + + + +デザイン時に、サポートされている場合は要素バインド ピッカーを使用してこのプロパティを編集します。 + + + + +デザイン時に、サポートされている場合は要素バインド ピッカーを使用してこのプロパティを編集します。 + + + + +特定のエディターの種類を CustomPropertyValueEditor が適用されるプロパティに関連付けます。 + +この属性を使用して、要素 (名前別)、ストーリーボード、または状態 (名前別) を示すプロパティ用にデザイン時の編集を強化します。 + + + + クラスの新しいインスタンスを初期化します。 + +カスタム プロパティ値エディター。 + + + +カスタム プロパティ値エディターを取得または設定します。 + +カスタム プロパティ値エディター。 + + + +特定のアクションまたはコマンドに対してどのをインスタンス化するかについてデザイン ツールの情報を提供します。 + + + + + クラスの新しいインスタンスを初期化します。 + +この属性が適用される型。 +インスタンス化するの型。 +指定された用の単一の引数。 + は TriggerBase から派生していません。 +このコンストラクターは、指定されたに単一の引数がある場合に役立ちます。結果コードは CLS に準拠します。 + + + + クラスの新しいインスタンスを初期化します。 + +この属性が適用される型。 +インスタンス化するの型。 +指定された用のコンストラクター引数。 + は TriggerBase から派生していません。 + + + +このインスタンスをインスタンス化します。 + +DefaultTriggerAttribute により指定された + + + +この DefaultTriggerAttribute が適用される型を取得します。 + +この DefaultTriggerAttribute が適用される型。 + + + +インスタンス化するの型を取得します。 + +インスタンス化するの型。 + + + + コンストラクターに渡すパラメーターを取得します。 + + コンストラクターに渡すパラメーター。 + + + +このメソッドは、VisualTreeHelper.GetParent メソッドを使用して、ビジュアル ツリーの上位階層の初期検索を行い、指定オブジェクトの先祖をすべて (オブジェクト自体も含めて) 返します。 + +ビジュアル ツリー内で先祖を見つけるオブジェクト。 +オブジェクト自体とビジュアル ツリー内のそのすべての先祖を返します。 + + + +EventObserver は、イベント ハンドラーが破棄されるとデタッチして、その管理を支援するようにデザインされています。このオブジェクトを作成すると、コンストラクターにアタッチされます。 + + + + +EventObserver のインスタンスを作成し、提供されるイベントとターゲットにアタッチします。dispose を呼び出してデタッチします。 + +アタッチおよびデタッチするイベント。 +イベントが定義されるターゲット オブジェクト。メソッドが静的な場合は Null です。 +イベントにアタッチするデリゲート。 + + + +イベントからハンドラーをデタッチします。 + + + + +ソース上の指定イベントをリッスンし、そのイベントが起動されると発生するトリガー。 + + + + +その AssociatedObject 以外の要素をリッスンできるトリガーを表します。 + +このトリガーを関連付けられる型。 + + EventTriggerBase は TriggerBase を拡張し、アタッチしているオブジェクトとは別のオブジェクトのナレッジを追加します。これによりユーザーは Trigger/Action のペアを 1 つの要素にアタッチし、別の場所にある別のオブジェクトの変化に応じて Action を起動できます。ソース要素上のハンドラーをフック/アンフックするために OnSourceChanged を、また関連要素に対して OnAttached/OnDetaching を上書きします。Source 要素の型はジェネリック型パラメーターによって制約できます。AssociatedObject の型を制御する必要がある場合、派生型上で TypeConstraintAttribute を設定します。 + + + + +その AssociatedObject 以外のオブジェクトをリッスンできるトリガーを表します。 + +これはインフラストラクチャ クラスです。Trigger 作成者は、このクラスの代わりに EventTriggerBase<T> から派生する必要があります。 + + + +条件付きで Action を呼び出せるオブジェクトを表します。 + +これはインフラストラクチャ クラスです。Trigger 作成者は、このクラスの代わりに Trigger<T> から派生する必要があります。 + + + +このトリガーに関連するすべてのアクションを呼び出します。 + +トリガーを起動するには派生クラスがこれを呼び出す必要があります。 + + + +トリガーが AssociatedObject にアタッチされた後で呼び出されます。 + + + + +トリガーが AssociatedObject からからデタッチされるとき、その前に呼び出されます。 + + + + +TriggerBase 派生クラスの新しいインスタンスを作成します。 + +新しいインスタンス。 + + + +指定されたオブジェクトにアタッチします。 + +アタッチするオブジェクト。 +同じトリガーを一度に複数のオブジェクトにホストすることはできません。 +dependencyObject は、トリガー型制約を満たしていません。 + + + +このインスタンスを関連オブジェクトからデタッチします。 + + + + +トリガーがアタッチされているオブジェクトを取得します。 + +関連オブジェクト。 + + + +関連オブジェクトの型制約を取得します。 + +関連オブジェクトの型制約。 + + + +このトリガーに関連付けられているアクションを取得します。 + +このトリガーに関連付けられているアクション。 + + + +PreviewInvoke に登録するためのイベント ハンドラー。 + + + + +関連オブジェクトを取得します。 + +関連オブジェクト。 + + + +この EventTriggerBase がリッスンする Event の名前を指定します。 + + + + + +この EventTriggerBase に関連付けられたイベントの起動時に呼び出されます。既定では、これはトリガー上のすべてのアクションを呼び出します。 + +イベント データを含むインスタンス。 +これをオーバーライドし、このトリガーに関連付けられたアクションの起動時をりきめ細かく制御します。 + + + +ソースが変化すると呼び出されます。 + +古いソース。 +新しいソース。 +変化するソース オブジェクトに機能をフックしたり、アンフックするために、この機能を派生クラス内でオーバーライドする必要があります。 + + + +トリガーが AssociatedObject にアタッチされた後で呼び出されます。 + + + + +トリガーが AssociatedObject からからデタッチされるとき、その前に呼び出されます。 + + + +Target 上に eventName が見つかりませんでした。 + + + +関連オブジェクトの型制約を取得します。 + +関連オブジェクトの型制約。 +アタッチすることのできる型を制約する派生型で TypeConstraintAttribute を定義します。 + + + +ソースの型制約を取得します。 + +ソースの型制約。 + + + +ターゲット オブジェクトを取得または設定します。TargetObject が未設定の場合、ターゲットは TargetName で指定されたオブジェクトを探します。TargetName で参照される要素が見つからない場合は、ターゲットに既定の AssociatedObject が使用されます。これは依存関係プロパティです。 + +ターゲット オブジェクト。 + + + +この EventTriggerBase がソースとしてリッスンする要素の名前を取得または設定します。名前が未設定であるか解決できない場合は、AssociatedObject が使用されます。これは依存関係プロパティです。 + +ソース要素の名前。 + + + +解決されたソースを取得します。 が未設定であるか解決できない場合、既定の AssociatedObject が使用されます。 + +解決されたソース オブジェクト。 +通常、派生クラスでは、このプロパティを AssociatedObject の代わりに使用する必要があります。 +で指された要素が型制約を満たしていません。 + + + + クラスの新しいインスタンスを初期化します。 + + + + +ソース プロパティが変化すると呼び出されます。 + +これをオーバーライドし、AssociatedObject ではなく、指定された Source に機能をフックまたはアンフックします。 +古いソース。 +新しいソース。 + + + +解決されたソースを取得します。 が未設定であるか解決できない場合、既定の AssociatedObject が使用されます。 + +解決されたソース オブジェクト。 +通常、派生クラスでは、このプロパティを AssociatedObject の代わりに使用する必要があります。 + + + + クラスの新しいインスタンスを初期化します。 + + + + + クラスの新しいインスタンスを初期化します。 + +イベントの名前。 + + + +リッスンするイベントの名前を取得または設定します。これは依存関係プロパティです。 + +イベントの名前。 + + + +プロパティにアタッチされた Trigger および Behavior を所有する静的クラス。AssociatedObject 変更通知の伝達を処理します。 + + + + +このプロパティは、パブリックの Trigger がアタッチされたプロパティ用の内部バッキング ストアとして使用されます。 + + +このプロパティは公開されていません。これは、クライアントがコレクションにアクセスする際に GetTriggers および SetTriggers メソッドを使用することを強制し、コレクションが存在すること、および使用前に設定されることを保証します。 + + + + +このプロパティは、パブリックの Behavior がアタッチされたプロパティ用の内部バッキング ストアとして使用されます。 + + +このプロパティは公開されていません。これは、クライアントがコレクションにアクセスする際に GetBehaviors および SetBehaviors メソッドを使用することを強制し、コレクションが存在すること、および使用前に設定されることを保証します。 + + + + +指定したオブジェクトに関連付けられたトリガーを含む TriggerCollection を取得します。 + +トリガーの取得元オブジェクト。 +指定したオブジェクトに関連付けられた Trigger を含む TriggerCollection。 + + + +指定したオブジェクトに関連付けられたを取得します。 + + の取得元オブジェクト。 +指定したオブジェクトに関連付けられたビヘイビアーを含む + + +同じ BehaviorCollection を一度に複数のオブジェクトにホストすることはできません。 + + +同じ TriggerCollection を一度に複数のオブジェクトにホストすることはできません。 + + + +Silverlight では FrameworkElement.IsLoaded が提供されないため、このプロパティの代わりに使用されるヘルパー関数。 + +関心の要素。 +要素がロードされる場合は True、それ以外の場合は False。 + + + +デザイン モードのように実行するかどうかを示す値を取得または設定します。 + + + [デザイン モードで実行する] 場合はTrue、それ以外の場合はFalse。 + +単位テストの外部では使用しません。 + + + +呼び出されると、指定の ICommand を実行します。 + + + + +機能単位をカプセル化する、アタッチ可能なオブジェクトを表します。 + +このアクションをアタッチできる型。 + + + +機能単位をカプセル化する、アタッチ可能なオブジェクトを表します。 + +これはインフラストラクチャ クラスです。Action 作成者は、このクラスの代わりに TriggerAction<T> から派生する必要があります。 + + + +アクションの呼び出しを試行します。 + +アクションへのパラメーター。アクションがパラメーターを要求しない場合、パラメーターを null 参照に設定できます。 + + + +アクションを起動します。 + +アクションへのパラメーター。アクションがパラメーターを要求しない場合、パラメーターを null 参照に設定できます。 + + + +アクションが AssociatedObject にアタッチされた後で呼び出されます。 + + + + +アクションが AssociatedObject からデタッチされるとき、その前に呼び出されます。 + + + + +派生クラスに実装された場合、 派生クラスの新しいインスタンスを作成します。 + +新しいインスタンス。 + + + +指定されたオブジェクトにアタッチします。 + +アタッチするオブジェクト。 +同じ TriggerAction を一度に複数のオブジェクトにホストすることはできません。 +dependencyObject は、TriggerAction 型制約を満たしていません。 + + + +このインスタンスを関連オブジェクトからデタッチします。 + + + + +このアクションを呼び出されたときに実行するかどうかを示す値を取得または設定します。これは依存関係プロパティです。 + + + 呼び出されたときにこのアクションを実行する場合は True、それ以外の場合は False。 + + + + +このアクションがアタッチされるオブジェクトを取得します。 + +関連オブジェクト。 + + + +関連のオブジェクト型制約を取得します。 + +関連オブジェクトの型制約。 + + + +このインスタンスがアタッチされているかどうかを示す値を取得または設定します。 + +インスタンスがアタッチされている場合は True、それ以外の場合は False + + + +関連オブジェクトを取得します。 + +関連オブジェクト。 + + + + クラスの新しいインスタンスを初期化します。 + + + + +この がアタッチされるオブジェクトを取得します。 + +関連オブジェクト。 + + + +関連のオブジェクト型制約を取得します。 + +関連オブジェクトの型制約。 + + + +アクションを起動します。 + +アクションへのパラメーター。アクションがパラメーターを要求しない場合、パラメーターを null 参照に設定できます。 + + + +このアクションが呼び出す必要のあるコマンドの名前を取得または設定します。 + +このアクションが呼び出す必要のあるコマンドの名前。 +両方とも設定されている場合は、このプロパティは Command プロパティで置き換えられます。 + + + +このアクションが呼び出す必要のあるコマンドを取得または設定します。これは依存関係プロパティです。 + +実行するコマンド。 +両方とも設定されている場合は、このプロパティを Command プロパティに優先します。 + + + +コマンド パラメーターを取得または設定します。これは依存関係プロパティです。 + +コマンド パラメーター。 +これは、ICommand.CanExecute および ICommand.Execute に渡される値です。 + + + +名前の変更の解決時にどのオブジェクトが影響を受けるかについてのデータを提供します。 + + + + +ホスト要素によって提供されるコンテキストに基づき、TargetName を Target 要素に解決するロジックを処理するヘルパー クラスです。 + + + + +名前空間の参照要素のコンテキスト内で名前から解決済みオブジェクトの更新を試行します。 + +古い解決済みオブジェクト。 + +既存のターゲットをリセットし、現在のホストのコンテキストから現在の TargetName の解決を試行します。ホストのコンテキストから解決できない場合、解決されるまでビジュアル ツリーを上方に探索します。ルートに到達しても解決されない場合、Target を null に設定し、Debug 出力に警告メッセージを書き込みます。 + + + + +解決済み要素が変更されたときに発生します。 + + + + +解決を試行するための要素の名前を取得または設定します。 + +解決を試行する名前。 + + + +解決済みオブジェクト。TargetName が null または空の場合、または解決が試行されていない場合は、参照要素を返します。 + + + + +名前の解決が実行される参照要素を取得または設定します。 + +参照要素。 + + + +参照要素の読み込みが保留中かどうかを示す値を取得または設定します。 + + + [参照要素の読み込みを保留中]の場合はTrue、それ以外の場合はFalse。 + + +ホストが読み込まれていない場合、名前は解決されません。その場合、解決を遅らせてこのプロパティを使用して情報を追跡します。 + + + + +AssociatedObject 以外のオブジェクトに影響を与えるために対象となり得るアクションを表します。 + +ターゲット上の型制約。 + + TargetedTriggerAction は TriggerAction を拡張し、アタッチしている要素とは別の要素のナレッジを追加します。これによりユーザーはトリガーの起動に応じて、アタッチされている以外の要素上のアクションを呼び出すことができます。ターゲット要素上のハンドラーをフック/アンフックするために OnTargetChanged を、また関連要素に対して OnAttached/OnDetaching をオーバーライドします。Target 要素の型はジェネリック型パラメーターにより制約できます。AssociatedObject の型を制御する必要がある場合、派生型上で TypeConstraintAttribute を設定します。 + + + + +AssociatedObject 以外のオブジェクトに影響を与えるために対象となり得るアクションを表します。 + +これはインフラストラクチャ クラスです。Action 作成者は、このクラスの代わりに TargetedTriggerAction<T> から派生する必要があります。 + + + +ターゲットが変化すると呼び出されます。 + +古いターゲット。 +新しいターゲット。 +変化するソース オブジェクトに機能をフックしたり、アンフックするために、この機能を派生クラス内でオーバーライドする必要があります。 + + + +アクションが AssociatedObject にアタッチされた後で呼び出されます。 + + + + +アクションが AssociatedObject からデタッチされるとき、その前に呼び出されます。 + + + + +ターゲット オブジェクトを取得または設定します。TargetObject が未設定の場合、ターゲットは TargetName で指定されたオブジェクトを探します。TargetName で参照される要素が見つからない場合は、ターゲットに既定の AssociatedObject が使用されます。これは依存関係プロパティです。 + +ターゲット オブジェクト。 + + + +このアクションがターゲットとするオブジェクトの名前を取得または設定します。Target が設定されている場合は、このプロパティは無視されます。Target が未設定で、TargetName が未設定であるか解決できない場合は、既定の AssociatedObject が使用されます。これは依存関係プロパティです。 + +ターゲット オブジェクトの名前。 + + + +ターゲット オブジェクトを取得します。TargetObject が未設定の場合は、TargetObject を返します。それ以外で、TargetName が未設定であるか解決できない場合は、既定の AssociatedObject が使用されます。 + +ターゲット オブジェクト。 +通常、派生クラスでは、このプロパティを AssociatedObject の代わりに使用する必要があります。 +Target 要素が型制約を満たしていません。 + + + +関連のオブジェクト型制約を取得します。 + +関連オブジェクトの型制約。 +アタッチすることのできる型を制約するために、派生型の TypeConstraintAttribute を定義します。 + + + +ターゲット型制約を取得します。 + +ターゲット型制約。 + + + + クラスの新しいインスタンスを初期化します。 + + + + +ターゲット プロパティが変更されると呼び出されます。 + +これをオーバーライドし、AssociatedObject 以外の指定されたターゲットに機能をフックまたはアンフックします。 +古いターゲット。 +新しいターゲット。 + + + +ターゲット オブジェクトを取得します。TargetName が未設定であるか解決できない場合は、既定の AssociatedObject が使用されます。 + +ターゲット。 +通常、派生クラスでは、このプロパティを AssociatedObject の代わりに使用する必要があります。 + + + +共有される AssociatedObject と共にアクションのコレクションを表し、AssociatedObject に変更が発生すると変更通知をコンテンツに提供します。 + + + + + クラスの新しいインスタンスを初期化します。 + +アセンブリの外部で継承すべきではないため、内部とします。 + + + +コレクションが AssociatedObject にアタッチされる直後に呼び出されます。 + + + + +コレクションが AssociatedObject からデタッチされるとき、その前に呼び出されます。 + + + + +新しい項目がコレクションに追加されるときに呼び出されます。 + +新しい項目。 + + + +項目がコレクションから削除されるときに呼び出されます。 + +削除される項目。 + + + +TriggerActionCollection の新しいインスタンスを作成します。 + +新しいインスタンス。 + + + +条件付きでアクションを呼び出すことのできるオブジェクトを表します。 + +このトリガーをアタッチできる型。 + + TriggerBase はアクションを制御するための基本クラスです。OnAttached() および OnDetaching() をオーバーライドし、ハンドラーを AssociatedObject にフックしたり、アンフックします。ジェネリック パラメーターを指定することによって、派生の TriggerBase をアタッチすることが可能な型を制約できます。InvokeActions() を呼び出して、この TriggerBase に関連付けられるすべての Action を起動します。 + + + + + クラスの新しいインスタンスを初期化します。 + + + + +トリガーがアタッチされるオブジェクトを取得します。 + +関連オブジェクト。 + + + +関連オブジェクトの型制約を取得します。 + +関連オブジェクトの型制約。 + + + +PreviewInvoke イベントに渡される引数。Cancelling に True を指定すると、トリガーの呼び出しが取り消されます。 + +これはインフラストラクチャ クラスです。トリガー ベース オブジェクトにアタッチされたビヘイビアーは、そのビヘイビアーをリスナーとして TriggerBase.PreviewInvoke に追加することができます。 + + + +共有される AssociatedObject と共にトリガーのコレクションを表し、AssociatedObject に変更が発生すると変更通知をコンテンツに提供します。 + + + + + クラスの新しいインスタンスを初期化します。 + +アセンブリの外部で継承すべきではないため、内部とします。 + + + +コレクションが AssociatedObject にアタッチされる直後に呼び出されます。 + + + + +コレクションが AssociatedObject からデタッチされるとき、その前に呼び出されます。 + + + + +新しい項目がコレクションに追加されるときに呼び出されます。 + +新しい項目。 + + + +項目がコレクションから削除されるときに呼び出されます。 + +削除される項目。 + + + + の新しいインスタンスを作成します。 + +新しいインスタンス。 + + + +TargetedTriggerAction および EventTriggerBase の AssociatedObject の型制約を指定します。 + + + + + クラスの新しいインスタンスを初期化します。 + +制約型。 + + + +制約型を取得します。 + +制約型。 + + + +ローカライズされた文字列などを調べるために、厳密に型指定されたリソース クラス。 + + + + +このクラスで使用される、キャッシュされた ResourceManager インスタンスに戻ります。 + + + + +この厳密に型指定されたリソース クラスを使用して、すべてのリソース ルックアップに対して現在のスレッドの CurrentUICulture プロパティを上書きします。 + + + + +「複数オブジェクトに同じ BehaviorCollection を設定することはできません。」に類似したローカライズされた文字列を検索します。 + + + + +「Behavior のインスタンスを一度に複数のオブジェクトにアタッチすることはできません。」に類似したローカライズされた文字列を検索します。 + + + + +「1 つの TriggerAction のインスタンスを複数の TriggerCollections で同時にホストすることはできません。インスタンスを TriggerCollection から削除してから、別の TriggerCollection に追加してください。」に類似したローカライズされた文字列を検索します。 + + + + +「複数オブジェクトに同じ TriggerCollection を設定することはできません。」に類似したローカライズされた文字列を検索します。 + + + + +「トリガーのインスタンスを一度に複数のオブジェクトにアタッチすることはできません。」に類似したローカライズされた文字列を検索します。 + + + + +「コマンド "{0}" は存在しないか、{1} で公開されていません。」に類似したローカライズされた文字列を検索します。 + + + + +「"{0}" は TriggerType パラメーターには無効な型です。"{0}" が TriggerBase から派生していることを確認してください。」に類似したローカライズされた文字列を検索します。 + + + + +「同じ "{0}" のインスタンスを一度以上 "{1}" に追加できません。」に類似したローカライズされた文字列を検索します。 + + + + +「型 "{1}" の "{0}" というイベントの署名に互換性がありません。このイベントがパブリックで、EventHandler デリゲートの条件を満たしていることを確認してください。」に類似したローカライズされた文字列を検索します。 + + + + +「型 "{1}" に "{0}" という名前のイベントは見つかりません。」に類似したローカライズされた文字列を検索します。 + + + + +「型 "{0}" にオブジェクトに型 "{1}"の {3} プロパティを設定することはできません。型 "{0}" のインスタンスには、型 "{2}" の {3} プロパティしか設定できません。」に類似したローカライズされた文字列を検索します。 + + + + +「型 "{0}" を型 "{1}" にアタッチすることはできません。型 "{0}" のインスタンスは、型 "{2}" のオブジェクトにしかアタッチできません。」に類似したローカライズされた文字列を検索します。 + + + + +「TargetName "{0}" を解決できません。」に類似したローカライズされた文字列を検索します。 + + + + diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/ko/Microsoft.Expression.Controls.xml b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/ko/Microsoft.Expression.Controls.xml new file mode 100644 index 0000000..0eef3e8 --- /dev/null +++ b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/ko/Microsoft.Expression.Controls.xml @@ -0,0 +1,538 @@ + + + + Microsoft.Expression.Controls + + + + + 폴리라인이 루프되기 전에 호출됩니다. + + + + + LayoutPath.Capacity가 Auto로 설정되어 있는 경우 사용된 값을 계산합니다. + + + + + 폴리라인을 계속 루프해야 하는지 여부를 확인합니다. + + + + + 새 폴리라인이 마칭되기 전에 호출됩니다. + + + + + 폴리라인이 완료되면 호출됩니다. + + 폴리라인의 나머지 호 길이입니다. + + + + 단계가 완료되면 호출됩니다. + + 실제 단계 거리입니다. 다른 폴리라인이 래핑된 경우 Step과 다를 수 있습니다. + + + + 지정된 레이아웃 경로를 따라 경로 패널의 자식을 배포합니다. + + 경로 패널입니다. + pathPanel.LayoutPaths 경로 인덱스입니다. + 이 경로에 배치될 첫 번째 자식의 인덱스입니다. + 배포할 다음 자식의 인덱스입니다. childIndex가 반환될 경우 이 기능에서 아무 작업도 수행하지 않은 것입니다. + + + + 정렬할 다음 자식의 인덱스입니다. + + + + + 레이아웃에 사용될 호 길이의 거리입니다. + + + + + 현재 폴리라인을 따라가는 호 길이의 거리입니다. + + + + + LayoutPath에 정렬할 요소의 총 개수입니다. + + + + + 레이아웃 경로를 따라 경로 패널의 자식을 배포합니다. 고른 배포란 경로에 있는 모든 요소의 중심 사이에 있는 호 길이가 동일함을 의미합니다. + + + + + 변경된 경로 레이아웃 속성을 지정합니다. + + + + + 이벤트에 대한 데이터를 제공합니다. + + + + + 클래스의 새 인스턴스를 초기화합니다. + + 이벤트 데이터입니다. + + + + 이벤트에서 변경된 속성을 가져옵니다. + + + + + 을 업데이트하는 데 필요한 데이터를 캡슐화합니다. + + + + + 요소가 정렬된 경로의 인덱스를 가져오거나 설정합니다. + + + + + 요소 컬렉션의 요소 인덱스를 가져오거나 설정합니다. + + + + + 경로에 있는 요소의 인덱스를 가져오거나 설정합니다. + + + + + 경로 컬렉션의 총 길이에 비례하는 요소의 오프셋을 가져오거나 설정합니다. + + + + + 경로 길이에 비례하는 요소의 오프셋을 가져오거나 설정합니다. + + + + + 요소 위치의 경로에 수직인 각도를 가져오거나 설정합니다. + + + + + 요소 방향이 경로를 향하는 경우 요소 위치의 경로에 수직인 각도를 가져오거나 설정합니다. + + + + + 요소가 경로에 정렬되어 있는지 여부를 가져오거나 설정합니다. + + + + + 에 의해 정렬된 요소를 나타냅니다. + + + 이 인터페이스를 구현하면 요소를 정렬할 때 에서 이 속성을 설정할 수 있습니다. 이 인터페이스는 일반적인 구현을 위한 것이 아닙니다. + + + + + 지정된 를 기반으로 속성을 업데이트하고 이벤트를 발행합니다. + + 을 업데이트하는 데 필요한 데이터입니다. + + + + 속성 중 하나 이상이 변경될 때 발생합니다. + + + 경로를 따라 있는 항목 위치가 업데이트될 때마다 이 이벤트가 발생합니다. 의 속성 변경 또는 에 대한 변경때문에 이 항목이 발생할 수 있습니다. + + + + + 항목이 정렬되는 경로의 인덱스를 가져옵니다. + + + + + 항목 컬렉션의 항목 인덱스를 가져옵니다. + + + + + 항목이 정렬되는 경로의 항목 인덱스를 가져옵니다. + + + + + 경로 컬렉션의 총 길이에 비례하는 항목의 오프셋을 가져옵니다. + + + + + 항목이 정렬되는 경로 길이에 비례한 항목의 오프셋을 가져옵니다. + + + + + 항목 위치의 경로에 수직인 각도를 가져옵니다. + + + + + 항목이 경로를 향하는 경우 항목 위치의 경로에 수직인 각도를 가져옵니다. + + + + + 항목이 경로에 정렬되어 있는지 여부를 가져오거나 설정합니다. + + + + + 요소가 정렬되어 있는지 여부를 나타내는 을 요소 크기를 조정하는 데 사용된 값으로 변환합니다. + + + + + 모든 경우에 예외를 발생시킵니다. + + 원본에 전달할 대상 데이터입니다. + 원본 개체에서 예상하는 데이터의 입니다. + 변환기 논리에서 사용할 선택적 매개 변수입니다. + 변환의 culture입니다. + 원본 개체에 전달될 값입니다. + + + + 지정된 로 변환합니다. + + 대상에 전달할 원본 데이터입니다. + 대상 종속성 속성에서 예상하는 데이터의 입니다. + 변환기 논리에서 사용할 선택적 매개 변수입니다. + 변환의 culture입니다. + 이 true일 경우 1이 반환됩니다. 그렇지 않으면 0이 반환됩니다. + + + + 의 배포를 지정합니다. + + + + + 에서 요소의 방향을 지정합니다. + + + + + 열린 경로에서 를 변경하기 위한 메서드를 지정합니다. + + + + + 요소가 정렬되는 경로를 설명합니다. + + + + + 변형이 결합에 영향을 미치기 때문에 결합 전에 베지어 곡선을 캐시하고자 할 수 있습니다. 이 경우 지원하지 않는 곡선을 캐시해야 합니다. 대신 배포 전략에서 병합 점을 캐시하고 필요 시 변형합니다. + + + + + 경로를 정의하는 요소를 가져오거나 설정합니다. + + + + + 항목이 고르게 배포되어 있는지 또는 고정 여백이 있는지 여부를 가져오거나 설정합니다. + + + + + 에 표시된 최대 항목 수를 가져오거나 설정합니다. + + + + + 두 항목 사이에서 의 호 길이를 따라 있는 거리(픽셀 단위)를 가져오거나 설정합니다. + + + + + 항목의 방향을 가져오거나 설정합니다. + + + 이 속성은 에서는 지원되지만 에서는 지원되지 않습니다. + + + + + 첫 번째 항목을 배치하기 위해 의 시작으로부터의 거리를 가져오거나 설정합니다. + + + + + 레이아웃에 참여하는 의 백분율을 가져오거나 설정합니다. + + + + + 열린 경로에서 를 변경하기 위한 메서드를 가져오거나 설정합니다. + + + + + 계산된 용량을 가져옵니다. + + + + + 가 컨텍스트에서 유효한지 여부를 가져옵니다. 가 사용된 의 하위 항목일 경우 올바르지 않습니다. + + + + + 자식 크기와 자식 간의 지정된 여백을 기반으로 레이아웃 경로의 자식을 배포합니다. 자식 간 호 길이의 거리는 여백과 자식 경계 상자의 반경 합계를 더하여 결정됩니다. + + + + + 하나 이상의 경로를 따라 배치된 항목 목록이 포함되어 있습니다. + + + + + 클래스의 새 인스턴스를 초기화합니다. + + + + + 지정된 항목을 표시하기 위해 사용된 요소를 만듭니다. + + 지정된 항목에 해당하는 입니다. + + + + 지정된 항목이 고유 항목 컨테이너이거나 가능한 경우를 확인합니다. + + 항목이 해당하는 고유한 항목 컨테이너일 경우 true, 그렇지 않으면 false입니다. + 지정된 항목입니다. + + + + 자식 요소의 위치를 지정합니다. + + 자식 요소를 정렬하기 위해 이 개체에서 사용할 크기입니다. + 사용된 실제 크기입니다. + + + + 레이아웃에 사용된 경로를 정의하는 개체 컬렉션을 가져오거나 설정합니다. + + + + + 항목 목록 내에서 사용할 인덱스를 가져오거나 설정합니다. + + + + + StartItemIndex가 0보다 클 경우 컬렉션의 시작에 항목 인덱스를 래핑할지 여부를 가져오거나 설정합니다. + + + + + 의 항목을 나타냅니다. + + + + + 클래스의 새 인스턴스를 초기화합니다. + + + + + 이 멤버에 대한 설명은 를 참조하십시오. + + + + + 이 멤버에 대한 설명은 를 참조하십시오. + + + + + 이 멤버에 대한 설명은 를 참조하십시오. + + + + + 이 멤버에 대한 설명은 를 참조하십시오. + + + + + 이 멤버에 대한 설명은 를 참조하십시오. + + + + + 이 멤버에 대한 설명은 를 참조하십시오. + + + + + 이 멤버에 대한 설명은 를 참조하십시오. + + + + + 이 멤버에 대한 설명은 를 참조하십시오. + + + + + 이 멤버에 대한 설명은 를 참조하십시오. + + + + + 이 멤버에 대한 설명은 를 참조하십시오. + + + + + 하나 이상의 경로를 따라 자식 요소를 정렬합니다. + + + 선택할 필요가 없는 경우 대안으로 사용할 수 있습니다. 속성은 에서 지원되지 않습니다. + + + + + 클래스의 새 인스턴스를 초기화합니다. + + + + + 자식 요소에 필요한 크기를 측정합니다. + + 이 요소가 자식 요소에 제공할 수 있는 사용 가능한 크기입니다. + 자식 요소 크기 계산을 기반으로 이 요소의 크기에 의해 레이아웃 중에 필요한 크기가 결정합니다. + + + + 자식 요소의 위치를 지정합니다. + + 자식 요소를 정렬하기 위해 이 개체에서 사용할 크기입니다. + 사용된 실제 크기입니다. + + + + LayoutPath에서 특정 위치에 있는 지정된 인덱스에서 자식을 정렬합니다. + + 인덱스 범위는 0에서 PathPanel.Count까지입니다. + 자식을 정렬할 레이아웃 경로의 인덱스입니다. + 레이아웃 경로의 폴리라인입니다. + 폴리라인 상의 위치입니다. + LayoutPath에서 해당 자식의 인덱스입니다. + + + + 지정한 인덱스의 자식에 대한 경계 원의 반경을 계산합니다. + + 인덱스 범위는 0에서 PathPanel.Count까지입니다. + + + + 레이아웃에 사용된 경로를 정의하는 개체 컬렉션을 가져오거나 설정합니다. + + + + + 항목 목록 내에서 사용할 인덱스를 가져오거나 설정합니다. + + + + + 가 0보다 클 경우 컬렉션의 시작에 항목 인덱스를 래핑할지 여부를 가져오거나 설정합니다. + + + + + 연결되고 축소되지 않은 LayoutPaths의 하위 집합입니다. + + + + + Count는 PathPanel에 레이아웃되는 자식 수입니다. StartItemIndex > 0이고 WrapItems가 false일 경우 PathPanel.Children.Count보다 작을 수 있습니다. + + + + + ItemsControl의 컨테이너가 포함된 패널을 가져옵니다. + + ItemsControl입니다. + + ItemsControl의 컨테이너가 포함된 패널이거나, 패널을 찾을 수 없는 경우 null입니다. + + + null 입니다. + + + + + 초기 값과 노드의 자식 노드를 검색하는 기능을 허용하여 트리를 통과합니다. + + 스트림 형식입니다. + 초기 노드입니다. + 노드의 자식 노드를 검색하는 기능입니다. + 노드를 평가하고 노드 및 노드의 자식을 통과해야 하는지 여부를 나타내는 값을 반환하는 조건자입니다. + 노드 스트림입니다. + + + + 요소의 시각적 트리 자식을 가져옵니다. + + 요소입니다. + 요소의 시각적 트리 자식입니다. + + null 입니다. + + + + + 요소의 시각적 트리 자식과 요소 자체를 가져옵니다. + + 요소입니다. + + 요소의 시각적 트리 자식과 요소 자체입니다. + + + + + BFS(깊이 우선 탐색)를 사용하여 프레임워크 요소의 모든 논리 자식을 검색합니다. 성능상 이유 때문에 이 메서드에서는 재귀를 사용하는 대신 스택을 수동으로 관리합니다. + + 부모 프레임워크 요소입니다. + 프레임워크 요소의 논리 자식입니다. + + + + BFS(깊이 우선 탐색)를 사용하여 프레임워크 요소의 모든 논리 하위를 검색합니다. 성능상 이유 때문에 이 메서드에서는 재귀를 사용하는 대신 스택을 수동으로 관리합니다. + + 부모 프레임워크 요소입니다. + 프레임워크 요소의 논리 자식입니다. + + + diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/ko/Microsoft.Expression.Drawing.xml b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/ko/Microsoft.Expression.Drawing.xml new file mode 100644 index 0000000..b0f3e6c --- /dev/null +++ b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/ko/Microsoft.Expression.Drawing.xml @@ -0,0 +1,1632 @@ + + + + Microsoft.Expression.Drawing + + + + + 설명선 화살표가 결합된 여러 도형을 지원하는 설명선 도형을 렌더링합니다. + + + + + 에서 파생되고 를 구현하는 합성 도형의 기본 클래스를 제공합니다. + + + 에서는 인터페이스를 구현하고, 와 유사한 기하 렌더링을 지원하지만, 레이아웃 경계를 벗어나서 기하가 렌더링될 수 있습니다. + + 일반적인 구현의 경우 generic.xaml에 사용자 지정된 기본 템플릿이 제공됩니다. 이 템플릿에서 대부분의 도형 속성을 에 바인딩합니다. 또한 속성을 확장하여 의 모양을 사용자 지정해야 합니다. + + 이 클래스에서는 도형과 함께 콘텐츠를 표시할 수 있도록 지원합니다. + + + + + Shape의 매개 변수를 설명하기 위한 인터페이스를 제공합니다. + + + 이 인터페이스는 Shape와 GeometrySource 간의 통신을 위한 데이터입니다. 일반적으로 IShape를 구현하면 이 인터페이스가 구현되어 GeometrySource.UpdateGeometry()에 전달되고, 여기서 도형을 읽기 전용 데이터 공급자로 사용합니다. + + + + + 도형을 정의하는 데 필요한 인터페이스를 제공합니다. 기본 및 합성 도형이 다른 유형의 FrameworkElement에서 추출될 수는 있지만 모두 이 인터페이스와 일치해야 합니다. + + + + + 에 대한 기하를 무효화합니다. 무효화 후에 에서 기하를 다시 계산합니다. 이 작업은 비동기적으로 발생합니다. + + + + 도형의 내부를 칠하는 방법을 지정하는 를 가져오거나 설정합니다. + 도형의 내부를 칠하는 방법을 설명하는 입니다. 기본값은 Null입니다. + + + 윤곽선을 칠하는 방법을 지정하는 를 가져오거나 설정합니다. + 윤곽선을 칠하는 방법을 지정하는 입니다. + + + 스트로크 윤곽선의 너비를 가져오거나 설정합니다. + 윤곽선의 너비(픽셀 단위)입니다. + + + 도형의 할당된 공간을 채우는 방법을 설명하는 열거형 값을 가져오거나 설정합니다. + 열거형 값 중 하나입니다. 런타임 시 기본값은 유형에 따라 다릅니다. + + + + 렌더링 엔진에서 제공하는 렌더링된 기하를 가져옵니다. + + + + + 논리적 영역과 실제 기하 영역 간의 여백을 가져옵니다. 양수(의 경우) 또는 음수(의 경우)일 수 있습니다. + + + + + RenderedGeometry가 변경될 때 발생합니다. + + + + + 기하 원본을 만들면서 도형을 그리는 방법을 확장합니다. + + + + + 에 대한 기하를 무효화합니다. 무효화 후에 에서 기하를 다시 계산합니다. 이 작업은 비동기적으로 발생합니다. + + + + Silverlight 레이아웃의 정렬 패스 동작을 제공합니다. 클래스에서 이 메서드를 재정의하여 고유한 정렬 패스 동작을 정의할 수 있습니다. + 레이아웃에서 요소를 정렬할 때 사용된 실제 크기입니다. + 이 개체가 자신과 하위 개체를 정렬할 때 사용해야 하는 상위 개체 내 최종 영역입니다. + 기하가 무효화된 경우 에서 기하를 다시 계산하고 RenderedGeometry 및 GeometryMargin을 업데이트합니다. + + + + 가운데 맞춤 및 여러 줄 지원을 사용하여 콘텐츠 문자열을 으로 변형합니다. + + + 대신 에 대한 템플릿 바인딩을 사용하여 이 메서드를 활성화할 수 있습니다. + + + + + 도형의 내부를 칠하는 방법을 지정하는 를 가져오거나 설정합니다. + + 도형의 내부를 칠하는 방법을 설명하는 입니다. + + + 윤곽선을 칠하는 방법을 지정하는 를 가져오거나 설정합니다. + 윤곽선을 칠하는 방법을 지정하는 입니다. + + + 스트로크 윤곽선의 너비를 가져오거나 설정합니다. + 윤곽선의 너비(픽셀 단위)입니다. + + + 도형의 할당된 공간을 채우는 방법을 설명하는 열거형 값을 가져오거나 설정합니다. + 열거형 값 중 하나입니다. + + + 시작 시 를 설명하는 열거형 값을 가져오거나 설정합니다. + 시작 시 도형을 지정하는 열거형 값입니다. + + + 줄의 끝 위치에서 를 설명하는 열거형 값을 가져오거나 설정합니다. + 열거형 값 중 하나입니다. + + + 의 꼭짓점에서 사용되는 이음 유형을 지정하는 열거형 값을 가져오거나 설정합니다. + 이음 모양을 지정하는 열거형 값입니다. + + + 요소의 절반과 이음 길이의 비율에 대한 제한을 가져오거나 설정합니다. + 요소의 에 대한 길이 비율의 제한입니다. 이 값은 항상 1보다 크거나 같은 양수입니다. + + + 도형의 윤곽선을 그리는 데 사용하는 파선 및 간격 패턴을 나타내는 값 모음을 가져오거나 설정합니다. + 파선 및 간격 패턴을 지정하는 값 모음입니다. + + + 파선 끝을 그리는 방법을 지정하는 열거형 값을 가져오거나 설정합니다. + 열거형 값 중 하나입니다. 기본값은 입니다. + + + 파선이 시작되는 파선 패턴 내 거리를 지정하는 을 가져오거나 설정합니다. + 파선이 시작되는 파선 패턴 내 거리를 나타내는 입니다. 기본값은 0입니다. + + + + 렌더링 엔진에서 제공하는 렌더링된 기하를 가져옵니다. + + + + + 논리적 영역과 실제 기하 영역 간의 여백을 가져옵니다. 양수(의 경우) 또는 음수(의 경우)일 수 있습니다. + + + + + 문자열을 가운데로 맞춘 여러 줄의 TextBlock으로 변환하는 내부 콘텐츠를 가져오거나 설정합니다. + + + + + RenderedGeometry가 변경될 때 발생합니다. + + + + + 위쪽 및 왼쪽 모서리를 기준으로 한 설명선 위치를 가져오거나 설정합니다. + + + + + 설명선 스타일을 가져오거나 설정합니다. + + + + + 에서 파생되고 를 구현하는 합성 도형의 기본 클래스를 제공합니다. + + + 에서는 인터페이스를 구현하고, 와 유사한 기하 렌더링을 지원하지만, 레이아웃 경계를 벗어나서 기하가 렌더링될 수 있습니다. + + 일반적인 구현의 경우 generic.xaml에 사용자 지정된 기본 템플릿이 제공됩니다. 이 템플릿에서 대부분의 도형 속성을 에 바인딩합니다. 또한 속성을 확장하여 의 모양을 사용자 지정해야 합니다. + + + + + 기하 원본을 만들면서 도형을 그리는 방법을 확장합니다. + + + + + 에 대한 기하를 무효화합니다. 무효화 후에 에서 기하를 다시 계산합니다. 이 작업은 비동기적으로 발생합니다. + + + + Silverlight 레이아웃의 정렬 패스 동작을 제공합니다. 클래스에서 이 메서드를 재정의하여 고유한 정렬 패스 동작을 정의할 수 있습니다. + 레이아웃에서 요소를 정렬할 때 사용된 실제 크기입니다. + 이 개체가 자신과 하위 개체를 정렬할 때 사용해야 하는 상위 개체 내 최종 영역입니다. + 기하가 무효화된 경우 에서 기하를 다시 계산하고 RenderedGeometry 및 GeometryMargin을 업데이트합니다. + + + + 도형의 내부를 칠하는 방법을 지정하는 를 가져오거나 설정합니다. + + 도형의 내부를 칠하는 방법을 설명하는 입니다. + + + 윤곽선을 칠하는 방법을 지정하는 를 가져오거나 설정합니다. + 윤곽선을 칠하는 방법을 지정하는 입니다. + + + 스트로크 윤곽선의 너비를 가져오거나 설정합니다. + 윤곽선의 너비(픽셀 단위)입니다. + + + 도형의 할당된 공간을 채우는 방법을 설명하는 열거형 값을 가져오거나 설정합니다. + 열거형 값 중 하나입니다. + + + 시작 시 를 설명하는 열거형 값을 가져오거나 설정합니다. + 시작 시 도형을 지정하는 열거형 값입니다. + + + 줄의 끝 위치에서 를 설명하는 열거형 값을 가져오거나 설정합니다. + 열거형 값 중 하나입니다. + + + 의 꼭짓점에서 사용되는 이음 유형을 지정하는 열거형 값을 가져오거나 설정합니다. + 이음 모양을 지정하는 열거형 값입니다. + + + 요소의 절반과 이음 길이의 비율에 대한 제한을 가져오거나 설정합니다. + 요소의 에 대한 길이 비율의 제한입니다. 이 값은 항상 1보다 크거나 같은 양수입니다. + + + 도형의 윤곽선을 그리는 데 사용하는 파선 및 간격 패턴을 나타내는 값 모음을 가져오거나 설정합니다. + 파선 및 간격 패턴을 지정하는 값 모음입니다. + + + 파선 끝을 그리는 방법을 지정하는 열거형 값을 가져오거나 설정합니다. + 열거형 값 중 하나입니다. 기본값은 입니다. + + + 파선이 시작되는 파선 패턴 내 거리를 지정하는 을 가져오거나 설정합니다. + 파선이 시작되는 파선 패턴 내 거리를 나타내는 입니다. 기본값은 0입니다. + + + + 렌더링 엔진에서 제공하는 렌더링된 기하를 가져옵니다. + + + + + 논리적 영역과 실제 기하 영역 간의 여백을 가져옵니다. 양수(의 경우) 또는 음수(의 경우)일 수 있습니다. + + + + + RenderedGeometry가 변경될 때 발생합니다. + + + + + 양 끝에 선택적으로 화살촉이 있는 구부러진 선 세그먼트를 렌더링합니다. + + + + Silverlight 레이아웃의 측정 패스 동작을 제공합니다. 클래스에서 이 메서드를 재정의하여 고유한 측정 패스 동작을 정의할 수 있습니다. + 하위 개체 할당 크기의 계산 또는 고정된 컨테이너 크기에 따라 레이아웃 중에 개체에 필요한 것으로 판별된 크기입니다. + 이 개체가 하위 개체에 제공할 수 있는 사용 가능한 크기입니다. 사용 가능한 콘텐츠에 따라 개체 크기가 조정됨을 나타내려면 값으로 Infinity()를 지정할 수 있습니다. + + 기본 는 크기에 상관없이 렌더링할 수 있습니다. 가 레이아웃 경계까지 늘어나고 필요한 경우 외부로 렌더링됩니다. + + + + + 화살표의 구부러진 정도를 가져오거나 설정합니다. + + 0-1 사이의 구부러진 정도입니다. + + + + 줄의 시작 부분에 화살촉을 렌더링하는 방법을 가져오거나 설정합니다. + + + + + 줄의 끝 부분에 화살촉을 렌더링하는 방법을 가져오거나 설정합니다. + + + + + 화살표 그리기를 시작할 모서리를 가져오거나 설정합니다. + + + + + 화살표 길이(픽셀 단위)를 가져오거나 설정합니다. + + + + + 선택된 항목 1개를 표시하고, 터치 제스처를 사용하여 항목 간에 이동을 허용하는 항목 컨트롤을 제공합니다. + + + + + PanningItems에 대한 생성자입니다. + + + + + PanningItems 템플릿이 적용될 때 호출됩니다. + + + + + 컨트롤의 항목 방향을 가져오거나 설정합니다. + + + + + 플릭 허용 한도를 가져오거나 설정합니다. 이는 0과 1 사이의 값일 수 있습니다. 항목 변경 사항을 트리거하기 위해 플릭 제스처에 포함되어야 하는 PanningItems 크기의 백분율을 나타냅니다. + + + + + 선택된 항목 이전의 항목을 가져오거나 설정합니다. + + + + + 선택된 항목 이후의 항목을 가져오거나 설정합니다. + + + + + 항목 컨트롤의 콘텐츠가 루프되어 첫 번째 항목이 마지막 항목 다음에 오는지 여부를 가져오거나 설정합니다. + + + + + 이동 동작을 컨트롤하는 슬라이더 값을 가져오거나 설정합니다. + + + + + PathGeometry와 함께 작동하는 도우미 클래스. + + + + + 경로 미니 언어의 문자열을 PathGeometry로 변환합니다. + + 경로 미니 언어의 문자열입니다. + + + + 지정된 기하를 단일 PathGeometry로 변환합니다. + + + + + PathGeometry로 지정된 기하를 지정된 점 목록과 일치하는 폴리라인으로 업데이트합니다. + + + + + 약식 기하 구문을 구문 분석합니다. + + + + + ArcSegment를 BezierSegment로 변환하기 위한 도우미 클래스. + + + PathSegment 및 모든 변형에서 작동하는 도우미 클래스. + + + 다른 유형의 PathSegment를 처리하기 위한 전략 클래스. + + + + + 원호 세그먼트를 베지어 형식으로 변환합니다. BezierSegment, PolyBezierSegment, LineSegment 또는 Null을 반환합니다. Null을 반환할 경우 원호가 시작점으로 변질됩니다. + + + + + 매개 변수가 3개인 생성자는 항상 IsStroked에 대한 로컬 값을 설정하기 때문에 호출하지 마십시오. + + + + + + + SegmentCollection을 지정된 점 목록과 일치하는 지정된 폴리라인으로 업데이트합니다. 최소한으로 변경하고 아무 것도 변경하지 않은 경우 false를 반환합니다. + + + + + 컬렉션[인덱스] 세그먼트를 지정된 점 목록과 일치하는 폴리 베지어 세그먼트로 업데이트합니다. 지정된 점 목록에는 N 베지어 세그먼트에 대한 3*N 점이 포함되어야 합니다. + + + + + 지정된 패스 세그먼트가 비어 있는지 테스트합니다. + + + + + 지정된 패스 세그먼트의 점 개수를 가져옵니다. + + + + + 지정된 패스 세그먼트의 마지막 점을 가져옵니다. + + + + + 지정된 세그먼트에 있는 지정된 인덱스의 점을 가져옵니다. (-1)을 입력한 경우 마지막 점을 반환합니다. + + + + + 지정된 세그먼트를 결합하고 지정된 점 목록에 결과 점을 추가합니다. + + 결합할 세그먼트입니다. + 결과 점 목록입니다. + 세그먼트의 시작점입니다. + 오류 허용입니다. 양수여야 합니다. 0도 가능한데 기본 허용으로 대체됩니다. + + + + ArcToBezier, 원호의 베지어 근사치를 계산합니다. + + + 이 유틸리티에서는 SVG 원호 사양에 정의된 타원 원호의 베지어 근사치를 계산합니다. 원호가 분할된 타원은 해당 좌표에 따라 축이 정렬되고 x 및 y 반경으로 정의됩니다. 회전 각도에 의해 원호의 축이 x 축에 따라 회전하는 방법이 정의됩니다. 시작점 및 끝점으로 4개의 가능한 원호 중 하나가 정의됩니다. 큰 원호 플래그에 의해 해당 원호 중 선택되는 원호가 결정됩니다. + + cPieces = 0이 반환되면 줄을 나타내고, cPieces = -1 원호는 원호가 점으로 변질됨을 나타냅니다. + + + + + 베지어 원호 수와 각각의 사인/코사인을 가져옵니다. + + + ArcToBezier에서 사용하는 전용 유틸리티입니다. 원호를 90도가 넘지 않는 조각으로 분할합니다. 입력 점은 단위 원 위에 있습니다. + + + + + GetBezierDistance는 거리를 반경에 대한 분수로 반환합니다. + + + 원호의 끝점에서 이 끝점과 근접한 베지어 원호의 제어점까지의 거리를 원호 반경에 대한 분수로 가져옵니다. + + 원호 반경에 따라 결과가 달라지므로 원호 각도가 매우 중요합니다. 원호는 90도 이하로 간주되므로, 각도는 해당 각도의 코사인에 의해 결정되고 rDot = 두 반경 벡터의 내적에서 추출됩니다. 원호의 점과 끝과 중간점의 탄젠트와 일치하는 베지어 곡선이 필요합니다. 다음에서 곡선의 끝점에서 제어점까지의 거리를 계산해보겠습니다. + + 상대 거리를 구하기 때문에 단위 원에서 작업할 수 있습니다. 원의 가운데를 원점에 놓고 X 축을 2 벡터 사이의 이등분선으로 놓습니다. 각도를 벡터 사이에 놓겠습니다. 그러면 첫번째 점과 마지막 점의 X 좌표는 cos(a/2)가 됩니다. x는 두번째 점과 세번째 점의 X 좌표라고 하겠습니다. t=1/2에서는 (1,0)에 점이 있습니다. 그러나 다음 다항식 조건은 모두 같습니다. + + (1-t)^3 = t*(1-t)^2 = t^2*(1-t) = t^3 = 1/8, + + 따라서 베지어 수식에 따른 결과는 다음과 같습니다. + + 1 = (1/8) * (cos(a/2) + 3x + 3x + cos(a/2)), + + 따라서 + + x = (4 - cos(a/2)) / 3 + + 해당 점과 첫 번째 점 사이의 X 차이는 다음과 같습니다. + + DX = x - cos(a/2) = 4(1 - cos(a/2)) / 3. + + 그러나 DX = 거리 / sin(a/2)이므로 거리는 다음과 같습니다. + + dist = (4/3)*(1 - cos(a/2)) / sin(a/2). + + 각도보다는 rDot = R^2 * cos(a)가 제공되므로 위와 아래를 R로 곱합니다. + + dist = (4/3)*(R - Rcos(a/2)) / Rsin(a/2) + + 그리고 일부 삼각을 사용: ________________ cos(a/2) = \/(1 + cos(a)) / 2 ______________________ R*cos(a/2) = \/(R^2 + R^2 cos(a)) / 2 ________________ = \/(R^2 + rDot) / 2 + + A = (R^2 + rDot)/2. ____________________ R*sin(a/2) = \/R^2 - R^2 cos^2(a/2) _______ = \/R^2 - A가 되게 합니다. + + 따라서 _ 4 R - \/A dist = - * ------------ 3 _______ \/R^2 - A + + 기록: 2001년 5월 29일, MichKar가 만들었습니다. + + + + + 반경이 현 길이와 비교하여 너무 작을 경우 false를 반환하고(NaNs의 경우 true 반환) 반경이 수락된 값으로 수정됩니다. + + + + + 베지어 곡선을 결합하는 유틸리티 클래스입니다. + + + + + 베지어 입방형 곡선을 결합하고 결과 폴리라인을 세 번째 매개 변수에 추가합니다. + + 4개의 베지어 입방형 제어점입니다. + 조정한 곡선과 결합된 폴리라인의 2개 해당 점 간의 최대 거리입니다. 반드시 양수여야 합니다. + 결합된 폴리라인을 추가할 위치입니다. + 결합된 폴리라인을 추가할 경우 첫 번째 제어점을 건너뛰려면 true 입니다. + 각각의 폴리라인 꼭짓점과 연결된 베지어 곡선 매개 변수 값을 추가할 위치입니다. + 가 비어 있다면 첫 번째 제어점과 연결된 매개 변수가 항상 추가됩니다. + + + + 베지어 입방형 정방형 곡선을 결합하고 결과 폴리라인을 세 번째 매개 변수에 추가합니다. 입방형 사례에 대한 코드를 다시 사용하기 위해 베지어 곡선에 대한 높이를 사용합니다. + + 3개의 베지어 정방형 제어점입니다. + 조정한 곡선과 결합된 폴리라인의 2개 해당 점 간의 최대 거리입니다. 반드시 양수여야 합니다. + 결합된 폴리라인을 추가할 위치입니다. + 결합된 폴리라인을 추가할 경우 첫 번째 제어점을 건너뛰는지 여부입니다. + 각각의 폴리라인 꼭짓점과 연결된 베지어 곡선 매개 변수 값을 추가할 위치입니다. + 가 비어 있다면 첫 번째 제어점과 연결된 매개 변수가 항상 추가됩니다. + + + + 비 기하 형식을 지원하는 확장 메서드입니다. + + + + + 전체 순서에 대해 위임형 작업(주로 단순 람다)의 적용을 허용합니다. + + + + + 전체 순서에 대해 위임형 작업(주로 단순 람다)의 적용을 허용합니다. + + + + + 각 항목의 인덱스와 함께 전체 순서에 대해 위임형 작업(주로 단순 람다)의 적용을 허용합니다. + + + + + 지정한 개수에 대한 목록 개수를 확인합니다. 지정한 팩터리를 사용하여 만들거나 필요한 경우 항목을 제거합니다. Input IList가 List일 경우 팩터리가 없으면 AddRange 또는 RemoveRange가 사용됩니다. + + + + + 목록 개수가 최소한 지정한 개수인지 확인합니다. 지정한 팩터리를 사용하여 만듭니다. + + + + + 컬렉션 끝에 항목 범위를 추가합니다. 컬렉션이 목록일 경우 List.AddRange가 사용됩니다. + + + + + 지정된 목록의 마지막 항목을 가져옵니다. + + + + + 지정된 목록에서 마지막 항목을 제거합니다. + + + + + 모든 컬렉션 속성을 포함하여 obj 및 모든 공용 속성을 복사합니다. + + + + + 다른 값을 설정합니다. 가능한 경우 로컬 값을 설정하지 마십시오. 값이 변경된 경우 true를 반환합니다. + + + + + 지정한 종속성 개체에서 로컬로 설정한 경우 종속성 속성을 지웁니다. 종속성 속성을 로컬에서 설정하지 않은 경우 false를 반환합니다. + + + + + BFS(깊이 우선 탐색)를 사용하여 지정한 유형 및 조건의 모든 시각적 하위 항목을 찾습니다. + + + + + IEnumerable 있는 시각적 자식 요소를 모두 가져옵니다. + + + + + WPF 및 Silverlight에서 PropertyMetadata의 인터페이스를 통합합니다. 렌더링, 정렬 또는 측정에 대한 필요한 알림을 제공합니다. + + + + + AttachCallback에서 이 전용 생성자를 사용해야 합니다. + + + + + 속성 콜백에 DrawingPropertyMetadata의 인스턴스를 추가하려면 InternalCallback()을 체인합니다. Silverlight에서는 설정 후 속성 메타데이터가 삭제됩니다. 콜백을 사용하여 이를 기억해야 합니다. + + + + + 원래 콜백 체인 전에 DrawingPropertyChangedEvent를 트리거합니다. + + + + + 기하 관련 데이터 구조의 확장 메서드(점/벡터/크기/사각형)입니다. + + + + + 가운데 고정을 유지하면서 사각형의 크기를 상대 크기로 조정합니다. + + + + + 두 점 사이의 차이 벡터를 가져옵니다. + + + + + 지점 memberwise 더하기. + + + + + 지점 memberwise 빼기. + + + + + 미니 언어 문자열을 로 변환합니다. + + 참고: 경로 마크업 구문(http://msdn.microsoft.com/en-us/library/cc189041(VS.95).aspx) + 기하 경로를 설명하기 위한 경로 미니 언어의 문자열입니다. + 경로 미니 언어에서 변환된 입니다. + + + + 을 결합하고 결과 점을 지정된 다음에 추가합니다. + + 입력 입니다. + 결과 점이 추가되는 점 목록입니다. + 결과 점에서 입력 패스 형상까지 허용된 최대 오류를 지정하는 양수입니다. 0 값을 사용하면 알고리즘에서 허용 한도를 자동으로 선택할 수 있습니다. + + + + (0,0)(1,1) 상자에서 정규화된 호를 가져옵니다. 0도는 [0.5, 0](위)로 매핑되고 시계 방향입니다. + + + + + 지정한 상대 반경의 지정된 경계에 있는 절대 원호점을 가져옵니다. + + + + + (0,0)(1,1) 상자에 상대적인 원호의 각도를 가져옵니다. 0도는 [0.5, 0](위)로 매핑되고 시계 방향입니다. + + + + + 경계에 대해 상대적인 지정된 절대 점에서 원호의 각도를 가져옵니다. + + + + + "Rect from"에서 "Rect to"로 이동하는 변형을 계산합니다. + + + + + 한 UIElement의 좌표 공간에서 다른 요소의 좌표 공간으로 변형을 계산합니다. + + 원본 요소입니다. + 대상 요소입니다. + UIElement 사이의 변형이거나, 계산할 수 없는 경우 Null입니다. + + + + 지정한 경계에서 (0,0)(1,1) 상자로의 매핑을 사용하여 상대 점을 절대 점에 매핑합니다. + + + + + (0,0)(1,1) 상자에서 지정한 경계로의 매핑을 사용하여 절대 점을 상대 점에 매핑합니다. + + + + + 지정한 로컬 경계 내에서 확장 후 경계를 계산합니다. 균일로 확장한 경우 지정한 aspectRatio를 사용하십시오. aspectRatio가 비어 있는 경우 Fill과 동일합니다. 확장이 None일 경우 Fill 또는 Uniform과 같습니다. + + + + + 2개 점의 중간 지점을 반환합니다. + + 첫 번째 점입니다. + 두 번째 점입니다. + 다음 사이의 중간 지점입니다. . + + + + 두 벡터의 내적을 반환합니다. + + 첫 번째 벡터입니다. + 두 번째 벡터입니다. + 다음의 내적입니다. . + + + + 두 점의 내적을 반환합니다. + + + + + 두 점 사이의 거리를 반환합니다. + + 첫 번째 점입니다. + 두 번째 점입니다. + 다음 사이의 거리입니다. . + + + + 두 점 사이의 거리로 된 사각형을 반환합니다. + + 첫 번째 점입니다. + 두 번째 점입니다. + 다음 사이의 거리 사각형입니다. . + + + + 교차 곱 행렬식입니다. 방향 영역에 해당합니다. + + + + + 지정한 선 세그먼트의 정규 분포 방향 벡터를 계산합니다. + + + + + 시계 반대 방향으로 90도 수직인 벡터를 계산합니다. 오른쪽으로 수직인 벡터는 위로 벡터됩니다. + + + + + 두 개의 기하가 동일한지 여부를 반환합니다. + + + + + 값이 결과 유형(T)의 인스턴스인지 확인합니다. 그렇지 않으면 새로운 인스턴스 유형(T)으로 교체합니다. + + + + + list[index]가 결과 유형(T)의 인스턴스인지 확인합니다. 그렇지 않으면 새로운 인스턴스 유형(T)으로 교체합니다. + + + + + 부동 소수점 산술과 관련된 정적 속성 및 메서드를 제공하는 도우미 클래스. + + + + + 두 값을 고려하기 위한 최소 거리는 동일합니다. 참고: MIL/SL의 내부 부동 소수점은 Double이 아니라 부동입니다. + + + + + 완전한 원으로 된 각도 값입니다. + + + + + 오각형의 내부 반경으로 백분율 3자리 정밀도입니다. (1 - Sin36 * Sin72 / Sin54) / (Cos36) ^ 2, 값은 0.47210998990512996761913067272407입니다. + + + + + System.Double 값을 0으로 간주할 수 있을 만큼 작은지 확인합니다. + + + 값이 DoubleTolerance보다 작을 경우 True, 그렇지 않으면 False입니다. + + + + 지정한 범위 내에 있는 값을 반환합니다. 지정한 최소/최대가 null일 경우 한계가 없음을 의미합니다 + + + + + 벡터 (x, y)의 Euclidean norm을 계산합니다. + + 첫 번째 구성 요소입니다. + 두 번째 구성 요소입니다. + 벡터 (x, y)의 Euclidean norm입니다. + + + + 가수 및 지수에서 실수를 계산합니다. + + + + 성공한 경우 x * 2^exp 값입니다. + + + + Double을 테스트합니다. + + 테스트할 Double입니다. + x가 NaN이 아니고 더하기 또는 빼기 infinity와 같지 않을 경우 True, 그렇지 않으면 False입니다. + + + + PathFigure와 함께 작동하는 도우미 클래스. + + + + + 지정된 형상을 결합하고 결과 점을 지정된 점 목록에 추가합니다. + + 오류 허용입니다. 양수여야 합니다. 0도 가능한데 기본 허용으로 대체됩니다. + + + + 지정된 형상 내 모든 세그먼트를 반복하고 각 세그먼트의 올바른 시작점을 반환합니다. + + + + + 형상을 지정된 점 목록에 단일 폴리라인 세그먼트로 동기화합니다. 최소한으로 변경하고 아무 것도 변경하지 않은 경우 false를 반환합니다. + + + + + 지정된 형상이 2개 원호 세그먼트를 가진 닫힌 타원이 되게 동기화합니다. + + + + + PathSegment에 대한 Tuple 데이터 구조 및 해당하는 StartPoint입니다. + + + + + 폴리라인을 나타내고 연결 점 목록으로 구성됩니다. 닫힌 다각형은 첫 번째 점을 끝에 반복하여 나타냅니다. 차이, 정규 분포, 각도 및 길이는 요청 시 계산됩니다. + + + + + 두 개 이상의 점이 있는 폴리라인을 생성합니다. + + + + + 폴리라인의 정방향 차이 벡터입니다. 점[i] + 차이[i] = 점[i+1] + + + + 지정한 위치의 정규 분포 벡터를 계산합니다(lerp(index, index+1, fraction). 위치가 cornerRadius 범위 내에 있는 경우 정규 분포 방향을 삽입합니다. + + 기본 다듬기의 범위입니다. 0일 경우 다듬기가 없고 인덱스의 정확한 정규 분포를 반환합니다. + + + + 첫 번째 점과 마지막 점이 반복될 경우 폴리라인이 닫힙니다. + + + + + 이 폴리라인의 점 개수입니다. + + + + + 이 폴리라인의 총 원호 길이입니다. + + + + + 이 폴리라인의 점 배열입니다. + + + + + 점[i]에서 점[i+1]까지 선 세그먼트 간의 길이입니다. + + + + + 각 세그먼트에 대한 정규 분포 벡터 목록입니다. 정규 분포[i]는 세그먼트 p[i]에서 p[i+1]까지의 정규 분포입니다. 정규 분포[N-1] == 정규 분포[N-2]. + + + + + 점 p[i]에서 2개 선 세그먼트 간의 Cos(angle) 목록입니다. 참고: 값은 cos(angle) = Dot(u, v)입니다. 각도가 아닙니다. + + + + + 점[i]에서 점[0]까지의 누적 길이 목록입니다. + + + + + PathMarch 알고리즘을 사용하여 통신하는 데이터 구조입니다. + + + + + 지정된 점 목록에서 이 MarchLocation의 삽입된 위치를 가져옵니다. + + + + + 지정된 정규 분포 벡터 목록에서 이 MarchLocation의 삽입된 정규 분포 방향을 가져옵니다. + + + + + 전체 폴리라인 시작까지 이 MarchLocation의 원호 길이를 가져옵니다. + + + + + 이 위치가 샘플링된 이유입니다. + + + + + 폴리라인 점 목록에서 점의 인덱스입니다. + + + + + 비율: [0, 1], 항상 이전 / (이전 + 이후)입니다. + + + + + 중단 점 앞의 호 길이입니다. 음수가 아니고 Length[index]보다 작습니다. + + + + + 중단 점 다음의 호 길이입니다. 음수가 아니고 Length[index]보다 작습니다. + + + + + 단계 내에서 다음 중단점까지의 남은 길이입니다. 앞으로 이동할 경우 양수입니다. 뒤로 이동할 경우 음수입니다. + + + + + 점 목록에서 사용할 도우미 클래스 + + + + + 지정한 폴리라인을 지정한 간격으로 마칭하고 콜백을 통해 각 중단을 출력합니다. + + 마칭시킬 폴리라인 점입니다. + 첫 번째 점에서 중단하기 전에 마칭시킬 원호 길이입니다. + 모서리 꼭짓점으로 간주되는 가장자리 간의 최대 각도입니다. + 한 점에서 마칭 알고리즘이 중단될 경우 콜백합니다. 콜백에서 다음 중단에 대한 원호 길이를 반환합니다. 요청한 길이가 음수일 경우 뒤로 마칭합니다. 콜백에서 NaN을 반환하면 마칭을 마칩니다. + + + + 목록에서 지정한 원호 길이의 폴리라인이 최초 폴리라인이 되도록 지정된 폴리라인 목록의 순서를 정렬합니다. 이 선 앞에 오는 폴리라인은 목록 끝에 연결되고, 첫 번째 폴리라인은 맨 끝에 옵니다. + + 폴리라인 목록입니다. + 시작 선을 찾을 폴리라인 전체 목록의 원호 길이입니다. 선이 이 변수로 반환되는 원호 길이입니다. + 재정렬 및 래핑된 목록입니다. + + + + 균일 및 Gaussian 배포를 지원하는 난수 생성기입니다. + + + + + Box-Muller 변형의 극 형식을 사용하여 독립적인 표준의 정규 분포된 난수, 제로 기대, 단위 편차를 생성합니다. + + + + + 전용 생성자입니다. 팩터리 메서드를 사용해야 합니다. + + + + + 선 세그먼트를 만듭니다. + + + + + 정방형 곡선(3개 제어점)에서 입방형 베지어 세그먼트를 만듭니다. + + + + + 4개 제어점을 가진 입방형 베지어 세그먼트를 만듭니다. + + + + + 경로 세그먼트의 제어점입니다. 변형 길이입니다. 선 세그먼트에는 2개 점이 있고, 입방형 베지어에는 4개 점이 있습니다. + + + + + 두 개의 변환이 정확하게 일치하는지 비교합니다. 값은 동일하지만 구조는 다른 변형입니다(예: Translate(0,0) 및 Rotate(0)은 동일하게 간주되지 않습니다). + + 첫 번째 변형입니다. + 두 번째 변형입니다. + + + + + 두께 단위를 지정합니다. + + + + + 픽셀 단위입니다. + + + + + 경계 상자에 상대적인 단위(백분율)입니다. + + + + + 기하 원본의 기본 클래스를 제공합니다. 입력 매개 변수 및 레이아웃 경계를 기반으로 기하를 생성 및 캐시합니다. + + + 일반 구현에서 UpdateCachedGeometry()를 확장하여 this.cachedGeometry를 업데이트합니다. 그런 다음 이 기본 클래스에서 무효화, 기하 효과에 대한 파이프라인 및 레이아웃 경계에 상대적인 캐시를 처리합니다. 구현에서 가능한 한 많은 캐시된 기하를 다시 사용하여 렌더링 스레드의 재구성을 방지해야 합니다. 구현에서 ComputeLogicalBounds를 확장하여 Stretch를 다르게 처리할 수 있습니다. + + 기본 클래스가 작동하는 기하 원본 매개 변수의 유형입니다. + + + + 기하 원본을 설명하기 위한 인터페이스를 제공합니다. + + + 이 인터페이스는 기하 원본을 비일반적인 방법으로 노출하도록 설계되어 있습니다. 일반 구현에서는 이 인터페이스를 직접 구현하는 대신 GeometrySource 서브클래스를 구현해야 합니다. + + + + + 외부적인 변경 사항 때문에 기하가 무효화되었음을 알리십시오. + + + 일반적으로 매개 변수가 변경되면 기하가 무효화됩니다. 기하가 외부적으로 무효화된 경우 레이아웃 경계가 변경되더라도 기하가 다시 계산됩니다 + + + + + 지정된 매개 변수 및 레이아웃 경계를 사용하여 기하를 업데이트합니다. 업데이트된 내용이 없으면 false를 반환합니다. + + + + + 마지막 UpdateGeometry() 이후의 결과 기하를 가져오거나 설정합니다. + + + + + 기하가 늘어나는 경계 상자를 가져옵니다. 실제 기하는 이보다 작거나 클 수 있습니다. 에서 이미 스트로크 두께를 가져와서 늘렸을 수 있습니다. + + + + + FrameworkElement의 실제 경계를 가져옵니다. 에는 논리적 경계, 늘이기 및 스트로크 두께가 포함됩니다. + + + + + 이전 기하 효과 프로세스의 기하를 지정합니다. + + + + + 외부적인 변경 사항 때문에 기하가 무효화되었음을 알리십시오. + + + 일반적으로 매개 변수가 변경되면 기하가 무효화됩니다. 기하가 외부적으로 무효화된 경우 레이아웃 경계가 변경되더라도 기하가 다시 계산됩니다 + + + + + 지정한 매개 변수 및 layoutBounds를 기반으로 기하를 업데이트합니다. 기하가 변경되지 않은 경우 false를 반환합니다. + + + + + 이 함수를 구현하여 기하를 제공할 수 있는 방법을 확장합니다. 기하가 변경된 경우 true를 반환합니다. + + + + + 늘이기 모드를 처리할 수 있는 방법을 확장합니다. 기본값은 항상 Stretch.Fill과 가운데 스트로크를 사용하는 것입니다. + + + + + 필요한 경우 기하 효과를 적용하고, this.Geometry를 업데이트합니다. 그렇지 않으면 this.Geometry를 this.cachedGeometry로 보관합니다. + + + + + 마지막 UpdateGeometry() 이후의 결과 기하를 가져오거나 설정합니다. + + + + + 기하가 늘어나는 경계 상자를 가져옵니다. 실제 기하는 이보다 작거나 클 수 있습니다. 에서 이미 스트로크 두께를 가져와서 늘렸을 수 있습니다. + + + + + + FrameworkElement의 실제 경계를 가져옵니다. 에는 논리적 경계, 늘이기 및 스트로크 두께가 포함됩니다. + + + + + + 가로 세로 비율을 1:1로 가정할 경우 원호에서는 Stretch.None을 Stretch.Fill과 동일한 것으로 가정합니다. + + + + + 경계 상자 및 절대 픽셀 모두를 기준으로 두께를 정규화합니다 상대 두께 = 0 -> 전체 원 반경 또는 고정됨. 상대 두께 = 1 -> 점으로 축소 또는 변질됨. + + + + + 원호가 가운데/일반 내부를 가리키는 선으로 변질됩니다. + + + + + 원호 샘플의 위치 범위를 정의하는 각도 쌍 목록을 계산합니다. 반환 값에는 2, 4 또는 6개의 Double 값이 있고, 각 쌍에서 범위를 지정하며 지정한 시작 각도에서 끝 각도까지 각도를 배치하는 순서로 되어 있습니다. 범위는 자체 교차 각도에서 중단됩니다. 입력 시작/끝이 자체 교차 각도 사이에서 올바르지 않은 범위 내에 있는 경우 인접한 자체 교차로 이동합니다. + + + + + 각도를 0-90 범위로 이동합니다. + + + + + 입력 각도의 각 쌍으로 내부 곡선의 모든 조각을 계산하고, 폴리 베지어 세그먼트를 사용하여 각 조각을 연결합니다. 지정한 인덱스에서 지정한 figure.Segments 목록으로 새로운 세그먼트가 출력됩니다. 시작점은 별도로 출력됩니다. + + + + + 지정한 각도 범위를 사용하여 내부 곡선을 한 조각 계산하고, 폴리 베지어 세그먼트 형식으로 다듬은 곡선 조각을 출력합니다. + + + + + 지정한 두께의 지정한 타원에 대한 자체 교차점의 매개 변수(각도)를 계산합니다. 결과는 항상 첫 번째 4분면에 있고 자체 교차가 없음을 나타내는 0 또는 90일 수 있습니다. 기본 알고리즘은 샘플 점이 첫 번째 4분면에 없는 각도를 이진 검색하는 것입니다. + + + + + 화살표가 가리키는 방향을 지정합니다. + + + + + 화살표가 왼쪽을 가리킵니다. + + + + + 화살표가 오른쪽을 가리킵니다. + + + + + 화살표가 위쪽을 가리킵니다. + + + + + 화살표가 아래쪽을 가리킵니다. + + + + + B /| / C--D A | \ C--D \| B 알고리즘에서는 위쪽-왼쪽을 0,0으로 가정하고 너비/높이만 사용합니다. + + + + + 설명선 도형의 렌더링 스타일을 지정합니다. + + + + + 사각형 설명선입니다. + + + + + 모퉁이가 둥근 사각형 설명선입니다. + + + + + 타원 모양의 설명선입니다. + + + + + 구름 모양의 설명선입니다. + + + + + 가장자리 선을 업데이트하고 필요한 경우 앵커 지점에 연결합니다. + + + + + 폴리라인 세그먼트를 업데이트한 다음, 시작점, 앵커 지점 및 끝점을 설명선 스타일과 연결합니다. + + + + + 선 세그먼트를 지정된 점으로 업데이트합니다. + + + + + 4개 모서리에 대한 8개의 모서리 점을 시계 방향으로 계산합니다. + + + + + 모서리 원호는 항상 90도 원호보다 작습니다. + + + + + 기하를 다른 기하로 변형하는 GeometryEffect의 기본 클래스를 제공합니다. + + + 이 클래스는 IShape의 렌더링된 기하를 렌더링으로 전달하기 전에 처리하는 기본 구현을 제공합니다. 일반 구현에서는 가상 함수 를 확장하여 입력된 기하를 변형합니다. 는 일반적으로 기하가 업데이트될 때 연결된 속성으로 에 연결되고 활성화됩니다. 에서 렌더링된 기하를 대체합니다. + + + + + 지정된 종속성 개체의 연결된 속성으로 기하 효과를 가져옵니다. + + + + + 지정된 종속성 개체의 연결된 속성으로 기하 효과를 설정합니다. + + + + + 현재 값을 사용하여 의 깊은 복사본을 만듭니다. + + + + + 기하 효과의 깊은 복사본을 만듭니다. Silverlight 에서 CloneCurrentValue를 구현합니다. + + 기하 효과의 현재 인스턴스 복제본입니다. + + + + 지정된 기하 효과가 현재 인스턴스와 동일한지 테스트합니다. + + 비교할 기하 효과입니다. + 두 개의 효과가 동일한 모양을 렌더링할 경우 true를 반환합니다. + + + + 이전 기하 효과 프로세스의 기하를 지정합니다. + + + + + 기하를 실제로 계산하지 않고 기하 효과를 무효화합니다. 모든 부모 형상 또는 효과도 적절하게 무효화하도록 알립니다. + + + + + 지정한 입력된 기하에서 기하 효과를 처리합니다. 결과를 GeometryEffect.OutputGeometry에 저장합니다. + + 변경된 내용이 없는 경우에는 false를 반환합니다. + + + + 지정한 입력된 기하를 기반으로 cachedGeometry를 업데이트하는 방법을 확장합니다. + + + + + 부모 체인에서 분리될 때 알려 줍니다. + + + + + 부모 체인에 연결할 때 알려 줍니다. + + + + + 개체가 유효한 부모 유형(IShape 또는 GeometryEffect)일 경우 지정된 종속성 개체의 기하를 무효화합니다. + + + + + WPF에서는 해당 Freezable을 구현하십시오. + + + + + 입력된 기하를 통해서만 전달되는 기본 기하 효과입니다. + + + + + 이 기하 효과의 출력 기하를 가져옵니다. + + + + + 부모는 IShape 또는 GeometryEffectGroup일 수 있습니다. + + + + + 문자열 및 기하 효과 사이의 변환을 제공합니다. + + + 이 클래스를 사용하면 다음과 같이 XAML에서 간단한 구문을 사용할 수 있습니다. GeometryEffect="Sketch". 리소스로 사용할 수 있는 기하 효과의 인스턴스 복제본을 만듭니다. + + + + + 미리 설정된 지원되는 기하 효과 목록을 작성합니다. + + + + + 문자열 형식에서 변환할 수 있는 GeometryEffect입니다. + + + + + 문자열 형식으로 변환할 수 있는 GeometryEffect입니다. + + + + + 문자열을 기하 효과로 변환합니다. 대체 값이 null입니다. + + + + + 기하 효과를 문자열로 변환합니다. 대체 값이 null입니다. + + + + + 가 호출되는 이유를 지정합니다. + + + + + 속성이 변경되었기 때문에 기하가 무효화되었습니다. + + + + + 속성이 애니메이션되기 때문에 기하가 무효화되었습니다. + + + + + 자식이 무효화되었기 때문에 기하가 무효화되었습니다. + + + + + 부모가 무효화되었기 때문에 기하가 무효화되었습니다. + + + + + 새 템플릿이 적용되었기 때문에 기하가 무효화되었습니다. + + + + + IGeometrySource 및 매개 변수에서 작동하는 도우미 확장 메서드를 제공합니다. + + + + + 화살표 머리 형식을 지정합니다. + + + + + 화살표 머리가 없습니다. + + + + + 삼각형의 화살표 머리입니다. + + + + + 스텔스 삼각형의 화살표 머리입니다. + + + + + 열린 삼각형의 화살표 머리입니다. + + + + + 타원형 화살표 머리입니다. + + + + + 모서리 위치를 지정합니다. + + + + + 경계 상자의 왼쪽 위입니다. + + + + + 경계 상자의 오른쪽 위입니다. + + + + + 경계 상자의 오른쪽 아래입니다. + + + + + 경계 상자의 왼쪽 아래입니다. + + + + + 다각형에서 Stretch.None을 Stretch.Fill과 동일하게 인식합니다. + + + + + SketchFlow처럼 기하를 스케치 스타일로 변형하는 기하 효과입니다. + + + + + 기하 효과의 깊은 복사본을 만듭니다. + + 기하 효과의 현재 인스턴스 복제본입니다. + + + + 지정된 기하 효과가 현재 인스턴스와 동일한지 테스트합니다. + + 비교할 기하 효과입니다. + 두 개의 효과가 동일한 모양을 렌더링할 경우 true를 반환합니다. + + + + 지정한 입력된 기하를 기반으로 cachedGeometry를 업데이트하고 있습니다. + + 입력된 기하입니다. + cachedGeometry에서 업데이트된 내용이 있으면 true를 반환합니다. + + + + 시각적 깜박임을 최소화하려면 만들 때 동일한 임의 시드를 사용합니다. + + + + + 닫는 현을 포함하여 지정된 경로 형상에서 모든 단순 세그먼트를 반복합니다. + + + + + ArcThickness로 제어되는 원호, 링 및 파이 모드를 지원하는 원호 형상을 렌더링합니다. + + + + + WPF:Shape 또는 SL:Path에서 추출되는 Shape의 플랫폼 중립 구현입니다. + + + 플랫폼 경로에서 추출하는 Shape의 WPF 구현을 제공합니다. + + + + + 기하 원본을 만들면서 도형을 그리는 방법을 확장합니다. + + + + + 에 대한 기하를 무효화합니다. 무효화 후에 에서 기하를 다시 계산합니다. 이 작업은 비동기적으로 발생합니다. + + + + Silverlight 레이아웃 패스의 측정 부분에 대한 동작을 제공합니다. 클래스에서 이 메서드를 재정의하여 고유한 측정 패스 동작을 정의할 수 있습니다. + 하위 개체 할당 크기의 계산 또는 고정된 컨테이너 크기에 따라 레이아웃 중에 개체에 필요한 것으로 판별된 크기입니다. + 이 개체가 하위 개체에 제공할 수 있는 사용 가능한 크기입니다. 사용 가능한 콘텐츠에 따라 개체 크기가 조정됨을 나타내려면 값으로 Infinity()를 지정할 수 있습니다. + + WPF에서는 예상한 값이 아닐 수도 있는 Shape.DefiningGeometry의 작업을 측정을 통해 재정의합니다. 기본적으로 WPF가 잘못된 측정을 갖고 있는 경우에 대한 자세한 내용은 버그 99497을 참조하십시오. + + Silverlight에서는 경로에 대한 측정 재정의가 기본 도형 작업과 동일하게 작동하지 않습니다. + + 클리핑하지 않고도 이 도형을 올바로 렌더링할 수 있는 가장 작은 크기를 반환해야 합니다. 기본적으로 도형은 점처럼 작게 렌더링할 수 있습니다. 이 경우 스트로크 두께가 반환됩니다. + + + + Silverlight 레이아웃 패스의 정렬 부분에 대한 동작을 제공합니다. 클래스에서 이 메서드를 재정의하여 고유한 정렬 패스 동작을 정의할 수 있습니다. + 레이아웃에서 요소를 정렬할 때 사용된 실제 크기입니다. + 이 개체가 자신과 하위 개체를 정렬할 때 사용해야 하는 상위 개체 내 최종 영역입니다. + 기하가 무효화된 경우 에서 기하를 다시 계산하고 RenderedGeometry 및 GeometryMargin을 업데이트합니다. + + + + RenderedGeometry가 변경될 때 발생합니다. + + + + + 논리적 영역과 실제 기하 영역 간의 여백을 가져옵니다. 양수(의 경우) 또는 음수(의 경우)일 수 있습니다. + + + + + 시작 각도를 가져오거나 설정합니다. + + 시작 각도(도 단위)입니다. 0도는 위쪽을 가리킵니다. + + + + 끝 각도를 가져오거나 설정합니다. + + 끝 각도(도 단위)입니다. 0도는 위쪽을 가리킵니다. + + + + 원호 두께를 가져오거나 설정합니다. + + 원호 두께로 "ArcThicnessUnit"에 따라 픽셀 또는 백분율 단위입니다. + + + + 원호 두께 단위를 가져오거나 설정합니다. + + 원호 두께 단위로 픽셀 또는 백분율입니다. + + + + 크기 조정이 가능한 화살표 머리와 본문을 지지하는 블록 화살표 형상을 렌더링합니다. + + + + + 방향을 가져오거나 설정합니다. + + 화살표가 가리키는 방향입니다. + + + + 화살표 머리 각도를 가져오거나 설정합니다. + + 화살표 머리 각도(도 단위)입니다. + + + + 화살표 본문의 크기를 가져오거나 설정합니다. + + 화살표 본문 크기(픽셀 단위)입니다. + + + + 일반적인 다각형 도형이나 점 개수가 가변적인 해당하는 별 모양을 렌더링합니다. + + + + + 의 점 개수를 가져오거나 설정합니다. + + + + + 가운데 점과 가장 안쪽 점 사이의 거리를 가져오거나 설정합니다. + + 가운데 점과 가장 안쪽 점 사이의 거리입니다. + + + +ation for segment.►►◄1113►1►No translation for segment.►►◄1114►1►No translation for segment.►►◄1115►1►No translation for segment.►►◄1118►1►No translation for segment.►►◄1119►1►No translation for segment.►►◄1120►1►No translation for segment.►►◄1123►1►No translation for segment.►►◄1124►1►No translation for segment.►►◄1125►1►No translation for segment.►►◄1128►1►No translation for segment.►►◄1129►1►No translation for segment.►►◄1130►1►No translation for segment.►►◄1133►1►No translation for segment.►►◄1134►1►No translation for segment.►►◄1135►1►No translation for segment.►►◄1136►1►No translation for segment.►►◄1139►1►No translation for segment.►►◄1140►1►No translation for segment.►►◄1141►1►No translation for segment.►►◄1142►1►No translation for segment.►►◄1145►1►No translation for segment.►►◄1146►1►No translation for segment.►►◄1147►1►No translation for segment.►►◄1150►1►No translation for segment.►►◄1151►1►No translation for segment.►►◄1152►1►No translation for segment.►►◄1155►1►No translation for segment.►►◄1156►1►No translation for segment.►►◄1157►1►No translation for segment.►►◄1160►1►No translation for segment.►►◄1161►1►No translation for segment.►►◄1162►1►No translation for segment.►►◄1165►1►No translation for segment.►►◄1166►1►No translation for segment.►►◄1167►1►No translation for segment.►►◄1170►1►No translation for segment.►►◄1171►1►No translation for segment.►►◄1172►1►No translation for segment.►►◄1175►1►No translation for segment.►►◄1176►1►No translation for segment.►►◄1177►1►No translation for segment.►►◄1180►1►No translation for segment.►►◄1181►1►No translation for segment.►►◄1182►1►No translation for segment.►►◄1185►1►No translation for segment.►►◄1186►1►No translation for segment.►►◄1187►1►No translation for segment.►►◄1190►1►No translation for segment.►►◄1191►1►No translation for segment.►►◄1192►1►No translation for segment.►►◄1195►1►No translation for segment.►►◄1196►1►No translation for segment.►►◄1197►1►No translation for segment.►►◄1200►1►No translation for segment.►►◄1201►1►No translation for segment.►►◄1202►1►No translation for segment.►►◄1205►1►No translation for segment.►►◄1206►1►No translation for segment.►►◄1207►1►No translation for segment.►►◄1210►1►No translation for segment.►►◄1211►1►No translation for segment.►►◄1212►1►No translation for segment.►►◄1215►1►No translation for segment.►►◄1216►1►No translation for segment.►►◄1217►1►No translation for segment.►►◄1220►1►No translation for segment.►►◄1221►1►No translation for segment.►►◄1222►1►No translation for segment.►►◄1225►1►No translation for segment.►►◄1226►1►No translation for segment.►►◄1227►1►No translation for segment.►►◄1230►1►No translation for segment.►►◄1231►1►No translation for segment.►►◄1232►1►No translation for segment.►►◄1235►1►No translation for segment.►►◄1236►1►No translation for segment.►►◄1237►1►No translation for segment.►►◄1240►1►No translation for segment.►►◄1241►1►No translation for segment.►►◄1242►1►No translation for segment.►►◄1245►1►No translation for segment.►►◄1246►1►No translation for segment.►►◄1247►1►No translation for segment.►►◄1250►1►No translation for segment.►►◄1251►1►No translation for segment.►►◄1252►1►No translation for segment.►►◄1255►1►No translation for segment.►►◄1256►1►No translation for segment.►►◄1257►1►No translation for segment.►►◄1260►1►No translation for segment.►►◄1261►1►No translation for segment.►►◄1262►1►No translation for segment.►►◄1265►1►No translation for segment.►►◄1268►1►No translation for segment.►►◄1269►1►No translation for segment.►►◄1270►1►No translation for segment.►►◄1273►1►No translation for segment.►►◄1274►1►No translation for segment.►►◄1275►1►No translation for segment.►►◄1278►1►No translation for segment.►►◄1279►1►No translation for segment.►►◄1280►1►No translation for segment.►►◄1283►1►No translation for segment.►►◄1284►1►No translation for segment.►►◄1285►1►No translation for segment.►►◄1288►1►No translation for segment.►►◄1289►1►No translation for segment.►►◄1290►1►No translation for segment.►►◄1291►1►No translation for segment.►►◄1294►1►No translation for segment.►►◄1295►1►No translation for segment.►►◄1296►1►No translation for segment.►►◄1297►1►No translation for segment.►►◄1298►1►No translation for segment.►►◄1301►1►No translation for segment.►►◄1302►1►No translation for segment.►►◄1303►1►No translation for segment.►►◄1306►1►No translation for segment.►►◄1307►1►No translation for segment.►►◄1308►1►No translation for segment.►►◄1311►1►No translation for segment.►►◄1312►1►No translation for segment.►►◄1313►1►No translation for segment.►►◄1314►1►No translation for segment.►►◄1317►1►No translation for segment.►►◄1318►1►No translation for segment.►►◄1319►1►No translation for segment.►►◄1322►1►No translation for segment.►►◄1323►1►No translation for segment.►►◄1324►1►No translation for segment.►►◄1327►1►No translation for segment.►►◄1328►1►No translation for segment.►►◄1329►1►No translation for segment.►►◄1332►1►No translation for segment.►►◄1333►1►No translation for segment.►►◄1334►1►No translation for segment.►►◄1337►1►No translation for segment.►►◄1338►1►No translation for segment.►►◄1339►1►No translation for segment.►►◄1342►1►No translation for segment.►►◄1343►1►No translation for segment.►►◄1344►1►No translation for segment.►►◄1347►1►No translation for segment.►►◄1348►1►No translation for segment.►►◄1349►1►No translation for segment.►►◄1352►1►No translation for segment.►►◄1353►1►No translation for segment.►►◄1354►1►No translation for segment.►►◄1357►1►No translation for segment.►►◄1358►126►Translation is identical to source text.►►◄1360►1►No translation for segment.►►◄1361►1►No translation for segment.►►◄1362►1►No translation for segment.►►◄1365►1►No translation for segment.►►◄1366►1►No translation for segment.►►◄1367►1►No translation for segment.►►◄1370►1►No translation for segment.►►◄1371►1►No translation for segment.►►◄1372►1►No translation for segment.►►◄1375►1►No translation for segment.►►◄1376►1►No translation for segment.►►◄1377►1►No translation for segment.►►◄1380►1►No translation for segment.►►◄1381►1►No translation for segment.►►◄1382►1►No translation for segment.►►◄1385►1►No translation for segment.►►◄1386►1►No translation for segment.►►◄1387►1►No translation for segment.►►◄1390►1►No translation for segment.►►◄1391►1►No translation for segment.►►◄1392►1►No translation for segment.►►◄1395►1►No translation for segment.►►◄1396►1►No translation for segment.►►◄1397►1►No translation for segment.►►◄1400►1►No translation for segment.►►◄1401►1►No translation for segment.►►◄1402►1►No translation for segment.►►◄1405►1►No translation for segment.►►◄1406►1►No translation for segment.►►◄1407►1►No translation for segment.►►◄1410►1►No translation for segment.►►◄1411►1►No translation for segment.►►◄1412►1►No translation for segment.►►◄1415►1►No translation for segment.►►◄1416►1►No translation for segment.►►◄1417►1►No translation for segment.►►◄1420►1►No translation for segment.►►◄1421►1►No translation for segment.►►◄1422►1►No translation for segment.►►◄1425►1►No translation for segment.►►◄1426►1►No translation for segment.►►◄1427►1►No translation for segment.►►◄1430►1►No translation for segment.►►◄1431►1►No translation for segment.►►◄1432►1►No translation for segment.►►◄1435►1►No translation for segment.►►◄1436►1►No translation for segment.►►◄1437►1►No translation for segment.►►◄1440►1►No translation for segment.►►◄1441►1►No translation for segment.►►◄1442►1►No translation for segment.►►◄1445►1►No translation for segment.►►◄1446►1►No translation for segment.►►◄1447►1►No translation for segment.►►◄1450►1►No translation for segment.►►◄1451►1►No translation for segment.►►◄1452►1►No translation for segment.►►◄1455►1►No translation for segment.►►◄1456►1►No translation for segment.►►◄1457►1►No translation for segment.►►◄1460►1►No translation for segment.►►◄1461►1►No translation for segment.►►◄1462►1►No translation for segment.►►◄1465►1►No translation for segment.►►◄1466►1►No translation for segment.►►◄1467►1►No translation for segment.►►◄1470►1►No translation for segment.►►◄1471►1►No translation for segment.►►◄1472►1►No translation for segment.►►◄1475►1►No translation for segment.►►◄1476►1►No translation for segment.►►◄1477►1►No translation for segment.►►◄1480►1►No translation for segment.►►◄1481►1►No translation for segment.►►◄1482►1►No translation for segment.►►◄1485►1►No translation for segment.►►◄1486►1►No translation for segment.►►◄1487►1►No translation for segment.►►◄1490►1►No translation for segment.►►◄1491►1►No translation for segment.►►◄1492►1►No translation for segment.►►◄1493►1►No translation for segment.►►◄1496►1►No translation for segment.►►◄1497►1►No translation for segment.►►◄1498►1►No translation for segment.►►◄1499►1►No translation for segment.►►◄1500►1►No translation for segment.►►◄1503►1►No translation for segment.►►◄1504►1►No translation for segment.►►◄1505►1►No translation for segment.►►◄1506►1►No translation for segment.►►◄1507►1►No translation for segment.►►◄1510►1►No translation for segment.►►◄1511►1►No translation for segment.►►◄1512►1►No translation for segment.►►◄1515►1►No translation for segment.►►◄1516►1►No translation for segment.►►◄1517►1►No translation for segment.►►◄1520►1►No translation for segment.►►◄1521►1►No translation for segment.►►◄1522►1►No translation for segment.►►◄1525►1►No translation for segment.►►◄1528►1►No translation for segment.►►◄1529►1►No translation for segment.►►◄1530►1►No translation for segment.►►◄1533►1►No translation for segment.►►◄1534►1►No translation for segment.►►◄1535►1►No translation for segment.►►◄1538►1►No translation for segment.►►◄1539►1►No translation for segment.►►◄1540►1►No translation for segment.►►◄1541►1►No translation for segment.►►◄1542►1►No translation for segment.►►◄1543►1►No translation for segment.►►◄1550►1►No translation for segment.►►◄1551►1►No translation for segment.►►◄1552►1►No translation for segment.►►◄1553►1►No translation for segment.►►◄1554►1►No translation for segment.►►◄1555►1►No translation for segment.►►◄1556►1►No translation for segment.►►◄1557►1►No translation for segment.►►◄1558►1►No translation for segment.►►◄1561►1►No translation for segment.►►◄1562►1►No translation for segment.►►◄1563►1►No translation for segment.►►◄1566►1►No translation for segment.►►◄1567►1►No translation for segment.►►◄1568►1►No translation for segment.►►◄1571►1►No translation for segment.►►◄1572►1►No translation for segment.►►◄1573►1►No translation for segment.►►◄1574►1►No translation for segment.►►◄1577►1►No translation for segment.►►◄1578►1►No translation for segment.►►◄1579►1►No translation for segment.►►◄1580►1►No translation for segment.►►◄1583►1►No translation for segment.►►◄1584►1►No translation for segment.►►◄1585►1►No translation for segment.►►◄1586►1►No translation for segment.►►◄1589►1►No translation for segment.►►◄1590►1►No translation for segment.►►◄1591►1►No translation for segment.►►◄1592►1►No translation for segment.►►◄1595►1►No translation for segment.►►◄1596►1►No translation for segment.►►◄1597►1►No translation for segment.►►◄1600►1►No translation for segment.►►◄1601►1►No translation for segment.►►◄1602►1►No translation for segment.►►◄1603►1►No translation for segment.►►◄1606►1►No translation for segment.►►◄1607►1►No translation for segment.►►◄1608►1►No translation for segment.►►◄1609►1►No translation for segment.►►◄1612►1►No translation for segment.►►◄1613►1►No translation for segment.►►◄1614►1►No translation for segment.►►◄1615►1►No translation for segment.►►◄1618►1►No translation for segment.►►◄1619►1►No translation for segment.►►◄1620►1►No translation for segment.►►◄1623►1►No translation for segment.►►◄1624►1►No translation for segment.►►◄1625►1►No translation for segment.►►◄1628►1►No translation for segment.►►◄1629►1►No translation for segment.►►◄1630►1►No translation for segment.►►◄ "--> \ No newline at end of file diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/ko/Microsoft.Expression.Effects.xml b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/ko/Microsoft.Expression.Effects.xml new file mode 100644 index 0000000..fd5f5e7 --- /dev/null +++ b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/ko/Microsoft.Expression.Effects.xml @@ -0,0 +1,1041 @@ + + + + Microsoft.Expression.Effects + + + + + 해당 블라인드 방향을 확인합니다. + + + + + 비주얼 간에 전환할 경우 열리는 블라인드를 시뮬레이션하는 셰이더를 전환합니다. + + + + + 해당 블라인드 방향을 가져오거나 설정합니다. + + + + + 블라인드 수를 가져오거나 설정합니다. + + + + + 셰이더 내 Amplitude 변수를 가져오거나 설정합니다. + + + + + 셰이더의 인스턴스를 만듭니다. + + + + + BlindsTransitionEffect 효과의 깊은 복사본을 만듭니다. + + BlindsTransitionEffect 효과의 현재 인스턴스 복제본입니다. + + + + 해당 블라인드 방향을 가져오거나 설정합니다. + + + + + 표시할 블라인드 수를 가져오거나 설정합니다. + + + + + 해당 블라인드 방향을 가져오거나 설정합니다. + + + + + 비주얼의 블룸 조명을 구현하는 효과입니다. + + + + + 이 픽셀 셰이더의 명시적인 입력입니다. + + + + + + 이 속성은 픽셀 셰이더 내 BloomIntensity 변수에 매핑됩니다. + + + + + 이 속성은 픽셀 셰이더 내 BaseIntensity 변수에 매핑됩니다. + + + + + 이 속성은 픽셀 셰이더 내 BloomSaturation 변수에 매핑됩니다. + + + + + 이 속성은 픽셀 셰이더 내 BaseSaturation 변수에 매핑됩니다. + + + + + 이 속성은 픽셀 셰이더 내 BloomIntensity 변수에 매핑됩니다. + + + + + 이 속성은 픽셀 셰이더 내 BloomSaturation 변수에 매핑됩니다. + + + + + 이 속성은 픽셀 셰이더 내 BaseSaturation 변수에 매핑됩니다. + + + + + 인스턴스를 만들고 셰이더 변수를 기본값으로 업데이트합니다. + + + + + 블룸에 사용되는 최소 농도를 가져오거나 설정합니다. + + + + + 기본 농도를 가져오거나 설정합니다. + + + + + 블룸 농도를 가져오거나 설정합니다. + + + + + 기본 채도를 가져오거나 설정합니다. + + + + + 블룸 채도를 가져오거나 설정합니다. + + + + + 입력 셰이더 견본을 가져오거나 설정합니다. + + + + + 셰이더 내 Base/BloomIntensity 변수를 가져오거나 설정합니다. + + + + + 셰이더 내 BaseBloomSaturation 변수를 가져오거나 설정합니다. + + + + + 확장/축소되는 원을 통해 2개의 비주얼을 표시하는 전환 효과입니다. + + + + + 픽셀 셰이더 내 Feather 양 변수를 수정하는 종속성 속성입니다. + + + + + 원형 이동을 수정하는 종속성 속성입니다. + + + + + 픽셀 셰이더 내 reverseShader 변수를 수정하는 종속성 속성입니다. + + + + + 인스턴스를 만들고 셰이더 변수를 기본값으로 업데이트합니다. + + + + + CircleRevealTransitionEffect 효과의 깊은 복사본을 만듭니다. + + CircleRevealTransitionEffect 효과의 현재 인스턴스 복제본입니다. + + + + 셰이더 내 FuzzyAmount 변수를 가져오거나 설정합니다. + + + + + 원 표시 뒤로 재생을 가져오거나 설정합니다. + + + + + 원 표시를 셰이더 뒤로 재생을 가져오거나 설정합니다. + + + + + 구름 질감을 견본 임계값으로 사용하여 2개의 비주얼을 전환하는 전환 효과입니다. + + + + + 2개의 비주얼 사이에 픽셀 값을 삽입하기 위해 견본 임계값으로 이미지를 사용하는 전환 셰이더 효과를 정의합니다. + + + + + 효과를 실행할 때마다 효과에서 차이를 제공할 수 있게 해주는 임의 값을 제공하는 전환 셰이더 효과를 정의합니다. + + + + + 픽셀 셰이더 내 RandomSeed 변수를 수정하는 종속성 속성입니다. + + + + + 셰이더 변수를 기본값으로 업데이트합니다. + + + + + 셰이더 내 RandomSeed 변수를 가져오거나 설정합니다. + + + + + 픽셀 셰이더 내 CloudImage 변수를 수정하는 종속성 속성입니다. + + + + + 인스턴스를 만들고 셰이더 변수를 기본값으로 업데이트합니다. + + + + + 샘플링에 사용된 셰이더 내 CloudImage 변수를 가져오거나 설정합니다. + + + + + 셰이더의 인스턴스를 만듭니다. + + + + + CloudRevealTransitionEffect 효과의 깊은 복사본을 만듭니다. + + CloudRevealTransitionEffect 효과의 현재 인스턴스 복제본입니다. + + + + 2개의 색을 샘플링으로 사용하여 비주얼의 색 톤을 수정하는 효과입니다. + + + + + 이 픽셀 셰이더의 명시적인 입력입니다. + + + + + 이 속성은 픽셀 셰이더 내 Desaturation 변수에 매핑됩니다. + + + + + 이 속성은 픽셀 셰이더 내 Tone 변수에 매핑됩니다. + + + + + 이 속성은 픽셀 셰이더 내 LightColor 변수에 매핑됩니다. + + + + + 이 속성은 픽셀 셰이더 내 DarkColor 변수에 매핑됩니다. + + + + + 인스턴스를 만들고 셰이더 변수를 기본값으로 업데이트합니다. + + + + + 셰이더 내 Desaturation 변수를 가져오거나 설정합니다. + + + + + 셰이더 내 Tone 변수를 가져오거나 설정합니다. + + + + + 셰이더 내 LightColor 변수를 가져오거나 설정합니다. + + + + + 셰이더 내 DarkColor 변수를 가져오거나 설정합니다. + + + + + 입력 셰이더 견본을 가져오거나 설정합니다. + + + + + 비주얼에 볼록 모양을 시뮬레이션하는 효과입니다. + + + + + 이 픽셀 셰이더의 명시적인 입력입니다. + + + + + 이 속성은 픽셀 셰이더 내 Amount 변수에 매핑됩니다. + + + + + 이 속성은 픽셀 셰이더 내 Height 변수에 매핑됩니다. + + + + + 이 속성은 픽셀 셰이더 내 Color 변수에 매핑됩니다. + + + + + 인스턴스를 만들고 셰이더 변수를 기본값으로 업데이트합니다. + + + + + 셰이더 내 Amount 변수를 가져오거나 설정합니다. + + + + + 셰이더 내 Height 변수를 가져오거나 설정합니다. + + + + + 셰이더 내 Color 변수를 가져오거나 설정합니다. + + + + + 입력 셰이더 견본을 가져오거나 설정합니다. + + + + + 하나의 비주얼에서 다른 비주얼로 점진적으로 전환하는 전환 효과입니다. + + + + + 셰이더의 인스턴스를 만듭니다. + + + + + FadeTransitionEffect 효과의 깊은 복사본을 만듭니다. + + FadeTransitionEffect 효과의 현재 인스턴스 복제본입니다. + + + + 돋보기 렌즈를 시뮬레이션하는 효과입니다. + + + + + 셰이더 내 InnerRadius 변수를 가져오거나 설정합니다. + + + + + 셰이더 내 OuterRadius 변수를 가져오거나 설정합니다. + + + + + 셰이더 내 Center 변수를 가져오거나 설정합니다. + + + + + 셰이더 내 Amount 변수를 가져오거나 설정합니다. + + + + + 셰이더에서 사용된 Input을 가져오거나 설정합니다. + + + + + 이 셰이더에 사용된 변형입니다. + + + + + 인스턴스를 만들고 셰이더 변수를 기본값으로 업데이트합니다. + + + + + 셰이더 내 InnerRadius 변수를 가져오거나 설정합니다. + + + + + 셰이더 내 OuterRadius 변수를 가져오거나 설정합니다. + + + + + 셰이더 내 Center 변수를 가져오거나 설정합니다. + + + + + ShrinkFactor를 가져오거나 설정합니다. 축소 인수가 높을수록 타원 내 콘텐츠가 더 작게 표시됩니다. + + + + + EffectMapping을 가져옵니다. + + + + + 입력 셰이더 견본을 가져오거나 설정합니다. + + + + + GeneralTransform은 Magnify 효과에 해당합니다. + + + + + 효과를 기반으로 점을 변형합니다. + + 변형할 점입니다. + 결과입니다(사용 가능한 경우). + 성공한 경우 true를 반환합니다. + + + + 효과 인스턴스입니다. + + + + + 역 변형의 경우입니다. + + + + + 이 효과에 해당하는 변형입니다. + + + + + 새 인스턴스를 만듭니다. + + 원본 효과입니다. + + + + 이 특정 효과에서는 축 맞춤 선을 축을 따라 정렬하므로 사각형의 변형은 꼭지 점의 변형일뿐입니다. + + 입력된 사각형입니다. + 출력한 사각형입니다. + + + + 역 셰이더의 경우 질감 입력 Pout가 역 셰이더일 경우 Pixel Ouput인 Pin을 찾아야 합니다. 그러나 역 계산시 갖고 있지 않은 변수인 center에서 픽셀 출력의 반경에 셰이더 알고리즘이 종속됩니다. PHatout = PHat_in*Scalar 방정식(여기서 PHatout = Pout - Pcenter pHatin = Pin -Pcenter)을 사용하여 수렴하려면 이등분을 해야 합니다. + + 스칼라는 갖고 있지 않은 Pin의 반경에 종속됩니다. + + + + + 픽셀 출력(Pin)의 경우 질감 입력(Pout)을 찾습니다. + + + + + 새 인스턴스를 만듭니다. + + 이 항목의 새 인스턴스입니다. + + + + 점이 타원 내에 있는지 여부를 결정합니다. + + 테스트 점입니다. + 타원의 중점입니다. + 타원 반지름입니다. + 성공한 경우 true를 반환합니다. + + + + 역 변형을 가져옵니다. + + + + + 비주얼을 단색으로 변환하는 효과입니다. + + + + + 셰이더 내 Color 변수를 가져오거나 설정합니다. + + + + + 셰이더의 Input을 가져오거나 설정합니다. + + + + + 인스턴스를 만들고 셰이더 변수를 기본값으로 업데이트합니다. + + + + + 셰이더 내 Color 변수를 가져오거나 설정합니다. + + + + + 셰이더에서 사용된 Input을 가져오거나 설정합니다. + + + + + 시각적 pixelates 효과입니다. + + + + + 이 픽셀 셰이더의 명시적인 입력입니다. + + + + + 이 속성은 픽셀 셰이더 내 Pixelation 변수에 매핑됩니다. + + + + + 인스턴스를 만들고 셰이더 변수를 기본값으로 업데이트합니다. + + + + + 셰이더 내 pixelation 양을 가져오거나 설정합니다. + + + + + 입력 셰이더 견본을 가져오거나 설정합니다. + + + + + 2개 비주얼 사이의 pixelation을 증가/감소하는 전환 효과입니다. + + + + + 셰이더의 인스턴스를 만듭니다. + + + + + PixelateTransitionEffect 효과의 깊은 복사본을 만듭니다. + + PixelateTransitionEffect 효과의 현재 인스턴스 복제본입니다. + + + + 새 비주얼이 도입될 때 현재 비주얼을 방사형으로 흐리게 하는 전환 효과입니다. + + + + + 셰이더의 인스턴스를 만듭니다. + + + + + RadialBlurTransitionEffect 효과의 깊은 복사본을 만듭니다. + + RadialBlurTransitionEffect 효과의 현재 인스턴스 복제본입니다. + + + + 비주얼에서 잔물결을 시뮬레이션하는 효과입니다. + + + + + 셰이더 내 Center 변수를 가져오거나 설정합니다. + + + + + 셰이더 내 Amplitude 변수를 가져오거나 설정합니다. + + + + + 셰이더 내 Frequency 변수를 가져오거나 설정합니다. + + + + + 셰이더 내 Phase 변수를 가져오거나 설정합니다. + + + + + 셰이더에서 사용된 Input brush를 가져오거나 설정합니다. + + + + + 인스턴스를 만들고 셰이더 변수를 기본값으로 업데이트합니다. + + + + + 셰이더 내 Center 변수를 가져오거나 설정합니다. + + + + + 셰이더 내 Amplitude 변수를 가져오거나 설정합니다. + + + + + 셰이더 내 Frequency 변수를 가져오거나 설정합니다. + + + + + 셰이더 내 Phase 변수를 가져오거나 설정합니다. + + + + + 입력 셰이더 견본을 가져오거나 설정합니다. + + + + + 전환 중에 잔물결을 시뮬레이션하는 전환 효과입니다. + + + + + 셰이더의 인스턴스를 만듭니다. + + + + + RippleTransitionEffect 효과의 깊은 복사본을 만듭니다. + + RippleTransitionEffect 효과의 현재 인스턴스 복제본입니다. + + + + 비주얼을 더 선명하게 하는 효과입니다. + + + + + 이 픽셀 셰이더의 명시적인 입력입니다. + + + + + 이 속성은 픽셀 셰이더 내 Amount 변수에 매핑됩니다. + + + + + 이 속성은 픽셀 셰이더 내 Width 변수에 매핑됩니다. + + + + + 인스턴스를 만들고 셰이더 변수를 기본값으로 업데이트합니다. + + + + + 셰이더 내 Amount 변수를 가져오거나 설정합니다. + + + + + 셰이더 내 Height 변수를 가져오거나 설정합니다. + + + + + 입력 셰이더 견본을 가져오거나 설정합니다. + + + + + 슬라이드 방향을 정의합니다. + + + + + 현재 비주얼을 밀어서 새 비주얼을 표시하는 전환 효과입니다. + + + + + 픽셀 셰이더 내 SlideAmount 변수를 수정하는 종속성 속성입니다. + + + + + 픽셀 셰이더 내 SlideAmount 변수를 수정하는 종속성 속성입니다. + + + + + 인스턴스를 만들고 셰이더 변수를 기본값으로 업데이트합니다. + + + + + SlideInTransitionEffect 효과의 깊은 복사본을 만듭니다. + + SlideInTransitionEffect 효과의 현재 인스턴스 복제본입니다. + + + + 셰이더 내 SlideAmount 변수를 가져오거나 설정합니다. + + + + + 셰이더 내 SlideAmount 변수를 가져오거나 설정합니다. + + + + + 새 비주얼이 도입되는 동안 현재 비주얼을 회전하는 전환 효과입니다. + + + + + 픽셀 셰이더 내 TwistAmount 변수를 수정하는 종속성 속성입니다. + + + + + 픽셀이 비틀리는 셀 수를 수정하는 종속성 속성입니다. + + + + + 인스턴스를 만들고 셰이더의 twist 변수를 지정된 값으로 설정합니다. + + 회전 비틀림 수준입니다. + + + + 인스턴스를 만들고 셰이더 변수를 기본값으로 업데이트합니다. + + + + + SmoothSwirlGridTransitionEffect 효과의 깊은 복사본을 만듭니다. + + SmoothSwirlGridTransitionEffect 효과의 현재 인스턴스 복제본입니다. + + + + 셰이더 내 TwistAmount 변수를 가져오거나 설정합니다. + + + + + 셰이더 내 CellCount 변수를 가져오거나 설정합니다. + + + + + 현재 비주얼을 회전하는 효과입니다. + + + + + 이 픽셀 셰이더의 명시적인 입력입니다. + + + + + 이 속성은 픽셀 셰이더 내 Center 변수에 매핑됩니다. + + + + + 이 속성은 픽셀 셰이더 내 TwistAmount 변수에 매핑됩니다. + + + + + 이 속성은 픽셀 셰이더 내 AngleFrequency 변수에 매핑됩니다. + + + + + 이 효과가 적용될 때 사용된 변형입니다. + + + + + 인스턴스를 만들고 셰이더 변수를 기본값으로 업데이트합니다. + + + + + 셰이더 내 Center 변수를 가져오거나 설정합니다. + + + + + 셰이더 내 TwistAmount 변수를 가져오거나 설정합니다. + + + + + 셰이더 내 AngleFrequency 변수를 가져오거나 설정합니다. 이 속성은 노출되지 않습니다. + + + + + 입력 셰이더 견본을 가져오거나 설정합니다. + + + + + 이 효과에 대한 GeneralTransform을 가져옵니다. + + + + + 입력 변형 및 트리 변형에 사용됩니다. + + + + + Effect의 인스턴스입니다. + + + + + 역 변형입니다. + + + + + 이 GeneralTransform의 반전입니다. + + + + + 이 클래스의 인스턴스를 만듭니다. + + 효과 자체입니다. + + + + 이 작업을 위해 경계는 4개 변형 점의 경계 상자입니다. 각각을 변형한 다음, 경계선을 그어야 합니다. 이는 전진/역 모두에 true입니다. + + 입력된 사각형입니다. + 변형된 사각형입니다. + + + + 회전 효과를 사용하여 inPoint 변형을 시도합니다. + + 입력된 점입니다. + 회전 효과를 사용하여 변형된 후의 출력 점입니다. + true를 반환하지만 false일 경우 발생합니다. + + + + 이 새 인스턴스를 반환합니다. + + 새 인스턴스입니다. + + + + 현재 역 변형의 복제본을 가져옵니다. + + + + + 새 비주얼이 도입되는 동안 현재 비주얼을 물결화하는 전환 효과입니다. + + + + + 픽셀 셰이더 내 Magnitude 변수를 수정하는 종속성 속성입니다. + + + + + 픽셀 셰이더 내 Phase 변수를 수정하는 종속성 속성입니다. + + + + + 픽셀 셰이더 내 Frequency 변수를 수정하는 종속성 속성입니다. + + + + + 셰이더의 인스턴스를 만듭니다. + + + + + WaveTransitionEffect 효과의 깊은 복사본을 만듭니다. + + WaveTransitionEffect 효과의 현재 인스턴스 복제본입니다. + + + + 물결의 규모를 가져오거나 설정합니다. + + + + + 물결의 단계를 가져오거나 설정합니다. + + + + + 물결의 규모를 가져오거나 설정합니다. + + + + + 닦아내기 방향을 정의합니다. + + + + + 새 비주얼이 도입되는 동안 현재 비주얼을 닦아내는 전환 효과입니다. + + + + + 픽셀 셰이더 내 WipeDirection 변수를 수정하는 종속성 속성입니다. + + + + + 픽셀 셰이더 내 FeatherAmount 변수를 수정하는 종속성 속성입니다. + + + + + 픽셀 셰이더 내 LineOrigin 변수를 수정하는 종속성 속성입니다. + + + + + 픽셀 셰이더 내 LineNormal 변수를 수정하는 종속성 속성입니다. + + + + + 픽셀 셰이더 내 LineOffset 변수를 수정하는 종속성 속성입니다. + + + + + 인스턴스를 만들고 셰이더 변수를 기본값으로 업데이트합니다. + + + + + WipeTransitionEffect 효과의 깊은 복사본을 만듭니다. + + WipeTransitionEffect 효과의 현재 인스턴스 복제본입니다. + + + + 닦아내기 방향을 가져오거나 설정합니다. + + + + + 셰이더 내 FeatherAmount 변수를 가져오거나 설정합니다. + + + + + 셰이더 내 LineOrigin 변수를 가져오거나 설정합니다. + + + + + 셰이더 내 LineNormal 변수를 가져오거나 설정합니다. + + + + + 셰이더 내 LineOffset 변수를 가져오거나 설정합니다. + + + + diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/ko/Microsoft.Expression.Interactions.resources.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/ko/Microsoft.Expression.Interactions.resources.dll new file mode 100644 index 0000000..2cf1eeb Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/ko/Microsoft.Expression.Interactions.resources.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/ko/Microsoft.Expression.Interactions.xml b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/ko/Microsoft.Expression.Interactions.xml new file mode 100644 index 0000000..7da0609 --- /dev/null +++ b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/ko/Microsoft.Expression.Interactions.xml @@ -0,0 +1,1241 @@ + + + + Microsoft.Expression.Interactions + + + + + 매개 변수를 갖지 않는 메서드 또는 한 개의 매개 변수를 갖는 메서드를 줄 바꿈하는 ICommand의 기본 구현입니다. + + + + + 클래스의 새 인스턴스를 초기화합니다. + + 작업입니다. + 이 생성자를 사용하여 ICommand 매개 변수를 무시하는 작업을 제공합니다. + + + + 클래스의 새 인스턴스를 초기화합니다. + + 개체 매개 변수를 갖는 작업입니다. + 이 생성자를 사용하여 Execute 메서드를 통해 전달된 개체 매개 변수를 사용하는 작업을 제공합니다. + + + + 명령을 현재 상태에서 실행할 수 있는지 여부를 결정하는 메서드를 정의합니다. + + 명령에 사용된 데이터. 명령에서 데이터를 전달할 필요가 없으면 이 개체를 Null로 설정할 수 있습니다. + + 항상 true를 반환합니다. + + + + + 명령이 호출될 때 호출될 메서드를 정의합니다. + + 명령에 사용된 데이터. 명령에서 데이터를 전달할 필요가 없으면 이 개체를 Null로 설정할 수 있습니다. + + + + 명령 실행 여부에 영향을 미치는 변경 내용이 있는 경우에 발생합니다. ActionCommand로 발생되지 않습니다. + + + + + 호출 시 지정된 개체에서 메서드를 호출합니다. + + + + + 작업을 호출합니다. + + 작업의 매개 변수입니다. 작업에 매개 변수가 필요하지 않은 경우 매개 변수를 Null 참조로 설정할 수 있습니다. + + + + 작업이 AssociatedObject에 연결된 후 호출됩니다. + + 이 동작을 다시 정의하여 기능을 AssociatedObject에 연결합니다. + + + + AssociatedObject에서 동작이 분리될 때 호출되나 실제로 동작이 발생하기 전에 호출됩니다. + + 이 동작을 다시 정의하여 AssociatedObject에서 기능을 분리합니다. + + + + 관심 있는 메서드를 제공하는 개체입니다. 이것은 종속성 속성입니다. + + + + + 호출할 메서드의 이름입니다. 이것은 종속성 속성입니다. + + + + + 호출 시 지정된 속성을 지정된 값으로 변경하는 작업입니다. + + + + + 클래스의 새 인스턴스를 초기화합니다. + + + + + 작업을 호출합니다. + + 작업의 매개 변수입니다. 작업에 매개 변수가 필요하지 않은 경우 매개 변수를 Null 참조로 설정할 수 있습니다. + 가 있는 속성을 대상에서 찾을 수 없습니다. + 에 의해 지정된 값으로 설정할 수 없습니다. + + + + 변경할 속성의 이름을 가져오거나 설정합니다. 이것은 종속성 속성입니다. + + 변경할 속성의 이름입니다. + + + + 설정할 값을 가져오거나 설정합니다. 이것은 종속성 속성입니다. + + 설정할 값입니다. + + + + ChangePropertyAction을 호출할 때 발생할 애니메이션 지속 시간을 가져오거나 설정합니다. 이것은 종속성 속성입니다. 지속 시간을 설정하지 않으면 애니메이션이 적용되지 않습니다. + + + + + true일 경우 Value만큼 증가하고, 그렇지 않으면 값을 직접 설정합니다. 속성을 증가할 수 없는 경우 대신 값을 직접 설정해봅니다. + + + + + 삼항 조건을 나타냅니다. + + + + + 조건을 평가하는 메서드입니다. 연산자가 형식과 호환되지 않을 경우 이 메서드에서 ArgumentException을 발행할 수 있습니다. 예를 들어, LessThan, LessThanOrEqual, GreaterThan, GreaterThanOrEqual 연산자의 경우 두 연산자에서 IComparable을 구현해야 합니다. + + 조건이 충족될 경우 true를 반환하고, 그렇지 않으면 false를 반환합니다. + + + + DP 피연산자의 모든 바인딩이 최신인지 확인합니다. + + + + + 왼쪽 피연산자를 가져오거나 설정합니다. + + + + + 오른쪽 피연산자를 가져오거나 설정합니다. + + + + + 비교 연산자를 가져오거나 설정합니다. + + + + + 다른 비교 연산자의 열거. + + + + + 이 메서드는 피연산자를 평가합니다. + + LeftOperand 속성의 왼쪽 피연산자. + Operator 속성의 연산자. + RightOperand 속성의 오른쪽 피연산자. + 조건이 충족될 경우 true를 반환하고, 그렇지 않으면 false를 반환합니다. + + + + IComparable 인터페이스를 구현하는 피연산자를 둘 다 평가합니다. + + LeftOperand 속성의 왼쪽 피연산자. + Operator 속성의 연산자. + RightOperand 속성의 오른쪽 피연산자. + 조건이 충족될 경우 true를 반환하고, 그렇지 않으면 false를 반환합니다. + + + + 전달 체인. + + + + + ConditionBehavior.Condition 속성에 설정된 조건 식을 나타냅니다. ICondition.Evaluate()에 대한 true 또는 false를 반환하기 위해 평가되는 조건 목록이 포함되어 있습니다. + + + + + ConditionBehavior.Condition 속성에 설정하기 위해 지정된 개체에서 구현해야 하는 인터페이스입니다. + + + + + 클래스의 새 인스턴스를 초기화합니다. + + + + + Conditions 컬렉션을 검사하여 ForwardChaining 속성에 따라 각 조건을 평가합니다. + + 조건이 충족될 경우 true를 반환하고, 그렇지 않으면 false를 반환합니다. + + + + 조건에 대한 전달 체인을 가져오거나 설정합니다. 전달 체인이 ForwardChaining.And로 설정된 경우 모든 조건이 충족되어야 합니다. 전달 체인이 ForwardChaining.Or로 설정된 경우 하나의 조건만 충족되어야 합니다. + + + + + Condition 컬렉션을 반환합니다. + + + + + 트리거에 연결되고 작업을 발생시키는 조건을 제어하는 동작입니다. + + + + + + 클래스의 새 인스턴스를 초기화합니다. + + + + + 트리거에서 발생시킨 미리 보기 호출 이벤트를 수신 대기하는 이벤트 처리기입니다. PreviewInvokeEventArgs.Cancelling을 True로 설정하면 호출이 취소됩니다. + + 트리거 기본 개체입니다. + e.Cancelling을 True로 설정할 수 있는 PreviewInvokeEventArgs 유형의 개체입니다. + + + + 동작의 IConditon 개체를 가져오거나 설정합니다. + + 변경할 조건의 이름입니다. + + + + 종속성 개체의 바인딩 식을 관리하기 위한 도우미 클래스. + + + + + 바인딩 식이 있는 작업의 모든 DP가 최신인지 확인합니다. 데이터 바인딩 단계 중에 DataTrigger가 발생합니다. 작업은 트리거의 자식이기 때문에 작업의 바인딩이 최신이 아닐 수도 있습니다. 가장 최근 데이터를 사용하여 모든 바인딩을 최신 상태로 유지하기 위해 작업을 호출하기 전에 이 루틴이 호출됩니다. + + + + + 작업의 모든 바인딩 식이 최신인지 확인합니다. + + + + + 이 도우미 기능을 통해 종속성 개체의 종속성 속성에 바인딩 식이 있는 경우 바인딩 식을 최신 상태로 유지할 수 있습니다. + + + + + + + 조건부 문에 따라 두 상태 사이를 전환합니다. + + + + + 동작이 AssociatedObject에 연결된 후 호출됩니다. + + 이 동작을 다시 정의하여 기능을 AssociatedObject에 연결합니다. + + + + Silverlight에는 FrameworkElement.IsLoaded와 같은 속성이 없기 때문에 이 속성을 대신하는 도우미 기능입니다. + + 관심 요소입니다. + 요소가 로드된 경우 true를 반환하고, 그렇지 않으면 false를 반환합니다. + + + + 데이터 개체의 속성 값을 생성하는 바인딩을 가져오거나 설정합니다. 이것은 종속성 속성입니다. + + + + + 데이터 개체의 속성 값과 비교할 값을 가져오거나 설정합니다. 이것은 종속성 속성입니다. + + + + + 조건이 충족될 경우 전환되는 시각적 상태 이름을 가져오거나 설정합니다. 이것은 종속성 속성입니다. + + + + + 조건이 충족되지 않을 경우 전환되는 시각적 상태 이름을 가져오거나 설정합니다. 이것은 종속성 속성입니다. + + + + + 데이터 저장소 속성에 바인딩되도록 설계된 트리거. 해당 속성이 변경될 때 발생합니다. + + + + + 바인딩된 데이터가 변경된 경우 작업을 수행하는 트리거를 나타냅니다. + + UA_REVIEW:chabiss + + + + 바인딩 속성이 변경될 때 호출됩니다. UA_REVIEW:chabiss + + 인수입니다. + + + + 트리거가 AssociatedObject에 연결된 후 호출됩니다. UA_REVIEW:chabiss + + + + + AssociatedObject에서 트리거가 분리될 때 호출되나 실제로 트리거가 발생하기 전에 호출됩니다. UA_REVIEW:chabiss + + + + + 트리거가 수신 대기하고, 변경될 때 트리거가 발생하는 바인딩 개체입니다. + + UA_REVIEW:chabiss + + + + 바인딩된 데이터가 지정된 조건을 충족할 경우 작업을 수행하는 트리거를 나타냅니다. + + + + + 바인딩 속성이 변경될 때 호출됩니다. UA_REVIEW:chabiss + + 인수입니다. + + + + 데이터 개체의 속성 값과 비교할 값을 가져오거나 설정합니다. 이것은 종속성 속성입니다. + + + + + 지정된 값 사이에서 수행할 비교 유형을 가져오거나 설정합니다. 이것은 종속성 속성입니다. + + + + + ExtendedVisualStateManager는 레이아웃 속성의 애니메이션을 부드럽게 할 수 있는 사용자 지정 VisualStateManager입니다. 이 사용자 지정 VisualStateManager로 상태는 Grid.Column과 같은 속성의 변경 내용을 포함하고 요소 높이를 자동 등으로 변경할 수 있습니다. 이러한 변경 내용은 해당 전환의 GeneratedDuration과 GeneratedEasingFunction을 사용하여 시간이 경과되면서 부드럽게 됩니다. 알고리즘에 대한 일반적인 설명은 아래 "VisualStateManager 다시 정의" 영역을 참조하십시오. + + + + + FluidLayout을 사용하거나 사용하지 않을 수 있는 VisualStateGroup입니다. + + + + + 런타임 시 사용자가 지정한 연결된 속성에 의해 표시에 그림자가 나타납니다. + + + + + VisualStateGroup은 연결된 속성에 이러한 원래 값의 목록을 보존합니다. + + + + + 모든 상태의 경우 레이아웃 특정 속성이 추출된 다음 해당 상태에 연결됩니다. 이러한 속성은 상태 자체에서는 제거됩니다. + + + + + 현재 상태를 기억하십시오. + + + + + 상태가 변경될 때 사용할 TransitionEffect입니다. + + + + + 상태 변경 중에 사용되는 TransitionEffectStoryboard입니다. + + + + + 상태 변경 중에 사용되는 캐시된 배경입니다. + + + + + 상태 변경 중에 사용되는 캐시된 배경입니다. + + + + + 상태 변경 중에 사용되는 캐시된 배경입니다. + + + + + 이는 현재 동작 중인 요소의 집합입니다. + + + + + 이는 전환에 애니메이션 효과를 주는 스토리보드입니다. + + + + + 이 목록은 레이아웃 속성을 모두 포함합니다. + + + + + 애니메이션을 중지하고 해당 애니메이션을 지원하기 위한 레이아웃 변경 내용을 바꿉니다. + + + + + VisualStateManager가 변경 내용에 애니메이션 효과를 주는 데 사용할 전환을 찾아 레이아웃 애니메이션을 지속 시간 및 감속/가속 설정과 일치시킬 수 있습니다. + + 전환이 발생하는 그룹. + 현재 상태. + 이동할 상태. + 전환 + + + + 스토리보드에서 해당 상태의 모든 레이아웃 관련 속성을 제거하고 이 속성을 연결된 속성에 캐시합니다. + + 이동할 상태. + 해당 상태의 레이아웃 속성을 포함하는 스토리보드. + + + + 대상 요소의 집합은 레이아웃 전환에서 이동했을 수 있는 모든 요소의 집합입니다. 이 집합은 다음에 대한 종결입니다. - 해당 상태에서 애니메이션 효과를 준 레이아웃 속성을 포함한 요소. - 집합의 요소 형제. - 집합의 요소 부모. + + 후속 코드는 레이아웃 변경 전과 후에 해당 사각형을 확인합니다. + + 레이아웃의 상태를 변경하는 컨트롤. + 레이아웃 변경 내용을 포함하는 스토리보드. + 되돌릴 수 있는 이전 상태 탐색의 모든 이전 값. + 진행 중인 상태 변경 전환이 있는 경우 현재 동작 중인 요소의 집합. + 레이아웃을 변경했을 수 있는 요소의 전체 집합. + + + + 대상 목록의 모든 요소에 대한 사각형의 집합을 가져옵니다. + + 고려할 요소의 집합. + 현재 동작 중인 요소의 집합. + 요소를 해당 사각형에 매핑하는 사전. + + + + 레이아웃 슬롯을 가져온 다음 사용 중인 슬롯 부분을 계산하여 요소의 레이아웃 사각형을 가져옵니다. + + 레이아웃 사각형을 검색하는 요소. + 해당 요소의 레이아웃 사각형. + + + + 상태 변경이 진행 중일 수 있고 현재 값이 가장 중요하기 때문에, 상태 변경 시 표시 유형 대신 요소의 불투명도를 가져옵니다. + + 상태가 변경 중인 컨트롤. + 레이아웃 속성이 있는 스토리보드. + 원래 값의 집합. + + + + + 레이아웃 스토리보드를 끝까지 진행하며, 타임라인을 표시하지 않고 렌더링을 실행하는 UpdateLayout을 호출할 수 있도록 SetValue를 사용하여 모든 속성을 설정합니다. 덮어쓰여진 모든 값은 OriginalValueRecords 컬렉션에 저장되므로 나중에 바꿀 수 있습니다. + + 상태가 변경 중인 컨트롤. + 레이아웃 속성을 보유하는 스토리보드. + 원래 값의 저장소. + + + + 레이아웃 애니메이션의 결과로 이동할 모든 요소를 가져와 형제 요소에 영향을 주지 않도록 캔버스 패널에서 줄 바꿈합니다. + + 이동되는 요소의 집합. + + + + 레이아웃 애니메이션의 결과로 이동 중이었던 모든 요소를 가져와 캔버스 패널에서 줄 바꿈하지 않습니다. + + 이동 중이었던 요소의 집합. + + + + 원본 요소에서 대상 요소로 레이아웃 속성을 복사하고, 원본에서 지웁니다. + + 레이아웃 속성의 원본. + 레이아웃 속성의 대상. + + + + 전환에 애니메이션 효과를 주는 데 사용될 실제 스토리보드를 만듭니다. 이전에 계산된 모든 결과를 사용합니다. + + 애니메이션 지속 시간. + 애니메이션에 사용될 감속/가속 기능. + 이동되는 요소의 집합. + 표시 속성이 변경 중인 요소의 이전 불투명도. + 스토리보드. + + + + OriginalValueRecord는 상태에서 변경된 속성의 원래 값을 기억합니다. + + + + + 열거된 이 형식은 FluidMoveBehavior가 연결된 요소 또는 해당 요소의 자식에 적용될지 여부를 나타냅니다. "Self"는 특수한 방식으로 작동해야 하는 단일 요소가 있을 때 유용하고, "Children"은 동일한 동작을 WrapPanel의 모든 자식 또는 ItemsControl의 ItemsHost 패널에 적용해야 할 때 유용합니다. + + + + + 이 열거된 유형은 요소가 스스로 확인되거나 DataContext에 의해 확인되는지 여부를 나타냅니다. DataContext 확인을 사용하면 하나의 데이터 기반 위치에서 다른 위치로 이동할 수 있습니다. + + + + + 동작 범위에 대한 종속성 속성입니다. 자세한 내용은 FluidMoveScope를 참조하십시오. + + + + + 동작의 활성 상태에 대한 종속성 속성입니다. + + + + + 요소를 고유 태그로 사용하거나 요소의 바인딩으로 사용할 수 있는 기능을 제공하는 종속성 속성입니다. + + + + + UsaBindingAsTag가 true일 경우 바인딩에 추가할 추가 경로에 대한 종속성 속성입니다. + + + + + 컨테이너 간의 요소 동작을 검색하기 위해 사용된 ID 태그입니다. + + + + + 동작이 이 요소에만 또는 요소의 모든 자식에(요소가 패널인 경우) 적용되는지 여부를 나타냅니다. + + + + + 동작이 현재 활성 상태인지 여부를 나타냅니다. + + + + + 요소를 고유한 태그로 사용할지 또는 요소의 바인딩을 태그로 사용할지 여부를 나타냅니다. + + + + + TagType을 지정한 경우 바인딩에 추가할 추가 경로입니다. + + + + + 태그가 지정된 항목에 관한 모든 관련 데이터를 저장하는 전용 구조입니다. + + + + + 요소(또는 요소의 집합)의 레이아웃 변경 내용을 확인하고 필요한 경우 요소를 새 위치로 부드럽게 이동하는 동작입니다. 이 동작은 요소의 크기나 표시 유형에 애니메이션 효과를 주지 않고 부모 컨테이너 내에서 해당 요소의 오프셋에만 애니메이션 효과를 줍니다. + + + + + 이동 지속 시간에 대한 종속성 속성입니다. + + + + + 개체를 로드하기 전에 사용할 태그 유형에 대한 종속성 속성입니다. + + + + + UsaBindingAsTag가 true일 경우 바인딩에 추가할 추가 경로에 대한 종속성 속성입니다. + + + + + 컨테이너 간의 요소 동작을 검색하기 위해 사용된 ID 태그입니다. + + + + + FloatAbove 플래그에 대한 종속성 속성입니다. + + + + + 이동의 가로 구성 요소에 사용할 EasingFunction에 대한 종속성 속성입니다. + + + + + 이동의 세로 구성 요소에 사용할 EasingFunction에 대한 종속성 속성입니다. + + + + + FloatAbove가 true 상태에서 컨테이너 간에 요소 이동 시 사용되는 팝업/표시기를 기억하십시오. + + + + + 팝업 부동 시 사용되는 불투명도 캐시입니다. + + + + + 애니메이션 변환을 표시합니다. + + + + + 이동 지속 시간입니다. + + + + + 이 항목에 대한 생성 점입니다. + + + + + TagType을 지정한 경우 바인딩에 추가할 추가 경로입니다. + + + + + 컨테이너를 변경할 때 팝업 또는 표시기에서 요소를 해당 컨테이너 위에 부동할 수 있는지 여부를 나타내는 플래그입니다. + + + + + 이동의 수평 구성 요소에 사용할 EasingFunction입니다. + + + + + 이동의 수직 구성 요소에 사용할 EasingFunction입니다. + + + + + 모든 UIElements를 표시기로 사용할 수 있게 해주는 단순한 도우미 클래스입니다. + + + + + 호출 시 FrameworkElement를 지정된 VisualState로 전환할 작업입니다. + + + TargetName 속성을 설정하면 이 작업은 대상 요소의 상태를 변경하려고 합니다. 그렇지 않으면 요소 트리를 살펴보고 상태를 정의하는 다른 대상을 찾습니다. 가능한 두 개의 공통된 항목이 ControlTemplate 및 UserControl입니다. + + + + + 대상이 변경될 때 호출됩니다. TargetName 속성을 설정하지 않으면 이 작업은 사용자 지정 동작을 갖습니다. + + + + 상태를 통해 적절한 FrameworkElement를 찾을 수 없습니다. + + + + 일부 기준이 충족되고 작업이 호출될 때 이 메서드가 호출됩니다. + + + 대상을 지정된 StateName으로 변경할 수 없습니다. + + + + 상태 간 전환에 VisualTransition을 사용할지 여부를 나타냅니다. + + + + + VisualState의 이름입니다. + + + + + 키보드 이벤트로 트리거되는 Trigger입니다. 대상 키 및 수정자가 검색될 때 발생됩니다. + + + + + 트리거를 발생시키기 위해 눌러야 하는 키입니다. + + + + + 트리거를 발생시키기 위해 활성 상태여야 하는 수정자입니다(기본값은 수정자를 누르지 않는 것임). + + + + + true인 경우 Trigger는 트리거 Source 개체만 수신 대기합니다. 즉, 요소가 트리거 발생에 중점을 두어야 한다는 의미합니다. false이면 Trigger는 루트에서 수신 대기하므로 처리되지 않은 모든 KeyDown/Up 메시지가 포착됩니다. + + + + + KeyDown 또는 KeyUp 이벤트 수신 대기 여부를 결정합니다. + + + + + 파일 또는 URI를 여는 프로세스를 시작할 작업입니다. 파일의 경우 이 작업은 지정된 파일 확장자의 기본 프로그램을 실행합니다. URI는 웹 브라우저에서 열립니다. + + + + + 일부 기준이 충족되고 작업이 호출될 때 이 메서드가 호출됩니다. + + + + + + 열 파일 또는 URI입니다. + + + + + 요소에서의 마우스 끌기 제스처에 대한 응답으로 연결된 요소의 위치를 변경합니다. + + + + + 루트 요소의 왼쪽을 기준으로 끌린 요소의 X 위치에 대한 종속성 속성입니다. + + + + + 루트 요소의 위쪽을 기준으로 끌린 요소의 Y 위치에 대한 종속성 속성입니다. + + + + + ConstrainToParentBounds 속성에 대한 종속성 속성입니다. true이면 끌린 요소는 부모 컨테이너의 경계 이내로 제한됩니다. + + + + + 연결된 요소의 위치를 지정된 좌표로 업데이트하려는 시도입니다. + + 루트 좌표에서 요소의 원하는 위치입니다. + + + + 상대적 위치 좌표 이동을 연결된 요소에 적용합니다. + + 루트 좌표에서 원하는 좌표 이동의 X 구성 요소입니다. + 루트 좌표에서 원하는 좌표 이동의 Y 구성 요소입니다. + + + + 지정된 좌표 이동을 연결된 요소의 RenderTransform에 적용합니다. + + 부모 좌표에서 좌표 이동의 X 구성 요소입니다. + 부모 좌표에서 좌표 이동의 Y 구성 요소입니다. + + + + 지정된 변형의 재귀적 깊은 복사를 수행합니다. + + 복제할 변형입니다. + 지정된 변형의 깊은 복사이거나, 지정된 변형이 null일 경우 null입니다. + 변형 유형을 인식할 수 없는 경우 발생합니다. + + + + 연결된 요소의 현재 렌더링 위치에 따라 X 및 Y 속성을 업데이트합니다. + + + + + 한 사각형이 다른 사각형에 포함되는지 확인합니다. + + 포함하는 사각형입니다. + 포함되는 사각형입니다. + rect1이 rect2를 포함하는 경우 True, 그렇지 않으면 False입니다. + + + + 벡터로 변형합니다. + + 변형입니다. + 벡터의 X 구성 요소입니다. + 벡터의 Y 구성 요소입니다. + 벡터로 변형을 통해 변형된 X 및 Y 값을 포함하는 점입니다. + + + + 변형 오프셋을 가져옵니다. + + 변형입니다. + 변형 오프셋입니다. + + + + 동작이 AssociatedObject에 연결된 후 호출됩니다. + + 이 동작을 다시 정의하여 기능을 AssociatedObject에 연결합니다. + + + + AssociatedObject에서 동작이 분리될 때 호출되나 실제로 동작이 발생하기 전에 호출됩니다. + + 이 동작을 다시 정의하여 AssociatedObject에서 기능을 분리합니다. + + + + 끌기 제스처가 시작될 때 발생합니다. + + + + + 끌기 제스처 업데이트가 처리될 때 발생합니다. + + + + + 끌기 제스처가 완료될 때 발생합니다. + + + + + 루트 요소의 왼쪽을 기준으로 끌린 요소의 X 위치를 가져오거나 설정합니다. 이것은 종속성 속성입니다. + + + + + 루트 요소의 위쪽을 기준으로 끌린 요소의 Y 위치를 가져오거나 설정합니다. 이것은 종속성 속성입니다. + + + + + 끌린 요소가 부모 컨테이너의 경계 이내로 제한되는지 여부를 나타내는 값을 가져오거나 설정합니다. 이것은 종속성 속성입니다. + + + 끌린 요소를 부모 경계로 제한해야 하면 True이고, 그렇지 않으면 False입니다. + + + + + 루트 좌표에서 연결된 요소의 화면 위치를 가져옵니다. + + 루트 좌표에서 연결된 요소의 화면 위치. + + + + 요소 좌표의 요소 경계를 가져옵니다. + + 요소 좌표의 요소 경계입니다. + + + + 연결된 개체의 부모 요소를 가져옵니다. + + 연결된 개체의 부모 요소입니다. + + + + 연결된 개체가 있는 장면의 루트 요소를 가져옵니다. + + 연결된 개체가 있는 장면의 루트 요소입니다. + + + + 연결된 요소의 RenderTransform을 가져오거나 설정합니다. + + + + + 완료 시 소리를 재생하는 작업입니다. + + + 이 작업은 중지하거나 제어할 필요가 없는 짧은 소리 효과와 함께 사용하기 위한 것입니다. 음악 플레이어 또는 게임을 만들려는 경우 요구 사항을 충족하지 못할 수 있습니다. + + + + + 클래스의 새 인스턴스를 초기화합니다. + + + + + Action이 호출될 때 이 메서드는 동적으로 만들어진 MediaElement를 사용자 지정하는 데 사용합니다. + + + 이 메서드는 PlaySoundAction을 확장하려는 Action 작성자에게 유용할 수 있습니다. MediaElement Balance 속성을 제어하려는 경우 PlaySoundAction에서 상속하고 이 메서드를 다시 정의할 수 있습니다. + + + + + + 일부 기준이 충족되고 작업이 호출되어야 할 때 이 메서드가 호출됩니다. + + + Action을 호출할 때마다 소리가 새로 재생됩니다. 구현이 변경될 수 있더라도, 호출자는 이 호출로 새 MediaElement가 만들어질 것으로 예상해야 합니다. 소리가 끝나거나 미디어가 재생되지 않으면 이 요소는 삭제됩니다. + + + + + + 소리 파일의 위치를 정의하는 URI입니다. 이것은 MediaElement의 원본 속성을 설정하는 데 사용됩니다. 이것은 종속성 속성입니다. + + + 소리는 MediaElement에서 지원하는 모든 파일 형식이 될 수 있습니다. 비디오의 경우에는 오디오 부분만 재생합니다. + + + + + 소리 볼륨을 제어합니다. 이것은 MediaElement의 Volume 속성을 설정하는 데 사용됩니다. 이것은 종속성 속성입니다. + + + + + 호출 시 트리에서 대상 요소를 제거하는 작업입니다. + + + 이 작업은 실패할 수 있습니다. 작업으로 공통 부모에서 요소를 제거하는 방법을 이해하지만 사용자 지정 컬렉션에서 또는 시각적 트리의 직접 조작으로 요소를 제거하는 방법은 아닙니다. + + + + + 데이터 저장소 개체에서 속성값을 변경하는 작업입니다. 이 클래스는 ChangePropertyAction과 동일합니다. 이 작업을 위한 데이터 저장소 선택기를 로드하는 것이 유일한 차이입니다. + + + + + 스토리보드를 대상으로 지정하는 기능을 제공하는 추상 클래스입니다. + + + Action 작성자에게 이 클래스는 스토리보드를 대상으로 지정하는 표준 방법을 제공합니다. 디자인 도구를 통해 이 작업에서 상속되는 클래스에 대한 특별한 편집 경험을 제공하도록 선택할 수 있므로 설계자 작업을 향상시킬 수 있습니다. + + + + + 스토리보드 속성이 변경될 때 이 메서드가 호출됩니다. + + + + + + 대상 스토리보드입니다. 이것은 종속성 속성입니다. + + + + + 호출 시 대상 스토리보드의 상태를 변경할 작업입니다. + + + + + 일부 기준이 충족되고 작업이 호출되어야 할 때 이 메서드가 호출됩니다. 이 메서드는 ControlStoryboardOption으로 정의된 방법으로 대상 스토리보드를 변경하려고 합니다. + + + + + + 스토리보드를 대상으로 지정하는 기능을 제공하는 추상 클래스입니다. + + + Trigger 작성자에게 이 클래스는 스토리보드를 대상으로 지정하는 표준 방법을 제공합니다. 디자인 도구를 통해 이 트리거에서 상속되는 클래스에 대한 특별한 편집 경험을 제공하도록 선택할 수 있므로 디자이너 경험을 향상시킬 수 있습니다. + + + + + 스토리보드 속성이 변경될 때 이 메서드가 호출됩니다. + + + + + 대상 스토리보드입니다. 이것은 종속성 속성입니다. + + + + + 스토리보드를 완료하기 위해 수신 대기하는 트리거입니다. + + + + + 클래스의 새 인스턴스를 초기화합니다. + + + + + 원본에서 발생하는 지정된 이벤트로 트리거되고 해당 이벤트 발생 시 잠시 후 발생되는 트리거입니다. + + + + + 클래스의 새 인스턴스를 초기화합니다. + + + + + 눈금 간 대기 시간(밀리초)을 가져오거나 설정합니다. 이것은 종속성 속성입니다. + + + + + 트리거가 완료되기 전에 발생될 총 눈금 수를 가져오거나 설정합니다. 이것은 종속성 속성입니다. + + + + + 0과 1 사이의 삽입된 값을 사용하여 비주얼 간에 전환되는 전환 효과 셰이더를 정의합니다. + + + + + 셰이더의 샘플러 속성으로 변환되는 브러시 값 속성입니다. 전환의 최종 상태에 있는 이미지를 나타냅니다. + + + + + 셰이더의 샘플러 속성으로 변환되는 브러시 값 속성입니다. 전환의 초기 상태에 있는 이미지를 나타냅니다. + + + + + Progress의 보조 저장소로 사용되는 종속성 속성입니다. 시작부터 끝까지 전환의 상태를 나타내는 데 사용되기도 합니다. 범위는 0과 1 사이입니다. + + + + + 해당하는 현재 값을 사용하여 의 수정 가능한 복제본(깊은 복사)을 만듭니다. + + + + + 변환 효과의 깊은 복사본을 만듭니다. Silverlight 에서 CloneCurrentValue를 구현합니다. + + 변환 효과의 현재 인스턴스 복제본입니다. + + + + 셰이더 변수를 기본값으로 업데이트합니다. + + + + + 셰이더 내 Input 변수를 가져오거나 설정합니다. + + + + + 셰이더 내 OldImage 변수를 가져오거나 설정합니다. + + + + + 셰이더 내 Progress 변수를 가져오거나 설정합니다. + + + + + 사용자가 연결된 개체를 변환, 확대/축소 및 회전시키는 일반 터치 제스처를 사용할 수 있도록 합니다. + + + + + 동작이 AssociatedObject에 연결된 후 호출됩니다. + + 이 동작을 다시 정의하여 기능을 AssociatedObject에 연결합니다. + + + + AssociatedObject에서 동작이 분리될 때 호출되나 실제로 동작이 발생하기 전에 호출됩니다. + + 이 동작을 다시 정의하여 AssociatedObject에서 기능을 분리합니다. + + + + 지원하는 확대/축소 및 변환 변형을 지정하는 값을 가져오거나 설정합니다. + + + + + 변환이 줄어드는 비율을 설명하는 숫자를 가져오거나 설정합니다. + + + + + 회전이 줄어드는 비율을 설명하는 숫자를 가져오거나 설정합니다. + + + + + 연결된 개체의 확대/축소 및 변환 위치가 상위 개체의 경계로 제한되는지 여부를 지정하는 값을 가져오거나 설정합니다 + + + + + 허용되는 최소 확대/축소 값을 나타내는 숫자를 가져오거나 설정합니다. + + + + + 허용되는 최대 확대/축소 값을 나타내는 숫자를 가져오거나 설정합니다. + + + + + 이 클래스는 VisualStateManager와 작업하기 위한 다양한 플랫폼과 상관없는 표준 작업을 제공합니다. + + + + + 두 상태 간의 컨트롤을 전환합니다. + + 상태 간에 전환되는 요소입니다. + 전환되는 상태입니다. + System.Windows.VisualTransition을 사용하여 상태 간에 전환할 경우 true, 그렇지 않으면 false입니다. + 컨트롤이 새로운 상태로 전환된 경우 true, 그렇지 않으면 false입니다. + 컨트롤이 null입니다. + stateName이 null입니다. + + + + 연결된 VisualStateManager.VisualStateGroups 속성의 값을 가져옵니다. + + 해당 VisualStateManager.VisualStateGroups를 가져올 요소입니다. + + + + + 시각적 상태를 포함하는 가장 가까운 부모를 찾습니다. + + 가장 가까운 안정된 컨트롤을 찾을 요소입니다. + true인 경우 가장 가까운 안정된 컨트롤이고, 그렇지 않으면 null입니다. + 부모에 시각적 상태가 포함된 경우 true이고, 그렇지 않으면 false입니다. + + + + 지역화된 문자열 등을 검색하기 위한 강력한 형식의 리소스 클래스입니다. + + + + + 이 클래스에 사용된 캐시된 ResourceManager 인스턴스를 반환합니다. + + + + + 이 강력한 형식의 리소스 클래스를 사용하여 모든 리소스를 검색할 경우 현재 스레드의 CurrentUICulture 속성을 다시 정의합니다. + + + + + [예상한 서명과 일치하는 '{1}' 형식의 개체에서 '{0}'(이)라는 메서드를 찾을 수 없습니다.]와 유사한 지역화된 문자열을 찾습니다. + + + + + ['{0}' 형식에 더하기 연산자가 둘 이상 있을 수 있습니다.]와 유사한 지역화된 문자열을 찾습니다. + + + + + [형식 '{0}' 대상에서 속성 변경을 애니메이션할 수 없습니다.]와 유사한 지역화된 문자열을 찾습니다. 속성 변경은 DependencyObject에서 파생된 형식에서만 애니메이션할 수 있습니다. + + + + + ["{1}" 형식에서 "{0}" 속성을 찾을 수 없습니다.]와 유사한 지역화된 문자열을 찾습니다. + + + + + [Duration 속성을 설정한 경우 Increment 속성을 Ture로 설정할 수 없습니다.]와 유사한 지역화된 문자열을 찾습니다. + + + + + [값을 읽을 수 없기 때문에 '{0}' 속성을 증가할 수 없습니다.]와 유사한 지역화된 문자열을 찾습니다. + + + + + ["{0}" 형식의 값을 "{2}" 형식의 "{1}" 속성에 할당할 수 없습니다. "{1}" 속성에는 "{2}" 형식의 값만 할당할 수 있습니다.]와 유사한 지역화된 문자열을 찾습니다. + + + + + ["{1}" 형식에 의해 정의된 "{0}" 속성이 Set 메서드를 노출하지 않으므로 해당 속성을 수정할 수 없습니다.]와 유사한 지역화된 문자열을 찾습니다. + + + + + ["{1}" 형식에서 "{0}" 상태를 찾을 수 없습니다.]와 유사한 지역화된 문자열을 찾습니다. 상태가 있고 이 컨텍스트에서 액세스할 수 있는지 확인하십시오. + + + + + [대상 {0}이(가) VisualStateGroups를 정의하지 않았습니다.]와 유사한 지역화된 문자열을 찾습니다. . + + + + + ["{0}" 형식의 LeftOperand를 "{1}" 연산자와 같이 사용할 수 없습니다.]와 유사한 지역화된 문자열을 찾습니다. + + + + + ["{1}" 형식의 LeftOperand 및 "{0}" 형식의 RightOperand를 "{2}" 연산자와 같이 사용할 수 없습니다.]와 유사한 지역화된 문자열을 찾습니다. + + + + + ["{0}" 형식의 RightOperand를 "{1}" 연산자와 같이 사용할 수 없습니다.]와 유사한 지역화된 문자열을 찾습니다. + + + + + [RemoveElementAction의 대상이 지원되지 않습니다.]와 유사한 지역화된 문자열을 찾습니다. + + + + diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/ko/Microsoft.Expression.Prototyping.Interactivity.resources.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/ko/Microsoft.Expression.Prototyping.Interactivity.resources.dll new file mode 100644 index 0000000..83810c6 Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/ko/Microsoft.Expression.Prototyping.Interactivity.resources.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/ko/System.Windows.Interactivity.resources.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/ko/System.Windows.Interactivity.resources.dll new file mode 100644 index 0000000..2fc1694 Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/ko/System.Windows.Interactivity.resources.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/ko/System.Windows.Interactivity.xml b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/ko/System.Windows.Interactivity.xml new file mode 100644 index 0000000..efd94cb --- /dev/null +++ b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/ko/System.Windows.Interactivity.xml @@ -0,0 +1,1046 @@ + + + + System.Windows.Interactivity + + + + + 공유된 AssociatedObject가 있는 IAttachedObject의 컬렉션을 나타내고 해당 AssociatedObject가 변경될 때 해당 컬렉션의 콘텐츠에 변경 알림을 제공합니다. + + + + + 다른 개체에 연결될 수 있는 개체의 인터페이스입니다. + + + + + 지정된 개체에 연결합니다. + + 연결할 개체입니다. + + + + 연결된 개체에서 이 인스턴스를 분리합니다. + + + + + 연결된 개체를 가져옵니다. + + 연결된 개체입니다. + 인스턴스가 연결된 개체를 나타냅니다. + + + + 클래스의 새 인스턴스를 초기화합니다. + + 이것은 이 어셈블리 외부에서 상속되어선 안 되므로 내부적으로 수행합니다. + + + + 컬렉션이 AssociatedObject에 연결된 후 즉시 호출됩니다. + + + + + AssociatedObject에서 컬렉션이 분리될 때 호출되나 실제로 컬렉션이 발생하기 전에 호출됩니다. + + + + + 새 항목이 컬렉션에 추가될 때 호출됩니다. + + 새 항목입니다. + + + + 컬렉션에서 항목이 제거될 때 호출됩니다. + + 제거된 항목입니다. + + + 컬렉션에 인스턴스를 두 번 이상 추가할 수 없습니다. + + + + 지정된 개체에 연결합니다. + + 연결할 개체입니다. + IAttachedObject가 다른 개체에 이미 연결되었습니다. + + + + 연결된 개체에서 이 인스턴스를 분리합니다. + + + + + 컬렉션을 호스트하는 개체입니다. + + + + + 연결된 개체를 가져옵니다. + + 연결된 개체입니다. + + + + 상태 정보와 0개 이상의 ICommands를 연결 가능한 개체에 캡슐화합니다. + + 를 연결할 수 있는 형식입니다. + + Behavior는 연결 가능한 상태 및 명령을 개체에 제공하기 위한 기본 클래스입니다. Behavior를 연결할 수 있는 형식은 일반 매개 변수로 제어할 수 있습니다. OnAttached() 및 OnDetaching() 메서드를 다시 정의하여 AssociatedObject에서 필수 처리기를 연결 및 분리합니다. + + + + + 상태 정보와 0개 이상의 ICommands를 연결 가능한 개체에 캡슐화합니다. + + 이것은 인프라 클래스입니다. Behavior작성자는 이 클래스 대신 Behavior<T>에서 파생되어야 합니다. + + + + 동작이 AssociatedObject에 연결된 후 호출됩니다. + + 이 동작을 다시 정의하여 기능을 AssociatedObject에 연결합니다. + + + + AssociatedObject에서 동작이 분리될 때 호출되나 실제로 동작이 발생하기 전에 호출됩니다. + + 이 동작을 다시 정의하여 AssociatedObject에서 기능을 분리합니다. + + + + 지정된 개체에 연결합니다. + + 연결할 개체입니다. + Behavior를 다른 요소에서 이미 호스트합니다. + dependencyObject가 Behavior 형식 제약 조건을 만족하지 않습니다. + + + + 연결된 개체에서 이 인스턴스를 분리합니다. + + + + + 이 동작을 연결할 수 있는 형식입니다. + + + + + 이 동작이 연결되는 개체를 가져옵니다. + + + + + 연결된 개체를 가져옵니다. + + 연결된 개체입니다. + + + + 클래스의 새 인스턴스를 초기화합니다. + + + + + 이 가 연결되는 개체를 가져옵니다. + + + + + 공유된 AssociatedObject가 있는 동작의 컬렉션을 나타내고 해당 AssociatedObject가 변경될 때 해당 컬렉션의 콘텐츠에 변경 알림을 제공합니다. + + + + + 클래스의 새 인스턴스를 초기화합니다. + + 이것은 이 어셈블리 외부에서 상속되어선 안 되므로 내부적으로 수행합니다. + + + + 컬렉션이 AssociatedObject에 연결된 후 즉시 호출됩니다. + + + + + AssociatedObject에서 컬렉션이 분리될 때 호출되나 실제로 컬렉션이 발생하기 전에 호출됩니다. + + + + + 새 항목이 컬렉션에 추가될 때 호출됩니다. + + 새 항목입니다. + + + + 컬렉션에서 항목이 제거될 때 호출됩니다. + + 제거된 항목입니다. + + + + BehaviorCollection의 새 인스턴스를 만듭니다. + + 새 인스턴스. + + + + 다시 사용 가능한 속성 값 편집기의 가능한 값을 열거합니다. + + + + + 지원되는 경우 요소 선택기를 사용하여 디자인 시 이 속성을 편집합니다. + + + + + 지원되는 경우 스토리보드 선택기를 사용하여 디자인 시 이 속성을 편집합니다. + + + + + 지원되는 경우 상태 선택기를 사용하여 디자인 시 이 속성을 편집합니다. + + + + + 지원되는 경우 요소 바인딩 선택기를 사용하여 디자인 시 이 속성을 편집합니다. + + + + + 지원되는 경우 속성 바인딩 선택기를 사용하여 디자인 시 이 속성을 편집합니다. + + + + + 지정된 편집기 형식을 CustomPropertyValueEditor가 적용되는 속성과 연결합니다. + + 이 특성을 사용하여 요소(이름별), 스토리보드 또는 상태(이름별)를 표시하는 속성에 대한 향상된 디자인 타임 편집 기능을 가져옵니다. + + + + 클래스의 새 인스턴스를 초기화합니다. + + 사용자 지정 속성 값 편집기입니다. + + + + 사용자 지정 속성 값 편집기를 가져오거나 설정합니다. + + 사용자 지정 속성 값 편집기입니다. + + + + 지정된 작업 또는 명령에 인스턴스화할 에 대한 디자인 도구 정보를 제공합니다. + + + + + 클래스의 새 인스턴스를 초기화합니다. + + 이 특성이 적용되는 형식입니다. + 인스턴스화할 의 형식입니다. + 지정된 에 대한 단일 인수입니다. + 는 TriggerBase에서 파생되지 않습니다. + 이 생성자는 지정된 에 단일 인수가 있을 경우 유용합니다. 결과 코드는 CLS 규격이 됩니다. + + + + 클래스의 새 인스턴스를 초기화합니다. + + 이 특성이 적용되는 형식입니다. + 인스턴스화할 의 형식입니다. + 지정된 에 대한 생성자 인수입니다. + 는 TriggerBase에서 파생되지 않습니다. + + + + 이 인스턴스를 인스턴스화합니다. + + DefaultTriggerAttribute로 지정된 입니다. + + + + 이 DefaultTriggerAttribute가 적용되는 형식을 가져옵니다. + + 이 DefaultTriggerAttribute가 적용되는 형식입니다. + + + + 인스턴스화할 의 형식을 가져옵니다. + + 인스턴스화할 의 형식입니다. + + + + 생성자로 전달할 매개 변수를 가져옵니다. + + 생성자로 전달할 매개 변수입니다. + + + + 시각적 트리를 처음으로 깊게 검색하고 개체 자체를 포함하여 지정된 개체의 모든 조상을 반환하기 위해 이 메서드에서는 VisualTreeHelper.GetParent 메서드를 사용합니다. + + 조상을 찾기 위한 시각적 트리의 개체입니다. + 시각적 트리의 모든 조상과 해당 개체를 반환합니다. + + + + EventObserver는 삭제 시 분리하여 이벤트 처리기를 관리할 수 있도록 설계되어 있습니다. 이 개체를 만들면 생성자에서도 연결됩니다. + + + + + EventObserver의 인스턴스를 만들고 제공된 대상의 제공된 이벤트에 연결합니다. 분리하려면 dispose를 호출하십시오. + + 연결 및 분리하는 이벤트입니다. + 이벤트가 정의되어 있는 대상 개체입니다. 메서드가 정적일 경우 null입니다. + 이벤트에 연결할 대리자입니다. + + + + 이벤트에서 처리기를 분리합니다. + + + + + 원본에서 지정된 이벤트를 수신 대기하고 해당 이벤트가 발생될 때 발생하는 트리거입니다. + + + + + AssociatedObject가 아닌 다른 요소를 수신 대기할 수 있는 트리거를 나타냅니다. + + 이 트리거를 연결할 수 있는 형식입니다. + + EventTriggerBase는 TriggerBase를 확장하여 연결된 개체가 아닌 다른 개체의 정보를 추가합니다. 이를 통해 사용자는 Trigger/Action 쌍을 한 요소에 연결하고 다른 곳에서 다른 개체가 변경될 때 그에 대한 응답으로 Action을 호출할 수 있습니다. 원본 요소의 처리기를 연결 또는 분리하려면 OnSourceChanged를 다시 정의하고 연결된 요소에 대해서는 OnAttached/OnDetaching을 다시 정의합니다. Source 요소의 형식은 일반 형식 매개 변수로 제한할 수 있습니다. AssociatedObject의 형식을 제어해야 하는 경우에는 파생된 형식에 TypeConstraintAttribute를 설정합니다. + + + + + AssociatedObject가 아닌 다른 개체를 수신 대기할 수 있는 트리거를 나타냅니다. + + 이것은 인프라 클래스입니다. Trigger 작성자는 이 클래스 대신 EventTriggerBase<T>에서 파생되어야 합니다. + + + + 조건에 따라 Action을 호출할 수 있는 개체를 나타냅니다. + + 이것은 인프라 클래스입니다. Trigger 작성자는 이 클래스 대신 Trigger<T>에서 파생되어야 합니다. + + + + 이 트리거와 연결된 모든 작업을 호출합니다. + + 파생된 클래스는 트리거를 발생시키려면 이 작업을 호출해야 합니다. + + + + 트리거가 AssociatedObject에 연결된 후 호출됩니다. + + + + + AssociatedObject에서 트리거가 분리될 때 호출되나 실제로 트리거가 발생하기 전에 호출됩니다. + + + + + TriggerBase 파생된 클래스의 새 인스턴스를 만듭니다. + + 새 인스턴스. + + + + 지정된 개체에 연결합니다. + + 연결할 개체입니다. + 동일한 트리거를 한 번에 두 개 이상의 개체에서 호스트할 수 없습니다. + dependencyObject가 트리거 형식 제약 조건을 만족하지 않습니다. + + + + 연결된 개체에서 이 인스턴스를 분리합니다. + + + + + 트리거가 연결되는 개체를 가져옵니다. + + 연결된 개체입니다. + + + + 연결된 개체의 형식 제약 조건을 가져옵니다. + + 연결된 개체 형식 제약 조건입니다. + + + + 이 트리거와 연결된 작업을 가져옵니다. + + 이 트리거와 연결된 작업입니다. + + + + PreviewInvoke에 등록하기 위한 이벤트 처리기. + + + + + 연결된 개체를 가져옵니다. + + 연결된 개체입니다. + + + + 이 EventTriggerBase가 수신 대기 중인 이벤트의 이름을 지정합니다. + + + + + + 이 EventTriggerBase와 연결된 이벤트가 발생될 때 호출됩니다. 기본적으로 이것은 트리거의 모든 작업을 호출합니다. + + 이벤트 데이터를 포함하는 인스턴스입니다. + 이 인스턴스를 다시 정의하여 이 트리거와 연결된 작업이 호출될 때 더 세부적으로 제어합니다. + + + + 원본이 변경될 때 호출됩니다. + + 이전 원본입니다. + 새 원본입니다. + 변경 중인 원본 개체에 기능을 연결하거나 반대로 기능을 분리하려면 파생된 클래스에서 이 기능을 다시 정의해야 합니다. + + + + 트리거가 AssociatedObject에 연결된 후 호출됩니다. + + + + + AssociatedObject에서 트리거가 분리될 때 호출되나 실제로 트리거가 발생하기 전에 호출됩니다. + + + + 대상에서 eventName을 찾을 수 없습니다. + + + + 연결된 개체의 형식 제약 조건을 가져옵니다. + + 연결된 개체 형식 제약 조건입니다. + 파생된 형식에 TypeConstraintAttribute를 정의하여 연결할 수 있는 형식을 제한합니다. + + + + 원본 형식 제약 조건을 가져옵니다. + + 원본 형식 제약 조건입니다. + + + + 대상 개체를 가져오거나 설정합니다. TargetObject가 설정되지 않은 경우 대상은 TargetName으로 지정된 개체를 찾습니다. TargetName으로 참조되는 요소를 찾을 수 없는 경우 대상은 AssociatedObject로 기본 설정됩니다. 이것은 종속성 속성입니다. + + 대상 개체입니다. + + + + 이 EventTriggerBase가 원본으로 수신 대기하는 요소의 이름을 가져오거나 설정합니다. 이름을 설정하지 않았거나 확인할 수 없으면 AssociatedObject가 사용됩니다. 이것은 종속성 속성입니다. + + 원본 요소의 이름입니다. + + + + 확인된 원본을 가져옵니다. 을 설정하지 않거나 확인할 수 없으면 AssociatedObject로 기본 설정됩니다. + + 확인된 원본 개체입니다. + 일반적으로 이 속성은 파생된 클래스에서 AssociatedObject 대신 사용되어야 합니다. + 에서 가리키는 요소가 형식 제약 조건을 만족하지 않습니다. + + + + 클래스의 새 인스턴스를 초기화합니다. + + + + + 원본 속성이 변경될 때 호출됩니다. + + 이 속성을 다시 정의하여 AssociatedObject가 아닌 지정된 원본에 기능을 연결하거나 반대로 기능을 분리합니다. + 이전 원본입니다. + 새 원본입니다. + + + + 확인된 원본을 가져옵니다. 을 설정하지 않거나 확인할 수 없으면 AssociatedObject로 기본 설정됩니다. + + 확인된 원본 개체입니다. + 일반적으로 이 속성은 파생된 클래스에서 AssociatedObject 대신 사용되어야 합니다. + + + + 클래스의 새 인스턴스를 초기화합니다. + + + + + 클래스의 새 인스턴스를 초기화합니다. + + 이벤트의 이름입니다. + + + + 수신 대기할 이벤트의 이름을 가져오거나 설정합니다. 이것은 종속성 속성입니다. + + 이벤트의 이름입니다. + + + + Trigger 및 Behavior 연결 속성을 소유하는 정적 클래스입니다. AssociatedObject 변경 알림의 전파를 처리합니다. + + + + + 이 속성은 공용 Trigger 연결 속성의 내부 보조 저장소로 사용됩니다. + + + 이 속성은 공개적으로 노출되지 않습니다. 이것은 클라이언트가 컬렉션에 액세스하도록 GetTriggers 및 SetTriggers 메서드를 강제로 사용하게 하여, 컬렉션을 사용하기 전에 컬렉션이 존재하고 설정되었음을 확인합니다. + + + + + 이 속성은 공용 Behavior 연결 속성의 내부 보조 저장소로 사용됩니다. + + + 이 속성은 공개적으로 노출되지 않습니다. 이것은 클라이언트가 컬렉션에 액세스하도록 GetBehaviors 및 SetBehaviors 메서드를 강제로 사용하게 하여, 컬렉션을 사용하기 전에 컬렉션이 존재하고 설정되었음을 확인합니다. + + + + + 지정된 개체와 연결된 트리거를 포함하는 TriggerCollection을 가져옵니다. + + 트리거를 검색할 개체입니다. + 지정된 개체와 연결된 트리거를 포함하는 TriggerCollection입니다. + + + + 지정된 개체와 연결된 을 가져옵니다. + + 을 검색할 개체입니다. + 지정된 개체와 연결된 동작을 포함하는 입니다. + + + 동일한 BehaviorCollection을 한 번에 두 개 이상의 개체에서 호스트할 수 없습니다. + + + 동일한 TriggerCollection을 한 번에 두 개 이상의 개체에서 호스트할 수 없습니다. + + + + Silverlight에는 FrameworkElement.IsLoaded와 같은 속성이 없기 때문에 이 속성을 대신하는 도우미 기능입니다. + + 관심 요소입니다. + 요소가 로드되었으면 True이고, 그렇지 않으면 False입니다. + + + + 디자인 모드에 있는 경우처럼 실행할 지 여부를 나타내는 값을 가져오거나 설정합니다. + + + [디자인 모드에서 실행해야] 하는 경우 True이고, 그렇지 않으면 False입니다. + + 단위 테스트 외부에서는 사용되지 않습니다. + + + + 호출될 때 지정된 ICommand를 실행합니다. + + + + + 기능 단위를 캡슐화하는 연결 가능 개체를 나타냅니다. + + 이 작업을 연결할 수 있는 형식입니다. + + + + 기능 단위를 캡슐화하는 연결 가능 개체를 나타냅니다. + + 이것은 인프라 클래스입니다. Action 작성자는 이 클래스 대신 TriggerAction<T>에서 파생되어야 합니다. + + + + 작업 호출을 시도합니다. + + 작업에 대한 매개 변수입니다. 작업에 매개 변수가 필요하지 않은 경우 매개 변수를 Null 참조로 설정할 수 있습니다. + + + + 작업을 호출합니다. + + 작업에 대한 매개 변수입니다. 작업에 매개 변수가 필요하지 않은 경우 매개 변수를 Null 참조로 설정할 수 있습니다. + + + + 작업이 AssociatedObject에 연결된 후 호출됩니다. + + + + + AssociatedObject에서 작업이 분리될 때 호출되나 실제로 작업이 발생하기 전에 호출됩니다. + + + + + 파생된 클래스에 구현되었을 때 파생된 클래스의 새 인스턴스를 만듭니다. + + 새 인스턴스. + + + + 지정된 개체에 연결합니다. + + 연결할 개체입니다. + 동일한 TriggerAction을 한 번에 두 개 이상의 개체에서 호스트할 수 없습니다. + dependencyObject가 TriggerAction 형식 제약 조건을 만족하지 않습니다. + + + + 연결된 개체에서 이 인스턴스를 분리합니다. + + + + + 호출 시 이 작업을 실행할지 여부를 나타내는 값을 가져오거나 설정합니다. 이것은 종속성 속성입니다. + + + 호출 시 이 작업이 실행될 경우 True이고, 그렇지 않으면 False입니다. + + + + + 이 작업이 연결되는 개체를 가져옵니다. + + 연결된 개체입니다. + + + + 연결된 개체 형식 제약 조건을 가져옵니다. + + 연결된 개체 형식 제약 조건입니다. + + + + 이 인스턴스의 연결 여부를 나타내는 값을 가져오거나 설정합니다. + + 이 인스턴스가 연결되었으면 True이고, 그렇지 않으면 False입니다. + + + + 연결된 개체를 가져옵니다. + + 연결된 개체입니다. + + + + 클래스의 새 인스턴스를 초기화합니다. + + + + + 이 가 연결되는 개체를 가져옵니다. + + 연결된 개체입니다. + + + + 연결된 개체 형식 제약 조건을 가져옵니다. + + 연결된 개체 형식 제약 조건입니다. + + + + 작업을 호출합니다. + + 작업에 대한 매개 변수입니다. 작업에 매개 변수가 필요하지 않은 경우 매개 변수를 Null 참조로 설정할 수 있습니다. + + + + 이 작업이 호출해야 하는 명령의 이름을 가져오거나 설정합니다. + + 이 작업이 호출해야 하는 명령의 이름입니다. + 이 속성과 Command 속성이 모두 설정된 경우 Command 속성이 이 속성을 대신합니다. + + + + 이 작업이 호출해야 할 명령을 가져오거나 설정합니다. 이것은 종속성 속성입니다. + + 실행할 명령입니다. + 이 속성과 CommandName 속성이 모두 설정된 경우 이 속성이 CommandName 속성보다 우선합니다. + + + + 명령 매개 변수를 가져오거나 설정합니다. 이것은 종속성 속성입니다. + + 명령 매개 변수입니다. + 이것은 ICommand.CanExecute 및 ICommand.Execute로 전달된 값입니다. + + + + 이름 변경을 확인할 때 영향을 받은 개체에 대한 데이터를 제공합니다. + + + + + TargetName을 호스트 요소에 의해 제공된 컨텍스트에 따라 대상 요소로 확인하는 논리를 처리하는 도우미 클래스입니다. + + + + + namescope 참조 요소의 컨텍스트 내 이름에서 확인된 개체를 업데이트하려고 시도합니다. + + 이전의 확인된 개체입니다. + + 기존 대상을 다시 설정하고 현재 호스트 컨텍스트에서 현재 TargetName을 확인하려고 합니다. 호스트의 컨텍스트에서 요소를 확인할 수 없으면 확인될 때까지 가시적 트리를 계속 탐색합니다. 루트에 도달할 때까지 확인하지 못했으면 대상을 Null로 설정하고 디버그 출력에 경고 메시지를 작성합니다. + + + + + 확인된 요소가 변경되었을 때 발생합니다. + + + + + 확인하려는 요소의 이름을 가져오거나 설정합니다. + + 확인하려는 이름입니다. + + + + 확인된 개체입니다. TargetName이 Null이거나 비어 있거나, 확인을 시도되지 않은 경우 참조 요소를 반환합니다. + + + + + 이름 확인을 수행할 참조 요소를 가져오거나 설정합니다. + + 참조 요소입니다. + + + + 참조 요소 로드가 보류 중인지 여부를 나타내는 값을 가져오거나 설정합니다. + + + [참조 요소 로드를 보류 중]인 경우 True이고, 그렇지 않으면 False입니다. + + + 호스트가 로드되지 않은 경우 이름은 확인되지 않습니다. 이 경우에는 확인을 지연하고 이 속성으로 해당 사실을 추적합니다. + + + + + AssociatedObject가 아닌 다른 개체에 영향을 주기 위해 대상으로 지정할 수 있는 작업을 나타냅니다. + + 대상의 형식 제약 조건입니다. + + TargetedTriggerAction은 TriggerAction을 확장하여 연결된 요소가 아닌 다른 요소의 정보를 추가합니다. 따라서 사용자는 트리거 발생에 대한 응답으로 연결된 요소가 아닌 다른 요소에서 작업을 호출할 수 있습니다. OnTargetChanged를 다시 정의하여 대상 요소의 처리기를 연결 또는 분리하고 연결된 요소에 대해서는 OnAttached/OnDetaching을 다시 정의합니다. 대상 요소의 형식은 일반 형식 매개 변수로 제한할 수 있습니다. AssociatedObject의 형식을 제어해야 하는 경우에는 파생된 형식에 TypeConstraintAttribute를 설정합니다. + + + + + AssociatedObject가 아닌 다른 개체에 영향을 주기 위해 대상으로 지정할 수 있는 작업을 나타냅니다. + + 이것은 인프라 클래스입니다. Action 작성자는 이 클래스 대신 TargetedTriggerAction<T>에서 파생되어야 합니다. + + + + 대상이 변경될 때 호출됩니다. + + 이전 대상입니다. + 새 대상입니다. + 변경 중인 원본 개체에 기능을 연결하거나 반대로 기능을 분리하려면 파생된 클래스에서 이 기능을 다시 정의해야 합니다. + + + + 작업이 AssociatedObject에 연결된 후 호출됩니다. + + + + + AssociatedObject에서 작업이 분리될 때 호출되나 실제로 작업이 발생하기 전에 호출됩니다. + + + + + 대상 개체를 가져오거나 설정합니다. TargetObject가 설정되지 않은 경우 대상은 TargetName으로 지정된 개체를 찾습니다. TargetName으로 참조되는 요소를 찾을 수 없는 경우 대상은 AssociatedObject로 기본 설정됩니다. 이것은 종속성 속성입니다. + + 대상 개체입니다. + + + + 이 작업이 대상으로 지정하는 개체의 이름을 가져오거나 설정합니다. Target이 설정되어 있으면 이 속성은 무시됩니다. Target이 설정되어 있지 않고 TargetName을 설정하지 않았거나 확인할 수 없으면 대상이 AssociatedObject로 기본 설정됩니다. 이것은 종속성 속성입니다. + + 대상 개체의 이름입니다. + + + + 대상 개체를 가져옵니다. TargetObject를 설정한 경우 TargetObject를 반환합니다. 그렇지 않으면 TargetName을 설정하지 않거나 확인할 수 없는 경우 AssociatedObject로 기본 설정됩니다. + + 대상 개체입니다. + 일반적으로 이 속성은 파생된 클래스에서 AssociatedObject 대신 사용되어야 합니다. + 대상 요소가 형식 제약 조건을 만족하지 않습니다. + + + + 연결된 개체 형식 제약 조건을 가져옵니다. + + 연결된 개체 형식 제약 조건입니다. + 파생된 형식에 TypeConstraintAttribute를 정의하여 연결할 수 있는 형식을 제한합니다. + + + + 대상 형식 제약 조건을 가져옵니다. + + 대상 형식 제약 조건입니다. + + + + 클래스의 새 인스턴스를 초기화합니다. + + + + + 대상 속성이 변경될 때 호출됩니다. + + 이 속성을 다시 정의하여 AssociatedObject가 아닌 지정된 대상에 기능을 연결하거나 반대로 기능을 분리합니다. + 이전 대상입니다. + 새 대상입니다. + + + + 대상 개체를 가져옵니다. 그렇지 않으면 TargetName을 설정하지 않거나 확인할 수 없는 경우 AssociatedObject로 기본 설정됩니다. + + 대상입니다. + 일반적으로 이 속성은 파생된 클래스에서 AssociatedObject 대신 사용되어야 합니다. + + + + 공유된 AssociatedObject가 있는 작업의 컬렉션을 나타내고 해당 AssociatedObject가 변경될 때 해당 컬렉션의 콘텐츠에 변경 알림을 제공합니다. + + + + + 클래스의 새 인스턴스를 초기화합니다. + + 이것은 이 어셈블리 외부에서 상속되어선 안 되므로 내부적으로 수행합니다. + + + + 컬렉션이 AssociatedObject에 연결된 후 즉시 호출됩니다. + + + + + AssociatedObject에서 컬렉션이 분리될 때 호출되나 실제로 컬렉션이 발생하기 전에 호출됩니다. + + + + + 새 항목이 컬렉션에 추가될 때 호출됩니다. + + 새 항목입니다. + + + + 컬렉션에서 항목이 제거될 때 호출됩니다. + + 제거된 항목입니다. + + + + TriggerActionCollection의 새 인스턴스를 만듭니다. + + 새 인스턴스. + + + + 조건에 따라 작업을 호출할 수 있는 개체를 나타냅니다. + + 이 트리거를 연결할 수 있는 형식입니다. + + TriggerBase는 작업을 제어하기 위한 기본 클래스입니다. OnAttached() 및 OnDetaching()을 다시 정의하여 AssociatedObject에서 처리기를 연결 및 분리합니다. 일반 매개 변수를 지정하여 파생된 TriggerBase를 연결할 수 있는 형식을 제한할 수 있습니다. InvokeActions()을 호출하여 이 TriggerBase와 연결된 모든 Action을 발생시킵니다. + + + + + 클래스의 새 인스턴스를 초기화합니다. + + + + + 트리거가 연결되는 개체를 가져옵니다. + + 연결된 개체입니다. + + + + 연결된 개체의 형식 제약 조건을 가져옵니다. + + 연결된 개체 형식 제약 조건입니다. + + + + PreviewInvoke 이벤트에 전달할 인수입니다. Cancelling을 true로 지정하면 트리거의 호출이 취소됩니다. + + 이것은 인프라 클래스입니다. 트리거 기본 개체에 연결된 동작이 자신의 동작을 리스너로 TriggerBase.PreviewInvoke에 추가할 수 있습니다. + + + + 공유된 AssociatedObject가 있는 트리거의 컬렉션을 나타내고 해당 AssociatedObject가 변경될 때 해당 컬렉션의 콘텐츠에 변경 알림을 제공합니다. + + + + + 클래스의 새 인스턴스를 초기화합니다. + + 이것은 이 어셈블리 외부에서 상속되어선 안 되므로 내부적으로 수행합니다. + + + + 컬렉션이 AssociatedObject에 연결된 후 즉시 호출됩니다. + + + + + AssociatedObject에서 컬렉션이 분리될 때 호출되나 실제로 컬렉션이 발생하기 전에 호출됩니다. + + + + + 새 항목이 컬렉션에 추가될 때 호출됩니다. + + 새 항목입니다. + + + + 컬렉션에서 항목이 제거될 때 호출됩니다. + + 제거된 항목입니다. + + + + 의 새 인스턴스를 만듭니다. + + 새 인스턴스. + + + + TargetedTriggerAction 및 EventTriggerBase의 AssociatedObject에 형식 제약 조건을 지정합니다. + + + + + 클래스의 새 인스턴스를 초기화합니다. + + 제약 조건 형식입니다. + + + + 제약 조건 형식을 가져옵니다. + + 제약 조건 형식입니다. + + + + 지역화된 문자열 등을 검색하기 위한 강력한 형식의 리소스 클래스입니다. + + + + + 이 클래스에 사용된 캐시된 ResourceManager 인스턴스를 반환합니다. + + + + + 이 강력한 형식의 리소스 클래스를 사용하여 모든 리소스를 검색할 경우 현재 스레드의 CurrentUICulture 속성을 다시 정의합니다. + + + + + [여러 개체에 동일한 BehaviorCollection을 설정할 수 없습니다.]와 유사한 지역화된 문자열을 찾습니다. + + + + + [한 번에 둘 이상의 개체에 동작 인스턴스를 연결할 수 없습니다]와 유사한 지역화된 문자열을 찾습니다. + + + + + [TriggerAction 인스턴스를 여러 TriggerCollections에서 동시에 호스팅할 수 없습니다. 다른 TriggerCollection에 추가하기 전에 한 TriggerCollection에서 TriggerAction 인스턴스를 제거하십시오.]와 유사한 지역화된 문자열을 찾습니다. + + + + + [여러 개체에 동일한 TriggerCollection을 설정할 수 없습니다.]와 유사한 지역화된 문자열을 찾습니다. + + + + + [한 번에 둘 이상의 개체에 트리거 인스턴스를 연결할 수 없습니다.]와 유사한 지역화된 문자열을 찾습니다. + + + + + ["{0}" 명령이 없거나 {1}에 공개적으로 노출되어 있지 않습니다.]와 유사한 지역화된 문자열을 찾습니다. + + + + + ["{0}"은(는) TriggerType 매개 변수에 유효한 형식이 아닙니다. "{0}"이(가) TriggerBase에서 파생되었는지 확인하십시오.]와 유사한 지역화된 문자열을 찾습니다. + + + + + [동일한 "{0}" 인스턴스를 "{1}"에 두 번 이상 추가할 수 없습니다.]와 유사한 지역화된 문자열을 찾습니다. + + + + + ["{1}" 형식의 "{0}" 이벤트에 호환되지 않는 서명이 있습니다.]와 유사한 지역화된 문자열을 찾습니다. 이벤트가 공용이고 EventHandler 대리자를 충족하는지 확인합니다. + + + + + ["{1}" 형식에서 "{0}" 이벤트를 찾을 수 없습니다.]와 유사한 지역화된 문자열을 찾습니다. + + + + + ["{0}" 형식의 개체에는 "{1}" 형식의 {3} 속성이 있을 수 없습니다. "{0}" 형식의 인스턴스에는 "{2}" 형식의 {3} 속성만 있을 수 있습니다.]와 유사한 지역화된 문자열을 찾습니다. + + + + + ["{0}" 형식을 "{1}" 형식에 연결할 수 없습니다. "{0}" 형식의 인스턴스는 "{2}" 형식의 개체에만 연결할 수 있습니다.]와 유사한 지역화된 문자열을 찾습니다. + + + + + [TargetName "{0}"을(를) 확인할 수 없습니다.]와 유사한 지역화된 문자열을 찾습니다. + + + + diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/zh-Hans/Microsoft.Expression.Controls.xml b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/zh-Hans/Microsoft.Expression.Controls.xml new file mode 100644 index 0000000..b24950a --- /dev/null +++ b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/zh-Hans/Microsoft.Expression.Controls.xml @@ -0,0 +1,538 @@ + + + + Microsoft.Expression.Controls + + + + +在折线循环之前调用。 + + + + +计算将 LayoutPath.Capacity 设置为“自动”时使用的值。 + + + + +检查折线是否应该继续循环。 + + + + +在伸展新折线之前调用。 + + + + +在折线完成时调用。 + +折线中的剩余弧长。 + + + +在步骤成功完成时调用。 + +实际的步骤距离。在环绕到另一个折线的情况下这可能与步骤不同。 + + + +沿给定的布局路径分布路径面板的子项。 + +路径面板。 +pathPanel.LayoutPaths 中路径的索引。 +要在此路径上布置的第一个子项的索引。 +要分布的下一个子项的索引。如果返回 childIndex,则该函数未执行任何操作。 + + + +要排列的下一个子项的索引。 + + + + +将用于布局的弧长距离。 + + + + +要沿当前折线行走的弧长距离。 + + + + +要在 LayoutPath 上排列的元素的总数。 + + + + +沿布局路径分布路径面板的子项。平均分布是指路径上所有元素的中心之间的弧长相等。 + + + + +指定已更改的路径布局属性。 + + + + +提供 事件的数据。 + + + + +初始化 类的新实例。 + +事件的数据。 + + + +获取在 事件中更改的属性。 + + + + +封装更新 所需的数据。 + + + + +获取或设置元素排列所在路径的索引。 + + + + +获取或设置元素集合中的元素的索引。 + + + + +获取或设置路径上的元素的索引。 + + + + +获取或设置与路径集合总长度成比例的元素偏移。 + + + + +获取或设置与路径长度成比例的元素偏移。 + + + + +获取或设置垂直于元素位置处的路径的角度。 + + + + +获取或设置垂直于元素位置处的路径的角度(如果该元素面向路径)。 + + + + +获取或设置是否在路径上排列元素。 + + + + +表示由 排列的元素。 + + +如果实现此接口,则允许 在排列元素时设置这些属性。此接口并不用于常规实现。 + + + + +根据给定的 更新 属性,并引发 事件。 + + 进行更新所需的数据。 + + + +在一个或多个 属性更改时发生。 + + +每当更新路径上的项目位置时都会引发此事件。由于 上的属性发生更改或 发生更改,可能会发生此现象。 + + + + +获取项目排列所在路径的索引。 + + + + +获取项目集合中的项目的索引。 + + + + +获取项目排列所在路径上的项目的索引。 + + + + +获取与路径集合总长度成比例的项目偏移。 + + + + +获取与项目排列所在路径的长度成比例的项目偏移。 + + + + +获取垂直于项目位置处的路径的角度。 + + + + +获取垂直于项目位置处的路径的角度(如果该项目面向路径)。 + + + + +获取或设置是否在路径上排列项目。 + + + + +将表示是否排列元素的 转换为用于缩放元素的 值。 + + + + +在所有情况下引发 异常。 + +要传递给源的目标数据。 +源对象所需的数据的 。 +要在转换器逻辑中使用的可选参数。 +转换的区域性。 +要传递给源对象的值。 + + + +将指定的 转换成 。 + +要传递给目标的源数据。 +目标依赖属性所需的数据的 。 +要在转换器逻辑中使用的可选参数。 +转换的区域性。 +如果 为 true,则返回 1。否则,返回 0。 + + + +指定 的分布。 + + + + +指定 上的元素的方向。 + + + + +指定用于修改开放路径上的 的方法。 + + + + +描述元素排列所遵循的路径。 + + + + +理论上,我们希望在平展之前先缓存贝塞尔曲线,因为转换将影响平展。这要求缓存未很好支持的曲线。取而代之,我们可以缓存分布策略中的平展点并根据需要转换它们。 + + + + +获取或设置定义路径的元素。 + + + + +获取或设置是均衡地对项目进行布置,还是按固定填充边距对它们进行布置。 + + + + +获取或设置显示在 上的项目的最大数量。 + + + + +获取或设置两个项目之间的 弧长像素距离。 + + + + +获取或设置项目的方向。 + + + 支持此属性,但 不支持。 + + + + +获取或设置到 的起点的距离以放置第一个项目。 + + + + +获取或设置参与布局的 的百分比。 + + + + +获取或设置用于修改开放路径上的 的方法。 + + + + +获取计算所得的容量。 + + + + +获取 在上下文中是否有效。 在以下情况下无效:它是所用于的 的后代。 + + + + +根据子项大小以及子项之间的给定填充边距分布布局路径的子项。子项之间的弧长距离由填充边距以及子项范围框的半径总和来决定。 + + + + +包含沿一条或多条路径布置的项目的列表。 + + + + +初始化 类的新实例。 + + + + +创建用于显示指定项目的元素。 + +与指定项目相对应的 + + + +确定指定的项目是否为(或者是否适合作为)其自己的项目容器。 + +如果该项目是其自己的项目容器,则为 true;否则为 false。 +指定的项目。 + + + +定位子元素。 + +此对象排列其子元素所应使用的大小。 +使用的实际大小。 + + + +获取或设置定义用于布局的路径的对象的集合。 + + + + +获取或设置要在项目列表中使用的索引。 + + + + +获取或设置在 StartItemIndex 大于 0 时项目索引是否会环绕到集合的开始位置。 + + + + +表示 中的项目。 + + + + +初始化 类的新实例。 + + + + +有关此成员的说明,请参阅 。 + + + + +有关此成员的说明,请参阅 。 + + + + +有关此成员的说明,请参阅 。 + + + + +有关此成员的说明,请参阅 。 + + + + +有关此成员的说明,请参阅 。 + + + + +有关此成员的说明,请参阅 。 + + + + +有关此成员的说明,请参阅 。 + + + + +有关此成员的说明,请参阅 。 + + + + +有关此成员的说明,请参阅 。 + + + + +有关此成员的说明,请参阅 。 + + + + +沿一条或多条路径排列子元素。 + + +如果不一定要进行选择,则可以使用 来代替 不支持 属性。 + + + + +初始化 类的新实例。 + + + + +测量子元素所需的大小。 + +此元素可赋予子元素的可用大小。 +此元素根据其子元素大小计算确定的在布局过程中所需的大小。 + + + +定位子元素。 + +此对象排列其子元素所应使用的大小。 +使用的实际大小。 + + + +在 LayoutPath 上的特定位置排列给定索引处的子项。 + +范围为 0 到 PathPanel.Count 的索引。 +子项排列所在布局路径的索引。 +布局路径中的折线。 +折线上的位置。 +LayoutPath 上的子项的索引。 + + + +计算给定索引处的子项的范围圆半径。 + +范围为 0 到 PathPanel.Count 的索引。 + + + +获取或设置定义用于布局的路径的对象的集合。 + + + + +获取或设置要在项目列表中使用的索引。 + + + + +获取或设置在 大于 0 时项目索引是否会环绕到集合的开始位置。 + + + + +连接且不折叠的 LayoutPaths 的子集。 + + + + +计数是 PathPanel 将布置的子项的数目。如果 StartItemIndex > 0 并且 WrapItems 为 false,则这可能小于 PathPanel.Children.Count + + + + +获取包含 ItemsControl 的容器的面板。 + +ItemsControl。 + +包含 ItemsControl 的容器的面板,如果找不到该面板,则为 null。 + + + 为空。 + + + + +通过接受初始值以及用于检索节点的子节点的函数来遍历树。 + +流的类型。 +初始节点。 +一个检索节点的子节点的函数。 +一个谓词,用于计算节点并返回一个指明是否应该遍历该节点及其子项的值。 +节点的流。 + + + +获取元素的可视化树子项。 + +该元素。 +元素的可视化树子项。 + + 为空。 + + + + +获取元素的可视化树子项和元素本身。 + +该元素。 + +元素的可视化树子项和元素本身。 + + + + +使用广度优先搜索来检索框架元素的所有逻辑子项。为了提高性能,此方法会手动管理堆栈,而不是使用递归。 + +父框架元素。 +框架元素的逻辑子项。 + + + +使用广度优先搜索来检索框架元素的所有逻辑后代。为了提高性能,此方法会手动管理堆栈,而不是使用递归。 + +父框架元素。 +框架元素的逻辑子项。 + + + diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/zh-Hans/Microsoft.Expression.Drawing.xml b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/zh-Hans/Microsoft.Expression.Drawing.xml new file mode 100644 index 0000000..0e413d3 --- /dev/null +++ b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/zh-Hans/Microsoft.Expression.Drawing.xml @@ -0,0 +1,1631 @@ + + + + Microsoft.Expression.Drawing + + + + +呈现一个标注形状,此标注形状支持与标注箭头相结合的多个形状。 + + + + +提供从 中派生并实现 的复合形状的基类。 + + + 实现 接口,并支持呈现与 相似的几何图形,但该几何图形可在布局边界外部呈现。 + +典型的实现在 generic.xaml 中具有一个自定义的默认模板,可将大多数形状属性以模板形式绑定到 。它还应该扩展 属性以自定义 的外观。 + +此类还支持与形状一起显示内容。 + + + + +提供一个接口以描述 Shape 的参数。 + + +此接口是用于 Shape 和 GeometrySource 之间的通信的数据。通常,IShape 的具体实现将实现此接口,并将其传递到 GeometrySource.UpdateGeometry() 中,然后后者会将形状用作只读数据提供程序。 + + + + +提供定义 Shape 所需的接口。虽然原始形状和复合形状可能派生自不同类型的 FrameworkElement,但它们都需要与此接口匹配。 + + + + +使 的几何图形无效。在失效之后, 将重新计算该几何图形,这将以异步方式发生。 + + + +获取或设置指定如何绘制形状内部的 +一个描述如何绘制形状内部的 。默认值为 null。 + + +获取或设置指定如何绘制 轮廓的 +一个指定如何绘制 轮廓的 + + +获取或设置 笔划轮廓的宽度。 + 轮廓的宽度(以像素为单位)。 + + +获取或设置一个描述形状如何填充其分配空间的 枚举值。 + 枚举值之一。运行时的默认值取决于 的类型。 + + + +获取呈现引擎提供的已呈现几何图形。 + + + + +获取逻辑边界与实际几何图形边界之间的边距。这可能是正数(如在 中),也可能是负数(如在 中)。 + + + + +在 RenderedGeometry 更改时发生。 + + + + +通过创建几何图形源来扩展形状的绘制方式。 + + + + +使 的几何图形无效。在失效之后, 将重新计算该几何图形,这将以异步方式发生。 + + + +提供 Silverlight 布局传递的“排列”部分的行为。类可以替代此方法以定义其自己的“排列”传递行为。 +在布局中排列该元素后使用的实际大小。 +此对象排列自己及其子项所应使用的父项中的最终区域。 + 将在 Geometry 失效后重新计算它,并更新 RenderedGeometry 和 GeometryMargin。 + + + +将字符串内容转换为 ,并支持居中对齐和多行。 + + +使用到 (而不是 )的模板绑定来启用此方法。 + + + + +获取或设置指定如何绘制形状内部的 。 + +一个描述如何绘制形状内部的 + + +获取或设置指定如何绘制 轮廓的 +一个指定如何绘制 轮廓的 + + +获取或设置 笔划轮廓的宽度。 + 轮廓的宽度(以像素为单位)。 + + +获取或设置一个描述形状如何填充其分配空间的 枚举值。 + 枚举值之一。 + + +获取或设置一个 枚举值,该枚举值描述 起点处的 +指定 起点处的形状的 枚举的值。 + + +获取或设置一个 枚举值,该枚举值描述线结尾处的 + 的枚举值之一。 + + +获取或设置一个 枚举值,该值指定在 的顶点处使用的联接的类型。 +指定联接外观的 枚举的值。 + + +获取或设置对斜接长度与 元素的 一半之比的限制。 +对斜接长度与 元素的 之比的限制。此值始终是大于或等于 1 的正数。 + + +获取或设置 值的集合,这些值指示用于绘制形状轮廓的虚线和间隙的图案。 + 值的集合,这些值指定虚线和间隙的图案。 + + +获取或设置一个 枚举值,该值指定如何绘制虚线端点。 + 的枚举值之一。默认值为 + + +获取或设置一个指定虚线在虚线图案中开始的距离的 +一个表示虚线在虚线图案中开始的距离的 。默认值为 0。 + + + +获取呈现引擎提供的已呈现几何图形。 + + + + +获取逻辑边界与实际几何图形边界之间的边距。这可能是正数(如在 中),也可能是负数(如在 中)。 + + + + +获取或设置将字符串转换成居中对齐的多行 TextBlock 的内部内容。 + + + + +在 RenderedGeometry 更改时发生。 + + + + +获取或设置相对于左上角的标注位置。 + + + + +获取或设置标注样式。 + + + + +提供从 中派生并实现 的复合形状的基类。 + + + 实现 接口,并支持呈现与 相似的几何图形,但该几何图形可在布局边界外部呈现。 + +典型的实现在 generic.xaml 中具有一个自定义的默认模板,可将大多数形状属性以模板形式绑定到 。它还应该扩展 属性以自定义 的外观。 + + + + +通过创建几何图形源来扩展形状的绘制方式。 + + + + +使 的几何图形无效。在失效之后, 将重新计算该几何图形,这将以异步方式发生。 + + + +提供 Silverlight 布局传递的“排列”部分的行为。类可以替代此方法以定义其自己的“排列”传递行为。 +在布局中排列该元素后使用的实际大小。 +此对象排列自己及其子项所应使用的父项中的最终区域。 + 将在 Geometry 失效后重新计算它,并更新 RenderedGeometry 和 GeometryMargin。 + + + +获取或设置指定如何绘制形状内部的 。 + +一个描述如何绘制形状内部的 + + +获取或设置指定如何绘制 轮廓的 +一个指定如何绘制 轮廓的 + + +获取或设置 笔划轮廓的宽度。 + 轮廓的宽度(以像素为单位)。 + + +获取或设置一个描述形状如何填充其分配空间的 枚举值。 + 枚举值之一。 + + +获取或设置一个 枚举值,该枚举值描述 起点处的 +指定 起点处的形状的 枚举的值。 + + +获取或设置一个 枚举值,该枚举值描述线结尾处的 + 的枚举值之一。 + + +获取或设置一个 枚举值,该值指定在 的顶点处使用的联接的类型。 +指定联接外观的 枚举的值。 + + +获取或设置对斜接长度与 元素的 一半之比的限制。 +对斜接长度与 元素的 之比的限制。此值始终是大于或等于 1 的正数。 + + +获取或设置 值的集合,这些值指示用于绘制形状轮廓的虚线和间隙的图案。 + 值的集合,这些值指定虚线和间隙的图案。 + + +获取或设置一个 枚举值,该值指定如何绘制虚线端点。 + 的枚举值之一。默认值为 + + +获取或设置一个指定虚线在虚线图案中开始的距离的 +一个表示虚线在虚线图案中开始的距离的 。默认值为 0。 + + + +获取呈现引擎提供的已呈现几何图形。 + + + + +获取逻辑边界与实际几何图形边界之间的边距。这可能是正数(如在 中),也可能是负数(如在 中)。 + + + + +在 RenderedGeometry 更改时发生。 + + + + +呈现一个两端均带可选箭头的弯线段。 + + + +提供 Silverlight 布局的“度量值”传递的行为。类可以替代此方法以定义其自己的“度量值”传递行为。 +此对象根据其子对象分配大小的计算或者可能根据其他注意事项(如固定容器大小)确定的在布局过程中所需的大小。 +此对象可以赋予子对象的可用大小。可以将值指定为无穷大 (),以指明对象大小将调整为可用的任何内容的大小。 + +默认的 可以呈现为任意大小。 将拉伸到布局边界,如有必要,可呈现到外部。 + + + + +获取或设置箭头的弯曲量。 + +介于 0 到 1 之间的弯曲量。 + + + +获取或设置如何在线的起点呈现箭头。 + + + + +获取或设置如何在线的终点呈现箭头。 + + + + +获取或设置要从哪个角开始绘制箭头。 + + + + +获取或设置箭头的长度(以像素为单位)。 + + + + +提供显示一个所选项目的项目控件,并允许使用触控笔势在项目之间进行规划。 + + + + +PanningItems 的构造函数。 + + + + +当应用 PanningItems 模板时调用。 + + + + +获取或设置控件中的项目的方向。 + + + + +获取或设置笔势容差。这可以是介于 0 到 1 之间的值。它表示光标笔势触发项目更改需要涵盖的 PanningItems 的大小百分比。 + + + + +获取或设置所选项目之前的项目。 + + + + +获取或设置所选项目之后的项目。 + + + + +获取或设置是否将循环项目控件的内容,以便第一项将跟在最后一项后面。 + + + + +获取或设置控制平移运动的滑块的值。 + + + + +要使用 PathGeometry 的帮助程序类。 + + + + +将采用路径微型语言的字符串转换为 PathGeometry。 + +采用路径微型语言的字符串。 + + + +将给定的几何图形转换成单个 PathGeometry。 + + + + +用与给定点列表匹配的折线更新 PathGeometry 形式的给定几何图形。 + + + + +分析缩写的几何图形语法。 + + + + +要将 ArcSegment 转换成 BezierSegment 的帮助程序类。 + + +要使用 PathSegment 和所有变体的帮助程序类。 + + +用于处理不同类型的 PathSegment 的策略类。 + + + + +将弧段转换成贝塞尔格式。返回 BezierSegment、PolyBezierSegment、LineSegment 或 null。返回 null 时,弧将退化为起点。 + + + + +避免调用包含三个参数的构造函数,因为它始终会为 IsStroked 设置本地值。 + + + + + + +用与给定点列表匹配的给定折线更新 SegmentCollection。尝试使更改保持最小程度,如果未进行任何更改,则返回 false。 + + + + +用与给定点列表匹配的多贝塞尔线段更新 collection[index] 线段。给定点列表必须包含 N 个贝塞尔线段的 3*N 个点。 + + + + +测试给定路径段是否为空。 + + + + +获取给定路径段中的点数。 + + + + +获取给定路径段的最后一个点。 + + + + +获取给定线段中给定索引的点。如果输入为 (-1),则返回最后一个点。 + + + + +平展给定线段并将所生成的点添加到给定点列表中。 + +要平展的线段。 +所生成的点列表。 +线段的起点。 +容错。必须是正数。可以为零。回退到默认容差。 + + + +ArcToBezier,计算弧的贝塞尔近似值。 + + +此实用工具计算 SVG 弧详细说明中定义的椭圆弧的贝塞尔近似值。从中划分弧的椭圆在其自己的坐标系中与轴平行,并通过其 x 和 y 半径来定义。旋转角度定义了椭圆的轴相对于 x 轴旋转的角度。起点和终点定义了 4 个可能的弧中的一个弧;扫描和大弧标志决定了将选择这些弧中的哪一个。 + +如果返回 cPieces = 0,则表示一条线而不是弧;如果返回 cPieces = -1,则表示弧退化为了点 + + + + +获取贝塞尔弧的数量以及每个弧的正弦值/余弦值。 + + +这是 ArcToBezier 使用的专用实用工具。将弧分为若干段,使任何一段弧扫过的角度都不超过 90 度。输入点在单位圆上。 + + + + +GetBezierDistance 返回的距离为半径的一小部分。 + + +获取从圆弧终点到与该圆弧近似的贝塞尔弧的控制点之间的距离(弧半径的一小部分)。 + +由于结果是相对于弧半径的一个值,所以它完全取决于弧的角度。由于假设弧为 90 度或不到 90 度,因此该角度由其余弦来决定,这是从 rDot = 两个半径矢量的点积中推导出来的。我们需要在终点和中点处与弧的点和切线保持一致的贝塞尔曲线。在此,我们将计算曲线的终点到其控制点之间的距离。 + +由于需要的是相对距离,所以可以使用单位圆。将圆心放在原点处,并使 X 轴成为这两个矢量的平分线。让 a 成为矢量夹角。那么第一个点和最后一个点的 X 坐标为 cos(a/2)。让 x 成为第二个点和第三个点的 X 坐标。当 t = 1/2 时,有一个点在 (1,0) 处。但是此处的多项式的项都相等: + +(1-t)^3 = t*(1-t)^2 = t^2*(1-t) = t^3 = 1/8, + +因此,从贝塞尔公式中可以得出: + +1 = (1/8) * (cos(a/2) + 3x + 3x + cos(a/2)), + +因此 + +x = (4 - cos(a/2)) / 3 + +这与第一个点之间的 X 差值为: + +DX = x - cos(a/2) = 4(1 - cos(a/2)) / 3。 + +但是 DX = 距离 / sin(a/2),因此距离为 + +dist = (4/3)*(1 - cos(a/2)) / sin(a/2)。 + +由于给出的是 rDot = R^2 * cos(a),而不是角 a,因此应将最大值和最小值乘以 R: + +dist = (4/3)*(R - Rcos(a/2)) / Rsin(a/2) + +并使用以下三角公式:________________ cos(a/2) = \/(1 + cos(a)) / 2 ______________________ R*cos(a/2) = \/(R^2 + R^2 cos(a)) / 2 ________________ = \/(R^2 + rDot) / 2 + +假设 A = (R^2 + rDot)/2。____________________ R*sin(a/2) = \/R^2 - R^2 cos^2(a/2) _______ = \/R^2 - A + +因此:_ 4 R - \/A dist = - * ------------ 3 _______ \/R^2 - A + +历史记录:2001-5-29,其创建者为 MichKa。 + + + + +如果半径与弦长相比太小,则返回 false(针对 NaN 会返回 true),并且半径会修改为接受的值。 + + + + +用于平展贝塞尔曲线的实用工具类。 + + + + +平展贝塞尔三次曲线并将所生成的折线添加到第三个参数中。 + +4 个贝塞尔三次方控制点。 +真实曲线与平展折线上的两个对应点之间的最大距离。必须绝对为正值。 +添加平展折线的位置。 +如果要在添加平展折线时跳过第一个控制点,则为 True。 +添加与每个折线顶点关联的贝塞尔曲线参数值的位置。 +如果 为空,则始终添加第一个控制点及其关联参数。 + + + +平展贝塞尔二次曲线并将所生成的折线添加到第三个参数中。使用贝塞尔曲线的升阶以重新使用三次方案例的规则。 + +3 个贝塞尔二次方控制点。 +真实曲线与平展折线上的两个对应点之间的最大距离。必须绝对为正值。 +添加平展折线的位置。 +是否要在添加平展折线时跳过第一个控制点。 +添加与每个折线顶点关联的贝塞尔曲线参数值的位置。 +如果 为空,则始终添加第一个控制点及其关联参数。 + + + +支持非几何图形类型的扩展方法。 + + + + +允许对整个序列应用操作委托(通常是一个非常简单的 lambda)。 + + + + +允许对整个序列应用操作委托(通常是一个非常简单的 lambda)。 + + + + +允许对含各项索引的整个序列应用操作委托(通常是一个非常简单的 lambda)。 + + + + +确保列表计数达到给定计数。用给定的工厂进行创建或在必要时删除项目。如果输入 IList 为列表,则在没有工厂时使用 AddRange 或 RemoveRange。 + + + + +确保列表计数至少为给定计数。用给定的工厂进行创建。 + + + + +将项目范围添加到集合的末尾。如果集合是列表,则使用 List.AddRange。 + + + + +获取给定列表的最后一个项目。 + + + + +从给定列表中删除最后一个项目。 + + + + +复制对象及其所有公共属性,包括所有集合属性。 + + + + +如果不同,则设置值。在可能的情况下避免设置本地值。在值发生了更改的情况下返回 true。 + + + + +在针对给定依赖对象以本地方式设置了依赖属性的情况下删除该依赖属性。在未以本地方式设置依赖属性的情况下返回 false。 + + + + +使用广度优先搜索查找给定类型和条件的所有可视后代。 + + + + +获取 IEnumerable 中的所有可视子项。 + + + + +统一 WPF 和 Silverlight 中的 PropertyMetadata 的接口。提供有关呈现、排列或度量的必要通知。 + + + + +应仅由 AttachCallback 使用此专用 Ctor。 + + + + +链接 InternalCallback() 以在属性回调上附加 DrawingPropertyMetadata 的实例。在 Silverlight 中,属性元数据在设置后被丢弃。使用回调记住它。 + + + + +链接原始回调之前,触发 DrawingPropertyChangedEvent。 + + + + +与几何图形相关的数据结构(点/矢量/大小/矩形)的扩展方法。 + + + + +将矩形大小调整为相对大小,同时保持中心不变。 + + + + +获取两个点之间的差异矢量。 + + + + +逐个添加点成员。 + + + + +逐个减去点成员。 + + + + +将微型语言的字符串转换为 。 + +请参阅:路径标记语法 (http://msdn.microsoft.com/en-us/library/cc189041(VS.95).aspx) +用于描述几何图形路径的路径微型语言的字符串。 +从路径微型语言转换的 + + + +平展 并将结果点添加到给定的 . + +输入的 。 +结果点将附加到的点列表。 +一个正数,用于指定从结果点到输入路径图之间允许的最大错误数。零值允许算法自动挑选容差。 + + + +获取 (0,0)(1,1) 框中的标准化弧。零度按顺时针方向映射到 [0.5,0](向上)。 + + + + +利用给定的相对半径获取给定边界中的绝对弧点。 + + + + +获取相对于 (0,0)(1,1) 框的弧的角度。零度按顺时针方向映射到 [0.5,0](向上)。 + + + + +利用相对于边界的给定绝对点获取弧的角度。 + + + + +计算从“源矩形”到“目标矩形”的转换。 + + + + +计算两个 UIElement 之间的坐标系转换。 + +源元素。 +目标元素。 +UIElement 之间的转换,如果无法计算,则为 null。 + + + +使用从给定边界到 (0,0)(1,1) 框的映射将相对点映射到绝对点。 + + + + +使用从 (0,0)(1,1) 框到给定边界的映射将绝对点映射到相对点。 + + + + +在给定的逻辑边界中拉伸之后计算边界。如果拉伸到统一值,请使用给定的 aspectRatio。如果 aspectRatio 为空,则它等效于“填充”。如果拉伸为“无”,则它等效于“填充”或“统一”。 + + + + +返回 2 个点的中点。 + +第一个点。 +第二个点。 +以下两点之间的中点:. + + + +返回两个矢量的点积。 + +第一个矢量。 +第二个矢量。 +以下两个矢量的点积:. + + + +返回两个点的点积。 + + + + +返回两个点之间的距离。 + +第一个点。 +第二个点。 +以下两个点之间的距离:. + + + +返回两个点之间的距离的平方。 + +第一个点。 +第二个点。 +以下两个点之间的距离的平方:. + + + +叉积的决定因子。等效于方向区域。 + + + + +计算给定线段的法线方向矢量。 + + + + +计算逆时针 90 度的垂直矢量。垂直向右的矢量会产生一个向上的矢量。 + + + + +返回两个几何图形是否相同。 + + + + +确保值为结果类型 (T) 的实例。如果不是,则更换为类型 (T) 的新实例。 + + + + +确保 list[index] 为结果类型 (T) 的实例。如果不是,则更换为类型 (T) 的新实例。 + + + + +用于提供与浮点运算相关的静态属性和方法的帮助程序类。 + + + + +考虑到两个值相同时的最小距离。注意:MIL/SL 中的内部浮点是浮点型,不是双精度型。 + + + + +全圆角度值。 + + + + +五边形的内径,精确度为以百分比为单位的三位数字。(1 - Sin36 * Sin72 / Sin54) / (Cos36) ^ 2,即 0.47210998990512996761913067272407 + + + + +确定 System.Double 值小得是否可以视为零。 + + +如果值小于 DoubleTolerance,则为 True;否则为 False + + + +返回给定范围内的值。等于 null 的给定的最小值/最大值表示无限制。 + + + + +计算矢量 (x,y) 的欧几里得范数。 + +第一个分量。 +第二个分量。 +矢量 (x,y) 的欧几里得范数。 + + + +利用尾数和指数计算实数。 + + + +如果成功,则为 x * 2^exp 的值。 + + + +测试双精度值。 + +要测试的双精度值。 +如果 x 不是 NaN 并且不等于正无穷大或负无穷大,则为 True;否则,为 False + + + +要使用 PathFigure 的帮助程序类。 + + + + +平展给定图形并将结果点添加到给定点列表中。 + +容错。必须是正数。可以为零。回退到默认容差。 + + + +迭代给定图形内部的所有线段,并返回每个线段的正确起点。 + + + + +将图形作为单一折线段与给定点列表同步。尝试使更改保持最小程度,如果未进行任何更改,则返回 false。 + + + + +将要成为闭合椭圆的给定图形与两段弧同步。 + + + + +PathSegment 和相应 StartPoint 的元组数据结构。 + + + + +表示由一系列点连接而成的折线。闭合多边形是通过将第一个点与最后一个点重合来表示的。根据需要计算差值、法线、角度和长度。 + + + + +用两个或更多个点构成折线。 + + + + +折线的前向差分矢量。Points[i] + Differences[i] = Points[i+1] + + + +计算给定位置的法向矢量 (lerp(index, index+1, fraction)。如果该位置位于 cornerRadius 范围内,请内插法线方向。 + +法线平滑度的范围。如果为零,则没有平滑度并针对索引返回确切的法线。 + + + +第一个点与最后一个点重叠时,折线发生闭合。 + + + + +此折线中的点的计数。 + + + + +此折线的总弧长。 + + + + +此折线的点数组。 + + + + +线段(Points[i] 到 Points[i+1])的长度。 + + + + +每个线段的法向矢量的列表。Normals[i] 是线段(p[i] 到 p[i + 1])的法线。Normals[N-1] == Normals[N-2]。 + + + + +以点 p[i] 为顶点的两个线段的夹角的 Cos(angle) 列表。注意:值为 cos(angle) = Dot(u, v)。单位不是度。 + + + + +从 points[i] 到 points[0] 之间的累计长度的列表。 + + + + +要与 PathMarch 算法进行通信的数据结构。 + + + + +获取给定点列表上此 MarchLocation 的内插位置。 + + + + +获取给定法向矢量列表上此 MarchLocation 的内插法线方向。 + + + + +获取此 MarchLocation 到整个折线的起点的弧长。 + + + + +对此位置取样的原因。 + + + + +折线点列表上的点的索引。 + + + + +比率:[0,1],始终为“之前”/“(之前和之后)”。 + + + + +停止点之前的弧长。非负数且小于 Length[index]。 + + + + +停止点之后的弧长。非负数且小于 Length[index]。 + + + + +在步骤中要达到下一个停止点的剩余长度。正数表示前进。负数表示后退。 + + + + +要使用点列表的帮助程序类 + + + + +按给定间隔伸展给定折线,并通过回调输出每个停止点。 + +要继续伸展的折线点。 +在第一个点处停止之前要伸展的弧长。 +要被视为顶角的最大边缘夹角。 +伸展算法停止在某个点时进行回调。回调针对下一个停止点返回弧长。如果要求的长度为负值,则向后伸展。如果回调返回 NaN,则完成伸展。 + + + +对给定的折线列表重新进行排序,使具有给定弧长的折线在列表中排在第一位。在此线条之前的折线将级联到列表末尾,第一条折线位于最后。 + +折线的列表。 +整个折线列表中查找起始线所依据的弧长。在此变量中会返回该线条中的弧长。 +重新排序和回绕后的列表。 + + + +一个支持统一和高斯分布的随机数生成器。 + + + + +使用 Box-Muller 转换的极坐标形式生成一对无关、标准、正态分布的随机数、零期望值和单位偏差。 + + + + +专用构造函数。强制使用工厂方法。 + + + + +创建一条线段 + + + + +利用二次曲线(3 个控制点)创建一条三次方贝塞尔线段 + + + + +利用 4 个控制点创建一条三次方贝塞尔线段。 + + + + +路径段的控制点。长度为变量。线段有 2 个点,三次方贝塞尔有 4 个点。 + + + + +比较两个转换的精确匹配。值相同但结构不同的转换(例如 Translate(0,0) 和 Rotate(0) 被认为是不相等)。 + +第一个转换。 +第二个转换。 + + + + +指定粗细的单位。 + + + + +像素单位。 + + + + +相对于范围框的百分比单位。 + + + + +提供几何图形的源的基类。基于输入参数和布局边界生成并缓存几何图形。 + + +典型的实现将扩展 UpdateCachedGeometry() 以更新 this.cachedGeometry。然后,此基类将处理失效的内容,以管道方式传递到几何图形效果中,然后相对于布局边界进行缓存。实现应该尝试尽可能重新使用缓存的几何图形,以避免在呈现线程中进行重新构建。实现可以扩展 ComputeLogicalBounds,从而以不同的方式处理拉伸。 + +基类将要处理的几何图形源参数的类型。 + + + +提供一个描述几何图形的源的接口。 + + +此接口旨在以非泛型方法公开几何图形源。典型的实现应实现子类 GeometrySource,而不是直接实现此接口。 + + + + +通知几何图形因外部更改已经失效。 + + +当参数发生更改时几何图形通常会失效。如果任何几何图形已在外部失效,就会重新计算该几何图形,即使布局边界发生更改也不例外。 + + + + +使用给定的参数和布局边界更新几何图形。如果未更新任何内容,则返回 false。 + + + + +获取或设置在最新 UpdateGeometry() 之后生成的几何图形。 + + + + +获取几何图形应拉伸到的范围框。实际的几何图形可能比这小,也可能比这大。 应该已经考虑了笔划粗细和拉伸。 + + + + +获取 FrameworkElement 的实际边界。 包括逻辑边界、拉伸和笔划粗细。 + + + + +指定上次处理几何图形效果后产生的几何图形。 + + + + +通知几何图形因外部更改已经失效。 + + +当参数发生更改时几何图形通常会失效。无论布局边界是否发生更改,只要任何几何图形已在外部失效,就会重新计算该几何图形。 + + + + +基于给定的参数和 layoutBounds 更新几何图形。如果几何图形未发生更改,则返回 false。 + + + + +将通过执行此函数来扩展提供几何图形的方法。在任何几何图形发生更改时返回 true。 + + + + +扩展处理拉伸模式的方法。默认值是始终使用 Stretch.Fill 和中心笔划。 + + + + +在不清晰或不得已的情况下应用几何图形效果并更新 this.Geometry。否则将 this.Geometry 保留为 this.cachedGeometry。 + + + + +获取或设置在最新 UpdateGeometry() 之后生成的几何图形。 + + + + +获取几何图形应拉伸到的范围框。实际的几何图形可能比这小,也可能比这大。 应该已经考虑了笔划粗细和拉伸。 + + + + + +获取 FrameworkElement 的实际边界。 包括逻辑边界、拉伸和笔划粗细。 + + + + + +假定纵横比为 1:1,则弧会认为 Stretch.None 与 Stretch.Fill 相同。 + + + + +使相对于范围框的粗细以及大小为绝对像素的粗细标准化。相对粗细 = 0 -> 全圆半径或固定值。相对粗细 = 1 -> 缩小为点或已退化。 + + + + +弧退化为指向内心/内部法线的线条。 + + + + +计算角对的列表,并定义应在其中查找弧示例的范围。返回值具有 2、4 或 6 对值,每对值都定义了一个范围,并且它们按顺序从给定的起始角向终止角跨越。在自相交角处将会超出范围。如果起始/终止输入在自相交角之间的无效范围内,则它将移到邻近的自相交范围内。 + + + + +将角移到 0-90 范围内。 + + + + +用每对输入角计算内部曲线的所有部分,并将其与多贝塞尔线段连接。新线段根据给定的索引输出到给定的 figure.Segments 列表中。起点是单独输出的。 + + + + +用给定的角范围计算一段内部曲线,并以多贝塞尔线段形式输出一段平滑曲线。 + + + + +针对给定粗细的给定椭圆计算自相交点的参数(角)。结果始终在第一象限,并且可能为 0 或 90(表示无自相交)。基本算法是执行二进制搜索以搜索取样点不在第一象限的角。 + + + + +指定箭头指向的方向。 + + + + +箭头向左。 + + + + +箭头向右。 + + + + +箭头向上。 + + + + +箭头向下。 + + + + +B /| / C--D A | \ C--D \| B 算法仅使用宽度/高度,假设左上角位于 0,0 处。 + + + + +指定标注形状的呈现样式。 + + + + +矩形标注。 + + + + +带圆角的矩形标注。 + + + + +椭圆形标注。 + + + + +云形标注。 + + + + +更新边缘线,如有必要,则连接到定位点。 + + + + +更新折线段,然后将起点、定位点和终点与标注样式关联。 + + + + +将线段更新为给定的点。 + + + + +使用四个角的八个点按顺时针方向计算角点。 + + + + +角弧始终小于 90 度弧。 + + + + +为将几何图形转换为另一种几何图形的 GeometryEffect 提供基类。 + + +此类为以下操作提供基本实现:在传递 IShape 以进行呈现之前处理 IShape 的已呈现几何图形。典型实现将扩展虚拟函数 以转换输入的几何图形。 通常将作为附加的属性附加到 ,并在更新 几何图形时被激活。 将替换 中呈现的几何图形。 + + + + +获取作为给定依赖对象附加属性的几何图形效果。 + + + + +设置作为给定依赖对象附加属性的几何图形效果。 + + + + +使用 的当前值对其进行深层复制。 + + + + +对几何图形效果进行深层复制。在 Silverlight 中实现 CloneCurrentValue。 + +几何图形效果的当前实例的克隆。 + + + +测试给定几何图形效果是否等效于当前实例。 + +用来比较的几何图形效果。 +当两种效果呈现相同的外观时返回 true。 + + + +指定上次处理几何图形效果后产生的几何图形。 + + + + +使几何图形效果无效而不实际计算几何图形。通知所有父形状或效果以相应地使之无效。 + + + + +处理对给定输入几何图形的几何图形效果。将结果存储在 GeometryEffect.OutputGeometry 中。 + +如果未更改任何内容,则返回 false。 + + + +扩展基于给定输入几何图形更新 cachedGeometry 的方式。 + + + + +从父链中分离时收到通知。 + + + + +附加到父链时收到通知。 + + + + +在对象为有效的父类型(IShape 或 GeometryEffect)时使给定依赖对象上的几何图形无效。 + + + + +在 WPF 中实现该 Freezable。 + + + + +仅作用于输入的几何图形的默认几何图形效果。 + + + + +获取此几何图形效果的输出几何图形。 + + + + +父项可以是 IShape 或 GeometryEffectGroup。 + + + + +提供字符串与几何图形效果之间的转换。 + + +此类启用类似 XAML 中的简要语法GeometryEffect="Sketch". 创建几何图形效果实例的克隆,以便可将其用作资源。 + + + + +生成受支持几何图形效果的预设列表。 + + + + +可以从字符串类型转换的 GeometryEffect。 + + + + +可以转换为字符串类型的 GeometryEffect。 + + + + +将字符串转换为几何图形效果。回退值是 null。 + + + + +将几何图形效果转换为字符串。回退值是 null。 + + + + +指定调用 的原因。 + + + + +几何图形已经失效,因为属性已经发生更改。 + + + + +几何图形已经失效,因为正在动态显示属性。 + + + + +几何图形已经失效,因为子项已经失效。 + + + + +几何图形已经失效,因为父项已经失效。 + + + + +几何图形已经失效,因为已经应用了新模板。 + + + + +提供帮助程序扩展方法以使用 IGeometrySource 和参数。 + + + + +指定箭头类型。 + + + + +没有箭头。 + + + + +三角形箭头。 + + + + +隐藏的三角形箭头。 + + + + +空心三角形箭头。 + + + + +椭圆形箭头。 + + + + +指定角位置。 + + + + +在范围框的左上方。 + + + + +在范围框的右上方。 + + + + +在范围框的右下方。 + + + + +在范围框的左下方。 + + + + +多边形会认为 Stretch.None 与 Stretch.Fill 相同。 + + + + +像在 SketchFlow 中那样将任何几何图形转换为草图样式的几何图形效果。 + + + + +对几何图形效果进行深层复制。 + +几何图形效果的当前实例的克隆。 + + + +测试给定几何图形效果是否等效于当前实例。 + +用来比较的几何图形效果。 +当两种效果呈现相同的外观时返回 true。 + + + +基于给定输入几何图形更新 cachedGeometry。 + +输入的几何图形。 +当 cachedGeometry 上的任何内容已更新时返回 true。 + + + +在创建时使用相同的随机种子以使视觉闪烁保持最小。 + + + + +循环访问给定路径图中的所有简单段,包括右弦。 + + + + +呈现弧形,支持 ArcThickness 控制的弧形、环形和饼形模式。 + + + + +从 WPF:Shape 或 SL:Path 中派生的 Shape 的平台中性实现。 + + +提供从平台形状中派生的形状的 WPF 实现。 + + + + +通过创建几何图形源来扩展形状的绘制方式。 + + + + +使 的几何图形无效。在失效之后, 将重新计算该几何图形,这将以异步方式发生。 + + + +提供 Silverlight 布局传递的“度量值”部分的行为。类可以替代此方法以定义其自己的“度量值”传递行为。 +此对象根据其子对象分配大小的计算或者可能根据其他注意事项(如固定容器大小)确定的在布局过程中所需的大小。 +此对象可以提供给子对象的可用大小。可以将值指定为无穷大 (),以指明对象大小将调整为可用的任何内容的大小。 + +在 WPF 中,测量值替代利用 Shape.DefiningGeometry 进行工作,Shape.DefiningGeometry 并不始终跟预计的一样。有关详细信息,请参阅错误 99497,其中 WPF 默认情况下没有正确的测量值。 + +在 Silverlight 中,路径上的测量值替代的工作方式与原始形状的工作方式不相同。 + +返回的应该是此形状无需剪辑便可正确呈现的最小尺寸。默认情况下,呈现的形状可以小到一个点,因此会返回笔划粗细。 + + + +提供 Silverlight 布局传递的“排列”部分的行为。类可以替代此方法以定义其自己的“排列”传递行为。 +在布局中排列该元素后使用的实际大小。 +此对象排列自己及其子项所应使用的父项中的最终区域。 + 将在 Geometry 失效后重新计算它,并更新 RenderedGeometry 和 GeometryMargin。 + + + +在 RenderedGeometry 更改时发生。 + + + + +获取逻辑边界与实际几何图形边界之间的边距。这可能是正数(如在 中),也可能是负数(如在 中)。 + + + + +获取或设置开始角度。 + +以度为单位的开始角度。0 度朝上。 + + + +获取或设置结束角度。 + +以度为单位的结束角度。0 度朝上。 + + + +获取或设置弧粗细。 + +弧粗细以像素或百分比为单位,具体取决于“ArcThicknessUnit”。 + + + +获取或设置弧粗细单位。 + +弧粗细单位(像素或百分比)。 + + + +呈现一个支持可调整大小的箭头和主体的块箭头形状。 + + + + +获取或设置方向。 + +箭头指向的方向。 + + + +获取或设置箭头角度。 + +以度为单位的箭头角度。 + + + +获取或设置箭头主体的大小。 + +以像素为单位的箭头主体大小。 + + + +呈现边角数不定的正多边形或对应的星形。 + + + + +获取或设置 的边角数。 + + + + +获取或设置中心与最里面的点之间的距离。 + +中心与最里面的点之间的距离。 + + + diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/zh-Hans/Microsoft.Expression.Effects.xml b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/zh-Hans/Microsoft.Expression.Effects.xml new file mode 100644 index 0000000..7648746 --- /dev/null +++ b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/zh-Hans/Microsoft.Expression.Effects.xml @@ -0,0 +1,1041 @@ + + + + Microsoft.Expression.Effects + + + + +确定遮蔽的方向。 + + + + +过渡着色器,用于模拟在视觉对象之间过渡时打开的遮蔽。 + + + + +获取或设置遮蔽的方向。 + + + + +获取或设置遮蔽数。 + + + + +获取或设置着色器内的 Amplitude 变量。 + + + + +创建着色器的实例。 + + + + +对 BlindsTransitionEffect 效果进行深层复制。 + +BlindsTransitionEffect 效果的当前实例的克隆。 + + + +获取或设置遮蔽的方向。 + + + + +获取或设置要显示的遮蔽数。 + + + + +获取或设置遮蔽的方向。 + + + + +实现视觉对象光晕照明的效果。 + + + + +此像素着色器的显式输入。 + + + + + +此属性被映射到像素着色器内的 BloomIntensity 变量。 + + + + +此属性被映射到像素着色器内的 BaseIntensity 变量。 + + + + +此属性被映射到像素着色器内的 BloomSaturation 变量。 + + + + +此属性被映射到像素着色器内的 BaseSaturation 变量。 + + + + +此属性被映射到像素着色器内的 BloomIntensity 变量。 + + + + +此属性被映射到像素着色器内的 BloomSaturation 变量。 + + + + +此属性被映射到像素着色器内的 BaseSaturation 变量。 + + + + +创建一个实例,并将着色器的变量更新为默认值。 + + + + +获取或设置将用于光晕的最低强度。 + + + + +获取或设置基强度。 + + + + +获取或设置光晕强度。 + + + + +获取或设置基饱和度。 + + + + +获取或设置光晕饱和度。 + + + + +获取或设置输入着色器取样器。 + + + + +获取或设置着色器内的 Base/BloomIntensity 变量。 + + + + +获取或设置着色器内的 BaseBloomSaturation 变量。 + + + + +通过发光/收缩的圆展示两种视觉对象的过渡效果。 + + + + +用于修改像素着色器内的羽化量变量的依赖属性。 + + + + +用于修改圆位移的依赖属性。 + + + + +用于修改像素着色器内的 reverseShader 变量的依赖属性。 + + + + +创建一个实例,并将着色器的变量更新为默认值。 + + + + +对 CircleRevealTransitionEffect 效果进行深层复制。 + +CircleRevealTransitionEffect 效果的当前实例的克隆。 + + + +获取或设置着色器内的 FuzzyAmount 变量。 + + + + +获取或设置向后播放圆展现的行为。 + + + + +获取或设置在着色器中向后播放圆展现的行为。 + + + + +使用云纹理作为取样器阈值对两种视觉对象进行过渡的过渡效果。 + + + + +定义一个过渡着色器效果,此效果使用图像作为取样器阈值在两种视觉对象之间内插像素值。 + + + + +定义一个提供随机值的过渡着色器效果,并允许此效果在每次运行时存在差异。 + + + + +用于修改像素着色器内的 RandomSeed 变量的依赖属性。 + + + + +将着色器的变量更新为默认值。 + + + + +获取或设置着色器内的 RandomSeed 变量。 + + + + +用于修改像素着色器内的 CloudImage 变量的依赖属性。 + + + + +创建一个实例,并将着色器的变量更新为默认值。 + + + + +获取或设置着色器内用于取样的 CloudImage 变量。 + + + + +创建着色器的实例。 + + + + +对 CloudRevealTransitionEffect 效果进行深层复制。 + +CloudRevealTransitionEffect 效果的当前实例的克隆。 + + + +使用两种颜色作为取样来修改视觉对象色调的效果。 + + + + +此像素着色器的显式输入。 + + + + +此属性被映射到像素着色器内的 Desaturation 变量。 + + + + +此属性被映射到像素着色器内的 Tone 变量。 + + + + +此属性被映射到像素着色器内的 LightColor 变量。 + + + + +此属性被映射到像素着色器内的 DarkColor 变量。 + + + + +创建一个实例,并将着色器的变量更新为默认值。 + + + + +获取或设置着色器内的 Desaturation 变量。 + + + + +获取或设置着色器内的 Tone 变量。 + + + + +获取或设置着色器内的 LightColor 变量。 + + + + +获取或设置着色器内的 DarkColor 变量。 + + + + +获取或设置输入着色器取样器。 + + + + +模拟视觉对象浮雕外观的效果。 + + + + +此像素着色器的显式输入。 + + + + +此属性被映射到像素着色器内的 Amount 变量。 + + + + +此属性被映射到像素着色器内的 Height 变量。 + + + + +此属性被映射到像素着色器内的 Color 变量。 + + + + +创建一个实例,并将着色器的变量更新为默认值。 + + + + +获取或设置着色器内的 Amount 变量。 + + + + +获取或设置着色器内的 Height 变量。 + + + + +获取或设置着色器内的 Color 变量。 + + + + +获取或设置输入着色器取样器。 + + + + +逐渐在视觉对象之间过渡的过渡效果。 + + + + +创建着色器的实例。 + + + + +对 FadeTransitionEffect 效果进行深层复制。 + +FadeTransitionEffect 效果的当前实例的克隆。 + + + +模拟放大镜的效果。 + + + + +获取或设置着色器内的 InnerRadius 变量。 + + + + +获取或设置着色器内的 OuterRadius 变量。 + + + + +获取或设置着色器内的 Center 变量。 + + + + +获取或设置着色器内的 Amount 变量。 + + + + +获取或设置在着色器中使用的输入。 + + + + +用于此着色器的转换。 + + + + +创建一个实例,并将着色器的变量更新为默认值。 + + + + +获取或设置着色器内的 InnerRadius 变量。 + + + + +获取或设置着色器内的 OuterRadius 变量。 + + + + +获取或设置着色器内的 Center 变量。 + + + + +获取或设置 ShrinkFactor。收缩系数越大,椭圆内的内容看起来就“越小”。 + + + + +获取 EffectMapping。 + + + + +获取或设置输入着色器取样器。 + + + + +与放大效果相对应的 GeneralTransform。 + + + + +试图根据效果转换点。 + +要转换的点。 +结果(如果可用)。 +如果成功,则返回 true。 + + + +效果实例。 + + + + +如果转换为反转。 + + + + +特定于此效果的转换。 + + + + +创建一个新实例。 + +源效果。 + + + +此特定效果会使轴平行线与轴平行,因此矩形转换只是其角点的转换。 + +输入的矩形。 +输出的矩形。 + + + +对于着色器反转,如果给出了纹理输入 Pout(着色器反转),则需要查找作为像素输出的 Pin。但是,着色器算法取决于中心像素输出的半径,这是在计算反转时没有的一个变量。我们需要执行二等分以便使用以下公式进行聚合:PHatout = PHat_in*Scalar,其中 PHatout = Pout - Pcenter;pHatin = Pin -Pcenter + +标量依赖于 Pin 的半径(尚无)。 + + + + +在给出像素输出 (Pin) 的情况下查找纹理输入 (Pout)。 + + + + +创建一个新实例。 + +这样的新实例。 + + + +确定一个点是否在椭圆内。 + +测试点。 +椭圆的中心点。 +椭圆的半径。 +如果成功,则返回 true。 + + + +获取反转的转换。 + + + + +将视觉对象变为单色的效果。 + + + + +获取或设置着色器内的 Color 变量。 + + + + +获取或设置着色器的输入。 + + + + +创建一个实例,并将着色器的变量更新为默认值。 + + + + +获取或设置着色器内的 Color 变量。 + + + + +获取或设置在着色器中使用的输入。 + + + + +对视觉对象进行像素化的效果。 + + + + +此像素着色器的显式输入。 + + + + +此属性被映射到像素着色器内的 Pixelation 变量。 + + + + +创建一个实例,并将着色器的变量更新为默认值。 + + + + +获取或设置着色器内的像素化数量。 + + + + +获取或设置输入着色器取样器。 + + + + +增大或减小两种视觉对象之间的像素化的过渡效果。 + + + + +创建着色器的实例。 + + + + +对 PixelateTransitionEffect 效果进行深层复制。 + +PixelateTransitionEffect 效果的当前实例的克隆。 + + + +在引入新视觉对象时对当前视觉对象执行径向模糊的过渡效果。 + + + + +创建着色器的实例。 + + + + +对 RadialBlurTransitionEffect 效果进行深层复制。 + +RadialBlurTransitionEffect 效果的当前实例的克隆。 + + + +在视觉对象上模拟水波的效果。 + + + + +获取或设置着色器内的 Center 变量。 + + + + +获取或设置着色器内的 Amplitude 变量。 + + + + +获取或设置着色器内的 Frequency 变量。 + + + + +获取或设置着色器内的 Phase 变量。 + + + + +获取或设置在着色器中使用的输入画笔。 + + + + +创建一个实例,并将着色器的变量更新为默认值。 + + + + +获取或设置着色器内的 Center 变量。 + + + + +获取或设置着色器内的 Amplitude 变量。 + + + + +获取或设置着色器内的 Frequency 变量。 + + + + +获取或设置着色器内的 Phase 变量。 + + + + +获取或设置输入着色器取样器。 + + + + +过渡过程中模拟水波的过渡效果。 + + + + +创建着色器的实例。 + + + + +对 RippleTransitionEffect 效果进行深层复制。 + +RippleTransitionEffect 效果的当前实例的克隆。 + + + +使视觉对象更加清晰和锐利的效果。 + + + + +此像素着色器的显式输入。 + + + + +此属性被映射到像素着色器内的 Amount 变量。 + + + + +此属性被映射到像素着色器内的 Width 变量。 + + + + +创建一个实例,并将着色器的变量更新为默认值。 + + + + +获取或设置着色器内的 Amount 变量。 + + + + +获取或设置着色器内的 Height 变量。 + + + + +获取或设置输入着色器取样器。 + + + + +定义幻灯片方向。 + + + + +使当前视觉对象渐渐离开并显示新视觉对象的过渡效果。 + + + + +用于修改像素着色器内的 SlideAmount 变量的依赖属性。 + + + + +用于修改像素着色器内的 SlideAmount 变量的依赖属性。 + + + + +创建一个实例,并将着色器的变量更新为默认值。 + + + + +对 SlideInTransitionEffect 效果进行深层复制。 + +SlideInTransitionEffect 效果的当前实例的克隆。 + + + +获取或设置着色器内的 SlideAmount 变量。 + + + + +获取或设置着色器内的 SlideAmount 变量。 + + + + +在引入新视觉对象时使当前视觉对象旋转的过渡效果。 + + + + +用于修改像素着色器内的 TwistAmount 变量的依赖属性。 + + + + +用于修改像素将发生扭曲的单元格的数目的依赖属性。 + + + + +创建一个实例,并将着色器的扭曲变量设置为指定值。 + +扭转的级别。 + + + +创建一个实例,并将着色器的变量更新为默认值。 + + + + +对 SmoothSwirlGridTransitionEffect 效果进行深层复制。 + +SmoothSwirlGridTransitionEffect 效果的当前实例的克隆。 + + + +获取或设置着色器内的 TwistAmount 变量。 + + + + +获取或设置着色器内的 CellCount 变量。 + + + + +旋转当前视觉对象的效果。 + + + + +此像素着色器的显式输入。 + + + + +此属性被映射到像素着色器内的 Center 变量。 + + + + +此属性被映射到像素着色器内的 TwistAmount 变量。 + + + + +此属性被映射到像素着色器内的 AngleFrequency 变量。 + + + + +应用此效果时使用的转换。 + + + + +创建一个实例,并将着色器的变量更新为默认值。 + + + + +获取或设置着色器内的 Center 变量。 + + + + +获取或设置着色器内的 TwistAmount 变量。 + + + + +获取或设置着色器内的 AngleFrequency 变量。此属性不会被公开。 + + + + +获取或设置输入着色器取样器。 + + + + +获取此效果的 GeneralTransform。 + + + + +用于转换输入和树转换。 + + + + +效果的实例。 + + + + +转换的反转。 + + + + +此 GeneralTransform 的反转。 + + + + +创建此类的实例。 + +效果本身。 + + + +对于此操作,边界是四个转换点的范围框。需要转换其中的每一项,然后进行外接。这适用于前进和反转。 + +输入的矩形。 +转换的矩形。 + + + +试图用旋转效果转换 inPoint。 + +输入的点。 +使用旋转效果转换后输出的点。 +返回 true,但如果为 false,则会引起异常。 + + + +返回这样的一个新实例。 + +新实例。 + + + +获取当前转换的反转的克隆。 + + + + +在引入新视觉对象时使当前视觉对象产生波动的过渡效果。 + + + + +用于修改像素着色器内的 Magnitude 变量的依赖属性。 + + + + +用于修改像素着色器内的 Phase 变量的依赖属性。 + + + + +用于修改像素着色器内的 Frequency 变量的依赖属性。 + + + + +创建着色器的实例。 + + + + +对 WaveTransitionEffect 效果进行深层复制。 + +WaveTransitionEffect 效果的当前实例的克隆。 + + + +获取或设置波形量。 + + + + +获取或设置波形阶段。 + + + + +获取或设置波形量。 + + + + +定义擦除方向。 + + + + +在引入新视觉对象时擦除当前视觉对象的过渡效果。 + + + + +用于修改像素着色器内的 WipeDirection 变量的依赖属性。 + + + + +用于修改像素着色器内的 FeatherAmount 变量的依赖属性。 + + + + +用于修改像素着色器内的 LineOrigin 变量的依赖属性。 + + + + +用于修改像素着色器内的 LineNormal 变量的依赖属性。 + + + + +用于修改像素着色器内的 LineOffset 变量的依赖属性。 + + + + +创建一个实例,并将着色器的变量更新为默认值。 + + + + +对 WipeTransitionEffec 效果进行深层复制。 + +WipeTransitionEffect 效果的当前实例的克隆。 + + + +获取或设置擦除的方向。 + + + + +获取或设置着色器内的 FeatherAmount 变量。 + + + + +获取或设置着色器内的 LineOrigin 变量。 + + + + +获取或设置着色器内的 LineNormal 变量。 + + + + +获取或设置着色器内的 LineOffset 变量。 + + + + diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/zh-Hans/Microsoft.Expression.Interactions.resources.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/zh-Hans/Microsoft.Expression.Interactions.resources.dll new file mode 100644 index 0000000..7ebf073 Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/zh-Hans/Microsoft.Expression.Interactions.resources.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/zh-Hans/Microsoft.Expression.Interactions.xml b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/zh-Hans/Microsoft.Expression.Interactions.xml new file mode 100644 index 0000000..6fc0d1f --- /dev/null +++ b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/zh-Hans/Microsoft.Expression.Interactions.xml @@ -0,0 +1,1241 @@ + + + + Microsoft.Expression.Interactions + + + + +ICommand 的基本实现,它包装无参数或具有一个参数的方法。 + + + + +初始化 类的新实例。 + +操作本身。 +使用此构造函数提供忽略 ICommand 参数的操作。 + + + +初始化 类的新实例。 + +具有一个对象参数的操作。 +使用此构造函数提供一项操作,该操作使用 Execute 方法传递的对象参数。 + + + +定义方法,该方法确定此命令能否在其当前状态下执行。 + +此命令使用的数据。如果此命令不要求传递数据,则可以将该对象设置为 NULL。 + +始终返回 true。 + + + + +定义在调用此命令时要调用的方法。 + +此命令使用的数据。如果此命令不要求传递数据,则可以将该对象设置为 NULL。 + + + +在出现影响到是否应执行此命令的更改时发生。将不会由 ActionCommand 触发。 + + + + +调用时对指定的对象调用方法。 + + + + +调用操作。 + +操作的参数。如果操作不需要参数,则可以将参数设置为空引用。 + + + +在操作附加到 AssociatedObject 后调用。 + +替代它以便将功能挂钩到 AssociatedObject。 + + + +在操作与其 AssociatedObject 分离时(但在它实际发生之前)调用。 + +替代它以便将功能从 AssociatedObject 中解除挂钩。 + + + +公开感兴趣的方法的对象。这是依赖属性。 + + + + +要调用的方法的名称。这是依赖属性。 + + + + +一项操作,它在被调用时会将指定的属性更改为指定的值。 + + + + +初始化 类的新实例。 + + + + +调用操作。 + +操作的参数。如果操作不需要参数,则可以将参数设置为空引用。 +无法在目标上找到名称为 的属性。 +无法将 设置为 指定的值。 + + + +获得或设置要更改的属性的名称。这是依赖属性。 + +要更改的属性的名称。 + + + +获得或设置要设置的值。这是依赖属性。 + +要设置的值。 + + + +获得或设置将在调用 ChangePropertyAction 时出现的动画的持续时间。这是依赖属性。如果未设置持续时间,则将不会应用动画。 + + + + +如果为 true,则按值进行递增;否则,直接设置值。如果无法对属性进行递增,则将改为尝试直接设置该值。 + + + + +表示一个三元条件。 + + + + +计算条件的方法。请注意,如果运算符与类型不兼容,则此方法可能会引发 ArgumentException。例如,运算符 LessThan、LessThanOrEqual、GreaterThan 和 GreaterThanOrEqual 需要两个运算符来实现 IComparable。 + +如果已满足条件,则返回 true;否则返回 false。 + + + +确保 DP 操作数上的任何绑定都是最新的。 + + + + +获取或设置左操作数。 + + + + +获取或设置右操作数。 + + + + +获取或设置比较运算符。 + + + + +不同比较运算符的枚举。 + + + + +此方法计算操作数。 + +LeftOperand 属性的左操作数。 +Operator 属性的运算符。 +RightOperand 属性的右操作数。 +如果满足条件,则返回 true;否则返回 false。 + + + +计算两个实现 IComparable 接口的操作数。 + +LeftOperand 属性的左操作数。 +Operator 属性的运算符。 +RightOperand 属性的右操作数。 +如果满足条件,则返回 true;否则返回 false。 + + + +前向链接。 + + + + +表示针对 ConditionBehavior.Condition 属性设置的条件表达式。包含条件列表,将会对这些条件进行计算以针对 ICondition.Evaluate() 返回 true 或 false。 + + + + +给定对象必须实现才能针对 ConditionBehavior.Condition 属性进行设置的接口。 + + + + +初始化 类的新实例。 + + + + +全面检查条件集合并根据 ForwardChaining 属性计算每个条件。 + +如果满足条件,则返回 true;否则返回 false。 + + + +获取或设置条件的前向链接。如果前向链接设置为 ForwardChaining.And,则必须满足所有条件。如果前向链接设置为 ForwardChaining.Or,则只须满足一个条件。 + + + + +返回条件集合。 + + + + +附加到触发器并控制触发操作的条件的行为。 + + + + + +初始化 类的新实例。 + + + + +侦听触发器触发的预览调用事件的事件处理程序。如果将 PreviewInvokeEventArgs.Cancelling 设置为 True,则会取消调用。 + +触发器基对象。 +一个 e.Cancelling 可设置为 True 的 PreviewInvokeEventArgs 类型的对象。 + + + +针对行为获取或设置 IConditon 对象。 + +要更改的条件的名称。 + + + +用于管理依赖对象绑定表达式的帮助程序类。 + + + + +确保带绑定表达式的操作上的所有 DP 都是最新的。在数据绑定阶段将触发 DataTrigger。由于操作是触发器的子项,所以操作上的任何绑定可能不是最新的。在调用操作之前将调用此例程,以便保证所有绑定都是最新的,并且具有最新数据。 + + + + +确保操作上的所有绑定表达式都是最新的 + + + + +此帮助程序函数可确保在依赖对象的依赖属性具有绑定表达式的情况下,绑定表达式是最新的。 + + + + + + +根据条件语句在两种状态之间切换。 + + + + +在行为附加到 AssociatedObject 后调用。 + +替代它以便将功能挂钩到 AssociatedObject。 + + + +帮助程序函数,用来取代 FrameworkElement.IsLoaded,因为此属性在 Silverlight 中不可用。 + +所关注的元素。 +如果已加载元素,则返回 true;否则返回 false。 + + + +获取或设置生成数据对象的属性值的绑定。这是依赖属性。 + + + + +获取或设置要与数据对象的属性值进行比较的值。这是依赖属性。 + + + + +获取或设置在满足条件时要过渡到的视觉状态的名称。这是依赖属性。 + + + + +获取或设置在未满足条件时要过渡到的视觉状态的名称。这是依赖属性。 + + + + +旨在绑定到数据存储属性的触发器。在该属性更改时触发。 + + + + +表示在绑定数据发生了更改时执行操作的触发器。 + +UA_REVIEW:chabiss + + + +在绑定属性发生更改时调用。UA_REVIEW:chabiss + + 参数。 + + + +在触发器附加到 AssociatedObject 后调用。UA_REVIEW:chabiss + + + + +在触发器与其 AssociatedObject 分离时(但在它实际发生之前)调用。UA_REVIEW:chabiss + + + + +触发器将侦听的绑定对象,该对象发生更改时会导致触发器触发。 + +UA_REVIEW:chabiss + + + +表示在绑定数据满足指定条件时执行操作的触发器。 + + + + +在绑定属性发生更改时调用。UA_REVIEW:chabiss + + 参数。 + + + +获取或设置要与数据对象的属性值进行比较的值。这是依赖属性。 + + + + +获取或设置要在指定值之间执行的比较的类型。这是依赖属性。 + + + + +ExtendedVisualStateManager 是自定义 VisualStateManager,可以使布局属性的动画变得平滑。利用此自定义 VisualStateManager,状态可以包含对属性(如 Grid.Column)的更改,可以将元素高度更改为 Auto 或从 Auto 更改为某个值,等等。将使用相应过渡的 GeneratedDuration 和 GeneratedEasingFunction 使这些更改随着时间推移而变得平滑。请参阅下面的“VisualStateManager 替代”区域以了解此算法的概述。 + + + + +一个可以使用或不可以使用 FluidLayout 的 VisualStateGroup。 + + + + +可见性在运行时通过自定义的附加属性被隐藏。 + + + + +VisualStateGroup 在一个附加属性中保存这些原始值的列表。 + + + + +对于每种状态,会提取特定于布局的属性,然后将它们附加到状态。会从状态本身中删除这些属性。 + + + + +记住当前状态。 + + + + +状态更改时要使用的 TransitionEffect。 + + + + +在状态更改过程中使用的 TransitionEffectStoryboard。 + + + + +在状态更改过程中使用的缓存背景。 + + + + +在状态更改过程中使用的缓存背景。 + + + + +在状态更改过程中使用的缓存背景。 + + + + +这是当前在运动中的元素的集合。 + + + + +这是正动态显示过渡的情节提要。 + + + + +此列表包含所有已知的布局属性。 + + + + +停止动画,并替换为了支持该动画而做出的布局更改。 + + + + +查找 VisualStateManager 将用于动态显示更改的过渡,以便布局动画可以匹配持续时间和缓动。 + +正在其中发生过渡的组。 +您的源状态。 +您的目标状态。 +过渡 + + + +从状态的情节提要中删除所有影响布局的属性,然后将这些属性缓存到一个附加属性中。 + +您的目标状态。 +包含该状态下的布局属性的情节提要。 + + + +目标元素的集合是指在布局过渡中可能已移动的所有元素的集合。此集合汇合了:- 具有在该状态下动态显示的布局属性的元素。- 集合中的元素的同级。- 集合中的元素的父级。 + +后续代码将在布局更改之前和之后检查这些矩形。 + +其布局正在改变状态的控件。 +包含布局更改的情节提要。 +来自以前的状态导航(可能可以还原)的任何以前值。 +当前在运动中的元素的集合(如果正在进行状态更改过渡的话)。 +其布局可能已更改的元素的完整集合。 + + + +获取目标列表中所有元素的矩形的集合。 + +要考虑的元素的集合。 +当前在运动中的元素的集合。 +将元素映射到其矩形的字典。 + + + +获取布局槽,然后算出正使用槽的哪个部分,从而获取元素的布局矩形。 + +将检索其布局矩形的元素。 +该元素的布局矩形。 + + + +获得在状态更改时元素的不透明度,而不是获得可见性,原因是状态更改可能在进行中,而且当前值最重要。 + +其状态正在更改的控件。 +具有布局属性的情节提要。 +原始值的集合。 + + + + +检查布局情节提要,并使用 SetValue 设置所有属性,以允许不标记时间线刻度就调用 UpdateLayout(这将导致呈现行为)。覆盖的所有值均将存储在 OriginalValueRecords 的集合中,因此,可以在以后替换这些值。 + +其状态正在更改的控件。 +具有布局属性的情节提要。 +原始值的存储区。 + + + +获取由于布局动画的缘故而将会移动的所有元素,然后将它们包装在“画布”面板中,以便它们不会影响其同级元素。 + +将会移动的元素的集合。 + + + +获取由于布局动画的缘故而一直移动的所有元素,然后将它们从其“画布”面板中解包。 + +一直移动的元素的集合。 + + + +将布局属性从源元素复制到目标元素,并从源中清除这些属性。 + +布局属性的源。 +布局属性的目标。 + + + +创建将用于动态显示过渡的实际情节提要。使用所有以前计算的结果。 + +动画的持续时间。 +将在动画中使用的缓动函数。 +将会移动的元素的集合。 +其可见性属性正发生改变的元素的旧不透明度。 +情节提要。 + + + +OriginalValueRecord 会记住在某个状态下被更改的属性的原始值。 + + + + +此枚举类型指示是将 FluidMoveBehavior 应用于它附加到的元素,还是应用于该元素的子元素。如果存在着行为方式特殊的单个元素,则“Self”很有用;如果相同的行为要应用于 WrapPanel 的所有子项或 ItemsControl 的 ItemsHost 面板,则“Children”很有用。 + + + + +此枚举的类型指明元素是自行标识还是通过其 DataContext 来标识。DataContext 标识允许从一个数据驱动的位置移动到另一个位置。 + + + + +与行为的范围对应的依赖属性。有关更多详细信息,请参阅 FluidMoveScope。 + + + + +与行为的活动状态对应的依赖属性。 + + + + +依赖属性,能够将元素用作其自己的标记或元素绑定。 + + + + +UsaBindingAsTag 为 true 时要添加到绑定的额外路径的依赖属性。 + + + + +用于检测容器之间的元素运动的标识标记。 + + + + +指示行为是只应用于此元素,还是应用于此元素的所有子元素(如果此元素是面板的话)。 + + + + +指示行为当前是否处于活动状态。 + + + + +指明是将元素用作其自己的标记,还是将元素绑定用作该标记。 + + + + +当指定 TagType 时要添加到绑定的额外路径。 + + + + +用于存储属于标记项目的所有相关数据的专用结构。 + + + + +一种行为,此行为监视一个或一组元素的布局更改,并在必要时将元素平滑地移到新位置。此行为并不动态显示元素的大小或可见性;它仅动态显示元素在其父容器中的偏移。 + + + + +与移动的持续时间对应的依赖属性。 + + + + +与即将加载对象时使用的标记类型相对应的依赖属性。 + + + + +UsaBindingAsTag 为 true 时要添加到绑定的额外路径的依赖属性。 + + + + +用于检测容器之间的元素运动的标识标记。 + + + + +FloatAbove 标志的依赖属性。 + + + + +与要用于移动的水平分量的 EasingFunction 对应的依赖属性。 + + + + +与要用于移动的垂直分量的 EasingFunction 对应的依赖属性。 + + + + +记住所使用的弹出菜单/修饰工具,以防 FloatAbove 为 true 时元素在容器间运动。 + + + + +浮动弹出菜单时使用的不透明度高速缓存。 + + + + +标记动画转换。 + + + + +移动的持续时间。 + + + + +生成该项目的点。 + + + + +当指定 TagType 时要添加到绑定的额外路径。 + + + + +一个指明更改容器时是否允许元素在其容器(在弹出菜单或修饰工具中)上方浮动的标志。 + + + + +用于移动的水平分量的 EasingFunction。 + + + + +用于移动的垂直分量的 EasingFunction。 + + + + +简单的帮助程序类,允许将任何 UIElements 用作 Adorner。 + + + + +一项操作,它在被调用时会将 FrameworkElement 转换为指定的 VisualState。 + + +如果设置 TargetName 属性,则此操作将尝试更改目标元素的状态。否则,它将遍历元素树,以尝试查找定义状态的另一个目标。ControlTemplate 和 UserControl 是两种常见的可能性。 + + + + +在目标更改时被调用。如果未设置 TargetName 属性,则此操作具有自定义行为。 + + + +无法找到具有状态的合适 FrameworkElement。 + + + +在满足某些条件并且调用该操作时,会调用此方法。 + + +无法将目标更改为指定的 StateName。 + + + +确定是否使用 VisualTransition 在状态之间进行过渡。 + + + + +VisualState 的名称。 + + + + +由键盘事件触发的触发器。如果检测到目标按键和修改键,它将触发。 + + + + +必须按下以便让触发器触发的按键。 + + + + +必须处于活动状态以便让触发器触发的修改键(默认为未按下任何修改键)。 + + + + +如果为 true,则触发器仅侦听其触发器的源对象,这意味着元素必须具有焦点才能让触发器触发。如果为 false,则触发器在根部侦听,因此,将捕捉任何未处理的 KeyDown/Up 消息。 + + + + +确定是否侦听 KeyDown 或 KeyUp 事件。 + + + + +一项操作,它将启动进程以打开文件或 Uri。对于文件,此操作将为给定的文件扩展名启动默认的程序。Uri 将在 Web 浏览器中打开。 + + + + +在满足某些条件并且调用该操作时,会调用此方法。 + + + + + +要打开的文件或 Uri。 + + + + +重定位附加的元素,以响应鼠标在元素上的拖动姿势。 + + + + +与拖动的元素的 X 位置(相对于根元素的左侧)对应的依赖属性。 + + + + +与拖动的元素的 Y 位置(相对于根元素的顶部)对应的依赖属性。 + + + + +与 ConstrainToParentBounds 属性对应的依赖属性。如果为 true,则拖动的元素将被约束为停留在其父容器的边界内。 + + + + +尝试将关联元素的位置更新为指定的坐标。 + +在根坐标中所需的元素位置。 + + + +将相对位置转换应用于关联的元素。 + +所需的转换在根坐标中的 X 分量。 +所需的转换在根坐标中的 Y 分量。 + + + +将给定的转换应用于关联元素的 RenderTransform。 + +转换在父坐标中的 X 分量。 +转换在父坐标中的 Y 分量。 + + + +对指定的转换进行递归深层复制。 + +要克隆的转换。 +指定的转换的深层复制,如果指定的转换为 null,则为 null。 +在不能识别转换类型的情况下引发。 + + + +根据当前呈现的关联元素位置更新 X 和 Y 属性。 + + + + +检查一个矩形是否包含另一个矩形。 + +包含另一个矩形的矩形。 +被包含的矩形。 +如果矩形 1 包含矩形 2,则为 True;否则为 False + + + +作为矢量转换。 + +转换本身。 +矢量的 X 分量。 +矢量的 Y 分量。 +一个点,它包含被转换作为矢量转换的 X 和 Y 的值。 + + + +获得转换偏移。 + +转换本身。 +转换的偏移。 + + + +在行为附加到 AssociatedObject 后调用。 + +替代它以便将功能挂钩到 AssociatedObject。 + + + +在行为与其 AssociatedObject 分离时(但在它实际发生之前)调用。 + +替代它以便将功能从 AssociatedObject 中解除挂钩。 + + + +在开始拖动姿势时发生。 + + + + +在处理拖动姿势的更新时发生。 + + + + +在完成拖动姿势时发生。 + + + + +获得或设置拖动的元素的 X 位置(相对于根元素的左侧)。这是依赖属性。 + + + + +获得或设置拖动的元素的 Y 位置(相对于根元素的顶部)。这是依赖属性。 + + + + +获取或设置一个值,此值指示是否将拖动的元素约束为停留在其父容器的边界内。这是依赖属性。 + + + 如果应将拖动的元素约束为停留在其父容器的边界内,则为 True,否则为 False。 + + + + +获取关联的元素在屏幕上的位置(在根坐标中)。 + +关联的元素在屏幕上的位置(在根坐标中)。 + + + +获得在元素坐标中的元素边界。 + +在元素坐标中的元素边界。 + + + +获得关联对象的父元素。 + +关联对象的父元素。 + + + +获得关联的对象所在的场景的根元素。 + +关联的对象所在的场景的根元素。 + + + +获取和设置关联的元素的 RenderTransform。 + + + + +一项将播放表示完成的声音的操作。 + + +此操作旨在与无需停止或控制的短暂声音效果配合使用。如果您尝试创建音乐播放器或游戏,它可能无法满足您的需求。 + + + + +初始化 类的新实例。 + + + + +在调用该操作时,此方法用于自定义动态创建的 MediaElement。 + + +此方法对于想扩展 PlaySoundAction 的操作设计者可能很有用。如果您想控制 MediaElement Balance 属性,则可以从 PlaySoundAction 继承并替代此方法。 + + + + + +在满足一些条件并且应调用该操作时,会调用此方法。 + + +每次调用该操作都会播放新的声音。虽然此实现可能会有更改,但调用者应预计到这将创建新的 MediaElement,该元素在声音播放完毕或媒体未能播放时将被清除。 + + + + + +定义声音文件位置的 Uri。这用于设置 MediaElement 的源属性。这是依赖属性。 + + +声音可以是 MediaElement 支持的任何文件格式。对于视频,它将只播放音频部分。 + + + + +控制音量。这用于设置 MediaElement 的 Volume 属性。这是依赖属性。 + + + + +一项操作,它在被调用时将从树中删除目标元素。 + + +此操作可能失败。此操作了解如何从公共父级中删除元素,但不了解如何从自定义集合中删除元素,也不了解可视化树的直接操作。 + + + + +一项将更改数据存储对象中的属性值的操作。此类与 ChangePropertyAction 相同。唯一的差别就是会为此操作加载数据存储选取器。 + + + + +一个提供将情节提要确定为目标的能力的抽象类。 + + +对于操作设计者,此类提供将情节提要确定为目标的标准方法。设计工具可能会选择为从此操作继承的类提供特别的编辑体验,从而改善设计者的体验。 + + + + +在更改 Storyboard 属性时会调用此方法。 + + + + + +目标情节提要。这是依赖属性。 + + + + +一项操作,它在被调用时将更改目标情节提要的状态。 + + + + +在满足一些条件并且应调用该操作时,会调用此方法。此方法将尝试按照 ControlStoryboardOption 定义的方式更改目标情节提要。 + + + + + +一个提供将情节提要确定为目标的能力的抽象类。 + + +对于触发器设计者,此类提供将情节提要确定为目标的标准方法。设计工具可能会选择为从此触发器继承的类提供特别的编辑体验,从而改善设计者的体验。 + + + + +在更改 Storyboard 属性时会调用此方法。 + + + + +目标情节提要。这是依赖属性。 + + + + +侦听情节提要完成状态的触发器。 + + + + +初始化 类的新实例。 + + + + +一个触发器,它由在其源上发生的指定事件触发,并且在触发该事件后延迟一段时间才触发。 + + + + +初始化 类的新实例。 + + + + +获得或设置在刻度线之间等待的毫秒数。这是依赖属性。 + + + + +获取或设置在完成触发器之前要触发的刻度线总数。这是依赖属性。 + + + + +定义一个过渡效果着色器,此着色器使用 0 与 1 之间的内插值从一个视觉对象过渡到另一个视觉对象。 + + + + +转变为着色器中的取样器属性的画笔值属性。代表处于过渡的最终状态的图像。 + + + + +转变为着色器中的取样器属性的画笔值属性。代表处于过渡的初始状态的图像。 + + + + +与进度对应的作为后备存储的依赖属性。也用于表示从始到终的过渡的状态(范围介于 0 到 1 之间)。 + + + + +使用 的当前值对其创建可修改的克隆(深层复制)。 + + + + +对过渡效果进行深层复制。在 Silverlight 中实现 CloneCurrentValue。 + +过渡效果的当前实例的克隆。 + + + +将着色器的变量更新为默认值。 + + + + +获取或设置着色器内的 Input 变量。 + + + + +获取或设置着色器内的 OldImage 变量。 + + + + +获取或设置着色器内的 Progress 变量。 + + + + +允许用户使用常用的触控笔势转换、缩放和旋转连接的对象。 + + + + +在行为附加到 AssociatedObject 后调用。 + +替代它以便将功能挂钩到 AssociatedObject。 + + + +在行为与其 AssociatedObject 分离时(但在它实际发生之前)调用。 + +替代它以便将功能从 AssociatedObject 中解除挂钩。 + + + +获取或设置一个值,该值指定要支持哪些缩放和转换变量。 + + + + +获取或设置一个数字,该数字说明转换速度的降低率。 + + + + +获取或设置一个数字,该数字说明旋转速度的降低率。 + + + + +获取或设置一个值,该值指示是否将连接的对象的缩放和转换位置限制在父对象的边界内。 + + + + +获取或设置指示最小允许缩放值的数字。 + + + + +获取或设置指示最大允许缩放值的数字。 + + + + +此类为使用 VisualStateManager 提供各种平台不可知的标准操作。 + + + + +在控件的两种状态之间过渡。 + +要在状态之间进行过渡的元素。 +要过渡到的状态。 +如果要使用 System.Windows.VisualTransition 在状态之间进行过渡,则为 true;否则为 false。 +如果控件已成功过渡为新状态,则为 true;否则为 false。 +控件为 null。 +StateName 为 null。 + + + +获取 VisualStateManager.VisualStateGroups 附加属性的值。 + +要从中获取 VisualStateManager.VisualStateGroups 的元素。 + + + + +查找包含可视状态的最近的父项。 + +要从中查找最近的状态控件的元素。 +如果为 true,则为最近的状态控件;否则为 null。 +如果父项包含可视状态,则为 true;否则为 false。 + + + +强类型的资源类,用于查找本地化的字符串等。 + + + + +返回此类使用的已缓存 ResourceManager 实例。 + + + + +为使用此强类型资源类进行的所有资源查找替代当前线程的 CurrentUICulture 属性。 + + + + +查找类似于以下内容且与预期签名匹配的本地化字符串:在类型“{1}”的对象上找不到名为“{0}”的方法。 + + + + +查找类似于以下内容的本地化字符串:在类型“{0}”上找到了多个可能的加法运算符。 + + + + +查找类似于以下内容的本地化字符串:无法针对类型为“{0}”的目标动态显示属性更改。只能针对从 DependencyObject 中派生的类型动态显示属性更改。 + + + + +查找类似于以下内容的本地化字符串:在类型“{1}”上找不到名为“{0}”的属性。 + + + + +查找类似于以下内容的本地化字符串:如果设置 Duration 属性,则无法将 Increment 属性设置为 True。 + + + + +查找类似于以下内容的本地化字符串:属性“{0}”无法递增,因为无法读取其值。 + + + + +查找类似于以下内容的本地化字符串:无法将类型“{0}”的值分配到类型“{2}”的属性“{1}”。只能将类型“{2}”的值分配给“{1}”属性。 + + + + +查找类似于以下内容的本地化字符串:类型“{1}”所定义的属性“{0}”不公开设置方法,因此无法修改。 + + + + +查找类似于以下内容的本地化字符串:在类型“{1}”上找不到名为“{0}”的状态。请确保该状态存在并且可以从此上下文中被访问。 + + + + +查找类似于以下内容的本地化字符串:目标 {0} 不定义任何 VisualStateGroups。 . + + + + +查找类似于以下内容的本地化字符串:类型为“{0}”的 LeftOperand 无法与运算符“{1}”结合使用。 + + + + +查找类似于以下内容的本地化字符串:类型为“{1}”的 LeftOperand 和类型为“{0}”的 RightOperand 无法与运算符“{2}”结合使用。 + + + + +查找类似于以下内容的本地化字符串:类型为“{0}”的 RightOperand 无法与运算符“{1}”结合使用。 + + + + +查找类似于以下内容的本地化字符串:不支持 RemoveElementAction 的目标。 + + + + diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/zh-Hans/Microsoft.Expression.Prototyping.Interactivity.resources.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/zh-Hans/Microsoft.Expression.Prototyping.Interactivity.resources.dll new file mode 100644 index 0000000..e8b9370 Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/zh-Hans/Microsoft.Expression.Prototyping.Interactivity.resources.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/zh-Hans/System.Windows.Interactivity.resources.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/zh-Hans/System.Windows.Interactivity.resources.dll new file mode 100644 index 0000000..3f37822 Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/zh-Hans/System.Windows.Interactivity.resources.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/zh-Hans/System.Windows.Interactivity.xml b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/zh-Hans/System.Windows.Interactivity.xml new file mode 100644 index 0000000..7362f24 --- /dev/null +++ b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/zh-Hans/System.Windows.Interactivity.xml @@ -0,0 +1,1046 @@ + + + + System.Windows.Interactivity + + + + +代表具有共享的 AssociatedObject 的 IAttachedObject 的集合,并且在该 AssociatedObject 更改时向集合的内容提供更改通知。 + + + + +供可以附加到另一个对象的对象使用的接口。 + + + + +附加到指定的对象。 + +要附加到的对象。 + + + +将此实例与其关联的对象分离。 + + + + +获得关联的对象。 + +关联的对象。 +代表此实例附加到的对象。 + + + +初始化 类的新实例。 + +内部,因为这不应在此程序集的外部被继承。 + + + +在将集合附加到 AssociatedObject 后立即调用。 + + + + +在集合与其 AssociatedObject 分离时(但在它实际发生之前)调用。 + + + + +在将新项目添加到集合中时调用。 + +新项目。 + + + +在从集合中删除项目时调用。 + +删除的项目。 + + +无法将此实例多次添加到集合中。 + + + +附加到指定的对象。 + +要附加到的对象。 +IAttachedObject 已附加到另一个对象。 + + + +将此实例与其关联的对象分离。 + + + + +在其上承载集合的对象。 + + + + +获得关联的对象。 + +关联的对象。 + + + +将状态信息和零个或更多个 ICommand 封装到一个可附加的对象中。 + + 可附加到的类型。 + + Behavior 是用于向对象提供可附加的状态和命令的基类。Behavior 可以附加到的类型可以由泛型参数来控制。替代 OnAttached() 和 OnDetaching() 方法,以挂钩和解除挂钩来自 AssociatedObject 的任何必要处理程序。 + + + + +将状态信息和零个或更多个 ICommand 封装到一个可附加的对象中。 + +这是基础结构类。行为设计者应从 Behavior<T> 而不是从此类中派生。 + + + +在行为附加到 AssociatedObject 后调用。 + +替代它以便将功能挂钩到 AssociatedObject。 + + + +在行为与其 AssociatedObject 分离时(但在它实际发生之前)调用。 + +替代它以便将功能从 AssociatedObject 中解除挂钩。 + + + +附加到指定的对象。 + +要附加到的对象。 +已在另一个元素上承载 Behavior。 +dependencyObject 未满足 Behavior 类型约束的要求。 + + + +将此实例与其关联的对象分离。 + + + + +可将此行为附加到的类型。 + + + + +获得此行为附加到的对象。 + + + + +获得关联的对象。 + +关联的对象。 + + + +初始化 类的新实例。 + + + + +获得此 附加到的对象。 + + + + +代表具有共享的 AssociatedObject 的行为的集合,并且在该 AssociatedObject 更改时向集合的内容提供更改通知。 + + + + +初始化 类的新实例。 + +内部,因为这不应在此程序集的外部被继承。 + + + +在将集合附加到 AssociatedObject 后立即调用。 + + + + +在集合与其 AssociatedObject 分离时(但在它实际发生之前)调用。 + + + + +在将新项目添加到集合中时调用。 + +新项目。 + + + +在从集合中删除项目时调用。 + +删除的项目。 + + + +创建 BehaviorCollection 的新实例。 + +新实例。 + + + +为可重用的属性值编辑器枚举可能的值。 + + + + +在设计时使用元素选取器(如果支持的话)编辑此属性。 + + + + +在设计时使用情节提要选取器(如果支持的话)编辑此属性。 + + + + +在设计时使用状态选取器(如果支持的话)编辑此属性。 + + + + +在设计时使用元素绑定选取器(如果支持的话)编辑此属性。 + + + + +在设计时使用属性绑定选取器(如果支持的话)编辑此属性。 + + + + +将给定的编辑器类型与在其上应用 CustomPropertyValueEditor 的属性相关联。 + +使用此属性改善在设计时对指示元素(按名称)、情节提要或状态(按名称)的属性进行的编辑。 + + + +初始化 类的新实例。 + +自定义属性值编辑器。 + + + +获得或设置自定义属性值编辑器。 + +自定义属性值编辑器。 + + + +提供有关为给定的操作或命令实例化哪种 的设计工具信息。 + + + + +初始化 类的新实例。 + +此属性应用于的类型。 +要实例化的 的类型。 +指定的 的单个参数。 + 未从 TriggerBase 派生。 +如果指定的 具有单个参数,则此构造函数很有用。所获得的代码将与 CLS 兼容。 + + + +初始化 类的新实例。 + +此属性应用于的类型。 +要实例化的 的类型。 +指定的 的构造函数参数。 + 未从 TriggerBase 派生。 + + + +实例化此实例。 + +DefaultTriggerAttribute 指定的 + + + +获得此 DefaultTriggerAttribute 应用于的类型。 + +此 DefaultTriggerAttribute 应用于的类型。 + + + +获得要实例化的 的类型。 + +要实例化的 的类型。 + + + +获得要传递给 构造函数的参数。 + +要传递给 构造函数的参数。 + + + +此方法将使用 VisualTreeHelper.GetParent 方法沿可视树执行深度优先搜索,并返回指定对象的所有上级,包括对象本身。 + +可视化树中要查找其上级的对象。 +返回本身以及可视化树中的所有上级。 + + + +EventObserver 旨在通过释放时进行分离来帮助管理事件处理程序。如果创建此对象,则也将在构造函数中附加。 + + + + +针对提供的目标创建 EventObserver 的实例并附加到提供的事件。调用释放功能以进行分离。 + +要附加以及从中分离的事件。 +定义事件时所针对的目标对象。如果方法是静态的,则为 Null。 +要附加到事件的委托。 + + + +将处理程序与事件分离。 + + + + +一个触发器,它侦听其源上的指定事件,并且在触发该事件时触发。 + + + + +代表一个触发器,它可以侦听不同于其 AssociatedObject 的元素。 + +此触发器可以关联的类型。 + + EventTriggerBase 扩展 TriggerBase,以添加与它附加到的对象不同的其他对象的知识。这允许用户将触发器/操作对附加到一个元素,并调用此操作以响应位于别的地方的其他对象中的更改。替代 OnSourceChanged 以挂钩或解除挂钩源元素上的处理程序,并为关联的元素替代 OnAttached/OnDetaching。源元素的类型可以由泛型类型参数约束。如果需要控制 AssociatedObject 的类型,请在派生类型上设置 TypeConstraintAttribute。 + + + + +代表一个触发器,它可以侦听不同于其 AssociatedObject 的对象。 + +这是基础结构类。触发器设计者应从 EventTriggerBase<T> 而不是从此类中派生。 + + + +代表可以有条件地调用操作的对象。 + +这是基础结构类。触发器设计者应从 Trigger<T> 而不是从此类中派生。 + + + +调用与此触发器关联的所有操作。 + +派生类应调用此方法以触发触发器。 + + + +在触发器附加到 AssociatedObject 后调用。 + + + + +在触发器与其 AssociatedObject 分离时(但在它实际发生之前)调用。 + + + + +创建 TriggerBase 派生类的新实例。 + +新实例。 + + + +附加到指定的对象。 + +要附加到的对象。 +无法同时在多个对象上承载相同的触发器。 +dependencyObject 未满足触发器类型约束的要求。 + + + +将此实例与其关联的对象分离。 + + + + +获得触发器附加到的对象。 + +关联的对象。 + + + +获得关联的对象的类型约束。 + +关联的对象的类型约束。 + + + +获得与此触发器关联的操作。 + +与此触发器关联的操作。 + + + +用于向 PreviewInvoke 注册的事件处理程序。 + + + + +获得关联的对象。 + +关联的对象。 + + + +指定此 EventTriggerBase 所侦听的事件的名称。 + + + + + +在触发与此 EventTriggerBase 关联的事件时调用。默认情况下,这将在触发器上调用所有操作。 + +包含事件数据的 实例。 +替代它以便提供有关何时将调用与此触发器关联的操作的更细致控制。 + + + +在源更改时调用。 + +旧的源。 +新的源。 +应在派生类中替代此函数,以便将功能挂钩到更改的源对象和将功能从这些对象中解除挂钩。 + + + +在触发器附加到 AssociatedObject 后调用。 + + + + +在触发器与其 AssociatedObject 分离时(但在它实际发生之前)调用。 + + + +无法在目标上找到 eventName。 + + + +获得关联的对象的类型约束。 + +关联的对象的类型约束。 +在派生类型上定义 TypeConstraintAttribute,以约束它可能附加到的类型。 + + + +获得源类型约束。 + +源类型约束。 + + + +获取或设置目标对象。如果未设置 TargetObject,则目标将查找 TargetName 指定的对象。如果找不到 TargetName 引用的元素,则目标将默认为 AssociatedObject。这是依赖属性。 + +目标对象。 + + + +获得或设置此 EventTriggerBase 作为源侦听的元素的名称。如果未设置或无法解析名称,则将使用 AssociatedObject。这是依赖属性。 + +源元素的名称。 + + + +获得解析的源。如果未设置或无法解析 ,则默认为 AssociatedObject。 + +解析的源对象。 +通常,在派生类中应使用此属性来取代 AssociatedObject。 + 所指向的元素未满足类型约束的要求。 + + + +初始化 类的新实例。 + + + + +在源属性更改时调用。 + +替代它以便将功能挂钩到指定的源(而不是 AssociatedObject)以及将功能从此源中解除挂钩。 +旧的源。 +新的源。 + + + +获得解析的源。如果未设置或无法解析 ,则默认为 AssociatedObject。 + +解析的源对象。 +通常,在派生类中应使用此属性来取代 AssociatedObject。 + + + +初始化 类的新实例。 + + + + +初始化 类的新实例。 + +事件的名称。 + + + +获得或设置要侦听的事件的名称。这是依赖属性。 + +事件的名称。 + + + +拥有 Triggers 和 Behaviors 附加属性的静态类。处理 AssociatedObject 更改通知的传播。 + + + + +此属性用作公共的 Triggers 附加属性的内部后备存储。 + + +此属性未公开。这迫使客户端使用 GetTriggers 和 SetTriggers 方法来访问集合,从而确保集合存在并且在使用它之前对它进行设置。 + + + + +此属性用作公共的 Behaviors 附加属性的内部后备存储。 + + +此属性未公开。这迫使客户端使用 GetBehaviors 和 SetBehaviors 方法来访问集合,从而确保集合存在并且在使用它之前对它进行设置。 + + + + +获得包含与指定对象关联的触发器的 TriggerCollection。 + +通过其检索触发器的对象。 +包含与指定对象关联的触发器的 TriggerCollection。 + + + +获得与指定对象关联的 。 + +通过其检索 的对象。 +包含与指定对象关联的行为的 + + +无法同时在多个对象上承载相同的 BehaviorCollection。 + + +无法同时在多个对象上承载相同的 TriggerCollection。 + + + +帮助程序函数,用来取代 FrameworkElement.IsLoaded,因为此属性在 Silverlight 中不可用。 + +所关注的元素。 +如果已加载此元素,则为 true,否则为 False。 + + + +获得或设置一个值,它指示是否好像在设计模式下运行。 + + + 如果应在设计模式下运行,则为 True,否则为 False。 + +不在单元测试之外使用。 + + + +调用时执行指定的 ICommand。 + + + + +代表封装功能单元的可附加对象。 + +可将此操作附加到的类型。 + + + +代表封装功能单元的可附加对象。 + +这是基础结构类。操作设计者应从 TriggerAction<T> 而不是从此类中派生。 + + + +尝试调用操作。 + +操作的参数。如果操作不需要参数,则可以将参数设置为空引用。 + + + +调用操作。 + +操作的参数。如果操作不需要参数,则可以将参数设置为空引用。 + + + +在操作附加到 AssociatedObject 后调用。 + + + + +在操作与其 AssociatedObject 分离时(但在它实际发生之前)调用。 + + + + +当在派生类中实现时,创建 派生类的新实例。 + +新实例。 + + + +附加到指定的对象。 + +要附加到的对象。 +无法同时在多个对象上承载相同的 TriggerAction。 +dependencyObject 未满足 TriggerAction 类型约束的要求。 + + + +将此实例与其关联的对象分离。 + + + + +获得或设置一个值,该值指示此操作在被调用时是否将运行。这是依赖属性。 + + + 如果此操作在被调用时将运行,则为 True,否则为 False。 + + + + +获取此操作附加到的对象。 + +关联的对象。 + + + +获得关联的对象的类型约束。 + +关联的对象的类型约束。 + + + +获得或设置一个指示是否附加此实例的值。 + +如果附加此实例,则为 True,否则为 False + + + +获得关联的对象。 + +关联的对象。 + + + +初始化 类的新实例。 + + + + +获得此 附加到的对象。 + +关联的对象。 + + + +获得关联的对象的类型约束。 + +关联的对象的类型约束。 + + + +调用操作。 + +操作的参数。如果操作不需要参数,则可以将参数设置为空引用。 + + + +获得或设置此操作应调用的命令的名称。 + +此操作应调用的命令的名称。 +如果设置了此属性和 Command 属性,则此属性将被后者所取代。 + + + +获取或设置此操作应调用的命令。这是依赖属性。 + +要执行的命令。 +如果设置了此属性和 CommandName 属性,则此属性将优先于后者。 + + + +获得或设置命令参数。这是依赖属性。 + +命令参数。 +这是传递给 ICommand.CanExecute 和 ICommand.Execute 的值。 + + + +提供有关在解析名称更改时影响到哪些对象的数据。 + + + + +帮助程序类,用于处理此逻辑:根据主机元素提供的上下文,将 TargetName 解析为 Target 元素。 + + + + +尝试通过在名称范围引用元素的上下文中的名称来更新所解析的对象。 + +旧的解析对象。 + +重设现有的目标,并尝试通过当前主机的上下文解析当前的 TargetName。如果它无法通过主机的上下文进行解析,它将继续沿着可视化树向上,直至获得解析为止。如果在它到达根部时尚未获得解析,则它将 Target 设置为 NULL,并在 Debug 输出中写入警告消息。 + + + + +在所解析的元素更改时发生。 + + + + +获得或设置要尝试解析的元素的名称。 + +要尝试解析的名称。 + + + +所解析的对象。如果 TargetName 为 NULL 或为空,或者如果未尝试进行解析,则将返回引用元素。 + + + + +获得或设置通过其执行名称解析的引用元素。 + +引用元素。 + + + +获得或设置一个值,它指示是否挂起引用元素的加载。 + + + 如果挂起引用元素的加载,则为 True,否则为 False。 + + +如果未加载主机,则将无法解析名称。在这种情况下,延迟解析并利用此属性跟踪该事实。 + + + + +代表一项操作,可以将该操作确定为目标以影响不同于其 AssociatedObject 的对象。 + +有关目标的类型约束。 + + TargetedTriggerAction 扩展 TriggerAction,以添加与它附加到的元素不同的其他元素的知识。这允许用户在与操作附加到的元素不同的元素上调用操作,以响应触发器的触发。替代 OnTargetChanged 以挂钩或解除挂钩目标元素上的处理程序,并为关联的元素替代 OnAttached/OnDetaching。目标元素的类型可以由泛型类型参数约束。如果需要控制 AssociatedObject 的类型,请在派生类型上设置 TypeConstraintAttribute。 + + + + +代表一项操作,可以将该操作确定为目标以影响不同于其 AssociatedObject 的对象。 + +这是基础结构类。操作设计者应从 TargetedTriggerAction<T> 而不是从此类中派生。 + + + +在目标更改时被调用。 + +旧的目标。 +新的目标。 +应在派生类中替代此函数,以便将功能挂钩到更改的源对象和将功能从这些对象中解除挂钩。 + + + +在操作附加到 AssociatedObject 后调用。 + + + + +在操作与其 AssociatedObject 分离时(但在它实际发生之前)调用。 + + + + +获取或设置目标对象。如果未设置 TargetObject,则目标将查找 TargetName 指定的对象。如果找不到 TargetName 引用的元素,则目标将默认为 AssociatedObject。这是依赖属性。 + +目标对象。 + + + +获取或设置此操作的目标对象的名称。如果设置 Target,则此属性会被忽略。如果未设置 Target,并且未设置或无法解析 TargetName,则目标将默认为 AssociatedObject。这是依赖属性。 + +目标对象的名称。 + + + +获得目标对象。如果设置 TargetObject,则返回 TargetObject。如果未设置或无法解析 TargetName,则默认为 AssociatedObject。 + +目标对象。 +通常,在派生类中应使用此属性来取代 AssociatedObject。 +目标元素未满足类型约束的要求。 + + + +获得关联的对象的类型约束。 + +关联的对象的类型约束。 +在派生类型上定义 TypeConstraintAttribute,以约束它可能附加到的类型。 + + + +获得目标的类型约束。 + +目标的类型约束。 + + + +初始化 类的新实例。 + + + + +在目标属性更改时被调用。 + +替代它以便在指定的目标(而不是 AssociatedObject)上挂钩和解除挂钩功能。 +旧的目标。 +新的目标。 + + + +获得目标对象。如果未设置或无法解析 TargetName,则默认为 AssociatedObject。 + +目标。 +通常,在派生类中应使用此属性来取代 AssociatedObject。 + + + +代表具有共享的 AssociatedObject 的操作的集合,并且在该 AssociatedObject 更改时向集合的内容提供更改通知。 + + + + +初始化 类的新实例。 + +内部,因为这不应在此程序集的外部被继承。 + + + +在将集合附加到 AssociatedObject 后立即调用。 + + + + +在集合与其 AssociatedObject 分离时(但在它实际发生之前)调用。 + + + + +在将新项目添加到集合中时调用。 + +新项目。 + + + +在从集合中删除项目时调用。 + +删除的项目。 + + + +创建 TriggerActionCollection 的新实例。 + +新实例。 + + + +代表可以有条件地调用操作的对象。 + +可将此触发器附加到的类型。 + + TriggerBase 是用于控制操作的基类。替代 OnAttached() 和 OnDetaching(),以便在 AssociatedObject 上挂钩和解除挂钩处理程序。可以通过指定泛型参数来约束派生的 TriggerBase 可以附加到的类型。调用 InvokeActions() 以触发与此 TriggerBase 关联的所有操作。 + + + + +初始化 类的新实例。 + + + + +获得触发器附加到的对象。 + +关联的对象。 + + + +获得关联的对象的类型约束。 + +关联的对象的类型约束。 + + + +传递给 PreviewInvoke 事件的参数。如果将“取消”指定为 true,则将取消调用触发器。 + +这是基础结构类。附加到触发器基对象的行为可以将其行为作为侦听器添加到 TriggerBase.PreviewInvoke 中。 + + + +代表具有共享的 AssociatedObject 的触发器的集合,并且在该 AssociatedObject 更改时向集合的内容提供更改通知。 + + + + +初始化 类的新实例。 + +内部,因为这不应在此程序集的外部被继承。 + + + +在将集合附加到 AssociatedObject 后立即调用。 + + + + +在集合与其 AssociatedObject 分离时(但在它实际发生之前)调用。 + + + + +在将新项目添加到集合中时调用。 + +新项目。 + + + +在从集合中删除项目时调用。 + +删除的项目。 + + + +创建 的新实例。 + +新实例。 + + + +指定有关 TargetedTriggerAction 和 EventTriggerBase 的 AssociatedObject 的类型约束。 + + + + +初始化 类的新实例。 + +约束类型。 + + + +获得约束类型。 + +约束类型。 + + + +强类型的资源类,用于查找本地化的字符串等。 + + + + +返回此类使用的已缓存 ResourceManager 实例。 + + + + +为使用此强类型资源类进行的所有资源查找替代当前线程的 CurrentUICulture 属性。 + + + + +查找类似于以下内容的本地化字符串:无法在多个对象上设置同一个 BehaviorCollection。 + + + + +查找类似于以下内容的本地化字符串:行为实例无法一次附加到多个对象。 + + + + +查找类似于以下内容的本地化字符串:无法同时在多个 TriggerCollections 中主持 TriggerAction 实例。在将 TriggerAction 实例添加到另一个 TriggerCollection 前请从当前 TriggerCollection 中删除该实例。 + + + + +查找类似于以下内容的本地化字符串:无法在多个对象上设置同一个 TriggerCollection。 + + + + +查找类似于以下内容的本地化字符串:触发器实例无法一次附加到多个对象。 + + + + +查找类似于以下内容的本地化字符串:命令“{0}”不存在或还未在 {1} 上公布。 + + + + +查找类似于以下内容的本地化字符串:“{0}”不是 TriggerType 参数的有效类型。请确保“{0}”是从 TriggerBase 派生。 + + + + +查找类似于以下内容的本地化字符串:无法将“{0}”的同一实例多次添加到“{1}”。 + + + + +查找类似于以下内容的本地化字符串:类型“{1}”上的事件“{0}”没有兼容的签名。请确保该事件是公共事件并且满足 EventHandler 委托的要求。 + + + + +查找类似于以下内容的本地化字符串:在类型“{1}”上找不到名为“{0}”的事件。 + + + + +查找类似于以下内容的本地化字符串:类型“{0}”的对象不能具有类型“{1}”的 {3} 属性。类型“{0}”的实例只能具有类型“{2}”的 {3} 属性。 + + + + +查找类似于以下内容的本地化字符串:无法将类型“{0}”附加到类型“{1}”。类型“{0}”的实例只能附加到类型“{2}”的对象。 + + + + +查找类似于以下内容的本地化字符串:无法解析 TargetName“{0}”。 + + + + diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/zh-Hant/Microsoft.Expression.Controls.xml b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/zh-Hant/Microsoft.Expression.Controls.xml new file mode 100644 index 0000000..eb5febb --- /dev/null +++ b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/zh-Hant/Microsoft.Expression.Controls.xml @@ -0,0 +1,538 @@ + + + + Microsoft.Expression.Controls + + + + +在聚合線條重複循環前呼叫。 + + + + +當 LayoutPath.Capacity 設為 Auto 時,計算使用的值。 + + + + +檢查聚合線條是否應繼續重複循環。 + + + + +在通過新的聚合線條前呼叫。 + + + + +在完成聚合線條時呼叫。 + +聚合線條中剩餘的弧線長度。 + + + +在成功完成步驟時呼叫。 + +實際的步距。如果已繞回到另一個聚合線條,此步距可能與 Step 不同。 + + + +使路徑面板的子項沿著指定的版面配置路徑分散。 + +路徑面板。 +pathPanel.LayoutPaths 中路徑的索引。 +這個路徑上所要配置之第一個子項的索引。 +下一個要散佈之子項的索引。若已傳回 childIndex,表示此函數未發生任何作用。 + + + +下一個要排列之子項的索引。 + + + + +用於版面配置的弧線長度距離。 + + + + +沿著目前聚合線條的弧線長度距離。 + + + + +排列在 LayoutPath 上的元素總數。 + + + + +使路徑面板的子項沿著版面配置路徑分散。平均分散表示路徑上所有元素中心間隔的弧線長度相等。 + + + + +指定已變更的路徑版面配置屬性。 + + + + +提供 事件的資料。 + + + + +初始化 類別的新例項。 + +事件的資料。 + + + +取得在 事件中變更的屬性。 + + + + +封裝更新 所需的資料。 + + + + +取得或設定排列元素之路徑的索引。 + + + + +取得或設定元素集合中某個元素的索引。 + + + + +取得或設定路徑上某個元素的索引。 + + + + +取得或設定與一組路徑之總長度成比例的元素位移。 + + + + +取得或設定與路徑長度成比例的元素位移。 + + + + +取得或設定在元素位置與路徑垂直的角度。 + + + + +如果元素朝向路徑,則取得或設定在元素位置與路徑垂直的角度。 + + + + +取得或設定是否將元素排列在路徑上。 + + + + +代表由 排列的元素。 + + +當元素已排列時,實作此介面可讓 設定這些屬性。此介面不適用於一般實作。 + + + + +根據指定的 更新 屬性,並引發 事件。 + +更新 所需的資料。 + + + +當一或多個 屬性變更時便會發生。 + + +每當沿著路徑的項目位置更新時,便會引發此事件。 上的屬性變更或 的變更都會導致此事件發生。 + + + + +取得排列項目之路徑的索引。 + + + + +取得項目集合中項目的索引。 + + + + +取得項目在其排列之路徑上的索引。 + + + + +取得與一組路徑之總長度成比例的項目位移。 + + + + +取得與項目排列之路徑長度成比例的項目位移。 + + + + +取得在項目位置與路徑垂直的角度。 + + + + +如果項目朝向路徑,則取得在項目位置與路徑垂直的角度。 + + + + +取得或設定是否將項目排列在路徑上。 + + + + +將代表是否要排列元素的 轉換成用來縮放元素的 值。 + + + + +在所有情況下擲回 例外。 + +正在傳送至來源的目標資料。 +來源物件預期之資料的 。 +在轉換器邏輯中使用的選用參數。 +轉換的文化特性。 +要傳送至來源物件的值。 + + + +將指定的 轉換為 。 + +正在傳送至目標的來源資料。 +目標相依性屬性預期之資料的 。 +在轉換器邏輯中使用的選用參數。 +轉換的文化特性。 +如果 為 true,則傳回 1。反之,則傳回 0。 + + + +指定 的分佈。 + + + + +指定 上元素的方向。 + + + + +指定在開放路徑上變更 的方法。 + + + + +描述元素排列的路徑。 + + + + +由於轉換會影響平面化,因此最理想的情況是在進行平面化之前建立貝茲曲線的快取。這項作業需要建立曲線的快取,然而我們對建立曲線快取的支援仍未盡完善。因此,我們會快取分佈策略中平面化的點,然後再視需要加以轉換。 + + + + +取得或設定定義路徑的元素。 + + + + +取得或設定項目是平均配置還是具有固定的邊框間距。 + + + + +取得或設定 上顯示的項目數上限。 + + + + +取得或設定兩個項目間 之弧線長度的距離 (以像素為單位)。 + + + + +取得或設定項目的方向。 + + + 支援此屬性,但 不支援。 + + + + +取得或設定與放置第一個項目之 起始處的距離。 + + + + +取得或設定參與版面配置的 百分比。 + + + + +取得或設定在開放路徑上變更 的方法。 + + + + +取得計算出來的容量。 + + + + +取得內容中的 是否有效。如果 是使用它的 之下階,則無效。 + + + + +使版面配置路徑的子項按照子項大小和子項間的指定邊框間距分散。子項間的弧線長度距離取決於邊框間距加上子系之週框方塊半徑總和。 + + + + +包含沿著一或多個路徑配置的項目清單。 + + + + +初始化 類別的新例項。 + + + + +建立用來顯示指定之項目的元素。 + +對應於指定之項目的 + + + +判斷指定之項目是否為 (或可成為) 自己的項目容器。 + +如果項目是自己的項目容器則為 true,否則為 false。 +指定的項目。 + + + +調整子元素的位置。 + +此物件排列其子元素時應該使用的大小。 +使用的實際大小。 + + + +取得或設定定義版面配置所用路徑的物件集合。 + + + + +取得或設定項目清單內使用的索引。 + + + + +取得或設定當 StartItemIndex 大於 0 時,項目索引是否會繞回到集合開頭。 + + + + +代表 中的項目。 + + + + +初始化 類別的新例項。 + + + + +如需此成員的說明,請參閱 。 + + + + +如需此成員的說明,請參閱 。 + + + + +如需此成員的說明,請參閱 。 + + + + +如需此成員的說明,請參閱 。 + + + + +如需此成員的說明,請參閱 。 + + + + +如需此成員的說明,請參閱 。 + + + + +如需此成員的說明,請參閱 。 + + + + +如需此成員的說明,請參閱 。 + + + + +如需此成員的說明,請參閱 。 + + + + +如需此成員的說明,請參閱 。 + + + + +沿著一或多個路徑排列子元素。 + + +在不需要選取時, 可作為 的替代項目。 不支援 屬性。 + + + + +初始化 類別的新例項。 + + + + +測量子元素所需大小。 + +此元素能提供給子元素的可用大小。 +此元素根據對子元素大小的計算結果,判斷它在版面配置期間需要的大小。 + + + +調整子元素的位置。 + +此物件排列其子元素時應該使用的大小。 +使用的實際大小。 + + + +將子項排列在 LayoutPath 上特定位置的指定索引處。 + +範圍介於 0 到 PathPanel.Count 的索引。 +排列子系之版面配置路徑的索引。 +版面配置路徑中的聚合線條。 +聚合線條上的位置。 +LayoutPath 上之子項的索引。 + + + +計算指定索引處之子項的週框圓圈半徑。 + +範圍介於 0 到 PathPanel.Count 的索引。 + + + +取得或設定定義版面配置所用路徑的物件集合。 + + + + +取得或設定項目清單內使用的索引。 + + + + +取得或設定當 大於 0 時,項目索引是否會繞回到集合開頭。 + + + + +已附加且未摺疊之 LayoutPaths 的子集。 + + + + +計算 PathPanel 即將配置的子項數量。如果 StartItemIndex > 0 且 WrapItems 為 false,則此數量可能小於 PathPanel.Children.Count。 + + + + +取得包含 ItemsControl 之容器的面板。 + +ItemsControl。 + +包含 ItemsControl 之容器的面板,如果找不到該面板則為 Null。 + + + 為 Null。 + + + + +透過接受初始值和用來擷取節點之子節點的函數,在樹狀目錄中周遊。 + +資料流的類型。 +初始節點。 +用來擷取節點之子節點的函數。 +述詞,該述詞會評估節點並傳回指出是否應在該節點與其子項中周遊的值。 +節點的資料流。 + + + +取得元素的視覺化樹狀目錄子項。 + +元素。 +元素的視覺化樹狀目錄子項。 + + 為 Null。 + + + + +取得元素的視覺化樹狀目錄子項和元素本身。 + +元素。 + +元素的視覺化樹狀目錄子項和元素本身。 + + + + +使用橫向優先搜尋來擷取基礎架構元素的所有邏輯子項。基於效能考量,此方法會以手動方式管理堆疊,而不使用遞迴方式。 + +父基礎架構元素。 +基礎架構元素的邏輯子項。 + + + +使用橫向優先搜尋來擷取基礎架構元素的所有邏輯下階。基於效能考量,此方法會以手動方式管理堆疊,而不使用遞迴方式。 + +父基礎架構元素。 +基礎架構元素的邏輯子項。 + + + diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/zh-Hant/Microsoft.Expression.Drawing.xml b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/zh-Hant/Microsoft.Expression.Drawing.xml new file mode 100644 index 0000000..37192f5 --- /dev/null +++ b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/zh-Hant/Microsoft.Expression.Drawing.xml @@ -0,0 +1,1631 @@ + + + + Microsoft.Expression.Drawing + + + + +呈現圖說文字圖形,此圖說文字圖形支援與圖說文字箭號組合的數種圖形。 + + + + +提供複合圖形的基底類別,此複合圖形衍生自 ,並可實作 。 + + + 可實作 介面,並可支援呈現和 類似的幾何圖形,不過該幾何圖形可在版面配置邊界之外呈現。 + +典型的實作會將自訂的預設範本放置在 generic.xaml 中,而 generic.xaml 可透過範本將大部分的圖形屬性繫結至 。它也會擴充 屬性,以自訂 的外觀。 + +此類別也支援和圖形一同顯示內容。 + + + + +提供介面以描述 Shape 的參數。 + + +此介面是 Shape 和 GeometrySource 用來通訊的資料。一般說來,IShape 的具體實作會實作此介面並將它傳送到 GeometrySource.UpdateGeometry(),接著再以唯讀資料提供者的方式使用圖形。 + + + + +提供定義 Shape 所需的介面。儘管基本圖形和複合圖形可能衍生自不同類型的 FrameworkElement,不過這兩者都需要和此介面相符。 + + + + +使 的幾何圖形失效。失效後, 會以非同步方式重新計算幾何圖形。 + + + +取得或設定指定圖形內部繪製方式的 +描述圖形內部繪製方式的 。預設值為 Null。 + + +取得或設定指定 外框繪製方式的 +指定 外框繪製方式的 + + +取得或設定 筆觸外框的寬度。 + 外框的寬度 (以像素為單位)。 + + +取得或設定 列舉值,其描述圖形填滿配置空間的方式。 +其中一個 列舉值。執行階段的預設值取決於 的型別。 + + + +取得由呈現引擎所呈現的已呈現幾何圖形。 + + + + +取得邏輯邊界和實際幾何邊界圖形之間的邊框間距。此值可以是正數 (如 中的情況) 或負數 (如 中的情況)。 + + + + +RenderedGeometry 變更時發生。 + + + + +藉由建立幾何圖形來源延伸圖形的繪製方式。 + + + + +使 的幾何圖形失效。失效後, 會以非同步方式重新計算幾何圖形。 + + + +針對 Silverlight 版面配置轉換的 Arrange 部分提供行為。類別可覆寫此方法以定義其專屬的 Arrange 轉換行為。 +將元素排列在版面配置時使用的實際大小。 +父項內的最終區域,此物件應使用此區域來排列本身與其子項。 + 當 Geometry 失效後, 會重新計算 Geometry 並更新 RenderedGeometry 和 GeometryMargin。 + + + +將字串內容轉換為 ,並加入置中對齊和多行支援。 + + +請使用 的範本繫結 (而非 ) 來啟用此方法。 + + + + +取得或設定指定圖形內部繪製方式的 。 + +描述圖形內部繪製方式的 + + +取得或設定指定 外框繪製方式的 +指定 外框繪製方式的 + + +取得或設定 筆觸外框的寬度。 + 外框的寬度 (以像素為單位)。 + + +取得或設定 列舉值,其描述圖形填滿配置空間的方式。 +其中一個 列舉值。 + + +取得或設定 列舉值,此列舉值描述 開頭的 + 列舉的值,此值指定 開頭的圖形。 + + +取得或設定 列舉值,此列舉值描述行尾的 +其中一個 列舉值。 + + +取得或設定 列舉值,此列舉值指定用於 端點的聯結類型。 +指定聯結外觀的 列舉值。 + + +取得或設定斜接角長度比例的限制,將比例限制為 元素之 的二分之一。 +斜接角長度相對於 元素之 的比例限制。此值一律是大於或等於 1 的正數。 + + +取得或設定一組 值,這些值表示用來勾勒圖形外框之虛線和空隙的圖樣。 +一組指定虛線和空隙之圖樣的 值。 + + +取得或設定指定虛線結尾繪製方式的 列舉值。 +其中一個 列舉值。預設值為 + + +取得或設定指定虛線圖樣中虛線開頭距離的 +表示虛線圖樣中虛線開頭距離的 。預設值為 0。 + + + +取得由呈現引擎所呈現的已呈現幾何圖形。 + + + + +取得邏輯邊界和實際幾何邊界圖形之間的邊框間距。此值可以是正數 (如 中的情況) 或負數 (如 中的情況)。 + + + + +取得或設定可將字串轉換為置中對齊多行 TextBlock 的內部內容。 + + + + +RenderedGeometry 變更時發生。 + + + + +取得或設定圖說文字相對於左上角的位置。 + + + + +取得或設定圖說文字樣式。 + + + + +提供複合圖形的基底類別,此複合圖形衍生自 ,並可實作 。 + + + 可實作 介面,並可支援呈現和 類似的幾何圖形,不過該幾何圖形可在版面配置邊界之外呈現。 + +典型的實作會將自訂的預設範本放置在 generic.xaml 中,而 generic.xaml 可透過範本將大部分的圖形屬性繫結至 。它也會擴充 屬性,以自訂 的外觀。 + + + + +藉由建立幾何圖形來源延伸圖形的繪製方式。 + + + + +使 的幾何圖形失效。失效後, 會以非同步方式重新計算幾何圖形。 + + + +針對 Silverlight 版面配置轉換的 Arrange 部分提供行為。類別可覆寫此方法以定義其專屬的 Arrange 轉換行為。 +將元素排列在版面配置時使用的實際大小。 +父項內的最終區域,此物件應使用此區域來排列本身與其子項。 + 當 Geometry 失效後, 會重新計算 Geometry 並更新 RenderedGeometry 和 GeometryMargin。 + + + +取得或設定指定圖形內部繪製方式的 。 + +描述圖形內部繪製方式的 + + +取得或設定指定 外框繪製方式的 +指定 外框繪製方式的 + + +取得或設定 筆觸外框的寬度。 + 外框的寬度 (以像素為單位)。 + + +取得或設定 列舉值,其描述圖形填滿配置空間的方式。 +其中一個 列舉值。 + + +取得或設定 列舉值,此列舉值描述 開頭的 + 列舉的值,此值指定 開頭的圖形。 + + +取得或設定 列舉值,此列舉值描述行尾的 +其中一個 列舉值。 + + +取得或設定 列舉值,此列舉值指定用於 端點的聯結類型。 +指定聯結外觀的 列舉值。 + + +取得或設定斜接角長度比例的限制,將比例限制為 元素之 的二分之一。 +斜接角長度相對於 元素之 的比例限制。此值一律是大於或等於 1 的正數。 + + +取得或設定一組 值,這些值表示用來勾勒圖形外框之虛線和空隙的圖樣。 +一組指定虛線和空隙之圖樣的 值。 + + +取得或設定指定虛線結尾繪製方式的 列舉值。 +其中一個 列舉值。預設值為 + + +取得或設定指定虛線圖樣中虛線開頭距離的 +表示虛線圖樣中虛線開頭距離的 。預設值為 0。 + + + +取得由呈現引擎所呈現的已呈現幾何圖形。 + + + + +取得邏輯邊界和實際幾何邊界圖形之間的邊框間距。此值可以是正數 (如 中的情況) 或負數 (如 中的情況)。 + + + + +RenderedGeometry 變更時發生。 + + + + +呈現彎曲的線段,並在兩端加上選用的箭號。 + + + +針對 Silverlight 版面配置的 Measure 轉換提供行為。類別可覆寫此方法以定義其專屬的 Measure 轉換行為。 +此物件根據其對子物件已分配大小的計算,或諸如固定容器大小等其他考量,判斷在版面配置期間需要的大小。 +此物件能提供給子物件的可用大小。可將 Infinity () 指定為值,表示物件將根據所有可用的內容調整大小。 + +預設 能以任何大小呈現。 將延展到版面配置邊界,並視需要呈現至外部。 + + + + +取得或設定箭號的彎曲量。 + +介於 0 到 1 之間的彎曲量。 + + + +取得或設定線條開頭箭頭呈現的方式。 + + + + +取得或設定線條結尾箭頭呈現的方式。 + + + + +取得或設定開始繪製箭號的起始邊角。 + + + + +取得或設定箭號的長度 (以像素為單位)。 + + + + +提供項目控制項,此控制項顯示一個選定項目,並允許使用觸控筆勢在項目之間移動瀏覽。 + + + + +PanningItems 的建構函式。 + + + + +在套用 PanningItems 範本時呼叫。 + + + + +取得或設定控制項中項目的方向。 + + + + +取得或設定筆觸容許度。這可以是介於 0 到 1 之間的值。這個值代表 PanningItems 大小的百分比,筆勢必須涵蓋這個百分比,才會觸發項目變更。 + + + + +取得或設定所選項目前面的項目。 + + + + +取得或設定所選項目後面的項目。 + + + + +取得或設定項目控制項的內容是否會形成迴圈,讓第一個項目接在最後一個項目後面。 + + + + +取得或設定控制移動瀏覽動作之滑桿的值。 + + + + +可和 PathGeometry 搭配使用的 Helper 類別。 + + + + +將路徑迷你語言的字串轉換為 PathGeometry。 + +以路徑迷你語言表示的字串。 + + + +將指定的幾何圖形轉換為單一 PathGeometry。 + + + + +使用與指定之點清單相符的聚合線條,將指定的幾何圖形更新為 PathGeometry。 + + + + +剖析縮寫的幾何圖形語法。 + + + + +可將 ArcSegment 轉換為 BezierSegment 的 Helper 類別。 + + +可和 PathSegment 及所有變量搭配使用的 Helper 類別。 + + +可處理不同 PathSegment 類型的策略類別。 + + + + +將弧線線段轉換為貝茲格式。傳回 BezierSegment、PolyBezierSegment、LineSegment 或 Null。傳回 Null 時,弧線會變質為起點。 + + + + +避免呼叫有三個參數的建構函式,因為它一律會設定 IsStroked 的本機值。 + + + + + + +使用與指定之點清單相符的聚合線條更新 SegmentCollection。嘗試進行最少的變更;如果未發生任何變更,則傳回 false。 + + + + +使用與指定之點清單相符的多重貝茲線段更新 collection[index] 線段。指定的點清單必須包含 N 個貝茲線段的 3*N 個點。 + + + + +測試指定的路徑線段是否是空的。 + + + + +取得指定的路徑線段中的點數。 + + + + +取得指定的路徑線的最後一個點。 + + + + +取得指定的線段中指定索引的點。如果輸入為 (-1),將傳回最後一個點。 + + + + +使指定的線段平面化,並將產生的點新增至指定的點清單中。 + +要平面化的線段。 +產生的點清單。 +線段的起點。 +容錯。必須為正數。可以是零。預設容錯的後援。 + + + +ArcToBezier,可計算弧線的貝茲約略估算。 + + +此公用程式可計算橢圓形弧線的貝茲約略估算,如同 SVG 弧線規格的定義。取下弧線的來源橢圓形是在本身座標上與軸對齊,並在該處由其 X 和 Y 半徑定義。旋轉角度會定義橢圓形各個軸相對於 X 軸的旋轉方式。起點和終點會定義 4 段弧線中的其中一段弧線;sweep 和 large-arc 旗標可決定要在這些弧線中選擇的弧線。 + +傳回 cPieces = 0 表示為線條,而非弧線;傳回 cPieces = -1 表示弧線變質為點 + + + + +取得貝茲弧線的數量,以及每段弧線的正弦/餘弦。 + + +這是 ArcToBezier 使用的私用公用程式。將弧線分割為多個線段,使每個線段均無法跨 90 度。輸入點位於單位圓上。 + + + + +GetBezierDistance 會以半徑的片段傳回距離。 + + +取得圓弧端點到約略估算貝茲弧線控制點的間隔距離,以弧線的半徑片段表示。 + +由於結果相對於弧線的半徑,因此完全取決於弧線的角度。由於弧線假設為 90 度或更小,因此角度會取決於該角度的餘弦,其衍生自 rDot = 兩個半徑向量的內積。我們需要和弧線點相符的貝茲曲線,以及結尾和中點的正切函數值。接下來我們來計算曲線端點到其控制點之間的距離。 + +由於我們需要的是相對距離,因此可以利用單位圓來計算。將圓心置於原點,再將 X 軸當作 2 個向量間的二等分線。假設 a 是這兩個向量間的角度。於是第一個和最後一個點的 X 座標為 cos(a/2)。假設 x 是第二個和第三個點的 X 座標。在 t=1/2 之處我們可以在 (1,0) 得到一個點。但從多項式看來,它們都是相等的: + +(1-t)^3 = t*(1-t)^2 = t^2*(1-t) = t^3 = 1/8, + +因此,我們可以從貝茲公式取得: + +1 = (1/8) * (cos(a/2) + 3x + 3x + cos(a/2)) + +因此 + +x = (4 - cos(a/2)) / 3 + +上述結果和第一個點的 X 差異為: + +DX = x - cos(a/2) = 4(1 - cos(a/2)) / 3 + +但 DX = distance / sin(a/2),因此距離為 + +dist = (4/3)*(1 - cos(a/2)) / sin(a/2) + +和角度 a 不同,因為我們已知 rDot = R^2 * cos(a),所以我們將頂端和底部乘以 R: + +dist = (4/3)*(R - Rcos(a/2)) / Rsin(a/2) + +再利用一些三角函數:________________ cos(a/2) = \/(1 + cos(a)) / 2 ______________________ R*cos(a/2) = \/(R^2 + R^2 cos(a)) / 2 ________________ = \/(R^2 + rDot) / 2 + +假設 A = (R^2 + rDot)/2. ____________________ R*sin(a/2) = \/R^2 - R^2 cos^2(a/2) _______ = \/R^2 - A + +因此:_ 4 R - \/A dist = - * ------------ 3 _______ \/R^2 - A + +歷程記錄:2001/5/29 由 MichKa 製作。 + + + + +如果半徑和弦的長度比較起來過短,則傳回 false (若為 NaN 則傳回 true),半徑會修改為接受的值。 + + + + +使貝茲曲線平面化的公用程式類別。 + + + + +使貝茲三次方曲線平面化,並將產生的聚合線條新增至第三個參數。 + +四個貝茲三次方控制點。 +兩相對應的點在真實曲線和平面化之聚合線條上的最大間隔距離。必須為正數。 +新增平面化聚合線條的位置。 +True 表示新增平面化的聚合線條時略過第一個控制點。 +新增和每個聚合線條端點相關聯之貝茲曲線參數值的位置。 +如果 空白,一律會新增第一個控制點及相關聯的參數。 + + + +使貝茲二次方曲線平面化,並將產生的聚合線條新增至第三個參數。利用升階來讓貝茲曲線重複使用三次方案例的程式碼。 + +三個貝茲二次方控制點。 +兩相對應的點在真實曲線和平面化之聚合線條上的最大間隔距離。必須為正數。 +新增平面化聚合線條的位置。 +新增平面化的聚合線條時,是否要略過第一個控制點。 +新增和每個聚合線條端點相關聯之貝茲曲線參數值的位置。 +如果 空白,一律會新增第一個控制點及相關聯的參數。 + + + +支援非幾何圖形類型的擴充方法。 + + + + +允許將動作委派 (通常是非常簡單的 Lambda) 套用到整個序列中。 + + + + +允許將動作委派 (通常是非常簡單的 Lambda) 套用到整個序列中。 + + + + +允許將動作委派 (通常是非常簡單的 Lambda) 套用到包含各項目之索引的完整序列中。 + + + + +確保清單的計數等於指定的計數。可利用指定的 Factory 建立,或視需要移除項目。如果 Input IList 是 List,當沒有 Factory 時會使用 AddRange 或 RemoveRange。 + + + + +確保清單的計數至少等於指定的計數。可利用指定的 Factory 建立。 + + + + +將項目的範圍新增至集合的結尾。如果集合是清單,則會使用 List.AddRange。 + + + + +取得指定清單的最後一個項目。 + + + + +移除指定清單的最後一個項目。 + + + + +建立 obj 及其所有公用屬性的複本,包括所有集合屬性。 + + + + +如果不同,便會設定值。盡可能避免設定本機值。當值已變更時,會傳回 true。 + + + + +清除以本機方式設定在指定相依性物件上的相依性屬性。如果相依性屬性不是以本機方式設定的,則傳回 false。 + + + + +使用橫向優先搜尋找指定類型和條件的所有視覺下階。 + + + + +取得 IEnumerable 中的所有視覺子項。 + + + + +統一 WPF 和 Silverlight 中的 PropertyMetadata 介面。提供呈現、排列及度量的相關必要通知。 + + + + +此私用 Ctor 只能由 AttachCallback 使用。 + + + + +在屬性回呼時附加 DrawingPropertyMetadata 例項的鏈結 InternalCallback()。在 Silverlight 中,屬性中繼資料在設定後即會遭到丟棄。請使用回呼來記住它。 + + + + +在鏈結原始的回呼前,觸發 DrawingPropertyChangedEvent。 + + + + +幾何圖形相關資料結構 (點/向量/大小/矩形) 的擴充方法。 + + + + +將矩形的大小調整為相對大小,同時保持中心不變。 + + + + +取得兩點之間的差異向量。 + + + + +點的成員增加。 + + + + +點的成員減少。 + + + + +將迷你語言的字串轉換為 。 + +請參閱:路徑標記語法 (http://msdn.microsoft.com/en-us/library/cc189041(VS.95).aspx) +描述幾何路徑的路徑迷你語言字串。 +從路徑迷你語言轉換所得的 + + + +使 平面化,並將結果點新增至指定的 . + +輸入 。 +要附加結果點的點清單。 +一個正數,其指定結果點到輸入路徑圖形間允許的錯誤上限。零值可讓演算法自動挑選容錯。 + + + +取得 (0,0)(1,1) 方塊中的標準化弧線。零度對應至 [0.5, 0] (向上),且為順時針方向。 + + + + +利用指定的相對半徑取得指定繫結中的絕對弧線點。 + + + + +取得弧線上相對於 (0,0)(1,1) 方塊的角度。零度對應至 [0.5, 0] (向上),且為順時針方向。 + + + + +取得弧線上相對於繫結的指定絕對點的角度。 + + + + +計算將 "Rect from" 移動到 "Rect to" 的轉換。 + + + + +計算從某個 UIElement 座標空間到另一個座標空間的轉換。 + +來源元素。 +目的地元素。 +多個 UIElement 間的轉換;如果無法計算則為 Null。 + + + +使用指定繫結到 (0,0)(1,1) 方塊的對應,將相對點對應至絕對點。 + + + + +使用 (0,0)(1,1) 方塊到指定繫結的對應,將絕對點對應至相對點。 + + + + +計算在指定邏輯繫結中延展後的繫結。如果為一致延展,則使用指定的 aspectRatio。如果 aspectRatio 為空白,則相當於 Fill。如果延展為 [無],則相當於 Fill 或 Uniform。 + + + + +傳回兩點間的中點。 + +第一個點。 +第二個點。 +這兩個點之間的中點:. + + + +傳回兩個向量的內積。 + +第一個向量。 +第二個向量。 +這兩個向量的內積:. + + + +傳回兩個點的內積。 + + + + +傳回兩點間的距離。 + +第一個點。 +第二個點。 +這兩個點之間的距離:. + + + +傳回兩點間的距離平方。 + +第一個點。 +第二個點。 +這兩個點之間的距離平方:. + + + +外積行列式。相當於向性區域。 + + + + +計算指定線段的法線方向向量。 + + + + +計算逆時針方向 90 度的垂直向量。和右方垂直的向量會產生向上的向量。 + + + + +傳回兩個幾何圖形是否相同。 + + + + +確保值是結果型別 (T) 的例項。如果不是,會取代為型別 (T) 的新例項。 + + + + +確保 list[index] 是結果型別 (T) 的例項。如果不是,會取代為型別 (T) 的新例項。 + + + + +提供浮點算術相關靜態屬性及方法的 Helper 類別。 + + + + +將兩個值視為相同時要考量的最小距離。注意:MIL/SL 中的內部浮點為浮點數,而不是雙精度浮點數。 + + + + +全填滿圓形的角度值。 + + + + +五角星多邊形的內部半徑,以三位數字百分比的精準度表示。(1 - Sin36 * Sin72 / Sin54) / (Cos36) ^ 2,即 0.47210998990512996761913067272407 + + + + +判斷 System.Double 值是否小到足以視為等於零。 + + +如果值小於 DoubleTolerance 則為 True,否則為 False + + + +傳回指定範圍內的值。將最小值/最大值指定為 Null 等同於不限制。 + + + + +計算向量 (x, y) 的歐幾里得範數。 + +第一個元件。 +第二個元件。 +向量 (x, y) 的歐幾里得範數。 + + + +利用尾數和指數計算出實數。 + + + +如果成功的話,傳回 * 2^exp 的值。 + + + +測試雙精度浮點數。 + +要測試的雙精度浮點數。 +如果 x 不是 NaN 且不等於正或負無限大則為 True,否則為 False + + + +可和 PathFigure搭配使用的 Helper 類別。 + + + + +使指定的圖形平面化,並將結果點新增至指定的點清單中。 + +容錯。必須為正數。可以是零。預設容錯的後援。 + + + +逐一查看指定圖形內的所有線段,並傳回每個線段的正確起點。 + + + + +以單一聚合線段的方式同步處理圖形和指定的點清單。嘗試進行最少的變更;如果未發生任何變更,則傳回 false。 + + + + +將指定的圖形同步處理成有兩條弧線線段的封閉橢圓形。 + + + + +PathSegment 和對應 StartPoint 的 Tuple 資料結構。 + + + + +表示具有連接點清單的聚合線條。封閉的多邊形是藉由在尾端重複第一個點來表示。差異、法線、角度及長度均可視需求計算。 + + + + +建構含有兩點或更多點的聚合線條。 + + + + +聚合線條的正向差異向量。Points[i] + Differences[i] = Points[i+1] + + + +計算指定位置 (lerp(index, index+1, fraction) 的法線向量。如果位置位在 cornerRadius 的範圍內,則會內插法線方向。 + +法線平滑度的範圍。如果是零,則代表沒有平滑度,並且會傳回索引上的精確法線。 + + + +重複第一個和最後一個點時,聚合線條即會封閉。 + + + + +此聚合線條中的點數。 + + + + +此聚合線條的總弧線長度。 + + + + +此聚合線條的點陣列。 + + + + +線段間的長度 (Points[i] 到 Points[i+1])。 + + + + +每個線段的法線向量清單。Normals[i] 是線段 p[i] 到 p[i + 1] 的法線。Normals[N-1] == Normals[N-2]。 + + + + +點 p[i] 上兩條線段間的 Cos(angle) 清單。注意:值為 cos(angle) = Dot(u, v),而不是角度。 + + + + +points[i] 到 points[0] 的累積長度清單。 + + + + +和 PathMarch 演算法溝通的資料結構。 + + + + +在指定的點清單中取得此 MarchLocation 的內插位置。 + + + + +在指定的法線向量清單中取得此 MarchLocation 的內插法線方向。 + + + + +取得此 MarchLocation 到整段聚合線條之起點的弧線長度。 + + + + +取樣這個位置的原因。 + + + + +聚合線條點清單中的點索引。 + + + + +比例:[0, 1],一律是 before / (before + after)。 + + + + +停止點之前的弧線長度。非負數且小於 Length[index]。 + + + + +停止點之後的弧線長度。非負數且小於 Length[index]。 + + + + +某個步驟到下一個停止點之間的剩餘長度。正數即向前移動,負數則向後移動。 + + + + +可和點清單搭配使用的 Helper 類別。 + + + + +依據指定的間隔向指定的聚合線條行進,並透過回呼輸出每個停止點。 + +要行進的目標聚合線條點。 +停在第一個點之前要行進的弧線長度。 +邊緣之間的最大角度可視為角端點。 +當行進演算法停在某個點時回呼。回呼會傳回下個停止點的弧線長度。如果要求的長度為負數,則會向後行進。如果回呼傳回 NaN,則完成行進。 + + + +重新排序指定的聚合線條清單,使清單中含有指定弧線長度的聚合線條排在第一個位置。在此線條之前的聚合線條會接在清單的結尾 (第一個聚合線條位在結尾)。 + +聚合線條清單。 +在整個聚合線條清單中,要作為起始線之搜尋依據的弧線長度。此變數會傳回變成該線條的弧線長度。 +經重新排序及換行的清單。 + + + +支援均勻分佈和高斯分佈的隨機產生器。 + + + + +使用 Box-Muller 轉換的極式產生一對獨立、標準及正常分佈的亂數、零期望及單位變異。 + + + + +私用建構函式。強制使用 Factory 方法。 + + + + +建立線段 + + + + +從二次方曲線 (3 個控制點) 建立三次方貝茲線段 + + + + +建立含 4 個控制點的三次方貝茲線段。 + + + + +路徑線段的控制點。長度為可變。線段有 2 個點,三次方貝茲有 4 個點。 + + + + +比較兩個轉換是否完全相符。值相同但結構不同的轉換 (例如,Translate(0,0) 和 Rotate(0) 並不可視為相等)。 + +第一個轉換。 +第二個轉換。 + + + + +指定粗細的單位。 + + + + +以像素為單位。 + + + + +以相對於週框方塊的百分比為單位。 + + + + +提供幾何圖形來源的基底類別。根據輸入參數和版面配置邊界產生和快取幾何圖形。 + + +典型的實作會擴充 UpdateCachedGeometry() 以更新 this.cachedGeometry。此基底類別便會接著處理和版面配置邊界相對的失效、幾何效果之管線及快取。實作應盡可能嘗試重複使用已快取的幾何圖形,以避免在呈現執行緒中重新建構。實作可擴充 ComputeLogicalBounds 以利用不同的方式處理 Stretch。 + +基底類別正在使用的幾何圖形來源參數類型。 + + + +提供介面以描述幾何圖形的來源。 + + +此介面是專為以非泛型方法公開幾何圖形來源而設計的。在典型的實作中應建立 GeometrySource 的子類別,而不是直接實作此介面。 + + + + +發出幾何圖形因外部變更失效的通知。 + + +當參數變更時,幾何圖形通常會失效。如果幾何圖形是從外部失效的,即使版面配置邊界已變更,系統仍會重新計算幾何圖形。 + + + + +使用指定的參數和版面配置邊界更新幾何圖形。如果未更新任何項目,則傳回 false。 + + + + +取得或設定在最新 UpdateGeometry() 之後產生的幾何圖形。 + + + + +取得幾何圖形應延展的目的地週框方塊。實際的幾何圖形可能會小於或大於此週框方塊。 應已將筆觸粗細和延展納入考量。 + + + + +取得 FrameworkElement 的實際邊界。 包括邏輯邊界、延展及筆觸粗細。 + + + + +從之前的幾何效果程序指定幾何圖形。 + + + + +發出幾何圖形因外部變更失效的通知。 + + +當參數變更時,幾何圖形通常會失效。如果幾何圖形是從外部失效的,即使版面配置邊界已變更,系統仍會重新計算幾何圖形。 + + + + +根據指定的參數和 layoutBounds 更新幾何圖形。如果未變更幾何圖形,則傳回 false。 + + + + +藉由實作此函數擴充提供幾何圖形的方式。若有變更任何幾何圖形,則傳回 true。 + + + + +擴充延展模式的處理方式。預設值是一律使用 Stretch.Fill 並使筆觸置中。 + + + + +在發生變更或強制時套用幾何效果並更新 this.Geometry;否則將 this.Geometry 保留為 this.cachedGeometry。 + + + + +取得或設定在最新 UpdateGeometry() 之後產生的幾何圖形。 + + + + +取得幾何圖形應延展的目的地週框方塊。實際的幾何圖形可能會小於或大於此週框方塊。 應已將筆觸粗細和延展納入考量。 + + + + + +取得 FrameworkElement 的實際邊界。 包括邏輯邊界、延展及筆觸粗細。 + + + + + +假設長寬比 = 1:1,弧線會將 Stretch.None 識別為與 Stretch.Fill 相同。 + + + + +標準化相對於週框方塊和絕對像素的粗細。相對粗細 = 0 -> 全填滿圓形半徑或箝制。相對粗細 = 1 -> 縮小為點或變質。 + + + + +弧線變質為向內指向中心 / 法線的線條。 + + + + +計算角度配對清單,定義弧線取樣的位置範圍。傳回的值包括 2、4 或 6 個雙精度浮點值,每個配對都會定義一個範圍,且它們的順序可讓角度從指定的起點跨越到終點角度。範圍將於自我交集的角度截斷。如果輸入起點/終點位在自我交集之角度的無效範圍內,則會被移到鄰近的自我交集角度。 + + + + +將角度移至 0-90 的範圍內。 + + + + +利用每對輸入角度計算所有內部曲線的線段,並以多重貝茲線段加以連接。新的線段會從指定的索引輸出到指定的 figure.Segments 清單。起點則會個別輸出。 + + + + +利用指定的角度範圍計算內部曲線的一個線段,然後再以多重貝茲線段的格式輸出平滑曲線的一個線段。 + + + + +計算自我交集點的參數 (角度),以取得含指定粗細的指定橢圓形。此結果一律會位在第一個象限中,可能是代表沒有自我交集的 0 或 90。基本演算法是是利用二分法搜尋取樣點不在第一個象限中的角度。 + + + + +指定箭號所指方向。 + + + + +箭號指向左邊。 + + + + +箭號指向右邊。 + + + + +箭號指向上方。 + + + + +箭號指向下方。 + + + + +假設左上角為 0,0,B /| / C--D A | \ C--D \| B 演算法只會使用寬度/高度。 + + + + +指定圖說文字圖形的呈現樣式。 + + + + +矩形圖說文字。 + + + + +圓角矩形圖說文字。 + + + + +橢圓形圖說文字。 + + + + +雲狀圖說文字。 + + + + +更新邊緣線條,然後再視需要連接至錨點。 + + + + +更新聚合線段,然後再利用圖說文字樣式連接起點、錨點及終點 + + + + +將線段更新為指定的點。 + + + + +以順時針方向計算角點 (4 個角可取得 8 個點)。 + + + + +角弧線一律會小於 90 度弧線。 + + + + +提供基底類別給 GeometryEffect,其可將某個幾何圖形轉換為其他幾何圖形。 + + +此類別提供的基本實作可在傳送 IShape 以進行呈現之前,先行處理 IShape 的已呈現幾何圖形。典型的實作會擴充虛擬函數 以轉換輸入幾何圖形。 通常會以附加屬性的方式附加到 ,然後在 幾何圖形更新時啟用。 將取代 中已呈現的幾何圖形。 + + + + +以指定相依性物件上之附加屬性的方式取得幾何效果。 + + + + +以指定相依性物件上之附加屬性的方式設定幾何效果。 + + + + +使用 目前的值建立此項目深層複本。 + + + + +建立幾何效果的深層複本。在 Silverlight 中實作 CloneCurrentValue。 + +幾何效果目前例項的複製品。 + + + +測試指定的幾何效果是否和目前的例項相等。 + +要比較的幾何效果。 +當有兩個效果呈現出相同的外觀時傳回 true。 + + + +從之前的幾何效果程序指定幾何圖形。 + + + + +使幾何效果失效而不實際計算幾何圖形。會通知所有父項圖形或效果使其亦失效。 + + + + +處理指定輸入幾何圖形上的幾何效果。將結果儲存在 GeometryEffect.OutputGeometry 中。 + +如果未變更任何項目,則傳回 false。 + + + +根據指定的輸入幾何圖形擴充 cachedGeometry 的更新方式。 + + + + +從父鏈結卸離時收到通知。 + + + + +附加至父鏈結時收到通知。 + + + + +當指定的相依性物件是有效的父型別 (IShape 或 GeometryEffect) 時,使該物件上的幾何圖形失效。 + + + + +在 WPF 中實作 Freezable。 + + + + +只透過輸入幾何圖形傳送的預設幾何效果。 + + + + +取得此幾何效果的輸出幾何圖形。 + + + + +父項可以是 IShape 或 GeometryEffectGroup。 + + + + +提供字串和幾何效果間的轉換。 + + +此類別可啟用 XAML 中的簡短語法,如GeometryEffect="Sketch". 建立幾何效果例項的複製品,使其能以資源的形式使用。 + + + + +建置支援之幾何效果的預設清單。 + + + + +可從字串型別轉換的 GeometryEffect。 + + + + +可轉換為字串型別的 GeometryEffect。 + + + + +將字串轉換為幾何效果。後援值為 Null。 + + + + +將幾何效果轉換為字串。後援值為 Null。 + + + + +指定呼叫 的原因。 + + + + +由於屬性變更,因此幾何圖形已失效。 + + + + +由於屬性以動畫顯示,因此幾何圖形已失效。 + + + + +由於子項失效,因此幾何圖形亦失效。 + + + + +由於父項失效,因此幾何圖形亦失效。 + + + + +由於套用新範本,因此幾何圖形已失效。 + + + + +提供 Helper 擴充方法以和 IGeometrySource 及參數搭配使用。 + + + + +指定箭頭類型。 + + + + +沒有箭頭。 + + + + +三角形箭頭。 + + + + +隱形的三角形箭頭。 + + + + +未封閉的三角形箭頭。 + + + + +橢圓形的箭頭。 + + + + +指定邊角的位置。 + + + + +在週框方塊的左上方。 + + + + +在週框方塊的右上方。 + + + + +在週框方塊的右下方。 + + + + +在週框方塊的左下方。 + + + + +多邊形會將 Stretch.None 視為和 Stretch.Fill 相同。 + + + + +可將任何幾何圖形轉換為 SketchFlow 中 Sketch 樣式的幾何效果。 + + + + +建立幾何效果的深層複本。 + +幾何效果目前例項的複製品。 + + + +測試指定的幾何效果是否和目前的例項相等。 + +要比較的幾何效果。 +當有兩個效果呈現出相同的外觀時傳回 true。 + + + +根據指定的輸入幾何圖形更新 cachedGeometry。 + +輸入幾何圖形。 +當 cachedGeometry 上有任何已更新的項目時,傳回 true。 + + + +建立時使用相同的隨機種子,將視覺效果的閃爍情況降到最低。 + + + + +逐一查看指定路徑圖形中的所有簡單線段,包括封閉的弦。 + + + + +呈現支援 ArcThickness 所控制之 Arc、Ring 及 Pie 模式的弧形。 + + + + +衍生自 WPF:Shape 或 SL:Path 之 Shape 的平台中立實作。 + + +提供衍生自平台 Shape 之 Shape 的 WPF 實作。 + + + + +藉由建立幾何圖形來源延伸圖形的繪製方式。 + + + + +使 的幾何圖形失效。失效後, 會以非同步方式重新計算幾何圖形。 + + + +針對 Silverlight 版面配置轉換的 Measure 部分提供行為。類別可覆寫此方法以定義其專屬的 Measure 轉換行為。 +此物件根據其對子物件已分配大小的計算,或諸如固定容器大小等其他考量,判斷在版面配置期間需要的大小。 +此物件能提供給子物件的可用大小。可將 Infinity () 指定為值,表示物件將根據所有可用的內容調整大小。 + +在 WPF 中,雖然可從 Shape.DefiningGeometry 使用度量覆寫,但不一定能正常運作 (請參閱 Bug 99497 以取得詳細資料),因為依預設 WPF 並沒有正確的度量方式。 + +在 Silverlight 中,Path 的度量覆寫功用和基本圖形的度量覆寫功用不同。 + +我們應傳回此圖形能正常呈現而不需要裁切的最小大小。根據預設,圖形能以細小如點的形式呈現,因此會傳回 strokethickness。 + + + +針對 Silverlight 版面配置轉換的 Arrange 部分提供行為。類別可覆寫此方法以定義其專屬的 Arrange 轉換行為。 +將元素排列在版面配置時使用的實際大小。 +父項內的最終區域,此物件應使用此區域來排列本身與其子項。 + 當 Geometry 失效後, 會重新計算 Geometry 並更新 RenderedGeometry 和 GeometryMargin。 + + + +RenderedGeometry 變更時發生。 + + + + +取得邏輯邊界和實際幾何邊界圖形之間的邊框間距。此值可以是正數 (如 中的情況) 或負數 (如 中的情況)。 + + + + +取得或設定起始角度。 + +起始角度 (以度為單位)。零度指向上方。 + + + +取得或設定結束角度。 + +結束角度 (以度為單位)。零度指向上方。 + + + +取得或設定弧線粗細。 + +以像素或百分比為單位 (取決於 "ArcThicknessUnit") 的弧線粗細。 + + + +取得或設定弧線粗細單位。 + +以像素或百分比為單位的弧線粗細單位。 + + + +呈現支援可調整大小之箭頭和箭身的區塊箭號圖形。 + + + + +取得或設定方向。 + +箭號所指的方向。 + + + +取得或設定箭頭角度。 + +箭頭角度 (以度為單位)。 + + + +取得或設定箭身大小。 + +箭身大小 (以像素為單位)。 + + + +呈現有各種端點數量的一般多邊形或對應的星形圖形。 + + + + +取得或設定 的端點數量。 + + + + +取得或設定中心與最內側端點之間的距離。 + +中心與最內側端點之間的距離。 + + + diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/zh-Hant/Microsoft.Expression.Effects.xml b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/zh-Hant/Microsoft.Expression.Effects.xml new file mode 100644 index 0000000..e079301 --- /dev/null +++ b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/zh-Hant/Microsoft.Expression.Effects.xml @@ -0,0 +1,1041 @@ + + + + Microsoft.Expression.Effects + + + + +決定百葉窗的方向。 + + + + +切換著色器,此切換著色器可在從某個視覺效果切換為另一個視覺效果時模擬百葉窗開啟。 + + + + +取得或設定百葉窗的方向。 + + + + +取得或設定百葉窗的數量。 + + + + +取得或設定著色器內的 Amplitude 變數。 + + + + +建立著色器的例項。 + + + + +製作 BlindsTransitionEffect 效果的深層複本。 + +BlindsTransitionEffect 效果之目前例項的複製品。 + + + +取得或設定百葉窗的方向。 + + + + +取得或設定要顯示的百葉窗數量。 + + + + +取得或設定百葉窗的方向。 + + + + +可在視覺效果上加入光圈照明的效果。 + + + + +此像素著色器的明確輸入。 + + + + + +此屬性對應至像素著色器內的 BloomIntensity 變數。 + + + + +此屬性對應至像素著色器內的 BaseIntensity 變數。 + + + + +此屬性對應至像素著色器內的 BloomSaturation 變數。 + + + + +此屬性對應至像素著色器內的 BaseSaturation 變數。 + + + + +此屬性對應至像素著色器內的 BloomIntensity 變數。 + + + + +此屬性對應至像素著色器內的 BloomSaturation 變數。 + + + + +此屬性對應至像素著色器內的 BaseSaturation 變數。 + + + + +建立例項並將著色器的變數更新為預設值。 + + + + +取得或設定用於光圈的最小強度。 + + + + +取得或設定基準強度。 + + + + +取得或設定光圈強度。 + + + + +取得或設定基準飽和度。 + + + + +取得或設定光圈飽和度。 + + + + +取得或設定 Input 著色器取樣器。 + + + + +取得或設定著色器內的 Base/BloomIntensity 變數。 + + + + +取得或設定著色器內的 BaseBloomSaturation 變數。 + + + + +透過放大/縮小圓圈來顯示兩種視覺效果的切換效果。 + + + + +相依性屬性,此相依性屬性可修改像素著色器內的 Feather Amount 變數。 + + + + +可修改圓圈移動方式的相依性屬性。 + + + + +相依性屬性,此相依性屬性可修改像素著色器內的 reverseShader 變數。 + + + + +建立例項並將著色器的變數更新為預設值。 + + + + +製作 CircleRevealTransitionEffect 效果的深層複本。 + +CircleRevealTransitionEffect 效果之目前例項的複製品。 + + + +取得或設定著色器內的 FuzzyAmount 變數。 + + + + +取得或設定反向播放圓圈顯示。 + + + + +取得或設定反向播放圓圈顯示至著色器。 + + + + +切換效果,此切換效果可切換兩種將雲朵紋理當作取樣器臨界值的視覺效果。 + + + + +定義切換著色器效果,此切換著色器效果可將影像當作兩種視覺效果間內插像素值的取樣器臨界值。 + + + + +定義切換著色器效果,此切換著色器效果可提供隨機值,讓效果在每次執行時都能產生差異。 + + + + +相依性屬性,此相依性屬性可修改像素著色器內的 RandomSeed 變數。 + + + + +將著色器的變數更新為預設值。 + + + + +取得或設定著色器內的 RandomSeed 變數。 + + + + +相依性屬性,此相依性屬性可修改像素著色器內的 CloudImage 變數。 + + + + +建立例項並將著色器的變數更新為預設值。 + + + + +取得或設定用於取樣之著色器內的 CloudImage 變數。 + + + + +建立著色器的例項。 + + + + +製作 CloudRevealTransitionEffect 效果的深層複本。 + +CloudRevealTransitionEffect 效果之目前例項的複製品。 + + + +效果,此效果可修改將兩種色彩當作取樣之視覺效果的色調。 + + + + +此像素著色器的明確輸入。 + + + + +此屬性對應至像素著色器內的 Desaturation 變數。 + + + + +此屬性對應至像素著色器內的 Tone 變數。 + + + + +此屬性對應至像素著色器內的 LightColor 變數。 + + + + +此屬性對應至像素著色器內的 DarkColor 變數。 + + + + +建立例項並將著色器的變數更新為預設值。 + + + + +取得或設定著色器內的 Desaturation 變數。 + + + + +取得或設定著色器內的 Tone 變數。 + + + + +取得或設定著色器內的 LightColor 變數。 + + + + +取得或設定著色器內的 DarkColor 變數。 + + + + +取得或設定 Input 著色器取樣器。 + + + + +效果,此效果可模擬視覺效果的浮凸外觀。 + + + + +此像素著色器的明確輸入。 + + + + +此屬性對應至像素著色器內的 Amount 變數。 + + + + +此屬性對應至像素著色器內的 Height 變數。 + + + + +此屬性對應至像素著色器內的 Color 變數。 + + + + +建立例項並將著色器的變數更新為預設值。 + + + + +取得或設定著色器內的 Amount 變數。 + + + + +取得或設定著色器內的 Height 變數。 + + + + +取得或設定著色器內的 Color 變數。 + + + + +取得或設定 Input 著色器取樣器。 + + + + +切換效果,此切換效果可從某個視覺效果逐漸切換為另一個視覺效果。 + + + + +建立著色器的例項。 + + + + +製作 FadeTransitionEffect 效果的深層複本。 + +FadeTransitionEffect 效果之目前例項的複製品。 + + + +可模擬放大鏡的效果。 + + + + +取得或設定著色器內的 InnerRadius 變數。 + + + + +取得或設定著色器內的 OuterRadius 變數。 + + + + +取得或設定著色器內的 Center 變數。 + + + + +取得或設定著色器內的數量變數。 + + + + +取得或設定著色器中使用的 Input。 + + + + +用於此著色器的轉換。 + + + + +建立例項並將著色器的變數更新為預設值。 + + + + +取得或設定著色器內的 InnerRadius 變數。 + + + + +取得或設定著色器內的 OuterRadius 變數。 + + + + +取得或設定著色器內的 Center 變數。 + + + + +取得或設定 ShrinkFactor。縮小係數越大,橢圓形的內容就顯得「愈小」。 + + + + +取得 EffectMapping。 + + + + +取得或設定 Input 著色器取樣器。 + + + + +對應於放大鏡效果的 GeneralTransform。 + + + + +嘗試根據效果轉換某個點。 + +要轉換的點。 +結果 (若有的話)。 +如果成功,則傳回 true。 + + + +效果例項。 + + + + +指出轉換是否為反向轉換。 + + + + +此效果特有的轉換。 + + + + +建立新的例項。 + +來源效果。 + + + +這個效果會使向軸對齊的線條維持向軸對齊,使矩形的轉換侷限於角點轉換。 + +輸入矩形。 +輸出矩形。 + + + +若要反轉著色器,假設 Pout 是紋理輸入 (著色器的反轉),我們需要尋找作為像素輸出的 Pin。著色器演算法必須仰賴像素輸出和中心間的半徑,然而當我們計算反轉時,並無法取得這個變數。我們需要執行 bisection 才能使用此方程式收斂:PHatout = PHat_in*Scalar,其中 PHatout = Pout - Pcenter,pHatin = Pin -Pcenter。 + +Scalar 取決於 Pin 的半徑 (我們缺少的項目)。 + + + + +根據指定的像素輸出 (Pin) 尋找紋理輸入 (Pout)。 + + + + +建立新的例項。 + +此項目的新例項。 + + + +判斷點是否位在橢圓形內。 + +測試點。 +橢圓形的中心點。 +橢圓形的半徑。 +如果成功,則傳回 true。 + + + +取得反向轉換。 + + + + +可將視覺效果轉換為單色色彩的效果。 + + + + +取得或設定著色器內的 Color 變數。 + + + + +取得或設定著色器的 Input。 + + + + +建立例項並將著色器的變數更新為預設值。 + + + + +取得或設定著色器內的 Color 變數。 + + + + +取得或設定著色器中使用的 Input。 + + + + +可使視覺效果像素化的效果。 + + + + +此像素著色器的明確輸入。 + + + + +此屬性對應至像素著色器內的 Pixelation 變數。 + + + + +建立例項並將著色器的變數更新為預設值。 + + + + +取得或設定著色器內的像素化數量。 + + + + +取得或設定 Input 著色器取樣器。 + + + + +切換效果,此切換效果可增加或減少兩個視覺效果間的像素化。 + + + + +建立著色器的例項。 + + + + +製作 PixelateTransitionEffect 效果的深層複本。 + +PixelateTransitionEffect 效果之目前例項的複製品。 + + + +切換效果,當引進新的視覺效果時,此切換效果可使目前的視覺效果呈現放射模糊。 + + + + +建立著色器的例項。 + + + + +製作 RadialBlurTransitionEffect 效果的深層複本。 + +RadialBlurTransitionEffect 效果之目前例項的複製品。 + + + +可在視覺效果上模擬漣漪的效果。 + + + + +取得或設定著色器內的 Center 變數。 + + + + +取得或設定著色器內的 Amplitude 變數。 + + + + +取得或設定著色器內的 Frequency 變數。 + + + + +取得或設定著色器內的 Phase 變數。 + + + + +取得或設定著色器中使用的 Input 筆刷。 + + + + +建立例項並將著色器的變數更新為預設值。 + + + + +取得或設定著色器內的 Center 變數。 + + + + +取得或設定著色器內的 Amplitude 變數。 + + + + +取得或設定著色器內的 Frequency 變數。 + + + + +取得或設定著色器內的 Phase 變數。 + + + + +取得或設定 Input 著色器取樣器。 + + + + +可在切換時模擬漣漪的切換效果。 + + + + +建立著色器的例項。 + + + + +製作 RippleTransitionEffect 效果的深層複本。 + +RippleTransitionEffect 效果之目前例項的複製品。 + + + +可使視覺效果更加清晰鮮明的效果。 + + + + +此像素著色器的明確輸入。 + + + + +此屬性對應至像素著色器內的 Amount 變數。 + + + + +此屬性對應至像素著色器內的 Width 變數。 + + + + +建立例項並將著色器的變數更新為預設值。 + + + + +取得或設定著色器內的 Amount 變數。 + + + + +取得或設定著色器內的 Height 變數。 + + + + +取得或設定 Input 著色器取樣器。 + + + + +定義投影片方向。 + + + + +切換效果,此切換效果可使目前的視覺效果滑動到別處以顯示新的視覺效果。 + + + + +相依性屬性,此相依性屬性可修改像素著色器內的 SlideAmount 變數。 + + + + +相依性屬性,此相依性屬性可修改像素著色器內的 SlideAmount 變數。 + + + + +建立例項並將著色器的變數更新為預設值。 + + + + +製作 SlideInTransitionEffect 效果的深層複本。 + +SlideInTransitionEffect 效果之目前例項的複製品。 + + + +取得或設定著色器內的 SlideAmount 變數。 + + + + +取得或設定著色器內的 SlideAmount 變數。 + + + + +切換效果,當引進新的視覺效果時,此切換效果可使目前的視覺效果呈現漩渦狀。 + + + + +相依性屬性,此相依性屬性可修改像素著色器內的 TwistAmount 變數。 + + + + +相依性屬性,此相依性屬性可修改像素扭曲之處的儲存格數量。 + + + + +建立例項並將著色器的 Twist 變數設為指定的值。 + +漩渦扭曲的程度。 + + + +建立例項並將著色器的變數更新為預設值。 + + + + +製作 SmoothSwirlGridTransitionEffect 效果的深層複本。 + +SmoothSwirlGridTransitionEffect 效果之目前例項的複製品。 + + + +取得或設定著色器內的 TwistAmount 變數。 + + + + +取得或設定著色器內的 CellCount 變數。 + + + + +可使目前視覺效果呈現漩渦狀的效果。 + + + + +此像素著色器的明確輸入。 + + + + +此屬性對應至像素著色器內的 Center 變數。 + + + + +此屬性對應至像素著色器內的 TwistAmount 變數。 + + + + +此屬性對應至像素著色器內的 AngleFrequency 變數。 + + + + +套用此效果時使用的轉換。 + + + + +建立例項並將著色器的變數更新為預設值。 + + + + +取得或設定著色器內的 Center 變數。 + + + + +取得或設定著色器內的 TwistAmount 變數。 + + + + +取得或設定著色器內的 AngleFrequency 變數。此屬性並未公開。 + + + + +取得或設定 Input 著色器取樣器。 + + + + +取得此效果的 GeneralTransform。 + + + + +用於轉換輸入和樹狀目錄轉換。 + + + + +效果的例項。 + + + + +轉換的反轉。 + + + + +此 GeneralTransform 的反轉。 + + + + +建立此類別的例項。 + +效果本身。 + + + +在這項作業中,邊界是四個轉換點的週框方塊。您需要分別轉換每個邊界,然後再繪製外接圓。正轉和反轉都適用此規則。 + +輸入矩形。 +轉換的矩形。 + + + +嘗試以漩渦效果轉換 inPoint。 + +輸入點。 +使用漩渦效果進行轉換後的輸出點。 +傳回 true;如果傳回 false,則會擲回。 + + + +傳回此項目的新例項。 + +新例項。 + + + +取得目前轉換之反轉的複製品。 + + + + +切換效果,當引進新的視覺效果時,此切換效果可使目前的呈現波浪狀。 + + + + +相依性屬性,此相依性屬性可修改像素著色器內的 Magnitude 變數。 + + + + +相依性屬性,此相依性屬性可修改像素著色器內的 Phase 變數。 + + + + +相依性屬性,此相依性屬性可修改像素著色器內的 Frequency 變數。 + + + + +建立著色器的例項。 + + + + +製作 WaveTransitionEffect 效果的深層複本。 + +WaveTransitionEffect 效果之目前例項的複製品。 + + + +取得或設定波浪的強度。 + + + + +取得或設定波浪的相位。 + + + + +取得或設定波浪的強度。 + + + + +定義擦去方向。 + + + + +切換效果,當引進新的視覺效果時,此切換效果可擦去目前的視覺效果。 + + + + +相依性屬性,此相依性屬性可修改像素著色器內的 WipeDirection 變數。 + + + + +相依性屬性,此相依性屬性可修改像素著色器內的 FeatherAmount 變數。 + + + + +相依性屬性,此相依性屬性可修改像素著色器內的 LineOrigin 變數。 + + + + +相依性屬性,此相依性屬性可修改像素著色器內的 LineNormal 變數。 + + + + +相依性屬性,此相依性屬性可修改像素著色器內的 LineOffset 變數。 + + + + +建立例項並將著色器的變數更新為預設值。 + + + + +製作 WipeTransitionEffect 效果的深層複本。 + +WipeTransitionEffect 效果之目前例項的複製品。 + + + +取得或設定擦去的方向。 + + + + +取得或設定著色器內的 FeatherAmount 變數。 + + + + +取得或設定著色器內的 LineOrigin 變數。 + + + + +取得或設定著色器內的 LineNormal 變數。 + + + + +取得或設定著色器內的 LineOffset 變數。 + + + + diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/zh-Hant/Microsoft.Expression.Interactions.resources.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/zh-Hant/Microsoft.Expression.Interactions.resources.dll new file mode 100644 index 0000000..e436c01 Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/zh-Hant/Microsoft.Expression.Interactions.resources.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/zh-Hant/Microsoft.Expression.Interactions.xml b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/zh-Hant/Microsoft.Expression.Interactions.xml new file mode 100644 index 0000000..76f2a23 --- /dev/null +++ b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/zh-Hant/Microsoft.Expression.Interactions.xml @@ -0,0 +1,1241 @@ + + + + Microsoft.Expression.Interactions + + + + +包裝方法之 ICommand 的基本實作,該方法不採用任何參數或採用一個參數。 + + + + +初始化 類別的新例項。 + +動作。 +使用此建構函式來提供忽略 ICommand 參數的動作。 + + + +初始化 類別的新例項。 + +採用物件參數的動作。 +使用此建構函式來提供動作,該動作會使用 Execute 方法所傳送的物件參數。 + + + +定義用來判斷命令是否能以其目前狀態執行的方法。 + +命令所用的資料。如果命令不需要傳送資料,此物件可設為 Null。 + +永遠傳回 true。 + + + + +定義叫用命令時要呼叫的方法。 + +命令所用的資料。如果命令不需要傳送資料,此物件可設為 Null。 + + + +在發生影響是否應執行命令的變更時發生。不會由 ActionCommand 觸發。 + + + + +叫用時,可在指定的物件上呼叫方法。 + + + + +叫用動作。 + +動作的參數。如果動作不需要參數,可將參數設為 Null 參照。 + + + +在動作附加到 AssociatedObject 後呼叫。 + +覆寫此設定以便將功能連接至 AssociatedObject。 + + + +當動作正要從其 AssociatedObject 卸離但尚未實際發生前呼叫。 + +覆寫此設定以便從 AssociatedObject 取消連接功能。 + + + +可顯示相關方法的物件。這是相依性屬性。 + + + + +要叫用之方法的名稱。這是相依性屬性。 + + + + +叫用時會將指定屬性變更為指定值的動作。 + + + + +初始化 類別的新例項。 + + + + +叫用動作。 + +動作的參數。如果動作不需要參數,可將參數設為 Null 參照。 +在目標上找不到含有 的屬性。 +無法將 設為 指定的值。 + + + +取得或設定要變更的屬性名稱。這是相依性屬性。 + +要變更的屬性名稱。 + + + +取得或設定要設定的值。這是相依性屬性。 + +要設定的值。 + + + +取得或設定叫用 ChangePropertyAction 時會出現之動畫的持續時間。這是相依性屬性。如果取消設定持續時間,將不會套用動畫。 + + + + +如果為 true,則會依值遞增;否則會直接設定值。如果屬性無法遞增,則會改為嘗試直接設定值。 + + + + +代表一個三元條件。 + + + + +評估條件的方法。請注意,如果運算子和類型不相容,此方法可能會擲回 ArgumentException。例如,LessThan、LessThanOrEqual、GreaterThan 及 GreaterThanOrEqual 等運算子都需要這兩個運算子才能實作 IComparable。 + +如果符合條件則傳回 true,否則傳回 false。 + + + +確保 DP 運算元上的所有繫結都處於最新狀態。 + + + + +取得或設定左運算元。 + + + + +取得或設定右運算元。 + + + + +取得或設定比較運算子。 + + + + +不同比較運算子的列舉。 + + + + +此方法會評估運算元。 + +LeftOperand 屬性中的左運算元。 +Operator 屬性中的運算元。 +RightOperand 屬性中的右運算元。 +如果符合條件則傳回 true,否則傳回 false。 + + + +評估實作 IComparable 介面的兩個運算元。 + +LeftOperand 屬性中的左運算元。 +Operator 屬性中的運算元。 +RightOperand 屬性中的右運算元。 +如果符合條件則傳回 true,否則傳回 false。 + + + +正向鏈結。 + + + + +代表在 ConditionBehavior.Condition 屬性上設定的條件運算式。其中包含的條件清單可在評估後傳回 ICondition.Evaluate() 的 true 或 false 值。 + + + + +介面,指定的物件必須實作此介面才能在 ConditionBehavior.Condition 屬性上設定。 + + + + +初始化 類別的新例項。 + + + + +逐一讀取條件集合,並根據 ForwardChaining 屬性評估每個條件。 + +如果符合條件則傳回 true,否則傳回 false。 + + + +取得或設定條件的正向鏈結。如果正向鏈結設為 ForwardChaining.And,則必須符合所有條件。如果正向鏈結設為 ForwardChaining.Or,則只需要滿足一個條件。 + + + + +傳回條件集合。 + + + + +行為,此行為可附加至觸發程序,並控制觸發條件的動作。 + + + + + +初始化 類別的新例項。 + + + + +負責聆聽由觸發程序觸發之預覽叫用事件的事件處理常式。將 PreviewInvokeEventArgs.Cancelling 設為 True 可取消叫用。 + +觸發程序基底物件。 +屬於 PreviewInvokeEventArgs 類型的物件,其中 e.Cancelling 可設為 True。 + + + +取得或設定行為上的 IConditon 物件。 + +要變更的條件名稱。 + + + +負責管理相依性物件上之繫結運算式的 Helper 類別。 + + + + +確保含繫結運算式之動作上的所有 DP 都處於最新狀態。DataTrigger 會在資料繫結階段觸發。由於動作是觸發程序的子項,因此動作上的所有繫結不一定都處於最新狀態。為了確保所有繫結都是最新的且含有最新的資料,在叫用動作前會先行呼叫此常式。 + + + + +確保動作上的所有繫結運算式都處於最新狀態。 + + + + +如果相依性物件上的相依性屬性含有繫結運算式,此 Helper 函式可確保繫結運算式處於最新狀態。 + + + + + + +根據條件陳述式在兩個狀態間切換。 + + + + +在行為附加到 AssociatedObject 後呼叫。 + +覆寫此設定以便將功能連接至 AssociatedObject。 + + + +取代 FrameworkElement.IsLoaded 的 Helper 函式,因為 Silverlight 沒有這個屬性。 + +相關的元素。 +如果已載入元素則傳回 true,否則傳回 false。 + + + +取得或設定可產生資料物件之屬性值的繫結。這是相依性屬性。 + + + + +取得或設定要和資料物件之屬性值比較的值。這是相依性屬性。 + + + + +取得或設定在符合條件時,要切換之視覺狀態的名稱。這是相依性屬性。 + + + + +取得或設定在不符合條件時,要切換之視覺狀態的名稱。這是相依性屬性。 + + + + +設計成要繫結到資料儲存區屬性的觸發程序。當屬性變更時即會觸發。 + + + + +代表會在繫結資料變更時執行動作的觸發程序。 + +UA_REVIEW:chabiss + + + +在繫結屬性變更時呼叫。UA_REVIEW:chabiss + + 引數。 + + + +在觸發程序附加到 AssociatedObject 後呼叫。UA_REVIEW:chabiss + + + + +當觸發程序正要從其 AssociatedObject 卸離但尚未實際發生前呼叫。UA_REVIEW:chabiss + + + + +觸發程序聆聽的繫結物件;當該繫結物件變更時,會導致觸發程序觸發。 + +UA_REVIEW:chabiss + + + +代表會在繫結資料符合指定之條件時執行動作的觸發程序。 + + + + +在繫結屬性變更時呼叫。UA_REVIEW:chabiss + + 引數。 + + + +取得或設定要和資料物件之屬性值比較的值。這是相依性屬性。 + + + + +取得或設定要針對指定的值執行的比較類型。這是相依性屬性。 + + + + +ExtendedVisualStateManager 是自訂的 VisualStateManager,可將版面配置屬性的動畫變順暢。利用這個自訂的 VisualStateManager,狀態可包含對 Grid.Column 等屬性的變更、可將元素高度變更為 [自動] 或從 [自動] 變更等等。使用適當切換的 GeneratedDuration 和 GeneratedEasingFunction,可在一段時間後將這些變更變順暢。請參閱下方的「VisualStateManager 覆寫」區域,以取得演算法的一般描述。 + + + + +VisualStateGroup 是否可以使用 FluidLayout。 + + + + +在執行階段以自訂的附加屬性遮蔽可見度。 + + + + +VisualStateGroup 會將這些原始值的清單保留在附加屬性中。 + + + + +擷取每個狀態的版面配置專用屬性,然後附加至狀態。這些屬性會從狀態本身移除。 + + + + +記住目前狀態。 + + + + +狀態變更時要使用的 TransitionEffect。 + + + + +狀態變更期間使用的 TransitionEffectStoryboard。 + + + + +狀態變更期間使用的快取背景。 + + + + +狀態變更期間使用的快取背景。 + + + + +狀態變更期間使用的快取背景。 + + + + +這是目前移動中的一組元素。 + + + + +這是正在以動畫顯示切換的腳本。 + + + + +此清單包含所有已知的版面配置屬性。 + + + + +停止動畫並取代為了支援該動畫所進行的版面配置變更。 + + + + +找出 VisualStateManager 將用於以動畫顯示變更的切換,讓版面配置動畫可以符合持續時間及加/減速。 + +發生切換的群組。 +原本的狀態。 +要成為的狀態。 +切換 + + + +針對狀態從腳本移除所有版面配置影響的屬性,並在附加屬性中快取這些屬性。 + +要移到的狀態。 +包含該狀態之版面配置屬性的腳本。 + + + +目標元素集就是可能已在版面配置切換中移動的所有元素集。此集合是下列的終止:- 含有在狀態中以動畫顯示之版面配置屬性的元素。- 集合中元素的同層級項目。- 集合中元素的父項。 + +後續的程式碼會在版面配置變更之前及之後檢查這些矩形。 + +其版面配置正在變更狀態的控制項。 +包含版面配置變更的腳本。 +先前狀態瀏覽中,可能還原的任何先前值。 +目前移動中的一組元素 (如果有狀態變更切換正在進行)。 +其版面配置可能已經變更的整組元素。 + + + +為目標清單中的所有元素取得一組矩形。 + +要考慮的元素集。 +目前移動中的元素集。 +將元素對應至其矩形的字典。 + + + +取得元素的版面配置矩形,方法是取得版面配置位置,然後計算使用的是哪個部分的位置。 + +含有所要擷取之版面配置矩形的元素。 +該元素的版面配置矩形。 + + + +取得狀態變更時元素的不透明度,而非可見度,因為狀態變更可能正在處理中,因此目前的值是最重要的。 + +其狀態正在變更的控制項。 +含有版面配置屬性的腳本。 +一組原始值。 + + + + +瀏覽版面配置腳本並使用 SetValue 設定所有屬性,在不轉譯動畫的情況下,啟用對 UpdateLayout 的呼叫,因為這會導致轉譯。所有遭到覆寫的值會儲存在 OriginalValueRecords 集合中,以便稍後可取代這些值。 + +其狀態正在變更的控制項。 +保存版面配置屬性的腳本。 +原始值儲存區。 + + + +將所有要移動的元素當作版面配置動畫的結果,並將它們包裝在畫布面板中,使其不影響其同層級元素。 + +要移動的元素集。 + + + +將所有一直在移動的元素當作版面配置動畫的結果,並將它們從其畫布面板取消包裝。 + +一直在移動的元素集。 + + + +將版面配置屬性從來源元素複製到目標元素,以便將它們從來源清除。 + +版面配置屬性的來源。 +版面配置屬性的目的地。 + + + +建立要用於以動畫顯示切換的實際腳本。使用所有先前計算的結果。 + +動畫的持續時間。 +要在動畫中使用的加/減速函數。 +要移動的元素集。 +可見度屬性正在變更之元素的原有不透明度。 +腳本。 + + + +OriginalValueRecord 會記住在狀態中變更之屬性的原始值。 + + + + +這個列舉型別指出 FluidMoveBehavior 是套用至它所附加到的元素,還是套用至該元素的子項。"Self" 適用於單一元素應呈現特殊行為的情況;"Children" 則適用於相同行為應套用至 WrapPanel 所有子項,或套用至 ItemsControl 之 ItemsHost 面板的情況。 + + + + +此列舉類型指出元素是由本身識別,或藉由其 DataContext 識別。DataContext 識別允許從某個資料導向位置移到另一個位置。 + + + + +行為範圍的相依性屬性。如需詳細資訊,請參閱 FluidMoveScope。 + + + + +行為之使用中狀態的相依性屬性。 + + + + +相依性屬性,此相依性屬性可提供將元素當作自己的標籤,或將元素上之繫結當作標籤的能力。 + + + + +當 UsaBindingAsTag 為 true 時,可讓額外路徑新增至繫結的相依性屬性。 + + + + +識別標籤,此識別標籤可用來偵測元素在多個容器間的動作。 + + + + +指出行為只要套用至此元素,或套用至元素的所有子項 (如果該元素是面板)。 + + + + +指出行為目前是否使用中。 + + + + +指出是否將元素當作自己的標籤,或將元素上的繫結當作標籤。 + + + + +當指定 TagType 時,要新增至繫結的額外路徑。 + + + + +儲存所有和標籤項目有關之相關資料的私用結構。 + + + + +監控元素 (或一組元素) 之版面配置變更,並在需要時將元素平順地移至新位置的行為。此行為不會以動畫顯示元素的大小或可見度,它只會以動畫顯示該元素在其父容器內的位移。 + + + + +移動持續時間的相依性屬性。 + + + + +即將載入物件前要使用之標籤類型的相依性屬性。 + + + + +當 UsaBindingAsTag 為 true 時,可讓額外路徑新增至繫結的相依性屬性。 + + + + +識別標籤,此識別標籤可用來偵測元素在多個容器間的動作。 + + + + +FloatAbove 旗標的相依性屬性。 + + + + +供 EasingFunction 用於移動之水平元件的相依性屬性。 + + + + +供 EasingFunction 用於移動之垂直元件的相依性屬性。 + + + + +記住當 FloatAbove 為 true 時容器間元素移動狀況中使用的快顯功能表/提示。 + + + + +在使 Popup 浮動時使用的不透明度快取。 + + + + +標示動畫轉換。 + + + + +移動的持續時間。 + + + + +此項目的產生點。 + + + + +當指定 TagType 時,要新增至繫結的額外路徑。 + + + + +旗標,此旗標表示容器變更時,是否允許元素浮動於其容器之上 (在 Popup 或 Adorner 中)。 + + + + +要用於移動之水平元件的 EasingFunction。 + + + + +要用於移動之垂直元件的 EasingFunction。 + + + + +允許使用任何 UIElements 當作 Adorner 的簡單 Helper 類別。 + + + + +叫用此動作可將 FrameworkElement 切換為指定的 VisualState。 + + +如果已設定 TargetName 屬性,此動作會嘗試變更目標元素的狀態。如果未設定,它會查看元素樹狀目錄,以嘗試找出定義狀態的替代目標。ControlTemplate 和 UserControl 是兩個常見的可能目標。 + + + + +當目標變更時呼叫。如果未設定 TargetName 屬性,此動作會具有自訂行為。 + + + +找不到含有狀態的適當 FrameworkElement。 + + + +當符合某些條件且叫用動作時,會呼叫此方法。 + + +無法將目標變更為指定的 StateName。 + + + +判斷是否要使用 VisualTransition 來切換狀態。 + + + + +VisualState 的名稱。 + + + + +由鍵盤事件觸發的觸發程序。如果偵測到目標按鍵和輔助按鍵,它就會觸發。 + + + + +必須按下以使觸發程序觸發的按鍵。 + + + + +必須為使用中才能使觸發程序觸發的輔助按鍵 (預設為未按下輔助按鍵)。 + + + + +如果為 true,則觸發程序只會聆聽其觸發程序來源物件,這表示元素必須具有焦點才能使觸發程序觸發。如果為 false,則觸發程序會在根層級聆聽,因此任何無法處理的 KeyDown/Up 訊息都會遭到攔截。 + + + + +判斷是否要聆聽 KeyDown 或 KeyUp 事件。 + + + + +將啟動開啟檔案或 URI 之程序的動作。針對檔案,此動作將啟動指定副檔名的預設程式。URI 會在網頁瀏覽器中開啟。 + + + + +當符合某些條件且叫用動作時,會呼叫此方法。 + + + + + +要開啟的檔案或 URI。 + + + + +重新置放附加的元素以回應元素上的滑鼠拖曳筆勢。 + + + + +拖曳的元素之 X 位置的相依性屬性,相對於根元素的左邊。 + + + + +拖曳的元素之 Y 位置的相依性屬性,相對於根元素的頂端。 + + + + +ConstrainToParentBounds 屬性的相依性屬性。如果為 true,將會限制拖曳的元素要保持在其父容器的界限內。 + + + + +嘗試將關聯元素的位置更新為指定的座標。 + +根座標中元素的所要位置。 + + + +將相對位置平移套用至關聯的元素。 + +根座標中所要平移的 X 元件。 +根座標中所要平移的 Y 元件。 + + + +將指定平移套用至關聯元素的 RenderTransform。 + +父座標中平移的 X 元件。 +父座標中平移的 Y 元件。 + + + +製作指定之轉換的遞迴深層複本。 + +要複製的轉換。 +指定之轉換的深層複本;如果指定之轉換為 Null,則為 Null。 +如果無法辨識轉換的類型,便會擲回。 + + + +根據關聯元素目前呈現的位置來更新 X 和 Y 屬性。 + + + + +檢查某個矩形是否由另一個矩形所包含。 + +包含的矩形。 +被包含的矩形。 +如果 rect1 包含 rect2 則為 True,否則為 False + + + +轉換為向量。 + +轉換。 +向量的 X 元件。 +向量的 Y 元件。 +包含由轉換為向量所轉換之 X 和 Y 值的點。 + + + +取得轉換位移。 + +轉換。 +轉換的位移。 + + + +在行為附加到 AssociatedObject 後呼叫。 + +覆寫此設定以便將功能連接至 AssociatedObject。 + + + +當行為正要從其 AssociatedObject 卸離但尚未實際發生前呼叫。 + +覆寫此設定以便從 AssociatedObject 取消連接功能。 + + + +起始拖曳筆勢時發生。 + + + + +處理拖曳筆勢更新時發生。 + + + + +完成拖曳筆勢時發生。 + + + + +取得或設定拖曳的元素之 X 位置,相對於根元素的左邊。這是相依性屬性。 + + + + +取得或設定拖曳的元素之 Y 位置,相對於根元素的頂端。這是相依性屬性。 + + + + +取得或設定值,該值指出是否限制拖曳的元素要保持在其父容器的界限內。這是相依性屬性。 + + + 如果將拖曳的元素應限制在其父容器的界限內則為 True,否則為 False。 + + + + +取得根座標中關聯元素的螢幕位置。 + +根座標中關聯元素的螢幕位置。 + + + +取得元素座標中的元素界限。 + +元素座標中的元素界限。 + + + +取得關聯物件的父元素。 + +關聯物件的父元素。 + + + +取得關聯物件所在之場景的根元素。 + +關聯物件所在之場景的根元素。 + + + +取得並設定關聯元素的 RenderTransform。 + + + + +將播放完成聲音的動作。 + + +此動作適用於不需要停止或控制的短音效。如果您要嘗試建立音樂播放程式或遊戲,它可能不符合您的需求。 + + + + +初始化 類別的新例項。 + + + + +當叫用動作時,會使用此方法來自訂動態建立的 MediaElement。 + + +對於想要延伸 PlaySoundAction 的動作撰寫者,此方法可能很實用。如果您想要控制 MediaElement Balance 屬性,可以從 PlaySoundAction 繼承並覆寫此方法。 + + + + + +當符合某些條件且應該叫用動作時,會呼叫此方法。 + + +每次叫用動作時會播放新的聲音。雖然實作可能隨時變更,呼叫者應預期這會建立新的 MediaElement,當聲音完成或媒體無法播放時會清除該 MediaElement。 + + + + + +定義聲音檔位置的 URI。這是用於設定 MediaElement 的 Source 屬性。這是相依性屬性。 + + +聲音可以是 MediaElement 所支援的任何檔案格式。如果是影片,只會播放音訊部分。 + + + + +控制聲音的音量。這是用於設定 MediaElement 的 Volume 屬性。這是相依性屬性。 + + + + +叫用時會從樹狀目錄移除目標元素的動作。 + + +此動作可能會失敗。該動作知道如何從共同父項移除元素,而不是從自訂集合或直接操作視覺化樹狀目錄。 + + + + +動作,此動作可從資料儲存區物件變更屬性的值。此類別和 ChangePropertyAction 相同。唯一的差別在於此動作會載入資料儲存區選擇器。 + + + + +能夠以腳本為目標的抽象類別。 + + +此類別可為動作撰寫者提供以腳本為目標的標準方式。設計工具可選擇為繼承自此動作的類別提供特殊的編輯經驗,因而改善設計師的經驗。 + + + + +當 Storyboard 屬性變更時,會呼叫此方法。 + + + + + +目標腳本。這是相依性屬性。 + + + + +叫用時將變更目標腳本狀態的動作。 + + + + +當符合某些條件且應該叫用動作時,會呼叫此方法。此方法會嘗試依照 ControlStoryboardOption 所定義的方式,變更目標腳本。 + + + + + +能夠以腳本為目標的抽象類別。 + + +此類別可為觸發程序撰寫者提供以腳本為目標的標準方式。設計工具可選擇為繼承自此觸發程序的類別提供特殊的編輯經驗,因而改善設計師的經驗。 + + + + +當 Storyboard 屬性變更時,會呼叫此方法。 + + + + +目標腳本。這是相依性屬性。 + + + + +聆聽腳本完成的觸發程序。 + + + + +初始化 類別的新例項。 + + + + +觸發程序,由在其來源發生之指定事件所觸發,且會在該事件觸發後經過一段延遲時間再觸發。 + + + + +初始化 類別的新例項。 + + + + +取得或設定滴答聲之間要等候的毫秒數。這是相依性屬性。 + + + + +取得或設定在觸發程序完成前要觸發的滴答聲總數。這是相依性屬性。 + + + + +可定義切換效果著色器,此切換效果著色器能使用介於 0 到 1 之間的內插值在兩種視覺效果間切換。 + + + + +可在著色器內成為取樣器屬性的筆刷值屬性。代表在出現於切換之最終狀態的影像。 + + + + +可在著色器內成為取樣器屬性的筆刷值屬性。代表在出現於切換之初始狀態的影像。 + + + + +可作為 Progress 之備份儲存區的相依性屬性。也可用來呈現從開始切換到結束的狀態 (範圍介於 0 到 1 之間)。 + + + + +使用 目前的值建立此項目可修改的複製品 (深層複本)。 + + + + +製作切換效果的深層複本。在 Silverlight 中實作 CloneCurrentValue。 + +切換效果之目前例項的複製品。 + + + +將著色器的變數更新為預設值。 + + + + +取得或設定著色器內的 Input 變數。 + + + + +取得或設定著色器內的 OldImage 變數。 + + + + +取得或設定著色器內的 Progress 變數。 + + + + +允許使用者利用一般觸控筆勢來平移、縮放及旋轉附加的物件。 + + + + +在行為附加到 AssociatedObject 後呼叫。 + +覆寫此設定以便將功能連接至 AssociatedObject。 + + + +當行為正要從其 AssociatedObject 卸離但尚未實際發生前呼叫。 + +覆寫此設定以便從 AssociatedObject 取消連接功能。 + + + +取得或設定指定支援哪些縮放和平移變化的值。 + + + + +取得或設定描述平移減少速率的數字。 + + + + +取得或設定描述旋轉減少速率的數字。 + + + + +取得或設定值,這個值指出附加物件的縮放和平移位置是否受限於父物件的界限。 + + + + +取得或設定數字,這個數字指出允許的最小縮放值。 + + + + +取得或設定數字,這個數字指出允許的最大縮放值。 + + + + +此類別提供多種無特定平台標準作業供您搭配 VisualStateManager 使用。 + + + + +使控制項在兩個狀態之間切換。 + +要在多個狀態之間切換的元素。 +要切換的狀態。 +True 表示要使用 System.Windows.VisualTransition 在多個狀態之間切換,否則為 false。 +如果成功將控制項切換為新的狀態則為 True,否則為 false。 +控制項為 Null。 +StateName 為 Null。 + + + +取得 VisualStateManager.VisualStateGroups 附加屬性的值。 + +要取得 VisualStateManager.VisualStateGroups 的來源元素。 + + + + +尋找最接近且含有視覺狀態的父項。 + +要從中尋找最接近之可設定狀態控制項的元素。 +如果為 True,則為最接近的可設定狀態控制項,否則為 Null。 +如果父項含有視覺狀態則為 True,否則為 False。 + + + +強型別資源類別,用於查詢當地語系化字串等等。 + + + + +傳回此類別所使用的快取 ResourceManager 例項。 + + + + +使用此強型別資源類別,為所有資源查閱覆寫目前執行緒的 CurrentUICulture 屬性。 + + + + +查詢類似「在類型 '{1}' 的物件上找不到符合預期簽章且名為 '{0}' 的方法。」的當地語系化字串。 + + + + +查詢類似「在類型 '{0}' 上找到一個以上可能的加法運算子。」的當地語系化字串。 + + + + +查詢類似「無法以動畫顯示類型 '{0}' 目標上的屬性變更。只能在從 DependencyObject 衍生而來的類型上以動畫顯示屬性變更。」的當地語系化字串。 + + + + +查詢類似「在類型 "{1}" 上找不到名為 "{0}" 的屬性。」的當地語系化字串。 + + + + +查詢類似「如果已設定 Duration 屬性,Increment 屬性就不能設定為 True。」的當地語系化字串。 + + + + +查詢類似「'{0}' 屬性無法遞增,因為無法讀取它的值。」的當地語系化字串。 + + + + +查詢類似「無法將類型 "{0}" 的值指定給類型 "{2}" 的屬性 "{1}"。"{1}" 屬性只能指定類型 "{2}" 的值。」的當地語系化字串。 + + + + +查詢類似「類型 "{1}" 所定義的屬性 "{0}" 未公開 set 方法,因此無法修改。」的當地語系化字串。 + + + + +查詢類似「在類型 "{1}" 上找不到名為 "{0}" 的狀態。請確認狀態存在,而且可以從這個內容存取。」的當地語系化字串。 + + + + +查詢類似「目標 {0} 未定義任何 VisualStateGroups。」的當地語系化字串。 . + + + + +查詢類似「類型 "{0}" 的 LeftOperand 無法搭配運算子 "{1}" 使用。」的當地語系化字串。 + + + + +查詢類似「類型 "{1}" 的 LeftOperand 和類型 "{0}" 的 RightOperand 無法搭配運算子 "{2}" 使用。」的當地語系化字串。 + + + + +查詢類似「類型 "{0}" 的 RightOperand 無法搭配運算子 "{1}" 使用。」的當地語系化字串。 + + + + +查詢類似「不支援 RemoveElementAction 的目標。」的當地語系化字串。 + + + + diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/zh-Hant/Microsoft.Expression.Prototyping.Interactivity.resources.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/zh-Hant/Microsoft.Expression.Prototyping.Interactivity.resources.dll new file mode 100644 index 0000000..eb34552 Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/zh-Hant/Microsoft.Expression.Prototyping.Interactivity.resources.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/zh-Hant/System.Windows.Interactivity.resources.dll b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/zh-Hant/System.Windows.Interactivity.resources.dll new file mode 100644 index 0000000..3ad989e Binary files /dev/null and b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/zh-Hant/System.Windows.Interactivity.resources.dll differ diff --git a/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/zh-Hant/System.Windows.Interactivity.xml b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/zh-Hant/System.Windows.Interactivity.xml new file mode 100644 index 0000000..321f671 --- /dev/null +++ b/packages/Microsoft.Expression.Blend.SDK.WPF.4.0.0/lib/net40/zh-Hant/System.Windows.Interactivity.xml @@ -0,0 +1,1046 @@ + + + + System.Windows.Interactivity + + + + +代表含有共用 AssociatedObject 的 IAttachedObject 集合,並在該 AssociatedObject 變更時提供變更通知給其內容。 + + + + +可附加到其他物件之物件的介面。 + + + + +附加到指定的物件。 + +要附加到的物件。 + + + +將此例項從其關聯的物件卸離。 + + + + +取得關聯的物件。 + +關聯的物件。 +代表例項要附加到的物件。 + + + +初始化 類別的新例項。 + +內部,因為這不應該在此組譯碼以外被繼承。 + + + +在集合附加到 AssociatedObject 後立即呼叫。 + + + + +當集合正要從其 AssociatedObject 卸離但尚未實際發生前呼叫。 + + + + +當新增項目至集合時呼叫。 + +新項目。 + + + +從集合移除項目時呼叫。 + +移除的項目。 + + +無法將例項多次新增到集合。 + + + +附加到指定的物件。 + +要附加到的物件。 +已將 IAttachedObject 附加到不同的物件。 + + + +將此例項從其關聯的物件卸離。 + + + + +主控集合的物件。 + + + + +取得關聯的物件。 + +關聯的物件。 + + + +將狀態資訊及零或多個 ICommands 封裝到可附加的物件中。 + +可將 附加到的類型。 + + Behavior 是將可附加的狀態及命令提供給物件的基底類別。Behavior 可以附加到的類型可由泛型參數來控制。覆寫 OnAttached() 和 OnDetaching() 方法,以便從 AssociatedObject 連接及取消連接任何必要的處理常式。 + + + + +將狀態資訊及零或多個 ICommands 封裝到可附加的物件中。 + +這是基礎結構類別。行為撰寫者應從 Behavior<T> 衍生,而不是從這個類別衍生。 + + + +在行為附加到 AssociatedObject 後呼叫。 + +覆寫此設定以便將功能連接至 AssociatedObject。 + + + +當行為正要從其 AssociatedObject 卸離但尚未實際發生前呼叫。 + +覆寫此設定以便從 AssociatedObject 取消連接功能。 + + + +附加到指定的物件。 + +要附加到的物件。 +已在不同的元素上主控 Behavior。 +dependencyObject 不符合 Behavior 類型限制。 + + + +將此例項從其關聯的物件卸離。 + + + + +此行為可附加到的類型。 + + + + +取得此行為附加到的物件。 + + + + +取得關聯的物件。 + +關聯的物件。 + + + +初始化 類別的新例項。 + + + + +取得此 附加到的物件。 + + + + +代表含有共用 AssociatedObject 的行為集合,並在該 AssociatedObject 變更時提供變更通知給其內容。 + + + + +初始化 類別的新例項。 + +內部,因為這不應該在此組譯碼以外被繼承。 + + + +在集合附加到 AssociatedObject 後立即呼叫。 + + + + +當集合正要從其 AssociatedObject 卸離但尚未實際發生前呼叫。 + + + + +當新增項目至集合時呼叫。 + +新項目。 + + + +從集合移除項目時呼叫。 + +移除的項目。 + + + +建立 BehaviorCollection 的新例項。 + +新例項。 + + + +為可重複使用的屬性值編輯器列舉可能的值。 + + + + +使用元素選擇器 (如果有支援) 在設計階段編輯此屬性。 + + + + +使用腳本選擇器 (如果有支援) 在設計階段編輯此屬性。 + + + + +使用狀態選擇器 (如果有支援) 在設計階段編輯此屬性。 + + + + +使用元素繫結選擇器 (如果有支援) 在設計階段編輯此屬性。 + + + + +使用屬性繫結選擇器 (如果有支援) 在設計階段編輯此屬性。 + + + + +讓指定編輯器類型與套用 CustomPropertyValueEditor 的屬性產生關聯。 + +使用這個屬性,為代表元素 (依名稱)、腳本或狀態 (依名稱) 的屬性改善設計階段編輯。 + + + +初始化 類別的新例項。 + +自訂屬性值編輯器。 + + + +取得或設定自訂屬性值編輯器。 + +自訂屬性值編輯器。 + + + +提供有關要為指定動作或命令具現化什麼 的設計工具資訊。 + + + + +初始化 類別的新例項。 + +此屬性套用到的類型。 +要具現化的 類型。 +指定之 的單一引數。 + 不是從 TriggerBase 衍生。 +如果指定的 具有單一引數,則此建構函式會很有用。產生的程式碼將符合 CLS 標準。 + + + +初始化 類別的新例項。 + +此屬性套用到的類型。 +要具現化的 類型。 +指定之 的建構函式引數。 + 不是從 TriggerBase 衍生。 + + + +具現化此例項。 + +DefaultTriggerAttribute 指定的 + + + +取得此 DefaultTriggerAttribute 套用到的類型。 + +此 DefaultTriggerAttribute 套用到的類型。 + + + +要具現化的 類型。 + +要具現化的 類型。 + + + +取得傳送至 建構函式的參數。 + +傳送至 建構函式的參數。 + + + +此方法會使用 VisualTreeHelper.GetParent 方法執行深度優先回溯到視覺化樹狀目錄的頂端,然後傳回指定物件的所有上階 (包括物件本身)。 + +視覺化樹狀目錄中要尋找上階的物件。 +傳回本身及視覺化樹狀目錄中的所有上階。 + + + +EventObserver 設計成可透過在處置時卸離,協助管理事件處理常式。建立此物件也會附加到建構函式中。 + + + + +建立 EventObserver 的例項,並附加到指定目標上的指定事件。呼叫要卸離的處置。 + +要附加和卸離的事件。 +定義事件的所在目標物件。若為靜態方法則為 Null。 +要附加到事件的委派。 + + + +使處理常式和事件卸離。 + + + + +在其來源聆聽指定的事件並在該事件觸發時觸發的觸發程序。 + + + + +代表可聆聽其 AssociatedObject 以外之元素的觸發程序。 + +此觸發程序可以產生關聯的類型。 + + EventTriggerBase 會延伸 TriggerBase 以新增另一個物件 (而不是它所附加到的物件) 的知識。這可讓使用者將一對觸發程序/動作附加到一個物件並叫用動作,以回應他處另一個物件的變更。覆寫 OnSourceChanged 以便在來源元素上連接或取消連接處理常式,以及關聯元素的 OnAttached/OnDetaching。來源元素的類型可受到泛型型別參數的限制。如果您需要控制 AssociatedObject 的類型,請在衍生類型上設定 TypeConstraintAttribute。 + + + + +代表可聆聽其 AssociatedObject 以外之物件的觸發程序。 + +這是基礎結構類別。觸發程序撰寫者應從 EventTriggerBase<T> 衍生,而不是從這個類別衍生。 + + + +代表可以有條件地叫用動作的物件。 + +這是基礎結構類別。觸發程序撰寫者應從 Trigger<T> 衍生,而不是從這個類別衍生。 + + + +叫用所有與此觸發程序關聯的動作。 + +衍生的類別應呼叫此項目以使觸發程序觸發。 + + + +在觸發程序附加到 AssociatedObject 後呼叫。 + + + + +當觸發程序正要從其 AssociatedObject 卸離但尚未實際發生前呼叫。 + + + + +建立 TriggerBase 衍生類別的新例項。 + +新例項。 + + + +附加到指定的物件。 + +要附加到的物件。 +無法同時在多個物件上主控相同的觸發程序。 +dependencyObject 不符合觸發程序類型限制。 + + + +將此例項從其關聯的物件卸離。 + + + + +取得觸發程序附加到的物件。 + +關聯的物件。 + + + +取得關聯物件的類型限制。 + +關聯物件類型限制。 + + + +取得與此觸發程序關聯的動作。 + +與此觸發程序關聯的動作。 + + + +用來註冊 PreviewInvoke 的事件處理常式。 + + + + +取得關聯的物件。 + +關聯的物件。 + + + +指定此 EventTriggerBase 正在聆聽之事件的名稱。 + + + + + +當觸發與此 EventTriggerBase 關聯的事件時呼叫。根據預設,這會叫用觸發程序上的所有動作。 + +包含事件資料的 例項。 +覆寫此例項以便在叫用與此觸發程序關聯的動作時,提供更精細的控制。 + + + +當來源變更時呼叫。 + +舊來源。 +新來源。 +應該在衍生類別中覆寫此函數,以便從變更的來源物件連接或取消連接功能。 + + + +在觸發程序附加到 AssociatedObject 後呼叫。 + + + + +當觸發程序正要從其 AssociatedObject 卸離但尚未實際發生前呼叫。 + + + +在目標上找不到 eventName。 + + + +取得關聯物件的類型限制。 + +關聯物件類型限制。 +在衍生的類型上定義 TypeConstraintAttribute,以限制它可附加到的類型。 + + + +取得來源類型限制。 + +來源類型限制。 + + + +取得或設定目標物件。如果未設定 TargetObject,目標會尋找 TargetName 指定的物件。如果找不到 TargetName 參照的元素,目標會預設為 AssociatedObject。這是相依性屬性。 + +目標物件。 + + + +取得或設定此 EventTriggerBase 當作來源聆聽的元素名稱。如果未設定或無法解析名稱,將會使用 AssociatedObject。這是相依性屬性。 + +來源元素的名稱。 + + + +取得解析的來源。如果未設定或無法解析 ,則會預設為 AssociatedObject。 + +解析的來源物件。 +一般而言,此屬性應該用於取代衍生類別中的 AssociatedObject。 + 指向的元素不符合類型限制。 + + + +初始化 類別的新例項。 + + + + +當來源屬性變更時呼叫。 + +覆寫此項目以便從指定的來源 (而非 AssociatedObject) 連接或取消連接功能。 +舊來源。 +新來源。 + + + +取得解析的來源。如果未設定或無法解析 ,則會預設為 AssociatedObject。 + +解析的來源物件。 +一般而言,此屬性應該用於取代衍生類別中的 AssociatedObject。 + + + +初始化 類別的新例項。 + + + + +初始化 類別的新例項。 + +事件的名稱。 + + + +取得或設定要聆聽的事件名稱。這是相依性屬性。 + +事件的名稱。 + + + +擁有 Triggers 和 Behaviors 附加屬性的靜態類別。處理 AssociatedObject 變更通知的傳播。 + + + + +此屬性是當作公用 Triggers 附加屬性的內部備份儲存區使用。 + + +此屬性並未公開。這會強制用戶端使用 GetTriggers 和 SetTriggers 方法來存取集合,以便在使用集合前確保它存在並已設定。 + + + + +此屬性是當作公用 Behaviors 附加屬性的內部備份儲存區使用。 + + +此屬性並未公開。這會強制用戶端使用 GetBehaviors 和 SetBehaviors 方法來存取集合,以便在使用集合前確保它存在並已設定。 + + + + +取得包含與指定物件關聯之觸發程序的 TriggerCollection。 + +要從中擷取觸發程序的物件。 +包含與指定物件關聯之觸發程序的 TriggerCollection。 + + + +取得與指定物件關聯的 。 + +要從中擷取 的物件。 +包含與指定物件關聯之行為的 + + +無法同時在多個物件上主控相同的 BehaviorCollection。 + + +無法同時在多個物件上主控相同的 TriggerCollection。 + + + +取代 FrameworkElement.IsLoaded 的 Helper 函式,因為 Silverlight 沒有這個屬性。 + +相關的元素。 +如果元素已載入則為 True,否則為 False。 + + + +取得或設定指出是否要如同在設計模式中一樣執行的值。 + + + 如果 [應該在設計模式中執行] 則為 True,否則為 False。 + +無法在單元測試以外使用。 + + + +在叫用時執行指定的 ICommand。 + + + + +代表封裝功能單元的可附加物件。 + +此動作可附加到的類型。 + + + +代表封裝功能單元的可附加物件。 + +這是基礎結構類別。動作撰寫者應從 TriggerAction<T> 衍生,而不是從這個類別衍生。 + + + +嘗試叫用動作。 + +動作的參數。如果動作不需要參數,可將參數設為 Null 參照。 + + + +叫用動作。 + +動作的參數。如果動作不需要參數,可將參數設為 Null 參照。 + + + +在動作附加到 AssociatedObject 後呼叫。 + + + + +當動作正要從其 AssociatedObject 卸離但尚未實際發生前呼叫。 + + + + +在衍生的類別中實作時,建立 衍生類別的新例項。 + +新例項。 + + + +附加到指定的物件。 + +要附加到的物件。 +無法同時在多個物件上主控相同的 TriggerAction。 +dependencyObject 不符合 TriggerAction 類型限制。 + + + +將此例項從其關聯的物件卸離。 + + + + +取得或設定指出此動作是否會在叫用時執行的值。這是相依性屬性。 + + + 如果此動作會在叫用時執行則為 True,否則為 False。 + + + + +取得此動作附加到的物件。 + +關聯的物件。 + + + +取得關聯物件類型限制。 + +關聯物件類型限制。 + + + +取得或設定指出是否附加此例項的值。 + +如果附加此例項則為 True,否則為 False + + + +取得關聯的物件。 + +關聯的物件。 + + + +初始化 類別的新例項。 + + + + +取得此 附加到的物件。 + +關聯的物件。 + + + +取得關聯物件類型限制。 + +關聯物件類型限制。 + + + +叫用動作。 + +動作的參數。如果動作不需要參數,可將參數設為 Null 參照。 + + + +取得或設定此動作應叫用的命令名稱。 + +此動作應叫用的命令名稱。 +如果此屬性和 Command 屬性均已設定,Command 屬性會取代此屬性。 + + + +取得或設定此動作應叫用的命令。這是相依性屬性。 + +要執行的命令。 +如果此屬性和 CommandName 屬性均已設定,此屬性的優先順序高於 CommandName 屬性。 + + + +取得或設定命令參數。這是相依性屬性。 + +命令參數。 +這是傳送至 ICommand.CanExecute 和 ICommand.Execute 的值。 + + + +提供有關哪些物件會在解析名稱變更時受影響的資料。 + + + + +Helper 類別,用來處理根據主機元素所提供的內容,將 TargetName 解析為目標元素的邏輯 。 + + + + +嘗試以名稱範圍參照元素之內容中的名稱,來更新解析的物件。 + +舊的解析物件。 + +重設現有的目標,並嘗試從目前主機的內容解析目前的 TargetName。如果無法從主機的內容解析,則會在視覺化樹狀目錄中繼續往上,直到解析為止。如果到達根時仍無法解析,則會將目標設為 Null,並在偵錯輸出中寫入警告訊息。 + + + + +在解析的元素已變更時發生。 + + + + +取得或設定要嘗試解析的元素名稱。 + +要嘗試解析的名稱。 + + + +解析的物件。如果 TargetName 為 Null 或空白,或尚未嘗試進行解析,將傳回參照元素。 + + + + +取得或設定要從中執行名稱解析的參照元素。 + +參照元素。 + + + +取得或設定指出參照元素載入是否擱置的值。 + + + 如果 [擱置參照元素載入] 則為 True,否則為 False。 + + +如果尚未載入主機,將不會解析名稱。在這種情況下,請延遲解析並使用此屬性來追蹤該事實。 + + + + +代表可作為目標來影響其 AssociatedObject 以外之物件的動作。 + +對目標的類型限制。 + + TargetedTriggerAction 會延伸 TriggerAction 以新增另一個元素 (而不是它所附加到的元素) 的知識。這可讓使用者在不是所附加到的元素上叫用動作,以回應觸發程序的觸發。覆寫 OnTargetChanged 以便在目標元素上連接或取消連接處理常式,以及關聯元素的 OnAttached/OnDetaching。目標元素的類型可受到泛型型別參數的限制。如果您需要控制 AssociatedObject 的類型,請在衍生類型上設定 TypeConstraintAttribute。 + + + + +代表可作為目標來影響其 AssociatedObject 以外之物件的動作。 + +這是基礎結構類別。動作撰寫者應從 TargetedTriggerAction<T> 衍生,而不是從這個類別衍生。 + + + +當目標變更時呼叫。 + +舊目標。 +新目標。 +應該在衍生類別中覆寫此函數,以便從變更的來源物件連接或取消連接功能。 + + + +在動作附加到 AssociatedObject 後呼叫。 + + + + +當動作正要從其 AssociatedObject 卸離但尚未實際發生前呼叫。 + + + + +取得或設定目標物件。如果未設定 TargetObject,目標會尋找 TargetName 指定的物件。如果找不到 TargetName 參照的元素,目標會預設為 AssociatedObject。這是相依性屬性。 + +目標物件。 + + + +取得或設定此動作的目標物件名稱。如果已設定 Target,則會忽略此屬性。如果未設定 Target,而且未設定或無法解析 TargetName,目標會預設為 AssociatedObject。這是相依性屬性。 + +目標物件的名稱。 + + + +取得目標物件。如果已設定 TargetObject,則傳回 TargetObject。反之,如果未設定或無法解析 TargetName,則會預設為 AssociatedObject。 + +目標物件。 +一般而言,此屬性應該用於取代衍生類別中的 AssociatedObject。 +目標元素不符合類型限制。 + + + +取得關聯物件類型限制。 + +關聯物件類型限制。 +在衍生的類型上定義 TypeConstraintAttribute,以限制它可附加到的類型。 + + + +取得目標類型限制。 + +目標類型限制。 + + + +初始化 類別的新例項。 + + + + +當目標屬性變更時呼叫。 + +覆寫此項目以便在指定的目標 (而非 AssociatedObject) 上連接或取消連接功能。 +舊目標。 +新目標。 + + + +取得目標物件。如果未設定或無法解析 TargetName,則會預設為 AssociatedObject。 + +目標。 +一般而言,此屬性應該用於取代衍生類別中的 AssociatedObject。 + + + +代表含有共用 AssociatedObject 的動作集合,並在該 AssociatedObject 變更時提供變更通知給其內容。 + + + + +初始化 類別的新例項。 + +內部,因為這不應該在此組譯碼以外被繼承。 + + + +在集合附加到 AssociatedObject 後立即呼叫。 + + + + +當集合正要從其 AssociatedObject 卸離但尚未實際發生前呼叫。 + + + + +當新增項目至集合時呼叫。 + +新項目。 + + + +從集合移除項目時呼叫。 + +移除的項目。 + + + +建立 TriggerActionCollection 的新例項。 + +新例項。 + + + +代表可以有條件地叫用動作的物件。 + +此觸發程序可附加到的類型。 + + TriggerBase 是用來控制動作的基底類別。覆寫 OnAttached() 和 OnDetaching(),以便在 AssociatedObject 上連接及取消連接處理常式。您可以透過指定泛型參數,來限制衍生 TriggerBase 可附加到的類型。呼叫 InvokeActions() 以觸發所有與此 TriggerBase 關聯的動作。 + + + + +初始化 類別的新例項。 + + + + +取得觸發程序附加到的物件。 + +關聯的物件。 + + + +取得關聯物件的類型限制。 + +關聯物件類型限制。 + + + +傳遞給 PreviewInvoke 事件的引數。將 Cancelling 指定為 True 可取消觸發程序的叫用。 + +這是基礎結構類別。附加到觸發程序基底物件的行為可將其行為新增為 TriggerBase.PreviewInvoke 的接聽程式。 + + + +代表含有共用 AssociatedObject 的觸發程序集合,並在該 AssociatedObject 變更時提供變更通知給其內容。 + + + + +初始化 類別的新例項。 + +內部,因為這不應該在此組譯碼以外被繼承。 + + + +在集合附加到 AssociatedObject 後立即呼叫。 + + + + +當集合正要從其 AssociatedObject 卸離但尚未實際發生前呼叫。 + + + + +當新增項目至集合時呼叫。 + +新項目。 + + + +從集合移除項目時呼叫。 + +移除的項目。 + + + +建立 的新例項。 + +新例項。 + + + +在 TargetedTriggerAction 和 EventTriggerBase 的 AssociatedObject 上指定類型限制。 + + + + +初始化 類別的新例項。 + +限制類型。 + + + +取得限制類型。 + +限制類型。 + + + +強型別資源類別,用於查詢當地語系化字串等等。 + + + + +傳回此類別所使用的快取 ResourceManager 例項。 + + + + +使用此強型別資源類別,為所有資源查閱覆寫目前執行緒的 CurrentUICulture 屬性。 + + + + +查詢類似「無法在多個物件上設定相同的 BehaviorCollection。」的當地語系化字串。 + + + + +查詢類似「無法將 Behavior 的例項同時附加到一個以上的物件。」的當地語系化字串。 + + + + +查詢類似「無法同時在多個 TriggerCollections 中主控 TriggerAction 的例項。請先將它從其中一個 TriggerCollection 移除,然後再新增到另外一個。」的當地語系化字串。 + + + + +查詢類似「無法在多個物件上設定相同的 TriggerCollection。」的當地語系化字串。 + + + + +查詢類似「無法將觸發程序的例項同時附加到一個以上的物件。」的當地語系化字串。 + + + + +查詢類似「命令 "{0}" 不存在或是未於 {1} 上公開。」的當地語系化字串。 + + + + +查詢類似「"{0}" 不是 TriggerType 參數的有效類型。請確認 "{0}" 是衍生自 TriggerBase。」的當地語系化字串。 + + + + +查詢類似「無法將相同的 "{0}" 例項多次新增到 "{1}"。」的當地語系化字串。 + + + + +查詢類似「類型 "{1}" 上的事件 "{0}" 具有不相容的簽章。請確認該事件為公用事件,且符合 EventHandler 委派。」的當地語系化字串。 + + + + +查詢類似「在類型 "{1}" 上找不到名為 "{0}" 的事件。」的當地語系化字串。 + + + + +查詢類似「類型 "{0}" 的物件不能有類型 "{1}" 的 {3} 屬性。類型 "{0}" 的例項只能有類型 "{2}" 的 {3} 屬性。」的當地語系化字串。 + + + + +查詢類似「無法將類型 "{0}" 附加到類型 "{1}"。類型 "{0}" 的例項只能附加到類型 "{2}" 的物件。」的當地語系化字串。 + + + + +查詢類似「無法解析 TargetName "{0}"。」的當地語系化字串。 + + + + diff --git a/packages/log4net.2.0.8/lib/net20-full/log4net.dll b/packages/log4net.2.0.8/lib/net20-full/log4net.dll new file mode 100644 index 0000000..27a2be0 Binary files /dev/null and b/packages/log4net.2.0.8/lib/net20-full/log4net.dll differ diff --git a/packages/log4net.2.0.8/lib/net20-full/log4net.xml b/packages/log4net.2.0.8/lib/net20-full/log4net.xml new file mode 100644 index 0000000..d7d0c54 --- /dev/null +++ b/packages/log4net.2.0.8/lib/net20-full/log4net.xml @@ -0,0 +1,31421 @@ + + + + log4net + + + + + Appender that logs to a database. + + + + appends logging events to a table within a + database. The appender can be configured to specify the connection + string by setting the property. + The connection type (provider) can be specified by setting the + property. For more information on database connection strings for + your specific database see http://www.connectionstrings.com/. + + + Records are written into the database either using a prepared + statement or a stored procedure. The property + is set to (System.Data.CommandType.Text) to specify a prepared statement + or to (System.Data.CommandType.StoredProcedure) to specify a stored + procedure. + + + The prepared statement text or the name of the stored procedure + must be set in the property. + + + The prepared statement or stored procedure can take a number + of parameters. Parameters are added using the + method. This adds a single to the + ordered list of parameters. The + type may be subclassed if required to provide database specific + functionality. The specifies + the parameter name, database type, size, and how the value should + be generated using a . + + + + An example of a SQL Server table that could be logged to: + + CREATE TABLE [dbo].[Log] ( + [ID] [int] IDENTITY (1, 1) NOT NULL , + [Date] [datetime] NOT NULL , + [Thread] [varchar] (255) NOT NULL , + [Level] [varchar] (20) NOT NULL , + [Logger] [varchar] (255) NOT NULL , + [Message] [varchar] (4000) NOT NULL + ) ON [PRIMARY] + + + + An example configuration to log to the above table: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Julian Biddle + Nicko Cadell + Gert Driesen + Lance Nehring + + + + Abstract base class implementation of that + buffers events in a fixed size buffer. + + + + This base class should be used by appenders that need to buffer a + number of events before logging them. For example the + buffers events and then submits the entire contents of the buffer to + the underlying database in one go. + + + Subclasses should override the + method to deliver the buffered events. + + The BufferingAppenderSkeleton maintains a fixed size cyclic + buffer of events. The size of the buffer is set using + the property. + + A is used to inspect + each event as it arrives in the appender. If the + triggers, then the current buffer is sent immediately + (see ). Otherwise the event + is stored in the buffer. For example, an evaluator can be used to + deliver the events immediately when an ERROR event arrives. + + + The buffering appender can be configured in a mode. + By default the appender is NOT lossy. When the buffer is full all + the buffered events are sent with . + If the property is set to true then the + buffer will not be sent when it is full, and new events arriving + in the appender will overwrite the oldest event in the buffer. + In lossy mode the buffer will only be sent when the + triggers. This can be useful behavior when you need to know about + ERROR events but not about events with a lower level, configure an + evaluator that will trigger when an ERROR event arrives, the whole + buffer will be sent which gives a history of events leading up to + the ERROR event. + + + Nicko Cadell + Gert Driesen + + + + Abstract base class implementation of . + + + + This class provides the code for common functionality, such + as support for threshold filtering and support for general filters. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + Implement this interface for your own strategies for printing log statements. + + + + Implementors should consider extending the + class which provides a default implementation of this interface. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Log the logging event in Appender specific way. + + The event to log + + + This method is called to log a message into this appender. + + + + + + Gets or sets the name of this appender. + + The name of the appender. + + The name uniquely identifies the appender. + + + + + Interface for appenders that support bulk logging. + + + + This interface extends the interface to + support bulk logging of objects. Appenders + should only implement this interface if they can bulk log efficiently. + + + Nicko Cadell + + + + Log the array of logging events in Appender specific way. + + The events to log + + + This method is called to log an array of events into this appender. + + + + + + Interface used to delay activate a configured object. + + + + This allows an object to defer activation of its options until all + options have been set. This is required for components which have + related options that remain ambiguous until all are set. + + + If a component implements this interface then the method + must be called by the container after its all the configured properties have been set + and before the component can be used. + + + Nicko Cadell + + + + Activate the options that were previously set with calls to properties. + + + + This allows an object to defer activation of its options until all + options have been set. This is required for components which have + related options that remain ambiguous until all are set. + + + If a component implements this interface then this method must be called + after its properties have been set before the component can be used. + + + + + + Interface that can be implemented by Appenders that buffer logging data and expose a method. + + + + + Flushes any buffered log data. + + + Appenders that implement the method must do so in a thread-safe manner: it can be called concurrently with + the method. + + Typically this is done by locking on the Appender instance, e.g.: + + + + + + The parameter is only relevant for appenders that process logging events asynchronously, + such as . + + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + Default constructor + + + Empty default constructor + + + + + Finalizes this appender by calling the implementation's + method. + + + + If this appender has not been closed then the Finalize method + will call . + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Closes the appender and release resources. + + + + Release any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + This method cannot be overridden by subclasses. This method + delegates the closing of the appender to the + method which must be overridden in the subclass. + + + + + + Performs threshold checks and invokes filters before + delegating actual logging to the subclasses specific + method. + + The event to log. + + + This method cannot be overridden by derived classes. A + derived class should override the method + which is called by this method. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + Calls and checks that + it returns true. + + + + + If all of the above steps succeed then the + will be passed to the abstract method. + + + + + + Performs threshold checks and invokes filters before + delegating actual logging to the subclasses specific + method. + + The array of events to log. + + + This method cannot be overridden by derived classes. A + derived class should override the method + which is called by this method. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + Calls and checks that + it returns true. + + + + + If all of the above steps succeed then the + will be passed to the method. + + + + + + Test if the logging event should we output by this appender + + the event to test + true if the event should be output, false if the event should be ignored + + + This method checks the logging event against the threshold level set + on this appender and also against the filters specified on this + appender. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + + + + + Adds a filter to the end of the filter chain. + + the filter to add to this appender + + + The Filters are organized in a linked list. + + + Setting this property causes the new filter to be pushed onto the + back of the filter chain. + + + + + + Clears the filter list for this appender. + + + + Clears the filter list for this appender. + + + + + + Checks if the message level is below this appender's threshold. + + to test against. + + + If there is no threshold set, then the return value is always true. + + + + true if the meets the + requirements of this appender. + + + + + Is called when the appender is closed. Derived classes should override + this method if resources need to be released. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Subclasses of should implement this method + to perform actual logging. + + The event to append. + + + A subclass must implement this method to perform + logging of the . + + This method will be called by + if all the conditions listed for that method are met. + + + To restrict the logging of events in the appender + override the method. + + + + + + Append a bulk array of logging events. + + the array of logging events + + + This base class implementation calls the + method for each element in the bulk array. + + + A sub class that can better process a bulk array of events should + override this method in addition to . + + + + + + Called before as a precondition. + + + + This method is called by + before the call to the abstract method. + + + This method can be overridden in a subclass to extend the checks + made before the event is passed to the method. + + + A subclass should ensure that they delegate this call to + this base class if it is overridden. + + + true if the call to should proceed. + + + + Renders the to a string. + + The event to render. + The event rendered as a string. + + + Helper method to render a to + a string. This appender must have a + set to render the to + a string. + + If there is exception data in the logging event and + the layout does not process the exception, this method + will append the exception text to the rendered string. + + + Where possible use the alternative version of this method + . + That method streams the rendering onto an existing Writer + which can give better performance if the caller already has + a open and ready for writing. + + + + + + Renders the to a string. + + The event to render. + The TextWriter to write the formatted event to + + + Helper method to render a to + a string. This appender must have a + set to render the to + a string. + + If there is exception data in the logging event and + the layout does not process the exception, this method + will append the exception text to the rendered string. + + + Use this method in preference to + where possible. If, however, the caller needs to render the event + to a string then does + provide an efficient mechanism for doing so. + + + + + + Flushes any buffered log data. + + + This implementation doesn't flush anything and always returns true + + True if all logging events were flushed successfully, else false. + + + + The layout of this appender. + + + See for more information. + + + + + The name of this appender. + + + See for more information. + + + + + The level threshold of this appender. + + + + There is no level threshold filtering by default. + + + See for more information. + + + + + + It is assumed and enforced that errorHandler is never null. + + + + It is assumed and enforced that errorHandler is never null. + + + See for more information. + + + + + + The first filter in the filter chain. + + + + Set to null initially. + + + See for more information. + + + + + + The last filter in the filter chain. + + + See for more information. + + + + + Flag indicating if this appender is closed. + + + See for more information. + + + + + The guard prevents an appender from repeatedly calling its own DoAppend method + + + + + StringWriter used to render events + + + + + The fully qualified type of the AppenderSkeleton class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the threshold of this appender. + + + The threshold of the appender. + + + + All log events with lower level than the threshold level are ignored + by the appender. + + + In configuration files this option is specified by setting the + value of the option to a level + string, such as "DEBUG", "INFO" and so on. + + + + + + Gets or sets the for this appender. + + The of the appender + + + The provides a default + implementation for the property. + + + + + + The filter chain. + + The head of the filter chain filter chain. + + + Returns the head Filter. The Filters are organized in a linked list + and so all Filters on this Appender are available through the result. + + + + + + Gets or sets the for this appender. + + The layout of the appender. + + + See for more information. + + + + + + + Gets or sets the name of this appender. + + The name of the appender. + + + The name uniquely identifies the appender. + + + + + + Tests if this appender requires a to be set. + + + + In the rather exceptional case, where the appender + implementation admits a layout but can also work without it, + then the appender should return true. + + + This default implementation always returns false. + + + + true if the appender requires a layout object, otherwise false. + + + + + The default buffer size. + + + The default size of the cyclic buffer used to store events. + This is set to 512 by default. + + + + + Initializes a new instance of the class. + + + + Protected default constructor to allow subclassing. + + + + + + Initializes a new instance of the class. + + the events passed through this appender must be + fixed by the time that they arrive in the derived class' SendBuffer method. + + + Protected constructor to allow subclassing. + + + The should be set if the subclass + expects the events delivered to be fixed even if the + is set to zero, i.e. when no buffering occurs. + + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Flush the currently buffered events + + + + Flushes any events that have been buffered. + + + If the appender is buffering in mode then the contents + of the buffer will NOT be flushed to the appender. + + + + + + Flush the currently buffered events + + set to true to flush the buffer of lossy events + + + Flushes events that have been buffered. If is + false then events will only be flushed if this buffer is non-lossy mode. + + + If the appender is buffering in mode then the contents + of the buffer will only be flushed if is true. + In this case the contents of the buffer will be tested against the + and if triggering will be output. All other buffered + events will be discarded. + + + If is true then the buffer will always + be emptied by calling this method. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Close this appender instance. + + + + Close this appender instance. If this appender is marked + as not then the remaining events in + the buffer must be sent when the appender is closed. + + + + + + This method is called by the method. + + the event to log + + + Stores the in the cyclic buffer. + + + The buffer will be sent (i.e. passed to the + method) if one of the following conditions is met: + + + + The cyclic buffer is full and this appender is + marked as not lossy (see ) + + + An is set and + it is triggered for the + specified. + + + + Before the event is stored in the buffer it is fixed + (see ) to ensure that + any data referenced by the event will be valid when the buffer + is processed. + + + + + + Sends the contents of the buffer. + + The first logging event. + The buffer containing the events that need to be send. + + + The subclass must override . + + + + + + Sends the events. + + The events that need to be send. + + + The subclass must override this method to process the buffered events. + + + + + + The size of the cyclic buffer used to hold the logging events. + + + Set to by default. + + + + + The cyclic buffer used to store the logging events. + + + + + The triggering event evaluator that causes the buffer to be sent immediately. + + + The object that is used to determine if an event causes the entire + buffer to be sent immediately. This field can be null, which + indicates that event triggering is not to be done. The evaluator + can be set using the property. If this appender + has the ( property) set to + true then an must be set. + + + + + Indicates if the appender should overwrite events in the cyclic buffer + when it becomes full, or if the buffer should be flushed when the + buffer is full. + + + If this field is set to true then an must + be set. + + + + + The triggering event evaluator filters discarded events. + + + The object that is used to determine if an event that is discarded should + really be discarded or if it should be sent to the appenders. + This field can be null, which indicates that all discarded events will + be discarded. + + + + + Value indicating which fields in the event should be fixed + + + By default all fields are fixed + + + + + The events delivered to the subclass must be fixed. + + + + + Gets or sets a value that indicates whether the appender is lossy. + + + true if the appender is lossy, otherwise false. The default is false. + + + + This appender uses a buffer to store logging events before + delivering them. A triggering event causes the whole buffer + to be send to the remote sink. If the buffer overruns before + a triggering event then logging events could be lost. Set + to false to prevent logging events + from being lost. + + If is set to true then an + must be specified. + + + + + Gets or sets the size of the cyclic buffer used to hold the + logging events. + + + The size of the cyclic buffer used to hold the logging events. + + + + The option takes a positive integer + representing the maximum number of logging events to collect in + a cyclic buffer. When the is reached, + oldest events are deleted as new events are added to the + buffer. By default the size of the cyclic buffer is 512 events. + + + If the is set to a value less than + or equal to 1 then no buffering will occur. The logging event + will be delivered synchronously (depending on the + and properties). Otherwise the event will + be buffered. + + + + + + Gets or sets the that causes the + buffer to be sent immediately. + + + The that causes the buffer to be + sent immediately. + + + + The evaluator will be called for each event that is appended to this + appender. If the evaluator triggers then the current buffer will + immediately be sent (see ). + + If is set to true then an + must be specified. + + + + + Gets or sets the value of the to use. + + + The value of the to use. + + + + The evaluator will be called for each event that is discarded from this + appender. If the evaluator triggers then the current buffer will immediately + be sent (see ). + + + + + + Gets or sets a value indicating if only part of the logging event data + should be fixed. + + + true if the appender should only fix part of the logging event + data, otherwise false. The default is false. + + + + Setting this property to true will cause only part of the + event data to be fixed and serialized. This will improve performance. + + + See for more information. + + + + + + Gets or sets a the fields that will be fixed in the event + + + The event fields that will be fixed before the event is buffered + + + + The logging event needs to have certain thread specific values + captured before it can be buffered. See + for details. + + + + + + + Initializes a new instance of the class. + + + Public default constructor to initialize a new instance of this class. + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Override the parent method to close the database + + + + Closes the database command and database connection. + + + + + + Inserts the events into the database. + + The events to insert into the database. + + + Insert all the events specified in the + array into the database. + + + + + + Adds a parameter to the command. + + The parameter to add to the command. + + + Adds a parameter to the ordered list of command parameters. + + + + + + Writes the events to the database using the transaction specified. + + The transaction that the events will be executed under. + The array of events to insert into the database. + + + The transaction argument can be null if the appender has been + configured not to use transactions. See + property for more information. + + + + + + Formats the log message into database statement text. + + The event being logged. + + This method can be overridden by subclasses to provide + more control over the format of the database statement. + + + Text that can be passed to a . + + + + + Creates an instance used to connect to the database. + + + This method is called whenever a new IDbConnection is needed (i.e. when a reconnect is necessary). + + The of the object. + The connectionString output from the ResolveConnectionString method. + An instance with a valid connection string. + + + + Resolves the connection string from the ConnectionString, ConnectionStringName, or AppSettingsKey + property. + + + ConnectiongStringName is only supported on .NET 2.0 and higher. + + Additional information describing the connection string. + A connection string used to connect to the database. + + + + Retrieves the class type of the ADO.NET provider. + + + + Gets the Type of the ADO.NET provider to use to connect to the + database. This method resolves the type specified in the + property. + + + Subclasses can override this method to return a different type + if necessary. + + + The of the ADO.NET provider + + + + Connects to the database. + + + + + Cleanup the existing connection. + + + Calls the IDbConnection's method. + + + + + The list of objects. + + + + The list of objects. + + + + + + The security context to use for privileged calls + + + + + The that will be used + to insert logging events into a database. + + + + + Database connection string. + + + + + The appSettings key from App.Config that contains the connection string. + + + + + The connectionStrings key from App.Config that contains the connection string. + + + + + String type name of the type name. + + + + + The text of the command. + + + + + The command type. + + + + + Indicates whether to use transactions when writing to the database. + + + + + Indicates whether to reconnect when a connection is lost. + + + + + The fully qualified type of the AdoNetAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the database connection string that is used to connect to + the database. + + + The database connection string used to connect to the database. + + + + The connections string is specific to the connection type. + See for more information. + + + Connection string for MS Access via ODBC: + "DSN=MS Access Database;UID=admin;PWD=;SystemDB=C:\data\System.mdw;SafeTransactions = 0;FIL=MS Access;DriverID = 25;DBQ=C:\data\train33.mdb" + + Another connection string for MS Access via ODBC: + "Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\Work\cvs_root\log4net-1.2\access.mdb;UID=;PWD=;" + + Connection string for MS Access via OLE DB: + "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Work\cvs_root\log4net-1.2\access.mdb;User Id=;Password=;" + + + + + The appSettings key from App.Config that contains the connection string. + + + + + The connectionStrings key from App.Config that contains the connection string. + + + This property requires at least .NET 2.0. + + + + + Gets or sets the type name of the connection + that should be created. + + + The type name of the connection. + + + + The type name of the ADO.NET provider to use. + + + The default is to use the OLE DB provider. + + + Use the OLE DB Provider. This is the default value. + System.Data.OleDb.OleDbConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Use the MS SQL Server Provider. + System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Use the ODBC Provider. + Microsoft.Data.Odbc.OdbcConnection,Microsoft.Data.Odbc,version=1.0.3300.0,publicKeyToken=b77a5c561934e089,culture=neutral + This is an optional package that you can download from + http://msdn.microsoft.com/downloads + search for ODBC .NET Data Provider. + + Use the Oracle Provider. + System.Data.OracleClient.OracleConnection, System.Data.OracleClient, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + This is an optional package that you can download from + http://msdn.microsoft.com/downloads + search for .NET Managed Provider for Oracle. + + + + + Gets or sets the command text that is used to insert logging events + into the database. + + + The command text used to insert logging events into the database. + + + + Either the text of the prepared statement or the + name of the stored procedure to execute to write into + the database. + + + The property determines if + this text is a prepared statement or a stored procedure. + + + If this property is not set, the command text is retrieved by invoking + . + + + + + + Gets or sets the command type to execute. + + + The command type to execute. + + + + This value may be either (System.Data.CommandType.Text) to specify + that the is a prepared statement to execute, + or (System.Data.CommandType.StoredProcedure) to specify that the + property is the name of a stored procedure + to execute. + + + The default value is (System.Data.CommandType.Text). + + + + + + Should transactions be used to insert logging events in the database. + + + true if transactions should be used to insert logging events in + the database, otherwise false. The default value is true. + + + + Gets or sets a value that indicates whether transactions should be used + to insert logging events in the database. + + + When set a single transaction will be used to insert the buffered events + into the database. Otherwise each event will be inserted without using + an explicit transaction. + + + + + + Gets or sets the used to call the NetSend method. + + + The used to call the NetSend method. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Should this appender try to reconnect to the database on error. + + + true if the appender should try to reconnect to the database after an + error has occurred, otherwise false. The default value is false, + i.e. not to try to reconnect. + + + + The default behaviour is for the appender not to try to reconnect to the + database if an error occurs. Subsequent logging events are discarded. + + + To force the appender to attempt to reconnect to the database set this + property to true. + + + When the appender attempts to connect to the database there may be a + delay of up to the connection timeout specified in the connection string. + This delay will block the calling application's thread. + Until the connection can be reestablished this potential delay may occur multiple times. + + + + + + Gets or sets the underlying . + + + The underlying . + + + creates a to insert + logging events into a database. Classes deriving from + can use this property to get or set this . Use the + underlying returned from if + you require access beyond that which provides. + + + + + Parameter type used by the . + + + + This class provides the basic database parameter properties + as defined by the interface. + + This type can be subclassed to provide database specific + functionality. The two methods that are called externally are + and . + + + + + + Initializes a new instance of the class. + + + Default constructor for the AdoNetAppenderParameter class. + + + + + Prepare the specified database command object. + + The command to prepare. + + + Prepares the database command object by adding + this parameter to its collection of parameters. + + + + + + Renders the logging event and set the parameter value in the command. + + The command containing the parameter. + The event to be rendered. + + + Renders the logging event using this parameters layout + object. Sets the value of the parameter on the command object. + + + + + + The name of this parameter. + + + + + The database type for this parameter. + + + + + Flag to infer type rather than use the DbType + + + + + The precision for this parameter. + + + + + The scale for this parameter. + + + + + The size for this parameter. + + + + + The to use to render the + logging event into an object for this parameter. + + + + + Gets or sets the name of this parameter. + + + The name of this parameter. + + + + The name of this parameter. The parameter name + must match up to a named parameter to the SQL stored procedure + or prepared statement. + + + + + + Gets or sets the database type for this parameter. + + + The database type for this parameter. + + + + The database type for this parameter. This property should + be set to the database type from the + enumeration. See . + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the type from the value. + + + + + + + Gets or sets the precision for this parameter. + + + The precision for this parameter. + + + + The maximum number of digits used to represent the Value. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the precision from the value. + + + + + + + Gets or sets the scale for this parameter. + + + The scale for this parameter. + + + + The number of decimal places to which Value is resolved. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the scale from the value. + + + + + + + Gets or sets the size for this parameter. + + + The size for this parameter. + + + + The maximum size, in bytes, of the data within the column. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the size from the value. + + + For BLOB data types like VARCHAR(max) it may be impossible to infer the value automatically, use -1 as the size in this case. + + + + + + + Gets or sets the to use to + render the logging event into an object for this + parameter. + + + The used to render the + logging event into an object for this parameter. + + + + The that renders the value for this + parameter. + + + The can be used to adapt + any into a + for use in the property. + + + + + + Appends logging events to the terminal using ANSI color escape sequences. + + + + AnsiColorTerminalAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific level of message to be set. + + + This appender expects the terminal to understand the VT100 control set + in order to interpret the color codes. If the terminal or console does not + understand the control codes the behavior is not defined. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes each message to the System.Console.Out or + System.Console.Error that is set at the time the event is appended. + Therefore it is possible to programmatically redirect the output of this appender + (for example NUnit does this to capture program output). While this is the desired + behavior of this appender it may have security implications in your application. + + + When configuring the ANSI colored terminal appender, a mapping should be + specified to map a logging level to a color. For example: + + + + + + + + + + + + + + + The Level is the standard log4net logging level and ForeColor and BackColor can be any + of the following values: + + Blue + Green + Red + White + Yellow + Purple + Cyan + + These color values cannot be combined together to make new colors. + + + The attributes can be any combination of the following: + + Brightforeground is brighter + Dimforeground is dimmer + Underscoremessage is underlined + Blinkforeground is blinking (does not work on all terminals) + Reverseforeground and background are reversed + Hiddenoutput is hidden + Strikethroughmessage has a line through it + + While any of these attributes may be combined together not all combinations + work well together, for example setting both Bright and Dim attributes makes + no sense. + + + Patrick Wagstrom + Nicko Cadell + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Ansi code to reset terminal + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Add a mapping of level to color + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colours + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + Target is the value of the console output stream. + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + The enum of possible display attributes + + + + The following flags can be combined together to + form the ANSI color attributes. + + + + + + + text is bright + + + + + text is dim + + + + + text is underlined + + + + + text is blinking + + + Not all terminals support this attribute + + + + + text and background colors are reversed + + + + + text is hidden + + + + + text is displayed with a strikethrough + + + + + text color is light + + + + + The enum of possible foreground or background color values for + use with the color mapping method + + + + The output can be in one for the following ANSI colors. + + + + + + + color is black + + + + + color is red + + + + + color is green + + + + + color is yellow + + + + + color is blue + + + + + color is magenta + + + + + color is cyan + + + + + color is white + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + An entry in the + + + + This is an abstract base class for types that are stored in the + object. + + + Nicko Cadell + + + + Default protected constructor + + + + Default protected constructor + + + + + + Initialize any options defined on this entry + + + + Should be overridden by any classes that need to initialise based on their options + + + + + + The level that is the key for this mapping + + + The that is the key for this mapping + + + + Get or set the that is the key for this + mapping subclass. + + + + + + Initialize the options for the object + + + + Combine the and together + and append the attributes. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level + + + + + + The color attributes for the specified level + + + + Required property. + The color attributes for the specified level + + + + + + The combined , and + suitable for setting the ansi terminal color. + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Creates a read-only wrapper for a AppenderCollection instance. + + list to create a readonly wrapper arround + + An AppenderCollection wrapper that is read-only. + + + + + An empty readonly static AppenderCollection + + + + + Initializes a new instance of the AppenderCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the AppenderCollection class + that has the specified initial capacity. + + + The number of elements that the new AppenderCollection is initially capable of storing. + + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified AppenderCollection. + + The AppenderCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Allow subclasses to avoid our default constructors + + + + + + + Copies the entire AppenderCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire AppenderCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Adds a to the end of the AppenderCollection. + + The to be added to the end of the AppenderCollection. + The index at which the value has been added. + + + + Removes all elements from the AppenderCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the AppenderCollection. + + The to check for. + true if is found in the AppenderCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the AppenderCollection. + + The to locate in the AppenderCollection. + + The zero-based index of the first occurrence of + in the entire AppenderCollection, if found; otherwise, -1. + + + + + Inserts an element into the AppenderCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the AppenderCollection. + + The to remove from the AppenderCollection. + + The specified was not found in the AppenderCollection. + + + + + Removes the element at the specified index of the AppenderCollection. + + The zero-based index of the element to remove. + + is less than zero + -or- + is equal to or greater than . + + + + + Returns an enumerator that can iterate through the AppenderCollection. + + An for the entire AppenderCollection. + + + + Adds the elements of another AppenderCollection to the current AppenderCollection. + + The AppenderCollection whose elements should be added to the end of the current AppenderCollection. + The new of the AppenderCollection. + + + + Adds the elements of a array to the current AppenderCollection. + + The array whose elements should be added to the end of the AppenderCollection. + The new of the AppenderCollection. + + + + Adds the elements of a collection to the current AppenderCollection. + + The collection whose elements should be added to the end of the AppenderCollection. + The new of the AppenderCollection. + + + + Sets the capacity to the actual number of elements. + + + + + Return the collection elements as an array + + the array + + + + is less than zero + -or- + is equal to or greater than . + + + + + is less than zero + -or- + is equal to or greater than . + + + + + Gets the number of elements actually contained in the AppenderCollection. + + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + The zero-based index of the element to get or set. + + is less than zero + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false + + + + Gets or sets the number of elements the AppenderCollection can contain. + + + + + Supports type-safe iteration over a . + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + + A value + + + + + Supports simple iteration over a . + + + + + + Initializes a new instance of the Enumerator class. + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + + + + + Appends log events to the ASP.NET system. + + + + + Diagnostic information and tracing messages that you specify are appended to the output + of the page that is sent to the requesting browser. Optionally, you can view this information + from a separate trace viewer (Trace.axd) that displays trace information for every page in a + given application. + + + Trace statements are processed and displayed only when tracing is enabled. You can control + whether tracing is displayed to a page, to the trace viewer, or both. + + + The logging event is passed to the or + method depending on the level of the logging event. + The event's logger name is the default value for the category parameter of the Write/Warn method. + + + Nicko Cadell + Gert Driesen + Ron Grabowski + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Write the logging event to the ASP.NET trace + + the event to log + + + Write the logging event to the ASP.NET trace + HttpContext.Current.Trace + (). + + + + + + Defaults to %logger + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + The category parameter sent to the Trace method. + + + + Defaults to %logger which will use the logger name of the current + as the category parameter. + + + + + + + + Buffers events and then forwards them to attached appenders. + + + + The events are buffered in this appender until conditions are + met to allow the appender to deliver the events to the attached + appenders. See for the + conditions that cause the buffer to be sent. + + The forwarding appender can be used to specify different + thresholds and filters for the same appender at different locations + within the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Interface for attaching appenders to objects. + + + + Interface for attaching, removing and retrieving appenders. + + + Nicko Cadell + Gert Driesen + + + + Attaches an appender. + + The appender to add. + + + Add the specified appender. The implementation may + choose to allow or deny duplicate appenders. + + + + + + Gets an attached appender with the specified name. + + The name of the appender to get. + + The appender with the name specified, or null if no appender with the + specified name is found. + + + + Returns an attached appender with the specified. + If no appender with the specified name is found null will be + returned. + + + + + + Removes all attached appenders. + + + + Removes and closes all attached appenders + + + + + + Removes the specified appender from the list of attached appenders. + + The appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Gets all attached appenders. + + + A collection of attached appenders. + + + + Gets a collection of attached appenders. + If there are no attached appenders the + implementation should return an empty + collection rather than null. + + + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Send the events. + + The events that need to be send. + + + Forwards the events to the attached appenders. + + + + + + Adds an to the list of appenders of this + instance. + + The to add to this appender. + + + If the specified is already in the list of + appenders, then it won't be added again. + + + + + + Looks for the appender with the specified name. + + The name of the appender to lookup. + + The appender with the specified name, or null. + + + + Get the named appender attached to this buffering appender. + + + + + + Removes all previously added appenders from this appender. + + + + This is useful when re-reading configuration information. + + + + + + Removes the specified appender from the list of appenders. + + The appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Implementation of the interface + + + + + Gets the appenders contained in this appender as an + . + + + If no appenders can be found, then an + is returned. + + + A collection of the appenders in this appender. + + + + + Appends logging events to the console. + + + + ColoredConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific type of message to be set. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes directly to the application's attached console + not to the System.Console.Out or System.Console.Error TextWriter. + The System.Console.Out and System.Console.Error streams can be + programmatically redirected (for example NUnit does this to capture program output). + This appender will ignore these redirections because it needs to use Win32 + API calls to colorize the output. To respect these redirections the + must be used. + + + When configuring the colored console appender, mapping should be + specified to map a logging level to a color. For example: + + + + + + + + + + + + + + The Level is the standard log4net logging level and ForeColor and BackColor can be any + combination of the following values: + + Blue + Green + Red + White + Yellow + Purple + Cyan + HighIntensity + + + + Rick Hobbs + Nicko Cadell + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + flag set to true to write to the console error stream + + When is set to true, output is written to + the standard error output stream. Otherwise, output is written to the standard + output stream. + + + + + Add a mapping of level to color - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colors + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + The console output stream writer to write to + + + + This writer is not thread safe. + + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + The enum of possible color values for use with the color mapping method + + + + The following flags can be combined together to + form the colors. + + + + + + + color is blue + + + + + color is green + + + + + color is red + + + + + color is white + + + + + color is yellow + + + + + color is purple + + + + + color is cyan + + + + + color is intensified + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + Initialize the options for the object + + + + Combine the and together. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level. + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level. + + + + + + The combined and suitable for + setting the console color. + + + + + Appends logging events to the console. + + + + ConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes each message to the System.Console.Out or + System.Console.Error that is set at the time the event is appended. + Therefore it is possible to programmatically redirect the output of this appender + (for example NUnit does this to capture program output). While this is the desired + behavior of this appender it may have security implications in your application. + + + Nicko Cadell + Gert Driesen + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + flag set to true to write to the console error stream + + When is set to true, output is written to + the standard error output stream. Otherwise, output is written to the standard + output stream. + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Appends log events to the system. + + + + The application configuration file can be used to control what listeners + are actually used. See the MSDN documentation for the + class for details on configuring the + debug system. + + + Events are written using the + method. The event's logger name is passed as the value for the category name to the Write method. + + + Nicko Cadell + + + + Initializes a new instance of the . + + + + Default constructor. + + + + + + Initializes a new instance of the + with a specified layout. + + The layout to use with this appender. + + + Obsolete constructor. + + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Writes the logging event to the system. + + The event to log. + + + Writes the logging event to the system. + If is true then the + is called. + + + + + + Immediate flush means that the underlying writer or output stream + will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logs events are not actually written to persistent media if and + when the application crashes. + + + The default value is true. + + + + + Defaults to a with %logger as the pattern. + + + + + Gets or sets a value that indicates whether the appender will + flush at the end of each write. + + + The default behavior is to flush at the end of each + write. If the option is set tofalse, then the underlying + stream can defer writing to physical medium to a later time. + + + Avoiding the flush operation at the end of each append results + in a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + + Formats the category parameter sent to the Debug method. + + + + Defaults to a with %logger as the pattern which will use the logger name of the current + as the category parameter. + + + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Writes events to the system event log. + + + + The appender will fail if you try to write using an event source that doesn't exist unless it is running with local administrator privileges. + See also http://logging.apache.org/log4net/release/faq.html#trouble-EventLog + + + The EventID of the event log entry can be + set using the EventID property () + on the . + + + The Category of the event log entry can be + set using the Category property () + on the . + + + There is a limit of 32K characters for an event log message + + + When configuring the EventLogAppender a mapping can be + specified to map a logging level to an event log entry type. For example: + + + <mapping> + <level value="ERROR" /> + <eventLogEntryType value="Error" /> + </mapping> + <mapping> + <level value="DEBUG" /> + <eventLogEntryType value="Information" /> + </mapping> + + + The Level is the standard log4net logging level and eventLogEntryType can be any value + from the enum, i.e.: + + Erroran error event + Warninga warning event + Informationan informational event + + + + Aspi Havewala + Douglas de la Torre + Nicko Cadell + Gert Driesen + Thomas Voss + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initializes a new instance of the class + with the specified . + + The to use with this appender. + + + Obsolete constructor. + + + + + + Add a mapping of level to - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the event log entry type for a level. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Create an event log source + + + Uses different API calls under NET_2_0 + + + + + This method is called by the + method. + + the event to log + + Writes the event to the system event log using the + . + + If the event has an EventID property (see ) + set then this integer will be used as the event log event id. + + + There is a limit of 32K characters for an event log message + + + + + + Get the equivalent for a + + the Level to convert to an EventLogEntryType + The equivalent for a + + Because there are fewer applicable + values to use in logging levels than there are in the + this is a one way mapping. There is + a loss of information during the conversion. + + + + + The log name is the section in the event logs where the messages + are stored. + + + + + Name of the application to use when logging. This appears in the + application column of the event log named by . + + + + + The name of the machine which holds the event log. This is + currently only allowed to be '.' i.e. the current machine. + + + + + Mapping from level object to EventLogEntryType + + + + + The security context to use for privileged calls + + + + + The event ID to use unless one is explicitly specified via the LoggingEvent's properties. + + + + + The event category to use unless one is explicitly specified via the LoggingEvent's properties. + + + + + The fully qualified type of the EventLogAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + The maximum size supported by default. + + + http://msdn.microsoft.com/en-us/library/xzwc042w(v=vs.100).aspx + The 32766 documented max size is two bytes shy of 32K (I'm assuming 32766 + may leave space for a two byte null terminator of #0#0). The 32766 max + length is what the .NET 4.0 source code checks for, but this is WRONG! + Strings with a length > 31839 on Windows Vista or higher can CORRUPT + the event log! See: System.Diagnostics.EventLogInternal.InternalWriteEvent() + for the use of the 32766 max size. + + + + + The maximum size supported by a windows operating system that is vista + or newer. + + + See ReportEvent API: + http://msdn.microsoft.com/en-us/library/aa363679(VS.85).aspx + ReportEvent's lpStrings parameter: + "A pointer to a buffer containing an array of + null-terminated strings that are merged into the message before Event Viewer + displays the string to the user. This parameter must be a valid pointer + (or NULL), even if wNumStrings is zero. Each string is limited to 31,839 characters." + + Going beyond the size of 31839 will (at some point) corrupt the event log on Windows + Vista or higher! It may succeed for a while...but you will eventually run into the + error: "System.ComponentModel.Win32Exception : A device attached to the system is + not functioning", and the event log will then be corrupt (I was able to corrupt + an event log using a length of 31877 on Windows 7). + + The max size for Windows Vista or higher is documented here: + http://msdn.microsoft.com/en-us/library/xzwc042w(v=vs.100).aspx. + Going over this size may succeed a few times but the buffer will overrun and + eventually corrupt the log (based on testing). + + The maxEventMsgSize size is based on the max buffer size of the lpStrings parameter of the ReportEvent API. + The documented max size for EventLog.WriteEntry for Windows Vista and higher is 31839, but I'm leaving room for a + terminator of #0#0, as we cannot see the source of ReportEvent (though we could use an API monitor to examine the + buffer, given enough time). + + + + + The maximum size that the operating system supports for + a event log message. + + + Used to determine the maximum string length that can be written + to the operating system event log and eventually truncate a string + that exceeds the limits. + + + + + This method determines the maximum event log message size allowed for + the current environment. + + + + + + The name of the log where messages will be stored. + + + The string name of the log where messages will be stored. + + + This is the name of the log as it appears in the Event Viewer + tree. The default value is to log into the Application + log, this is where most applications write their events. However + if you need a separate log for your application (or applications) + then you should set the appropriately. + This should not be used to distinguish your event log messages + from those of other applications, the + property should be used to distinguish events. This property should be + used to group together events into a single log. + + + + + + Property used to set the Application name. This appears in the + event logs when logging. + + + The string used to distinguish events from different sources. + + + Sets the event log source property. + + + + + This property is used to return the name of the computer to use + when accessing the event logs. Currently, this is the current + computer, denoted by a dot "." + + + The string name of the machine holding the event log that + will be logged into. + + + This property cannot be changed. It is currently set to '.' + i.e. the local machine. This may be changed in future. + + + + + Gets or sets the used to write to the EventLog. + + + The used to write to the EventLog. + + + + The system security context used to write to the EventLog. + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Gets or sets the EventId to use unless one is explicitly specified via the LoggingEvent's properties. + + + + The EventID of the event log entry will normally be + set using the EventID property () + on the . + This property provides the fallback value which defaults to 0. + + + + + + Gets or sets the Category to use unless one is explicitly specified via the LoggingEvent's properties. + + + + The Category of the event log entry will normally be + set using the Category property () + on the . + This property provides the fallback value which defaults to 0. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and its event log entry type. + + + + + + The for this entry + + + + Required property. + The for this entry + + + + + + Appends logging events to a file. + + + + Logging events are sent to the file specified by + the property. + + + The file can be opened in either append or overwrite mode + by specifying the property. + If the file path is relative it is taken as relative from + the application base directory. The file encoding can be + specified by setting the property. + + + The layout's and + values will be written each time the file is opened and closed + respectively. If the property is + then the file may contain multiple copies of the header and footer. + + + This appender will first try to open the file for writing when + is called. This will typically be during configuration. + If the file cannot be opened for writing the appender will attempt + to open the file again each time a message is logged to the appender. + If the file cannot be opened for writing when a message is logged then + the message will be discarded by this appender. + + + The supports pluggable file locking models via + the property. + The default behavior, implemented by + is to obtain an exclusive write lock on the file until this appender is closed. + The alternative models only hold a + write lock while the appender is writing a logging event () + or synchronize by using a named system wide Mutex (). + + + All locking strategies have issues and you should seriously consider using a different strategy that + avoids having multiple processes logging to the same file. + + + Nicko Cadell + Gert Driesen + Rodrigo B. de Oliveira + Douglas de la Torre + Niall Daley + + + + Sends logging events to a . + + + + An Appender that writes to a . + + + This appender may be used stand alone if initialized with an appropriate + writer, however it is typically used as a base class for an appender that + can open a to write to. + + + Nicko Cadell + Gert Driesen + Douglas de la Torre + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initializes a new instance of the class and + sets the output destination to a new initialized + with the specified . + + The layout to use with this appender. + The to output to. + + + Obsolete constructor. + + + + + + Initializes a new instance of the class and sets + the output destination to the specified . + + The layout to use with this appender + The to output to + + The must have been previously opened. + + + + Obsolete constructor. + + + + + + This method determines if there is a sense in attempting to append. + + + + This method checks if an output target has been set and if a + layout has been set. + + + false if any of the preconditions fail. + + + + This method is called by the + method. + + The event to log. + + + Writes a log statement to the output stream if the output stream exists + and is writable. + + + The format of the output will depend on the appender's layout. + + + + + + This method is called by the + method. + + The array of events to log. + + + This method writes all the bulk logged events to the output writer + before flushing the stream. + + + + + + Close this appender instance. The underlying stream or writer is also closed. + + + Closed appenders cannot be reused. + + + + + Writes the footer and closes the underlying . + + + + Writes the footer and closes the underlying . + + + + + + Closes the underlying . + + + + Closes the underlying . + + + + + + Clears internal references to the underlying + and other variables. + + + + Subclasses can override this method for an alternate closing behavior. + + + + + + Writes a footer as produced by the embedded layout's property. + + + + Writes a footer as produced by the embedded layout's property. + + + + + + Writes a header produced by the embedded layout's property. + + + + Writes a header produced by the embedded layout's property. + + + + + + Called to allow a subclass to lazily initialize the writer + + + + This method is called when an event is logged and the or + have not been set. This allows a subclass to + attempt to initialize the writer multiple times. + + + + + + This is the where logging events + will be written to. + + + + + Immediate flush means that the underlying + or output stream will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logging events are not actually persisted if and when the application + crashes. + + + The default value is true. + + + + + + The fully qualified type of the TextWriterAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Gets or set whether the appender will flush at the end + of each append operation. + + + + The default behavior is to flush at the end of each + append operation. + + + If this option is set to false, then the underlying + stream can defer persisting the logging event to a later + time. + + + + Avoiding the flush operation at the end of each append results in + a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + Sets the where the log output will go. + + + + The specified must be open and writable. + + + The will be closed when the appender + instance is closed. + + + Note: Logging to an unopened will fail. + + + + + + Gets or set the and the underlying + , if any, for this appender. + + + The for this appender. + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Gets or sets the where logging events + will be written to. + + + The where logging events are written. + + + + This is the where logging events + will be written to. + + + + + + Default constructor + + + + Default constructor + + + + + + Construct a new appender using the layout, file and append mode. + + the layout to use with this appender + the full path to the file to write to + flag to indicate if the file should be appended to + + + Obsolete constructor. + + + + + + Construct a new appender using the layout and file specified. + The file will be appended to. + + the layout to use with this appender + the full path to the file to write to + + + Obsolete constructor. + + + + + + Activate the options on the file appender. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + This will cause the file to be opened. + + + + + + Closes any previously opened file and calls the parent's . + + + + Resets the filename and the file stream. + + + + + + Close this appender instance. The underlying stream or writer is also closed. + + + + + Called to initialize the file writer + + + + Will be called for each logged message until the file is + successfully opened. + + + + + + This method is called by the + method. + + The event to log. + + + Writes a log statement to the output stream if the output stream exists + and is writable. + + + The format of the output will depend on the appender's layout. + + + + + + This method is called by the + method. + + The array of events to log. + + + Acquires the output file locks once before writing all the events to + the stream. + + + + + + Writes a footer as produced by the embedded layout's property. + + + + Writes a footer as produced by the embedded layout's property. + + + + + + Writes a header produced by the embedded layout's property. + + + + Writes a header produced by the embedded layout's property. + + + + + + Closes the underlying . + + + + Closes the underlying . + + + + + + Closes the previously opened file. + + + + Writes the to the file and then + closes the file. + + + + + + Sets and opens the file where the log output will go. The specified file must be writable. + + The path to the log file. Must be a fully qualified path. + If true will append to fileName. Otherwise will truncate fileName + + + Calls but guarantees not to throw an exception. + Errors are passed to the . + + + + + + Sets and opens the file where the log output will go. The specified file must be writable. + + The path to the log file. Must be a fully qualified path. + If true will append to fileName. Otherwise will truncate fileName + + + If there was already an opened file, then the previous file + is closed first. + + + This method will ensure that the directory structure + for the specified exists. + + + + + + Sets the quiet writer used for file output + + the file stream that has been opened for writing + + + This implementation of creates a + over the and passes it to the + method. + + + This method can be overridden by sub classes that want to wrap the + in some way, for example to encrypt the output + data using a System.Security.Cryptography.CryptoStream. + + + + + + Sets the quiet writer being used. + + the writer over the file stream that has been opened for writing + + + This method can be overridden by sub classes that want to + wrap the in some way. + + + + + + Convert a path into a fully qualified path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + + + + Flag to indicate if we should append to the file + or overwrite the file. The default is to append. + + + + + The name of the log file. + + + + + The encoding to use for the file stream. + + + + + The security context to use for privileged calls + + + + + The stream to log to. Has added locking semantics + + + + + The locking model to use + + + + + The fully qualified type of the FileAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the path to the file that logging will be written to. + + + The path to the file that logging will be written to. + + + + If the path is relative it is taken as relative from + the application base directory. + + + + + + Gets or sets a flag that indicates whether the file should be + appended to or overwritten. + + + Indicates whether the file should be appended to or overwritten. + + + + If the value is set to false then the file will be overwritten, if + it is set to true then the file will be appended to. + + The default value is true. + + + + + Gets or sets used to write to the file. + + + The used to write to the file. + + + + The default encoding set is + which is the encoding for the system's current ANSI code page. + + + + + + Gets or sets the used to write to the file. + + + The used to write to the file. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Gets or sets the used to handle locking of the file. + + + The used to lock the file. + + + + Gets or sets the used to handle locking of the file. + + + There are three built in locking models, , and . + The first locks the file from the start of logging to the end, the + second locks only for the minimal amount of time when logging each message + and the last synchronizes processes using a named system wide Mutex. + + + The default locking model is the . + + + + + + Write only that uses the + to manage access to an underlying resource. + + + + + True asynchronous writes are not supported, the implementation forces a synchronous write. + + + + + Exception base type for log4net. + + + + This type extends . It + does not add any new functionality but does differentiate the + type of exception being thrown. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + A message to include with the exception. + + + Initializes a new instance of the class with + the specified message. + + + + + + Constructor + + A message to include with the exception. + A nested exception to include. + + + Initializes a new instance of the class + with the specified message and inner exception. + + + + + + Serialization constructor + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Locking model base class + + + + Base class for the locking models available to the derived loggers. + + + + + + Open the output file + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Acquire the lock on the file in preparation for writing to it. + Return a stream pointing to the file. + must be called to release the lock on the output file. + + + + + + Release the lock on the file + + + + Release the lock on the file. No further writes will be made to the + stream until is called again. + + + + + + Helper method that creates a FileStream under CurrentAppender's SecurityContext. + + + + Typically called during OpenFile or AcquireLock. + + + If the directory portion of the does not exist, it is created + via Directory.CreateDirecctory. + + + + + + + + + + Helper method to close under CurrentAppender's SecurityContext. + + + Does not set to null. + + + + + + Gets or sets the for this LockingModel + + + The for this LockingModel + + + + The file appender this locking model is attached to and working on + behalf of. + + + The file appender is used to locate the security context and the error handler to use. + + + The value of this property will be set before is + called. + + + + + + Hold an exclusive lock on the output file + + + + Open the file once for writing and hold it open until is called. + Maintains an exclusive lock on the file during this time. + + + + + + Open the file specified and prepare for logging. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Does nothing. The lock is already taken + + + + + + Release the lock on the file + + + + Does nothing. The lock will be released when the file is closed. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Acquires the file lock for each write + + + + Opens the file once for each / cycle, + thus holding the lock for the minimal amount of time. This method of locking + is considerably slower than but allows + other processes to move/delete the log file whilst logging continues. + + + + + + Prepares to open the file when the first message is logged. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Acquire the lock on the file in preparation for writing to it. + Return a stream pointing to the file. + must be called to release the lock on the output file. + + + + + + Release the lock on the file + + + + Release the lock on the file. No further writes will be made to the + stream until is called again. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Provides cross-process file locking. + + Ron Grabowski + Steve Wranovsky + + + + Open the file specified and prepare for logging. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + - and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Does nothing. The lock is already taken + + + + + + Releases the lock and allows others to acquire a lock. + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + This appender forwards logging events to attached appenders. + + + + The forwarding appender can be used to specify different thresholds + and filters for the same appender at different locations within the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Forward the logging event to the attached appenders + + The event to log. + + + Delivers the logging event to all the attached appenders. + + + + + + Forward the logging events to the attached appenders + + The array of events to log. + + + Delivers the logging events to all the attached appenders. + + + + + + Adds an to the list of appenders of this + instance. + + The to add to this appender. + + + If the specified is already in the list of + appenders, then it won't be added again. + + + + + + Looks for the appender with the specified name. + + The name of the appender to lookup. + + The appender with the specified name, or null. + + + + Get the named appender attached to this appender. + + + + + + Removes all previously added appenders from this appender. + + + + This is useful when re-reading configuration information. + + + + + + Removes the specified appender from the list of appenders. + + The appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Implementation of the interface + + + + + Gets the appenders contained in this appender as an + . + + + If no appenders can be found, then an + is returned. + + + A collection of the appenders in this appender. + + + + + Logs events to a local syslog service. + + + + This appender uses the POSIX libc library functions openlog, syslog, and closelog. + If these functions are not available on the local system then this appender will not work! + + + The functions openlog, syslog, and closelog are specified in SUSv2 and + POSIX 1003.1-2001 standards. These are used to log messages to the local syslog service. + + + This appender talks to a local syslog service. If you need to log to a remote syslog + daemon and you cannot configure your local syslog service to do this you may be + able to use the to log via UDP. + + + Syslog messages must have a facility and and a severity. The severity + is derived from the Level of the logging event. + The facility must be chosen from the set of defined syslog + values. The facilities list is predefined + and cannot be extended. + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + Rob Lyon + Nicko Cadell + + + + Initializes a new instance of the class. + + + This instance of the class is set up to write + to a local syslog service. + + + + + Add a mapping of level to severity + + The mapping to add + + + Adds a to this appender. + + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to a remote syslog daemon. + + + The format of the output will depend on the appender's layout. + + + + + + Close the syslog when the appender is closed + + + + Close the syslog when the appender is closed + + + + + + Translates a log4net level to a syslog severity. + + A log4net level. + A syslog severity. + + + Translates a log4net level to a syslog severity. + + + + + + Generate a syslog priority. + + The syslog facility. + The syslog severity. + A syslog priority. + + + + The facility. The default facility is . + + + + + The message identity + + + + + Marshaled handle to the identity string. We have to hold on to the + string as the openlog and syslog APIs just hold the + pointer to the ident and dereference it for each log message. + + + + + Mapping from level object to syslog severity + + + + + Open connection to system logger. + + + + + Generate a log message. + + + + The libc syslog method takes a format string and a variable argument list similar + to the classic printf function. As this type of vararg list is not supported + by C# we need to specify the arguments explicitly. Here we have specified the + format string with a single message argument. The caller must set the format + string to "%s". + + + + + + Close descriptor used to write to system logger. + + + + + Message identity + + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + + + + Syslog facility + + + Set to one of the values. The list of + facilities is predefined and cannot be extended. The default value + is . + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + syslog severities + + + + The log4net Level maps to a syslog severity using the + method and the + class. The severity is set on . + + + + + + system is unusable + + + + + action must be taken immediately + + + + + critical conditions + + + + + error conditions + + + + + warning conditions + + + + + normal but significant condition + + + + + informational + + + + + debug-level messages + + + + + syslog facilities + + + + The syslog facility defines which subsystem the logging comes from. + This is set on the property. + + + + + + kernel messages + + + + + random user-level messages + + + + + mail system + + + + + system daemons + + + + + security/authorization messages + + + + + messages generated internally by syslogd + + + + + line printer subsystem + + + + + network news subsystem + + + + + UUCP subsystem + + + + + clock (cron/at) daemon + + + + + security/authorization messages (private) + + + + + ftp daemon + + + + + NTP subsystem + + + + + log audit + + + + + log alert + + + + + clock daemon + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + + + The mapped syslog severity for the specified level + + + + Required property. + The mapped syslog severity for the specified level + + + + + + Appends colorful logging events to the console, using the .NET 2 + built-in capabilities. + + + + ManagedColoredConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific type of message to be set. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + When configuring the colored console appender, mappings should be + specified to map logging levels to colors. For example: + + + + + + + + + + + + + + + + + + + + + + The Level is the standard log4net logging level while + ForeColor and BackColor are the values of + enumeration. + + + Based on the ColoredConsoleAppender + + + Rick Hobbs + Nicko Cadell + Pavlos Touboulidis + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Add a mapping of level to color - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colors + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level. + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level. + + + + + + Stores logging events in an array. + + + + The memory appender stores all the logging events + that are appended in an in-memory array. + + + Use the method to get + and clear the current list of events that have been appended. + + + Use the method to get the current + list of events that have been appended. Note there is a + race-condition when calling and + in pairs, you better use in that case. + + + Use the method to clear the + current list of events. Note there is a + race-condition when calling and + in pairs, you better use in that case. + + + Julian Biddle + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Gets the events that have been logged. + + The events that have been logged + + + Gets the events that have been logged. + + + + + + This method is called by the method. + + the event to log + + Stores the in the events list. + + + + + Clear the list of events + + + Clear the list of events + + + + + Gets the events that have been logged and clears the list of events. + + The events that have been logged + + + Gets the events that have been logged and clears the list of events. + + + + + + The list of events that have been appended. + + + + + Value indicating which fields in the event should be fixed + + + By default all fields are fixed + + + + + Gets or sets a value indicating whether only part of the logging event + data should be fixed. + + + true if the appender should only fix part of the logging event + data, otherwise false. The default is false. + + + + Setting this property to true will cause only part of the event + data to be fixed and stored in the appender, hereby improving performance. + + + See for more information. + + + + + + Gets or sets the fields that will be fixed in the event + + + + The logging event needs to have certain thread specific values + captured before it can be buffered. See + for details. + + + + + + Logs entries by sending network messages using the + native function. + + + + You can send messages only to names that are active + on the network. If you send the message to a user name, + that user must be logged on and running the Messenger + service to receive the message. + + + The receiver will get a top most window displaying the + messages one at a time, therefore this appender should + not be used to deliver a high volume of messages. + + + The following table lists some possible uses for this appender : + + + + + Action + Property Value(s) + + + Send a message to a user account on the local machine + + + = <name of the local machine> + + + = <user name> + + + + + Send a message to a user account on a remote machine + + + = <name of the remote machine> + + + = <user name> + + + + + Send a message to a domain user account + + + = <name of a domain controller | uninitialized> + + + = <user name> + + + + + Send a message to all the names in a workgroup or domain + + + = <workgroup name | domain name>* + + + + + Send a message from the local machine to a remote machine + + + = <name of the local machine | uninitialized> + + + = <name of the remote machine> + + + + + + + Note : security restrictions apply for sending + network messages, see + for more information. + + + + + An example configuration section to log information + using this appender from the local machine, named + LOCAL_PC, to machine OPERATOR_PC : + + + + + + + + + + Nicko Cadell + Gert Driesen + + + + The DNS or NetBIOS name of the server on which the function is to execute. + + + + + The sender of the network message. + + + + + The message alias to which the message should be sent. + + + + + The security context to use for privileged calls + + + + + Initializes the appender. + + + The default constructor initializes all fields to their default values. + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The appender will be ignored if no was specified. + + + The required property was not specified. + + + + This method is called by the method. + + The event to log. + + + Sends the event using a network message. + + + + + + Sends a buffer of information to a registered message alias. + + The DNS or NetBIOS name of the server on which the function is to execute. + The message alias to which the message buffer should be sent + The originator of the message. + The message text. + The length, in bytes, of the message text. + + + The following restrictions apply for sending network messages: + + + + + Platform + Requirements + + + Windows NT + + + No special group membership is required to send a network message. + + + Admin, Accounts, Print, or Server Operator group membership is required to + successfully send a network message on a remote server. + + + + + Windows 2000 or later + + + If you send a message on a domain controller that is running Active Directory, + access is allowed or denied based on the access control list (ACL) for the securable + object. The default ACL permits only Domain Admins and Account Operators to send a network message. + + + On a member server or workstation, only Administrators and Server Operators can send a network message. + + + + + + + For more information see Security Requirements for the Network Management Functions. + + + + + If the function succeeds, the return value is zero. + + + + + + Gets or sets the sender of the message. + + + The sender of the message. + + + If this property is not specified, the message is sent from the local computer. + + + + + Gets or sets the message alias to which the message should be sent. + + + The recipient of the message. + + + This property should always be specified in order to send a message. + + + + + Gets or sets the DNS or NetBIOS name of the remote server on which the function is to execute. + + + DNS or NetBIOS name of the remote server on which the function is to execute. + + + + For Windows NT 4.0 and earlier, the string should begin with \\. + + + If this property is not specified, the local computer is used. + + + + + + Gets or sets the used to call the NetSend method. + + + The used to call the NetSend method. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Appends log events to the OutputDebugString system. + + + + OutputDebugStringAppender appends log events to the + OutputDebugString system. + + + The string is passed to the native OutputDebugString + function. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Write the logging event to the output debug string API + + the event to log + + + Write the logging event to the output debug string API + + + + + + Stub for OutputDebugString native method + + the string to output + + + Stub for OutputDebugString native method + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Logs events to a remote syslog daemon. + + + + The BSD syslog protocol is used to remotely log to + a syslog daemon. The syslogd listens for for messages + on UDP port 514. + + + The syslog UDP protocol is not authenticated. Most syslog daemons + do not accept remote log messages because of the security implications. + You may be able to use the LocalSyslogAppender to talk to a local + syslog service. + + + There is an RFC 3164 that claims to document the BSD Syslog Protocol. + This RFC can be seen here: http://www.faqs.org/rfcs/rfc3164.html. + This appender generates what the RFC calls an "Original Device Message", + i.e. does not include the TIMESTAMP or HOSTNAME fields. By observation + this format of message will be accepted by all current syslog daemon + implementations. The daemon will attach the current time and the source + hostname or IP address to any messages received. + + + Syslog messages must have a facility and and a severity. The severity + is derived from the Level of the logging event. + The facility must be chosen from the set of defined syslog + values. The facilities list is predefined + and cannot be extended. + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + Rob Lyon + Nicko Cadell + + + + Sends logging events as connectionless UDP datagrams to a remote host or a + multicast group using an . + + + + UDP guarantees neither that messages arrive, nor that they arrive in the correct order. + + + To view the logging results, a custom application can be developed that listens for logging + events. + + + When decoding events send via this appender remember to use the same encoding + to decode the events as was used to send the events. See the + property to specify the encoding to use. + + + + This example shows how to log receive logging events that are sent + on IP address 244.0.0.1 and port 8080 to the console. The event is + encoded in the packet as a unicode string and it is decoded as such. + + IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0); + UdpClient udpClient; + byte[] buffer; + string loggingEvent; + + try + { + udpClient = new UdpClient(8080); + + while(true) + { + buffer = udpClient.Receive(ref remoteEndPoint); + loggingEvent = System.Text.Encoding.Unicode.GetString(buffer); + Console.WriteLine(loggingEvent); + } + } + catch(Exception e) + { + Console.WriteLine(e.ToString()); + } + + + Dim remoteEndPoint as IPEndPoint + Dim udpClient as UdpClient + Dim buffer as Byte() + Dim loggingEvent as String + + Try + remoteEndPoint = new IPEndPoint(IPAddress.Any, 0) + udpClient = new UdpClient(8080) + + While True + buffer = udpClient.Receive(ByRef remoteEndPoint) + loggingEvent = System.Text.Encoding.Unicode.GetString(buffer) + Console.WriteLine(loggingEvent) + Wend + Catch e As Exception + Console.WriteLine(e.ToString()) + End Try + + + An example configuration section to log information using this appender to the + IP 224.0.0.1 on port 8080: + + + + + + + + + + Gert Driesen + Nicko Cadell + + + + Initializes a new instance of the class. + + + The default constructor initializes all fields to their default values. + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The appender will be ignored if no was specified or + an invalid remote or local TCP port number was specified. + + + The required property was not specified. + The TCP port number assigned to or is less than or greater than . + + + + This method is called by the method. + + The event to log. + + + Sends the event using an UDP datagram. + + + Exceptions are passed to the . + + + + + + Closes the UDP connection and releases all resources associated with + this instance. + + + + Disables the underlying and releases all managed + and unmanaged resources associated with the . + + + + + + Initializes the underlying connection. + + + + The underlying is initialized and binds to the + port number from which you intend to communicate. + + + Exceptions are passed to the . + + + + + + The IP address of the remote host or multicast group to which + the logging event will be sent. + + + + + The TCP port number of the remote host or multicast group to + which the logging event will be sent. + + + + + The cached remote endpoint to which the logging events will be sent. + + + + + The TCP port number from which the will communicate. + + + + + The instance that will be used for sending the + logging events. + + + + + The encoding to use for the packet. + + + + + Gets or sets the IP address of the remote host or multicast group to which + the underlying should sent the logging event. + + + The IP address of the remote host or multicast group to which the logging event + will be sent. + + + + Multicast addresses are identified by IP class D addresses (in the range 224.0.0.0 to + 239.255.255.255). Multicast packets can pass across different networks through routers, so + it is possible to use multicasts in an Internet scenario as long as your network provider + supports multicasting. + + + Hosts that want to receive particular multicast messages must register their interest by joining + the multicast group. Multicast messages are not sent to networks where no host has joined + the multicast group. Class D IP addresses are used for multicast groups, to differentiate + them from normal host addresses, allowing nodes to easily detect if a message is of interest. + + + Static multicast addresses that are needed globally are assigned by IANA. A few examples are listed in the table below: + + + + + IP Address + Description + + + 224.0.0.1 + + + Sends a message to all system on the subnet. + + + + + 224.0.0.2 + + + Sends a message to all routers on the subnet. + + + + + 224.0.0.12 + + + The DHCP server answers messages on the IP address 224.0.0.12, but only on a subnet. + + + + + + + A complete list of actually reserved multicast addresses and their owners in the ranges + defined by RFC 3171 can be found at the IANA web site. + + + The address range 239.0.0.0 to 239.255.255.255 is reserved for administrative scope-relative + addresses. These addresses can be reused with other local groups. Routers are typically + configured with filters to prevent multicast traffic in this range from flowing outside + of the local network. + + + + + + Gets or sets the TCP port number of the remote host or multicast group to which + the underlying should sent the logging event. + + + An integer value in the range to + indicating the TCP port number of the remote host or multicast group to which the logging event + will be sent. + + + The underlying will send messages to this TCP port number + on the remote host or multicast group. + + The value specified is less than or greater than . + + + + Gets or sets the TCP port number from which the underlying will communicate. + + + An integer value in the range to + indicating the TCP port number from which the underlying will communicate. + + + + The underlying will bind to this port for sending messages. + + + Setting the value to 0 (the default) will cause the udp client not to bind to + a local port. + + + The value specified is less than or greater than . + + + + Gets or sets used to write the packets. + + + The used to write the packets. + + + + The used to write the packets. + + + + + + Gets or sets the underlying . + + + The underlying . + + + creates a to send logging events + over a network. Classes deriving from can use this + property to get or set this . Use the underlying + returned from if you require access beyond that which + provides. + + + + + Gets or sets the cached remote endpoint to which the logging events should be sent. + + + The cached remote endpoint to which the logging events will be sent. + + + The method will initialize the remote endpoint + with the values of the and + properties. + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Syslog port 514 + + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + Initializes a new instance of the class. + + + This instance of the class is set up to write + to a remote syslog daemon. + + + + + Add a mapping of level to severity + + The mapping to add + + + Add a mapping to this appender. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to a remote syslog daemon. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to syslog severity mappings set on this appender. + + + + + + Translates a log4net level to a syslog severity. + + A log4net level. + A syslog severity. + + + Translates a log4net level to a syslog severity. + + + + + + Generate a syslog priority. + + The syslog facility. + The syslog severity. + A syslog priority. + + + Generate a syslog priority. + + + + + + The facility. The default facility is . + + + + + The message identity + + + + + Mapping from level object to syslog severity + + + + + Message identity + + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + + + + Syslog facility + + + Set to one of the values. The list of + facilities is predefined and cannot be extended. The default value + is . + + + + + syslog severities + + + + The syslog severities. + + + + + + system is unusable + + + + + action must be taken immediately + + + + + critical conditions + + + + + error conditions + + + + + warning conditions + + + + + normal but significant condition + + + + + informational + + + + + debug-level messages + + + + + syslog facilities + + + + The syslog facilities + + + + + + kernel messages + + + + + random user-level messages + + + + + mail system + + + + + system daemons + + + + + security/authorization messages + + + + + messages generated internally by syslogd + + + + + line printer subsystem + + + + + network news subsystem + + + + + UUCP subsystem + + + + + clock (cron/at) daemon + + + + + security/authorization messages (private) + + + + + ftp daemon + + + + + NTP subsystem + + + + + log audit + + + + + log alert + + + + + clock daemon + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + + + The mapped syslog severity for the specified level + + + + Required property. + The mapped syslog severity for the specified level + + + + + + Delivers logging events to a remote logging sink. + + + + This Appender is designed to deliver events to a remote sink. + That is any object that implements the + interface. It delivers the events using .NET remoting. The + object to deliver events to is specified by setting the + appenders property. + + The RemotingAppender buffers events before sending them. This allows it to + make more efficient use of the remoting infrastructure. + + Once the buffer is full the events are still not sent immediately. + They are scheduled to be sent using a pool thread. The effect is that + the send occurs asynchronously. This is very important for a + number of non obvious reasons. The remoting infrastructure will + flow thread local variables (stored in the ), + if they are marked as , across the + remoting boundary. If the server is not contactable then + the remoting infrastructure will clear the + objects from the . To prevent a logging failure from + having side effects on the calling application the remoting call must be made + from a separate thread to the one used by the application. A + thread is used for this. If no thread is available then + the events will block in the thread pool manager until a thread is available. + + Because the events are sent asynchronously using pool threads it is possible to close + this appender before all the queued events have been sent. + When closing the appender attempts to wait until all the queued events have been sent, but + this will timeout after 30 seconds regardless. + + If this appender is being closed because the + event has fired it may not be possible to send all the queued events. During process + exit the runtime limits the time that a + event handler is allowed to run for. If the runtime terminates the threads before + the queued events have been sent then they will be lost. To ensure that all events + are sent the appender must be closed before the application exits. See + for details on how to shutdown + log4net programmatically. + + + Nicko Cadell + Gert Driesen + Daniel Cazzulino + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Send the contents of the buffer to the remote sink. + + + The events are not sent immediately. They are scheduled to be sent + using a pool thread. The effect is that the send occurs asynchronously. + This is very important for a number of non obvious reasons. The remoting + infrastructure will flow thread local variables (stored in the ), + if they are marked as , across the + remoting boundary. If the server is not contactable then + the remoting infrastructure will clear the + objects from the . To prevent a logging failure from + having side effects on the calling application the remoting call must be made + from a separate thread to the one used by the application. A + thread is used for this. If no thread is available then + the events will block in the thread pool manager until a thread is available. + + The events to send. + + + + Override base class close. + + + + This method waits while there are queued work items. The events are + sent asynchronously using work items. These items + will be sent once a thread pool thread is available to send them, therefore + it is possible to close the appender before all the queued events have been + sent. + + This method attempts to wait until all the queued events have been sent, but this + method will timeout after 30 seconds regardless. + + If the appender is being closed because the + event has fired it may not be possible to send all the queued events. During process + exit the runtime limits the time that a + event handler is allowed to run for. + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + A work item is being queued into the thread pool + + + + + A work item from the thread pool has completed + + + + + Send the contents of the buffer to the remote sink. + + + This method is designed to be used with the . + This method expects to be passed an array of + objects in the state param. + + the logging events to send + + + + The URL of the remote sink. + + + + + The local proxy (.NET remoting) for the remote logging sink. + + + + + The number of queued callbacks currently waiting or executing + + + + + Event used to signal when there are no queued work items + + + This event is set when there are no queued work items. In this + state it is safe to close the appender. + + + + + Gets or sets the URL of the well-known object that will accept + the logging events. + + + The well-known URL of the remote sink. + + + + The URL of the remoting sink that will accept logging events. + The sink must implement the + interface. + + + + + + Interface used to deliver objects to a remote sink. + + + This interface must be implemented by a remoting sink + if the is to be used + to deliver logging events to the sink. + + + + + Delivers logging events to the remote sink + + Array of events to log. + + + Delivers logging events to the remote sink + + + + + + Appender that rolls log files based on size or date or both. + + + + RollingFileAppender can roll log files based on size or date or both + depending on the setting of the property. + When set to the log file will be rolled + once its size exceeds the . + When set to the log file will be rolled + once the date boundary specified in the property + is crossed. + When set to the log file will be + rolled once the date boundary specified in the property + is crossed, but within a date boundary the file will also be rolled + once its size exceeds the . + When set to the log file will be rolled when + the appender is configured. This effectively means that the log file can be + rolled once per program execution. + + + A of few additional optional features have been added: + + Attach date pattern for current log file + Backup number increments for newer files + Infinite number of backups by file size + + + + + + For large or infinite numbers of backup files a + greater than zero is highly recommended, otherwise all the backup files need + to be renamed each time a new backup is created. + + + When Date/Time based rolling is used setting + to will reduce the number of file renamings to few or none. + + + + + + Changing or without clearing + the log file directory of backup files will cause unexpected and unwanted side effects. + + + + + If Date/Time based rolling is enabled this appender will attempt to roll existing files + in the directory without a Date/Time tag based on the last write date of the base log file. + The appender only rolls the log file when a message is logged. If Date/Time based rolling + is enabled then the appender will not roll the log file at the Date/Time boundary but + at the point when the next message is logged after the boundary has been crossed. + + + + The extends the and + has the same behavior when opening the log file. + The appender will first try to open the file for writing when + is called. This will typically be during configuration. + If the file cannot be opened for writing the appender will attempt + to open the file again each time a message is logged to the appender. + If the file cannot be opened for writing when a message is logged then + the message will be discarded by this appender. + + + When rolling a backup file necessitates deleting an older backup file the + file to be deleted is moved to a temporary name before being deleted. + + + + + A maximum number of backup files when rolling on date/time boundaries is not supported. + + + + Nicko Cadell + Gert Driesen + Aspi Havewala + Douglas de la Torre + Edward Smit + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Cleans up all resources used by this appender. + + + + + The fully qualified type of the RollingFileAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Sets the quiet writer being used. + + + This method can be overridden by sub classes. + + the writer to set + + + + Write out a logging event. + + the event to write to file. + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Write out an array of logging events. + + the events to write to file. + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Performs any required rolling before outputting the next event + + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Creates and opens the file for logging. If + is false then the fully qualified name is determined and used. + + the name of the file to open + true to append to existing file + + This method will ensure that the directory structure + for the specified exists. + + + + + Get the current output file name + + the base file name + the output file name + + The output file name is based on the base fileName specified. + If is set then the output + file name is the same as the base file passed in. Otherwise + the output file depends on the date pattern, on the count + direction or both. + + + + + Determines curSizeRollBackups (only within the current roll point) + + + + + Generates a wildcard pattern that can be used to find all files + that are similar to the base file name. + + + + + + + Builds a list of filenames for all files matching the base filename plus a file + pattern. + + + + + + + Initiates a roll over if needed for crossing a date boundary since the last run. + + + + + Initializes based on existing conditions at time of . + + + + Initializes based on existing conditions at time of . + The following is done + + determine curSizeRollBackups (only within the current roll point) + initiates a roll over if needed for crossing a date boundary since the last run. + + + + + + + Does the work of bumping the 'current' file counter higher + to the highest count when an incremental file name is seen. + The highest count is either the first file (when count direction + is greater than 0) or the last file (when count direction less than 0). + In either case, we want to know the highest count that is present. + + + + + + + Attempts to extract a number from the end of the file name that indicates + the number of the times the file has been rolled over. + + + Certain date pattern extensions like yyyyMMdd will be parsed as valid backup indexes. + + + + + + + Takes a list of files and a base file name, and looks for + 'incremented' versions of the base file. Bumps the max + count up to the highest count seen. + + + + + + + Calculates the RollPoint for the datePattern supplied. + + the date pattern to calculate the check period for + The RollPoint that is most accurate for the date pattern supplied + + Essentially the date pattern is examined to determine what the + most suitable roll point is. The roll point chosen is the roll point + with the smallest period that can be detected using the date pattern + supplied. i.e. if the date pattern only outputs the year, month, day + and hour then the smallest roll point that can be detected would be + and hourly roll point as minutes could not be detected. + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Sets initial conditions including date/time roll over information, first check, + scheduledFilename, and calls to initialize + the current number of backups. + + + + + + + + + .1, .2, .3, etc. + + + + + Rollover the file(s) to date/time tagged file(s). + + set to true if the file to be rolled is currently open + + + Rollover the file(s) to date/time tagged file(s). + Resets curSizeRollBackups. + If fileIsOpen is set then the new file is opened (through SafeOpenFile). + + + + + + Renames file to file . + + Name of existing file to roll. + New name for file. + + + Renames file to file . It + also checks for existence of target file and deletes if it does. + + + + + + Test if a file exists at a specified path + + the path to the file + true if the file exists + + + Test if a file exists at a specified path + + + + + + Deletes the specified file if it exists. + + The file to delete. + + + Delete a file if is exists. + The file is first moved to a new filename then deleted. + This allows the file to be removed even when it cannot + be deleted, but it still can be moved. + + + + + + Implements file roll base on file size. + + + + If the maximum number of size based backups is reached + (curSizeRollBackups == maxSizeRollBackups) then the oldest + file is deleted -- its index determined by the sign of countDirection. + If countDirection < 0, then files + {File.1, ..., File.curSizeRollBackups -1} + are renamed to {File.2, ..., + File.curSizeRollBackups}. Moreover, File is + renamed File.1 and closed. + + + A new file is created to receive further log output. + + + If maxSizeRollBackups is equal to zero, then the + File is truncated with no backup files created. + + + If maxSizeRollBackups < 0, then File is + renamed if needed and no files are deleted. + + + + + + Implements file roll. + + the base name to rename + + + If the maximum number of size based backups is reached + (curSizeRollBackups == maxSizeRollBackups) then the oldest + file is deleted -- its index determined by the sign of countDirection. + If countDirection < 0, then files + {File.1, ..., File.curSizeRollBackups -1} + are renamed to {File.2, ..., + File.curSizeRollBackups}. + + + If maxSizeRollBackups is equal to zero, then the + File is truncated with no backup files created. + + + If maxSizeRollBackups < 0, then File is + renamed if needed and no files are deleted. + + + This is called by to rename the files. + + + + + + Get the start time of the next window for the current rollpoint + + the current date + the type of roll point we are working with + the start time for the next roll point an interval after the currentDateTime date + + + Returns the date of the next roll point after the currentDateTime date passed to the method. + + + The basic strategy is to subtract the time parts that are less significant + than the rollpoint from the current time. This should roll the time back to + the start of the time window for the current rollpoint. Then we add 1 window + worth of time and get the start time of the next window for the rollpoint. + + + + + + This object supplies the current date/time. Allows test code to plug in + a method to control this class when testing date/time based rolling. The default + implementation uses the underlying value of DateTime.Now. + + + + + The date pattern. By default, the pattern is set to ".yyyy-MM-dd" + meaning daily rollover. + + + + + The actual formatted filename that is currently being written to + or will be the file transferred to on roll over + (based on staticLogFileName). + + + + + The timestamp when we shall next recompute the filename. + + + + + Holds date of last roll over + + + + + The type of rolling done + + + + + The default maximum file size is 10MB + + + + + There is zero backup files by default + + + + + How many sized based backups have been made so far + + + + + The rolling file count direction. + + + + + The rolling mode used in this appender. + + + + + Cache flag set if we are rolling by date. + + + + + Cache flag set if we are rolling by size. + + + + + Value indicating whether to always log to the same file. + + + + + Value indicating whether to preserve the file name extension when rolling. + + + + + FileName provided in configuration. Used for rolling properly + + + + + A mutex that is used to lock rolling of files. + + + + + The 1st of January 1970 in UTC + + + + + Gets or sets the strategy for determining the current date and time. The default + implementation is to use LocalDateTime which internally calls through to DateTime.Now. + DateTime.UtcNow may be used on frameworks newer than .NET 1.0 by specifying + . + + + An implementation of the interface which returns the current date and time. + + + + Gets or sets the used to return the current date and time. + + + There are two built strategies for determining the current date and time, + + and . + + + The default strategy is . + + + + + + Gets or sets the date pattern to be used for generating file names + when rolling over on date. + + + The date pattern to be used for generating file names when rolling + over on date. + + + + Takes a string in the same format as expected by + . + + + This property determines the rollover schedule when rolling over + on date. + + + + + + Gets or sets the maximum number of backup files that are kept before + the oldest is erased. + + + The maximum number of backup files that are kept before the oldest is + erased. + + + + If set to zero, then there will be no backup files and the log file + will be truncated when it reaches . + + + If a negative number is supplied then no deletions will be made. Note + that this could result in very slow performance as a large number of + files are rolled over unless is used. + + + The maximum applies to each time based group of files and + not the total. + + + + + + Gets or sets the maximum size that the output file is allowed to reach + before being rolled over to backup files. + + + The maximum size in bytes that the output file is allowed to reach before being + rolled over to backup files. + + + + This property is equivalent to except + that it is required for differentiating the setter taking a + argument from the setter taking a + argument. + + + The default maximum file size is 10MB (10*1024*1024). + + + + + + Gets or sets the maximum size that the output file is allowed to reach + before being rolled over to backup files. + + + The maximum size that the output file is allowed to reach before being + rolled over to backup files. + + + + This property allows you to specify the maximum size with the + suffixes "KB", "MB" or "GB" so that the size is interpreted being + expressed respectively in kilobytes, megabytes or gigabytes. + + + For example, the value "10KB" will be interpreted as 10240 bytes. + + + The default maximum file size is 10MB. + + + If you have the option to set the maximum file size programmatically + consider using the property instead as this + allows you to set the size in bytes as a . + + + + + + Gets or sets the rolling file count direction. + + + The rolling file count direction. + + + + Indicates if the current file is the lowest numbered file or the + highest numbered file. + + + By default newer files have lower numbers ( < 0), + i.e. log.1 is most recent, log.5 is the 5th backup, etc... + + + >= 0 does the opposite i.e. + log.1 is the first backup made, log.5 is the 5th backup made, etc. + For infinite backups use >= 0 to reduce + rollover costs. + + The default file count direction is -1. + + + + + Gets or sets the rolling style. + + The rolling style. + + + The default rolling style is . + + + When set to this appender's + property is set to false, otherwise + the appender would append to a single file rather than rolling + the file each time it is opened. + + + + + + Gets or sets a value indicating whether to preserve the file name extension when rolling. + + + true if the file name extension should be preserved. + + + + By default file.log is rolled to file.log.yyyy-MM-dd or file.log.curSizeRollBackup. + However, under Windows the new file name will loose any program associations as the + extension is changed. Optionally file.log can be renamed to file.yyyy-MM-dd.log or + file.curSizeRollBackup.log to maintain any program associations. + + + + + + Gets or sets a value indicating whether to always log to + the same file. + + + true if always should be logged to the same file, otherwise false. + + + + By default file.log is always the current file. Optionally + file.log.yyyy-mm-dd for current formatted datePattern can by the currently + logging file (or file.log.curSizeRollBackup or even + file.log.yyyy-mm-dd.curSizeRollBackup). + + + This will make time based rollovers with a large number of backups + much faster as the appender it won't have to rename all the backups! + + + + + + Style of rolling to use + + + + Style of rolling to use + + + + + + Roll files once per program execution + + + + Roll files once per program execution. + Well really once each time this appender is + configured. + + + Setting this option also sets AppendToFile to + false on the RollingFileAppender, otherwise + this appender would just be a normal file appender. + + + + + + Roll files based only on the size of the file + + + + + Roll files based only on the date + + + + + Roll files based on both the size and date of the file + + + + + The code assumes that the following 'time' constants are in a increasing sequence. + + + + The code assumes that the following 'time' constants are in a increasing sequence. + + + + + + Roll the log not based on the date + + + + + Roll the log for each minute + + + + + Roll the log for each hour + + + + + Roll the log twice a day (midday and midnight) + + + + + Roll the log each day (midnight) + + + + + Roll the log each week + + + + + Roll the log each month + + + + + This interface is used to supply Date/Time information to the . + + + This interface is used to supply Date/Time information to the . + Used primarily to allow test classes to plug themselves in so they can + supply test date/times. + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Default implementation of that returns the current time. + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Implementation of that returns the current time as the coordinated universal time (UTC). + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Send an e-mail when a specific logging event occurs, typically on errors + or fatal errors. + + + + The number of logging events delivered in this e-mail depend on + the value of option. The + keeps only the last + logging events in its + cyclic buffer. This keeps memory requirements at a reasonable level while + still delivering useful application context. + + + Authentication and setting the server Port are only available on the MS .NET 1.1 runtime. + For these features to be enabled you need to ensure that you are using a version of + the log4net assembly that is built against the MS .NET 1.1 framework and that you are + running the your application on the MS .NET 1.1 runtime. On all other platforms only sending + unauthenticated messages to a server listening on port 25 (the default) is supported. + + + Authentication is supported by setting the property to + either or . + If using authentication then the + and properties must also be set. + + + To set the SMTP server port use the property. The default port is 25. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Default constructor + + + + + + Sends the contents of the cyclic buffer as an e-mail message. + + The logging events to send. + + + + Send the email message + + the body text to include in the mail + + + + trims leading and trailing commas or semicolons + + + + + Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses (use semicolon on .NET 1.1 and comma for later versions). + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + + Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses + that will be carbon copied (use semicolon on .NET 1.1 and comma for later versions). + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + + Gets or sets a semicolon-delimited list of recipient e-mail addresses + that will be blind carbon copied. + + + A semicolon-delimited list of e-mail addresses. + + + + A semicolon-delimited list of recipient e-mail addresses. + + + + + + Gets or sets the e-mail address of the sender. + + + The e-mail address of the sender. + + + + The e-mail address of the sender. + + + + + + Gets or sets the subject line of the e-mail message. + + + The subject line of the e-mail message. + + + + The subject line of the e-mail message. + + + + + + Gets or sets the name of the SMTP relay mail server to use to send + the e-mail messages. + + + The name of the e-mail relay server. If SmtpServer is not set, the + name of the local SMTP server is used. + + + + The name of the e-mail relay server. If SmtpServer is not set, the + name of the local SMTP server is used. + + + + + + Obsolete + + + Use the BufferingAppenderSkeleton Fix methods instead + + + + Obsolete property. + + + + + + The mode to use to authentication with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + Valid Authentication mode values are: , + , and . + The default value is . When using + you must specify the + and to use to authenticate. + When using the Windows credentials for the current + thread, if impersonating, or the process will be used to authenticate. + + + + + + The username to use to authenticate with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + A and must be specified when + is set to , + otherwise the username will be ignored. + + + + + + The password to use to authenticate with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + A and must be specified when + is set to , + otherwise the password will be ignored. + + + + + + The port on which the SMTP server is listening + + + Server Port is only available on the MS .NET 1.1 runtime. + + The port on which the SMTP server is listening. The default + port is 25. The Port can only be changed when running on + the MS .NET 1.1 runtime. + + + + + + Gets or sets the priority of the e-mail message + + + One of the values. + + + + Sets the priority of the e-mails generated by this + appender. The default priority is . + + + If you are using this appender to report errors then + you may want to set the priority to . + + + + + + Enable or disable use of SSL when sending e-mail message + + + This is available on MS .NET 2.0 runtime and higher + + + + + Gets or sets the reply-to e-mail address. + + + This is available on MS .NET 2.0 runtime and higher + + + + + Gets or sets the subject encoding to be used. + + + The default encoding is the operating system's current ANSI codepage. + + + + + Gets or sets the body encoding to be used. + + + The default encoding is the operating system's current ANSI codepage. + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Values for the property. + + + + SMTP authentication modes. + + + + + + No authentication + + + + + Basic authentication. + + + Requires a username and password to be supplied + + + + + Integrated authentication + + + Uses the Windows credentials from the current thread or process to authenticate. + + + + + Send an email when a specific logging event occurs, typically on errors + or fatal errors. Rather than sending via smtp it writes a file into the + directory specified by . This allows services such + as the IIS SMTP agent to manage sending the messages. + + + + The configuration for this appender is identical to that of the SMTPAppender, + except that instead of specifying the SMTPAppender.SMTPHost you specify + . + + + The number of logging events delivered in this e-mail depend on + the value of option. The + keeps only the last + logging events in its + cyclic buffer. This keeps memory requirements at a reasonable level while + still delivering useful application context. + + + Niall Daley + Nicko Cadell + + + + Default constructor + + + + Default constructor + + + + + + Sends the contents of the cyclic buffer as an e-mail message. + + The logging events to send. + + + Sends the contents of the cyclic buffer as an e-mail message. + + + + + + Activate the options on this appender. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Convert a path into a fully qualified path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + + + + The security context to use for privileged calls + + + + + Gets or sets a semicolon-delimited list of recipient e-mail addresses. + + + A semicolon-delimited list of e-mail addresses. + + + + A semicolon-delimited list of e-mail addresses. + + + + + + Gets or sets the e-mail address of the sender. + + + The e-mail address of the sender. + + + + The e-mail address of the sender. + + + + + + Gets or sets the subject line of the e-mail message. + + + The subject line of the e-mail message. + + + + The subject line of the e-mail message. + + + + + + Gets or sets the path to write the messages to. + + + + Gets or sets the path to write the messages to. This should be the same + as that used by the agent sending the messages. + + + + + + Gets or sets the file extension for the generated files + + + The file extension for the generated files + + + + The file extension for the generated files + + + + + + Gets or sets the used to write to the pickup directory. + + + The used to write to the pickup directory. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Appender that allows clients to connect via Telnet to receive log messages + + + + The TelnetAppender accepts socket connections and streams logging messages + back to the client. + The output is provided in a telnet-friendly way so that a log can be monitored + over a TCP/IP socket. + This allows simple remote monitoring of application logging. + + + The default is 23 (the telnet port). + + + Keith Long + Nicko Cadell + + + + Default constructor + + + + Default constructor + + + + + + The fully qualified type of the TelnetAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Overrides the parent method to close the socket handler + + + + Closes all the outstanding connections. + + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Create the socket handler and wait for connections + + + + + + Writes the logging event to each connected client. + + The event to log. + + + Writes the logging event to each connected client. + + + + + + Gets or sets the TCP port number on which this will listen for connections. + + + An integer value in the range to + indicating the TCP port number on which this will listen for connections. + + + + The default value is 23 (the telnet port). + + + The value specified is less than + or greater than . + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Helper class to manage connected clients + + + + The SocketHandler class is used to accept connections from + clients. It is threaded so that clients can connect/disconnect + asynchronously. + + + + + + Opens a new server port on + + the local port to listen on for connections + + + Creates a socket handler on the specified local server port. + + + + + + Sends a string message to each of the connected clients + + the text to send + + + Sends a string message to each of the connected clients + + + + + + Add a client to the internal clients list + + client to add + + + + Remove a client from the internal clients list + + client to remove + + + + Callback used to accept a connection on the server socket + + The result of the asynchronous operation + + + On connection adds to the list of connections + if there are two many open connections you will be disconnected + + + + + + Close all network connections + + + + Make sure we close all network connections + + + + + + Test if this handler has active connections + + + true if this handler has active connections + + + + This property will be true while this handler has + active connections, that is at least one connection that + the handler will attempt to send a message to. + + + + + + Class that represents a client connected to this handler + + + + Class that represents a client connected to this handler + + + + + + Create this for the specified + + the client's socket + + + Opens a stream writer on the socket. + + + + + + Write a string to the client + + string to send + + + Write a string to the client + + + + + + Cleanup the clients connection + + + + Close the socket connection. + + + + + + Appends log events to the system. + + + + The application configuration file can be used to control what listeners + are actually used. See the MSDN documentation for the + class for details on configuring the + trace system. + + + Events are written using the System.Diagnostics.Trace.Write(string,string) + method. The event's logger name is the default value for the category parameter + of the Write method. + + + Compact Framework
+ The Compact Framework does not support the + class for any operation except Assert. When using the Compact Framework this + appender will write to the system rather than + the Trace system. This appender will therefore behave like the . +
+
+ Douglas de la Torre + Nicko Cadell + Gert Driesen + Ron Grabowski +
+ + + Initializes a new instance of the . + + + + Default constructor. + + + + + + Initializes a new instance of the + with a specified layout. + + The layout to use with this appender. + + + Obsolete constructor. + + + + + + Writes the logging event to the system. + + The event to log. + + + Writes the logging event to the system. + + + + + + Immediate flush means that the underlying writer or output stream + will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logs events are not actually written to persistent media if and + when the application crashes. + + + The default value is true. + + + + + Defaults to %logger + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Gets or sets a value that indicates whether the appender will + flush at the end of each write. + + + The default behavior is to flush at the end of each + write. If the option is set tofalse, then the underlying + stream can defer writing to physical medium to a later time. + + + Avoiding the flush operation at the end of each append results + in a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + + The category parameter sent to the Trace method. + + + + Defaults to %logger which will use the logger name of the current + as the category parameter. + + + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Assembly level attribute that specifies a domain to alias to this assembly's repository. + + + + AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. + + + An assembly's logger repository is defined by its , + however this can be overridden by an assembly loaded before the target assembly. + + + An assembly can alias another assembly's domain to its repository by + specifying this attribute with the name of the target domain. + + + This attribute can only be specified on the assembly and may be used + as many times as necessary to alias all the required domains. + + + Nicko Cadell + Gert Driesen + + + + Assembly level attribute that specifies a repository to alias to this assembly's repository. + + + + An assembly's logger repository is defined by its , + however this can be overridden by an assembly loaded before the target assembly. + + + An assembly can alias another assembly's repository to its repository by + specifying this attribute with the name of the target repository. + + + This attribute can only be specified on the assembly and may be used + as many times as necessary to alias all the required repositories. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class with + the specified repository to alias to this assembly's repository. + + The repository to alias to this assemby's repository. + + + Initializes a new instance of the class with + the specified repository to alias to this assembly's repository. + + + + + + Gets or sets the repository to alias to this assemby's repository. + + + The repository to alias to this assemby's repository. + + + + The name of the repository to alias to this assemby's repository. + + + + + + Initializes a new instance of the class with + the specified domain to alias to this assembly's repository. + + The domain to alias to this assemby's repository. + + + Obsolete. Use instead of . + + + + + + Use this class to quickly configure a . + + + + Allows very simple programmatic configuration of log4net. + + + Only one appender can be configured using this configurator. + The appender is set at the root of the hierarchy and all logging + events will be delivered to that appender. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + The fully qualified type of the BasicConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Initializes the log4net system with a default configuration. + + + + Initializes the log4net logging system using a + that will write to Console.Out. The log messages are + formatted using the layout object + with the + layout style. + + + + + + Initializes the log4net system using the specified appenders. + + The appenders to use to log all logging events. + + + Initializes the log4net system using the specified appenders. + + + + + + Initializes the log4net system using the specified appender. + + The appender to use to log all logging events. + + + Initializes the log4net system using the specified appender. + + + + + + Initializes the with a default configuration. + + The repository to configure. + + + Initializes the specified repository using a + that will write to Console.Out. The log messages are + formatted using the layout object + with the + layout style. + + + + + + Initializes the using the specified appender. + + The repository to configure. + The appender to use to log all logging events. + + + Initializes the using the specified appender. + + + + + + Initializes the using the specified appenders. + + The repository to configure. + The appenders to use to log all logging events. + + + Initializes the using the specified appender. + + + + + + Base class for all log4net configuration attributes. + + + This is an abstract class that must be extended by + specific configurators. This attribute allows the + configurator to be parameterized by an assembly level + attribute. + + Nicko Cadell + Gert Driesen + + + + Constructor used by subclasses. + + the ordering priority for this configurator + + + The is used to order the configurator + attributes before they are invoked. Higher priority configurators are executed + before lower priority ones. + + + + + + Configures the for the specified assembly. + + The assembly that this attribute was defined on. + The repository to configure. + + + Abstract method implemented by a subclass. When this method is called + the subclass should configure the . + + + + + + Compare this instance to another ConfiguratorAttribute + + the object to compare to + see + + + Compares the priorities of the two instances. + Sorts by priority in descending order. Objects with the same priority are + randomly ordered. + + + + + + Assembly level attribute that specifies the logging domain for the assembly. + + + + DomainAttribute is obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + Assemblies are mapped to logging domains. Each domain has its own + logging repository. This attribute specified on the assembly controls + the configuration of the domain. The property specifies the name + of the domain that this assembly is a part of. The + specifies the type of the repository objects to create for the domain. If + this attribute is not specified and a is not specified + then the assembly will be part of the default shared logging domain. + + + This attribute can only be specified on the assembly and may only be used + once per assembly. + + + Nicko Cadell + Gert Driesen + + + + Assembly level attribute that specifies the logging repository for the assembly. + + + + Assemblies are mapped to logging repository. This attribute specified + on the assembly controls + the configuration of the repository. The property specifies the name + of the repository that this assembly is a part of. The + specifies the type of the object + to create for the assembly. If this attribute is not specified or a + is not specified then the assembly will be part of the default shared logging repository. + + + This attribute can only be specified on the assembly and may only be used + once per assembly. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initialize a new instance of the class + with the name of the repository. + + The name of the repository. + + + Initialize the attribute with the name for the assembly's repository. + + + + + + Gets or sets the name of the logging repository. + + + The string name to use as the name of the repository associated with this + assembly. + + + + This value does not have to be unique. Several assemblies can share the + same repository. They will share the logging configuration of the repository. + + + + + + Gets or sets the type of repository to create for this assembly. + + + The type of repository to create for this assembly. + + + + The type of the repository to create for the assembly. + The type must implement the + interface. + + + This will be the type of repository created when + the repository is created. If multiple assemblies reference the + same repository then the repository is only created once using the + of the first assembly to call into the + repository. + + + + + + Initializes a new instance of the class. + + + + Obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + + + + Initialize a new instance of the class + with the name of the domain. + + The name of the domain. + + + Obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + + + + Use this class to initialize the log4net environment using an Xml tree. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + Configures a using an Xml tree. + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + + + Automatically configures the log4net system based on the + application's configuration settings. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + + + Automatically configures the using settings + stored in the application's configuration file. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + The repository to configure. + + + + Configures log4net using a log4net element + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Loads the log4net configuration from the XML element + supplied as . + + The element to parse. + + + + Configures the using the specified XML + element. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Loads the log4net configuration from the XML element + supplied as . + + The repository to configure. + The element to parse. + + + + Configures log4net using the specified configuration file. + + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures log4net using the specified configuration file. + + A stream to load the XML configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The stream to load the XML configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures log4net using the file specified, monitors the file for changes + and reloads the configuration if a change is detected. + + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the using the file specified, + monitors the file for changes and reloads the configuration if a change + is detected. + + The repository to configure. + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Assembly level attribute to configure the . + + + + AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + Nicko Cadell + Gert Driesen + + + + Assembly level attribute to configure the . + + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + If neither of the or + properties are set the configuration is loaded from the application's .config file. + If set the property takes priority over the + property. The property + specifies a path to a file to load the config from. The path is relative to the + application's base directory; . + The property is used as a postfix to the assembly file name. + The config file must be located in the application's base directory; . + For example in a console application setting the to + config has the same effect as not specifying the or + properties. + + + The property can be set to cause the + to watch the configuration file for changes. + + + + Log4net will only look for assembly level configuration attributes once. + When using the log4net assembly level attributes to control the configuration + of log4net you must ensure that the first call to any of the + methods is made from the assembly with the configuration + attributes. + + + If you cannot guarantee the order in which log4net calls will be made from + different assemblies you must use programmatic configuration instead, i.e. + call the method directly. + + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Default constructor + + + + + + Configures the for the specified assembly. + + The assembly that this attribute was defined on. + The repository to configure. + + + Configure the repository using the . + The specified must extend the + class otherwise the will not be able to + configure it. + + + The does not extend . + + + + Attempt to load configuration from the local file system + + The assembly that this attribute was defined on. + The repository to configure. + + + + Configure the specified repository using a + + The repository to configure. + the FileInfo pointing to the config file + + + + Attempt to load configuration from a URI + + The assembly that this attribute was defined on. + The repository to configure. + + + + The fully qualified type of the XmlConfiguratorAttribute class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the filename of the configuration file. + + + The filename of the configuration file. + + + + If specified, this is the name of the configuration file to use with + the . This file path is relative to the + application base directory (). + + + The takes priority over the . + + + + + + Gets or sets the extension of the configuration file. + + + The extension of the configuration file. + + + + If specified this is the extension for the configuration file. + The path to the config file is built by using the application + base directory (), + the assembly file name and the config file extension. + + + If the is set to MyExt then + possible config file names would be: MyConsoleApp.exe.MyExt or + MyClassLibrary.dll.MyExt. + + + The takes priority over the . + + + + + + Gets or sets a value indicating whether to watch the configuration file. + + + true if the configuration should be watched, false otherwise. + + + + If this flag is specified and set to true then the framework + will watch the configuration file and will reload the config each time + the file is modified. + + + The config file can only be watched if it is loaded from local disk. + In a No-Touch (Smart Client) deployment where the application is downloaded + from a web server the config file may not reside on the local disk + and therefore it may not be able to watch it. + + + Watching configuration is not supported on the SSCLI. + + + + + + Class to register for the log4net section of the configuration file + + + The log4net section of the configuration file needs to have a section + handler registered. This is the section handler used. It simply returns + the XML element that is the root of the section. + + + Example of registering the log4net section handler : + + + +
+ + + log4net configuration XML goes here + + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Parses the configuration section. + + The configuration settings in a corresponding parent configuration section. + The configuration context when called from the ASP.NET configuration system. Otherwise, this parameter is reserved and is a null reference. + The for the log4net section. + The for the log4net section. + + + Returns the containing the configuration data, + + + + + + Assembly level attribute that specifies a plugin to attach to + the repository. + + + + Specifies the type of a plugin to create and attach to the + assembly's repository. The plugin type must implement the + interface. + + + Nicko Cadell + Gert Driesen + + + + Interface used to create plugins. + + + + Interface used to create a plugin. + + + Nicko Cadell + Gert Driesen + + + + Creates the plugin object. + + the new plugin instance + + + Create and return a new plugin instance. + + + + + + Initializes a new instance of the class + with the specified type. + + The type name of plugin to create. + + + Create the attribute with the plugin type specified. + + + Where possible use the constructor that takes a . + + + + + + Initializes a new instance of the class + with the specified type. + + The type of plugin to create. + + + Create the attribute with the plugin type specified. + + + + + + Creates the plugin object defined by this attribute. + + + + Creates the instance of the object as + specified by this attribute. + + + The plugin object. + + + + Returns a representation of the properties of this object. + + + + Overrides base class method to + return a representation of the properties of this object. + + + A representation of the properties of this object + + + + Gets or sets the type for the plugin. + + + The type for the plugin. + + + + The type for the plugin. + + + + + + Gets or sets the type name for the plugin. + + + The type name for the plugin. + + + + The type name for the plugin. + + + Where possible use the property instead. + + + + + + Assembly level attribute to configure the . + + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + Nicko Cadell + + + + Construct provider attribute with type specified + + the type of the provider to use + + + The provider specified must subclass the + class. + + + + + + Configures the SecurityContextProvider + + The assembly that this attribute was defined on. + The repository to configure. + + + Creates a provider instance from the specified. + Sets this as the default security context provider . + + + + + + The fully qualified type of the SecurityContextProviderAttribute class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the type of the provider to use. + + + the type of the provider to use. + + + + The provider specified must subclass the + class. + + + + + + Use this class to initialize the log4net environment using an Xml tree. + + + + Configures a using an Xml tree. + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + + + Automatically configures the using settings + stored in the application's configuration file. + + + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + To use this method to configure log4net you must specify + the section + handler for the log4net configuration section. See the + for an example. + + + The repository to configure. + + + + Automatically configures the log4net system based on the + application's configuration settings. + + + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + To use this method to configure log4net you must specify + the section + handler for the log4net configuration section. See the + for an example. + + + + + + + Configures log4net using a log4net element + + + + Loads the log4net configuration from the XML element + supplied as . + + + The element to parse. + + + + Configures log4net using the specified configuration file. + + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The first element matching <configuration> will be read as the + configuration. If this file is also a .NET .config file then you must specify + a configuration section for the log4net element otherwise .NET will + complain. Set the type for the section handler to , for example: + + +
+ + + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures log4net using the specified configuration URI. + + A URI to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The must support the URI scheme specified. + + + + + + Configures log4net using the specified configuration data stream. + + A stream to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures the using the specified XML + element. + + + Loads the log4net configuration from the XML element + supplied as . + + The repository to configure. + The element to parse. + + + + Configures the using the specified configuration + file. + + The repository to configure. + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The first element matching <configuration> will be read as the + configuration. If this file is also a .NET .config file then you must specify + a configuration section for the log4net element otherwise .NET will + complain. Set the type for the section handler to , for example: + + +
+ + + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures the using the specified configuration + URI. + + The repository to configure. + A URI to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The must support the URI scheme specified. + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The stream to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures log4net using the file specified, monitors the file for changes + and reloads the configuration if a change is detected. + + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the using the file specified, + monitors the file for changes and reloads the configuration if a change + is detected. + + The repository to configure. + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the specified repository using a log4net element. + + The hierarchy to configure. + The element to parse. + + + Loads the log4net configuration from the XML element + supplied as . + + + This method is ultimately called by one of the Configure methods + to load the configuration from an . + + + + + + Maps repository names to ConfigAndWatchHandler instances to allow a particular + ConfigAndWatchHandler to dispose of its FileSystemWatcher when a repository is + reconfigured. + + + + + The fully qualified type of the XmlConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Class used to watch config files. + + + + Uses the to monitor + changes to a specified file. Because multiple change notifications + may be raised when the file is modified, a timer is used to + compress the notifications into a single event. The timer + waits for time before delivering + the event notification. If any further + change notifications arrive while the timer is waiting it + is reset and waits again for to + elapse. + + + + + + The default amount of time to wait after receiving notification + before reloading the config file. + + + + + Holds the FileInfo used to configure the XmlConfigurator + + + + + Holds the repository being configured. + + + + + The timer used to compress the notification events. + + + + + Watches file for changes. This object should be disposed when no longer + needed to free system handles on the watched resources. + + + + + Initializes a new instance of the class to + watch a specified config file used to configure a repository. + + The repository to configure. + The configuration file to watch. + + + Initializes a new instance of the class. + + + + + + Event handler used by . + + The firing the event. + The argument indicates the file that caused the event to be fired. + + + This handler reloads the configuration from the file when the event is fired. + + + + + + Event handler used by . + + The firing the event. + The argument indicates the file that caused the event to be fired. + + + This handler reloads the configuration from the file when the event is fired. + + + + + + Called by the timer when the configuration has been updated. + + null + + + + Release the handles held by the watcher and timer. + + + + + The implementation of the interface suitable + for use with the compact framework + + + + This implementation is a simple + mapping between repository name and + object. + + + The .NET Compact Framework 1.0 does not support retrieving assembly + level attributes therefore unlike the DefaultRepositorySelector + this selector does not examine the calling assembly for attributes. + + + Nicko Cadell + + + + Interface used by the to select the . + + + + The uses a + to specify the policy for selecting the correct + to return to the caller. + + + Nicko Cadell + Gert Driesen + + + + Gets the for the specified assembly. + + The assembly to use to lookup to the + The for the assembly. + + + Gets the for the specified assembly. + + + How the association between and + is made is not defined. The implementation may choose any method for + this association. The results of this method must be repeatable, i.e. + when called again with the same arguments the result must be the + save value. + + + + + + Gets the named . + + The name to use to lookup to the . + The named + + Lookup a named . This is the repository created by + calling . + + + + + Creates a new repository for the assembly specified. + + The assembly to use to create the domain to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the domain + specified such that a call to with the + same assembly specified will return the same repository instance. + + + How the association between and + is made is not defined. The implementation may choose any method for + this association. + + + + + + Creates a new repository with the name specified. + + The name to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the name + specified such that a call to with the + same name will return the same repository instance. + + + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets an array of all currently defined repositories. + + + An array of the instances created by + this . + + + Gets an array of all of the repositories created by this selector. + + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + Create a new repository selector + + the type of the repositories to create, must implement + + + Create an new compact repository selector. + The default type for repositories must be specified, + an appropriate value would be . + + + throw if is null + throw if does not implement + + + + Get the for the specified assembly + + not used + The default + + + The argument is not used. This selector does not create a + separate repository for each assembly. + + + As a named repository is not specified the default repository is + returned. The default repository is named log4net-default-repository. + + + + + + Get the named + + the name of the repository to lookup + The named + + + Get the named . The default + repository is log4net-default-repository. Other repositories + must be created using the . + If the named repository does not exist an exception is thrown. + + + throw if is null + throw if the does not exist + + + + Create a new repository for the assembly specified + + not used + the type of repository to create, must implement + the repository created + + + The argument is not used. This selector does not create a + separate repository for each assembly. + + + If the is null then the + default repository type specified to the constructor is used. + + + As a named repository is not specified the default repository is + returned. The default repository is named log4net-default-repository. + + + + + + Create a new repository for the repository specified + + the repository to associate with the + the type of repository to create, must implement . + If this param is null then the default repository type is used. + the repository created + + + The created will be associated with the repository + specified such that a call to with the + same repository specified will return the same repository instance. + + + If the named repository already exists an exception will be thrown. + + + If is null then the default + repository type specified to the constructor is used. + + + throw if is null + throw if the already exists + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets a list of objects + + an array of all known objects + + + Gets an array of all of the repositories created by this selector. + + + + + + The fully qualified type of the CompactRepositorySelector class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Notify the registered listeners that the repository has been created + + The repository that has been created + + + Raises the LoggerRepositoryCreatedEvent + event. + + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + The default implementation of the interface. + + + + Uses attributes defined on the calling assembly to determine how to + configure the hierarchy for the repository. + + + Nicko Cadell + Gert Driesen + + + + Creates a new repository selector. + + The type of the repositories to create, must implement + + + Create an new repository selector. + The default type for repositories must be specified, + an appropriate value would be . + + + is . + does not implement . + + + + Gets the for the specified assembly. + + The assembly use to lookup the . + + + The type of the created and the repository + to create can be overridden by specifying the + attribute on the . + + + The default values are to use the + implementation of the interface and to use the + as the name of the repository. + + + The created will be automatically configured using + any attributes defined on + the . + + + The for the assembly + is . + + + + Gets the for the specified repository. + + The repository to use to lookup the . + The for the specified repository. + + + Returns the named repository. If is null + a is thrown. If the repository + does not exist a is thrown. + + + Use to create a repository. + + + is . + does not exist. + + + + Create a new repository for the assembly specified + + the assembly to use to create the repository to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The type of the created and + the repository to create can be overridden by specifying the + attribute on the + . The default values are to use the + implementation of the + interface and to use the + as the name of the repository. + + + The created will be automatically + configured using any + attributes defined on the . + + + If a repository for the already exists + that repository will be returned. An error will not be raised and that + repository may be of a different type to that specified in . + Also the attribute on the + assembly may be used to override the repository type specified in + . + + + is . + + + + Creates a new repository for the assembly specified. + + the assembly to use to create the repository to associate with the . + The type of repository to create, must implement . + The name to assign to the created repository + Set to true to read and apply the assembly attributes + The repository created. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The type of the created and + the repository to create can be overridden by specifying the + attribute on the + . The default values are to use the + implementation of the + interface and to use the + as the name of the repository. + + + The created will be automatically + configured using any + attributes defined on the . + + + If a repository for the already exists + that repository will be returned. An error will not be raised and that + repository may be of a different type to that specified in . + Also the attribute on the + assembly may be used to override the repository type specified in + . + + + is . + + + + Creates a new repository for the specified repository. + + The repository to associate with the . + The type of repository to create, must implement . + If this param is then the default repository type is used. + The new repository. + + + The created will be associated with the repository + specified such that a call to with the + same repository specified will return the same repository instance. + + + is . + already exists. + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets a list of objects + + an array of all known objects + + + Gets an array of all of the repositories created by this selector. + + + + + + Aliases a repository to an existing repository. + + The repository to alias. + The repository that the repository is aliased to. + + + The repository specified will be aliased to the repository when created. + The repository must not already exist. + + + When the repository is created it must utilize the same repository type as + the repository it is aliased to, otherwise the aliasing will fail. + + + + is . + -or- + is . + + + + + Notifies the registered listeners that the repository has been created. + + The repository that has been created. + + + Raises the event. + + + + + + Gets the repository name and repository type for the specified assembly. + + The assembly that has a . + in/out param to hold the repository name to use for the assembly, caller should set this to the default value before calling. + in/out param to hold the type of the repository to create for the assembly, caller should set this to the default value before calling. + is . + + + + Configures the repository using information from the assembly. + + The assembly containing + attributes which define the configuration for the repository. + The repository to configure. + + is . + -or- + is . + + + + + Loads the attribute defined plugins on the assembly. + + The assembly that contains the attributes. + The repository to add the plugins to. + + is . + -or- + is . + + + + + Loads the attribute defined aliases on the assembly. + + The assembly that contains the attributes. + The repository to alias to. + + is . + -or- + is . + + + + + The fully qualified type of the DefaultRepositorySelector class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + Defined error codes that can be passed to the method. + + + + Values passed to the method. + + + Nicko Cadell + + + + A general error + + + + + Error while writing output + + + + + Failed to flush file + + + + + Failed to close file + + + + + Unable to open output file + + + + + No layout specified + + + + + Failed to parse address + + + + + An evaluator that triggers on an Exception type + + + + This evaluator will trigger if the type of the Exception + passed to + is equal to a Type in . /// + + + Drew Schaeffer + + + + Test if an triggers an action + + + + Implementations of this interface allow certain appenders to decide + when to perform an appender specific action. + + + The action or behavior triggered is defined by the implementation. + + + Nicko Cadell + + + + Test if this event triggers the action + + The event to check + true if this event triggers the action, otherwise false + + + Return true if this event triggers the action + + + + + + The type that causes the trigger to fire. + + + + + Causes subclasses of to cause the trigger to fire. + + + + + Default ctor to allow dynamic creation through a configurator. + + + + + Constructs an evaluator and initializes to trigger on + + the type that triggers this evaluator. + If true, this evaluator will trigger on subclasses of . + + + + Is this the triggering event? + + The event to check + This method returns true, if the logging event Exception + Type is . + Otherwise it returns false + + + This evaluator will trigger if the Exception Type of the event + passed to + is . + + + + + + The type that triggers this evaluator. + + + + + If true, this evaluator will trigger on subclasses of . + + + + + Appenders may delegate their error handling to an . + + + + Error handling is a particularly tedious to get right because by + definition errors are hard to predict and to reproduce. + + + Nicko Cadell + Gert Driesen + + + + Handles the error and information about the error condition is passed as + a parameter. + + The message associated with the error. + The that was thrown when the error occurred. + The error code associated with the error. + + + Handles the error and information about the error condition is passed as + a parameter. + + + + + + Prints the error message passed as a parameter. + + The message associated with the error. + The that was thrown when the error occurred. + + + See . + + + + + + Prints the error message passed as a parameter. + + The message associated with the error. + + + See . + + + + + + Interface for objects that require fixing. + + + + Interface that indicates that the object requires fixing before it + can be taken outside the context of the appender's + method. + + + When objects that implement this interface are stored + in the context properties maps + and + are fixed + (see ) the + method will be called. + + + Nicko Cadell + + + + Get a portable version of this object + + the portable instance of this object + + + Get a portable instance object that represents the current + state of this object. The portable object can be stored + and logged from any thread with identical results. + + + + + + Interface that all loggers implement + + + + This interface supports logging events and testing if a level + is enabled for logging. + + + These methods will not throw exceptions. Note to implementor, ensure + that the implementation of these methods cannot allow an exception + to be thrown to the caller. + + + Nicko Cadell + Gert Driesen + + + + This generic form is intended to be used by wrappers. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + the exception to log, including its stack trace. Pass null to not log an exception. + + + Generates a logging event for the specified using + the and . + + + + + + This is the most generic printing method that is intended to be used + by wrappers. + + The event being logged. + + + Logs the specified logging event through this logger. + + + + + + Checks if this logger is enabled for a given passed as parameter. + + The level to check. + + true if this logger is enabled for level, otherwise false. + + + + Test if this logger is going to log events of the specified . + + + + + + Gets the name of the logger. + + + The name of the logger. + + + + The name of this logger + + + + + + Gets the where this + Logger instance is attached to. + + + The that this logger belongs to. + + + + Gets the where this + Logger instance is attached to. + + + + + + Base interface for all wrappers + + + + Base interface for all wrappers. + + + All wrappers must implement this interface. + + + Nicko Cadell + + + + Get the implementation behind this wrapper object. + + + The object that in implementing this object. + + + + The object that in implementing this + object. The Logger object may not + be the same object as this object because of logger decorators. + This gets the actual underlying objects that is used to process + the log events. + + + + + + Delegate used to handle logger repository creation event notifications + + The which created the repository. + The event args + that holds the instance that has been created. + + + Delegate used to handle logger repository creation event notifications. + + + + + + Provides data for the event. + + + + A + event is raised every time a is created. + + + + + + The created + + + + + Construct instance using specified + + the that has been created + + + Construct instance using specified + + + + + + The that has been created + + + The that has been created + + + + The that has been created + + + + + + Defines the default set of levels recognized by the system. + + + + Each has an associated . + + + Levels have a numeric that defines the relative + ordering between levels. Two Levels with the same + are deemed to be equivalent. + + + The levels that are recognized by log4net are set for each + and each repository can have different levels defined. The levels are stored + in the on the repository. Levels are + looked up by name from the . + + + When logging at level INFO the actual level used is not but + the value of LoggerRepository.LevelMap["INFO"]. The default value for this is + , but this can be changed by reconfiguring the level map. + + + Each level has a in addition to its . The + is the string that is written into the output log. By default + the display name is the same as the level name, but this can be used to alias levels + or to localize the log output. + + + Some of the predefined levels recognized by the system are: + + + + . + + + . + + + . + + + . + + + . + + + . + + + . + + + + Nicko Cadell + Gert Driesen + + + + Constructor + + Integer value for this level, higher values represent more severe levels. + The string name of this level. + The display name for this level. This may be localized or otherwise different from the name + + + Initializes a new instance of the class with + the specified level name and value. + + + + + + Constructor + + Integer value for this level, higher values represent more severe levels. + The string name of this level. + + + Initializes a new instance of the class with + the specified level name and value. + + + + + + Returns the representation of the current + . + + + A representation of the current . + + + + Returns the level . + + + + + + Compares levels. + + The object to compare against. + true if the objects are equal. + + + Compares the levels of instances, and + defers to base class if the target object is not a + instance. + + + + + + Returns a hash code + + A hash code for the current . + + + Returns a hash code suitable for use in hashing algorithms and data + structures like a hash table. + + + Returns the hash code of the level . + + + + + + Compares this instance to a specified object and returns an + indication of their relative values. + + A instance or to compare with this instance. + + A 32-bit signed integer that indicates the relative order of the + values compared. The return value has these meanings: + + + Value + Meaning + + + Less than zero + This instance is less than . + + + Zero + This instance is equal to . + + + Greater than zero + + This instance is greater than . + -or- + is . + + + + + + + must be an instance of + or ; otherwise, an exception is thrown. + + + is not a . + + + + Returns a value indicating whether a specified + is greater than another specified . + + A + A + + true if is greater than + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is less than another specified . + + A + A + + true if is less than + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is greater than or equal to another specified . + + A + A + + true if is greater than or equal to + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is less than or equal to another specified . + + A + A + + true if is less than or equal to + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether two specified + objects have the same value. + + A or . + A or . + + true if the value of is the same as the + value of ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether two specified + objects have different values. + + A or . + A or . + + true if the value of is different from + the value of ; otherwise, false. + + + + Compares two levels. + + + + + + Compares two specified instances. + + The first to compare. + The second to compare. + + A 32-bit signed integer that indicates the relative order of the + two values compared. The return value has these meanings: + + + Value + Meaning + + + Less than zero + is less than . + + + Zero + is equal to . + + + Greater than zero + is greater than . + + + + + + Compares two levels. + + + + + + The level designates a higher level than all the rest. + + + + + The level designates very severe error events. + System unusable, emergencies. + + + + + The level designates very severe error events. + System unusable, emergencies. + + + + + The level designates very severe error events + that will presumably lead the application to abort. + + + + + The level designates very severe error events. + Take immediate action, alerts. + + + + + The level designates very severe error events. + Critical condition, critical. + + + + + The level designates very severe error events. + + + + + The level designates error events that might + still allow the application to continue running. + + + + + The level designates potentially harmful + situations. + + + + + The level designates informational messages + that highlight the progress of the application at the highest level. + + + + + The level designates informational messages that + highlight the progress of the application at coarse-grained level. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates the lowest level possible. + + + + + Gets the name of this level. + + + The name of this level. + + + + Gets the name of this level. + + + + + + Gets the value of this level. + + + The value of this level. + + + + Gets the value of this level. + + + + + + Gets the display name of this level. + + + The display name of this level. + + + + Gets the display name of this level. + + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Creates a read-only wrapper for a LevelCollection instance. + + list to create a readonly wrapper arround + + A LevelCollection wrapper that is read-only. + + + + + Initializes a new instance of the LevelCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the LevelCollection class + that has the specified initial capacity. + + + The number of elements that the new LevelCollection is initially capable of storing. + + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified LevelCollection. + + The LevelCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Allow subclasses to avoid our default constructors + + + + + + Copies the entire LevelCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire LevelCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Adds a to the end of the LevelCollection. + + The to be added to the end of the LevelCollection. + The index at which the value has been added. + + + + Removes all elements from the LevelCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the LevelCollection. + + The to check for. + true if is found in the LevelCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the LevelCollection. + + The to locate in the LevelCollection. + + The zero-based index of the first occurrence of + in the entire LevelCollection, if found; otherwise, -1. + + + + + Inserts an element into the LevelCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the LevelCollection. + + The to remove from the LevelCollection. + + The specified was not found in the LevelCollection. + + + + + Removes the element at the specified index of the LevelCollection. + + The zero-based index of the element to remove. + + is less than zero + -or- + is equal to or greater than . + + + + + Returns an enumerator that can iterate through the LevelCollection. + + An for the entire LevelCollection. + + + + Adds the elements of another LevelCollection to the current LevelCollection. + + The LevelCollection whose elements should be added to the end of the current LevelCollection. + The new of the LevelCollection. + + + + Adds the elements of a array to the current LevelCollection. + + The array whose elements should be added to the end of the LevelCollection. + The new of the LevelCollection. + + + + Adds the elements of a collection to the current LevelCollection. + + The collection whose elements should be added to the end of the LevelCollection. + The new of the LevelCollection. + + + + Sets the capacity to the actual number of elements. + + + + + is less than zero + -or- + is equal to or greater than . + + + + + is less than zero + -or- + is equal to or greater than . + + + + + Gets the number of elements actually contained in the LevelCollection. + + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + The zero-based index of the element to get or set. + + is less than zero + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false + + + + Gets or sets the number of elements the LevelCollection can contain. + + + + + Supports type-safe iteration over a . + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + A value + + + + + Supports simple iteration over a . + + + + + Initializes a new instance of the Enumerator class. + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + An evaluator that triggers at a threshold level + + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + Nicko Cadell + + + + The threshold for triggering + + + + + Create a new evaluator using the threshold. + + + + Create a new evaluator using the threshold. + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Create a new evaluator using the specified threshold. + + the threshold to trigger at + + + Create a new evaluator using the specified threshold. + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Is this the triggering event? + + The event to check + This method returns true, if the event level + is equal or higher than the . + Otherwise it returns false + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + the threshold to trigger at + + + The that will cause this evaluator to trigger + + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Mapping between string name and Level object + + + + Mapping between string name and object. + This mapping is held separately for each . + The level name is case insensitive. + + + Nicko Cadell + + + + Mapping from level name to Level object. The + level name is case insensitive + + + + + Construct the level map + + + + Construct the level map. + + + + + + Clear the internal maps of all levels + + + + Clear the internal maps of all levels + + + + + + Create a new Level and add it to the map + + the string to display for the Level + the level value to give to the Level + + + Create a new Level and add it to the map + + + + + + + Create a new Level and add it to the map + + the string to display for the Level + the level value to give to the Level + the display name to give to the Level + + + Create a new Level and add it to the map + + + + + + Add a Level to the map + + the Level to add + + + Add a Level to the map + + + + + + Lookup a named level from the map + + the name of the level to lookup is taken from this level. + If the level is not set on the map then this level is added + the level in the map with the name specified + + + Lookup a named level from the map. The name of the level to lookup is taken + from the property of the + argument. + + + If no level with the specified name is found then the + argument is added to the level map + and returned. + + + + + + Lookup a by name + + The name of the Level to lookup + a Level from the map with the name specified + + + Returns the from the + map with the name specified. If the no level is + found then null is returned. + + + + + + Return all possible levels as a list of Level objects. + + all possible levels as a list of Level objects + + + Return all possible levels as a list of Level objects. + + + + + + The internal representation of caller location information. + + + + This class uses the System.Diagnostics.StackTrace class to generate + a call stack. The caller's information is then extracted from this stack. + + + The System.Diagnostics.StackTrace class is not supported on the + .NET Compact Framework 1.0 therefore caller location information is not + available on that framework. + + + The System.Diagnostics.StackTrace class has this to say about Release builds: + + + "StackTrace information will be most informative with Debug build configurations. + By default, Debug builds include debug symbols, while Release builds do not. The + debug symbols contain most of the file, method name, line number, and column + information used in constructing StackFrame and StackTrace objects. StackTrace + might not report as many method calls as expected, due to code transformations + that occur during optimization." + + + This means that in a Release build the caller information may be incomplete or may + not exist at all! Therefore caller location information cannot be relied upon in a Release build. + + + Nicko Cadell + Gert Driesen + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + Constructor + + The declaring type of the method that is + the stack boundary into the logging system for this call. + + + Initializes a new instance of the + class based on the current thread. + + + + + + Constructor + + The fully qualified class name. + The method name. + The file name. + The line number of the method within the file. + + + Initializes a new instance of the + class with the specified data. + + + + + + The fully qualified type of the LocationInfo class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the fully qualified class name of the caller making the logging + request. + + + The fully qualified class name of the caller making the logging + request. + + + + Gets the fully qualified class name of the caller making the logging + request. + + + + + + Gets the file name of the caller. + + + The file name of the caller. + + + + Gets the file name of the caller. + + + + + + Gets the line number of the caller. + + + The line number of the caller. + + + + Gets the line number of the caller. + + + + + + Gets the method name of the caller. + + + The method name of the caller. + + + + Gets the method name of the caller. + + + + + + Gets all available caller information + + + All available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + Gets all available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + + + Gets the stack frames from the stack trace of the caller making the log request + + + + + Static manager that controls the creation of repositories + + + + Static manager that controls the creation of repositories + + + This class is used by the wrapper managers (e.g. ) + to provide access to the objects. + + + This manager also holds the that is used to + lookup and create repositories. The selector can be set either programmatically using + the property, or by setting the log4net.RepositorySelector + AppSetting in the applications config file to the fully qualified type name of the + selector to use. + + + Nicko Cadell + Gert Driesen + + + + Private constructor to prevent instances. Only static methods should be used. + + + + Private constructor to prevent instances. Only static methods should be used. + + + + + + Hook the shutdown event + + + + On the full .NET runtime, the static constructor hooks up the + AppDomain.ProcessExit and AppDomain.DomainUnload> events. + These are used to shutdown the log4net system as the application exits. + + + + + + Register for ProcessExit and DomainUnload events on the AppDomain + + + + This needs to be in a separate method because the events make + a LinkDemand for the ControlAppDomain SecurityPermission. Because + this is a LinkDemand it is demanded at JIT time. Therefore we cannot + catch the exception in the method itself, we have to catch it in the + caller. + + + + + + Return the default instance. + + the repository to lookup in + Return the default instance + + + Gets the for the repository specified + by the argument. + + + + + + Returns the default instance. + + The assembly to use to lookup the repository. + The default instance. + + + + Return the default instance. + + the repository to lookup in + Return the default instance + + + Gets the for the repository specified + by the argument. + + + + + + Returns the default instance. + + The assembly to use to lookup the repository. + The default instance. + + + Returns the default instance. + + + + + + Returns the named logger if it exists. + + The repository to lookup in. + The fully qualified logger name to look for. + + The logger found, or null if the named logger does not exist in the + specified repository. + + + + If the named logger exists (in the specified repository) then it + returns a reference to the logger, otherwise it returns + null. + + + + + + Returns the named logger if it exists. + + The assembly to use to lookup the repository. + The fully qualified logger name to look for. + + The logger found, or null if the named logger does not exist in the + specified assembly's repository. + + + + If the named logger exists (in the specified assembly's repository) then it + returns a reference to the logger, otherwise it returns + null. + + + + + + Returns all the currently defined loggers in the specified repository. + + The repository to lookup in. + All the defined loggers. + + + The root logger is not included in the returned array. + + + + + + Returns all the currently defined loggers in the specified assembly's repository. + + The assembly to use to lookup the repository. + All the defined loggers. + + + The root logger is not included in the returned array. + + + + + + Retrieves or creates a named logger. + + The repository to lookup in. + The name of the logger to retrieve. + The logger with the name specified. + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + + + + Retrieves or creates a named logger. + + The assembly to use to lookup the repository. + The name of the logger to retrieve. + The logger with the name specified. + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + + + + Shorthand for . + + The repository to lookup in. + The of which the fullname will be used as the name of the logger to retrieve. + The logger with the name specified. + + + Gets the logger for the fully qualified name of the type specified. + + + + + + Shorthand for . + + the assembly to use to lookup the repository + The of which the fullname will be used as the name of the logger to retrieve. + The logger with the name specified. + + + Gets the logger for the fully qualified name of the type specified. + + + + + + Shuts down the log4net system. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in all the + default repositories. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + The repository to shutdown. + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository for the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + The assembly to use to lookup the repository. + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository for the repository. The repository is looked up using + the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Resets all values contained in this repository instance to their defaults. + + The repository to reset. + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + + + + Resets all values contained in this repository instance to their defaults. + + The assembly to use to lookup the repository to reset. + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + + + + Creates a repository with the specified name. + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name. + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The name must be unique. Repositories cannot be redefined. + An Exception will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The name must be unique. Repositories cannot be redefined. + An Exception will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository for the specified assembly and repository type. + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + + + + Creates a repository for the specified assembly and repository type. + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + + + + Gets an array of all currently defined repositories. + + An array of all the known objects. + + + Gets an array of all currently defined repositories. + + + + + + Internal method to get pertinent version info. + + A string of version info. + + + + Called when the event fires + + the that is exiting + null + + + Called when the event fires. + + + When the event is triggered the log4net system is . + + + + + + Called when the event fires + + the that is exiting + null + + + Called when the event fires. + + + When the event is triggered the log4net system is . + + + + + + The fully qualified type of the LoggerManager class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Initialize the default repository selector + + + + + Gets or sets the repository selector used by the . + + + The repository selector used by the . + + + + The repository selector () is used by + the to create and select repositories + (). + + + The caller to supplies either a string name + or an assembly (if not supplied the assembly is inferred using + ). + + + This context is used by the selector to lookup a specific repository. + + + For the full .NET Framework, the default repository is DefaultRepositorySelector; + for the .NET Compact Framework CompactRepositorySelector is the default + repository. + + + + + + Implementation of the interface. + + + + This class should be used as the base for all wrapper implementations. + + + Nicko Cadell + Gert Driesen + + + + Constructs a new wrapper for the specified logger. + + The logger to wrap. + + + Constructs a new wrapper for the specified logger. + + + + + + The logger that this object is wrapping + + + + + Gets the implementation behind this wrapper object. + + + The object that this object is implementing. + + + + The Logger object may not be the same object as this object + because of logger decorators. + + + This gets the actual underlying objects that is used to process + the log events. + + + + + + Portable data structure used by + + + + Portable data structure used by + + + Nicko Cadell + + + + The logger name. + + + + The logger name. + + + + + + Level of logging event. + + + + Level of logging event. Level cannot be Serializable + because it is a flyweight. Due to its special serialization it + cannot be declared final either. + + + + + + The application supplied message. + + + + The application supplied message of logging event. + + + + + + The name of thread + + + + The name of thread in which this logging event was generated + + + + + + Gets or sets the local time the event was logged + + + + Prefer using the setter, since local time can be ambiguous. + + + + + + Location information for the caller. + + + + Location information for the caller. + + + + + + String representation of the user + + + + String representation of the user's windows name, + like DOMAIN\username + + + + + + String representation of the identity. + + + + String representation of the current thread's principal identity. + + + + + + The string representation of the exception + + + + The string representation of the exception + + + + + + String representation of the AppDomain. + + + + String representation of the AppDomain. + + + + + + Additional event specific properties + + + + A logger or an appender may attach additional + properties to specific events. These properties + have a string key and an object value. + + + + + + Gets or sets the UTC time the event was logged + + + + The TimeStamp is stored in the UTC time zone. + + + + + + Flags passed to the property + + + + Flags passed to the property + + + Nicko Cadell + + + + Fix the MDC + + + + + Fix the NDC + + + + + Fix the rendered message + + + + + Fix the thread name + + + + + Fix the callers location information + + + CAUTION: Very slow to generate + + + + + Fix the callers windows user name + + + CAUTION: Slow to generate + + + + + Fix the domain friendly name + + + + + Fix the callers principal name + + + CAUTION: May be slow to generate + + + + + Fix the exception text + + + + + Fix the event properties. Active properties must implement in order to be eligible for fixing. + + + + + No fields fixed + + + + + All fields fixed + + + + + Partial fields fixed + + + + This set of partial fields gives good performance. The following fields are fixed: + + + + + + + + + + + + + The internal representation of logging events. + + + + When an affirmative decision is made to log then a + instance is created. This instance + is passed around to the different log4net components. + + + This class is of concern to those wishing to extend log4net. + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + for incurred by calling but it + is essential to maintaining data consistency. + + + Nicko Cadell + Gert Driesen + Douglas de la Torre + Daniel Cazzulino + + + + The key into the Properties map for the host name value. + + + + + The key into the Properties map for the thread identity value. + + + + + The key into the Properties map for the user name value. + + + + + Initializes a new instance of the class + from the supplied parameters. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + The name of the logger of this event. + The level of this event. + The message of this event. + The exception for this event. + + + Except , and , + all fields of LoggingEvent are filled when actually needed. Call + to cache all data locally + to prevent inconsistencies. + + This method is called by the log4net framework + to create a logging event. + + + + + + Initializes a new instance of the class + using specific data. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + Data used to initialize the logging event. + The fields in the struct that have already been fixed. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + The parameter should be used to specify which fields in the + struct have been preset. Fields not specified in the + will be captured from the environment if requested or fixed. + + + + + + Initializes a new instance of the class + using specific data. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + Data used to initialize the logging event. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + This constructor sets this objects flags to , + this assumes that all the data relating to this event is passed in via the + parameter and no other data should be captured from the environment. + + + + + + Initializes a new instance of the class + using specific data. + + Data used to initialize the logging event. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + This constructor sets this objects flags to , + this assumes that all the data relating to this event is passed in via the + parameter and no other data should be captured from the environment. + + + + + + Serialization constructor + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Ensure that the repository is set. + + the value for the repository + + + + Write the rendered message to a TextWriter + + the writer to write the message to + + + Unlike the property this method + does store the message data in the internal cache. Therefore + if called only once this method should be faster than the + property, however if the message is + to be accessed multiple times then the property will be more efficient. + + + + + + Serializes this object into the provided. + + The to populate with data. + The destination for this serialization. + + + The data in this event must be fixed before it can be serialized. + + + The method must be called during the + method call if this event + is to be used outside that method. + + + + + + Gets the portable data for this . + + The for this event. + + + A new can be constructed using a + instance. + + + Does a fix of the data + in the logging event before returning the event data. + + + + + + Gets the portable data for this . + + The set of data to ensure is fixed in the LoggingEventData + The for this event. + + + A new can be constructed using a + instance. + + + + + + Returns this event's exception's rendered using the + . + + + This event's exception's rendered using the . + + + + Obsolete. Use instead. + + + + + + Returns this event's exception's rendered using the + . + + + This event's exception's rendered using the . + + + + Returns this event's exception's rendered using the + . + + + + + + Fix instance fields that hold volatile data. + + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + incurred by calling but it + is essential to maintaining data consistency. + + + Calling is equivalent to + calling passing the parameter + false. + + + See for more + information. + + + + + + Fixes instance fields that hold volatile data. + + Set to true to not fix data that takes a long time to fix. + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + for incurred by calling but it + is essential to maintaining data consistency. + + + The param controls the data that + is fixed. Some of the data that can be fixed takes a long time to + generate, therefore if you do not require those settings to be fixed + they can be ignored by setting the param + to true. This setting will ignore the + and settings. + + + Set to false to ensure that all + settings are fixed. + + + + + + Fix the fields specified by the parameter + + the fields to fix + + + Only fields specified in the will be fixed. + Fields will not be fixed if they have previously been fixed. + It is not possible to 'unfix' a field. + + + + + + Lookup a composite property in this event + + the key for the property to lookup + the value for the property + + + This event has composite properties that combine together properties from + several different contexts in the following order: + + + this events properties + + This event has that can be set. These + properties are specific to this event only. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + + + Get all the composite properties in this event + + the containing all the properties + + + See for details of the composite properties + stored by the event. + + + This method returns a single containing all the + properties defined for this event. + + + + + + The internal logging event data. + + + + + The internal logging event data. + + + + + The internal logging event data. + + + + + The fully qualified Type of the calling + logger class in the stack frame (i.e. the declaring type of the method). + + + + + The application supplied message of logging event. + + + + + The exception that was thrown. + + + This is not serialized. The string representation + is serialized instead. + + + + + The repository that generated the logging event + + + This is not serialized. + + + + + The fix state for this event + + + These flags indicate which fields have been fixed. + Not serialized. + + + + + Indicated that the internal cache is updateable (ie not fixed) + + + This is a seperate flag to m_fixFlags as it allows incrementel fixing and simpler + changes in the caching strategy. + + + + + Gets the time when the current process started. + + + This is the time when this process started. + + + + The TimeStamp is stored internally in UTC and converted to the local time zone for this computer. + + + Tries to get the start time for the current process. + Failing that it returns the time of the first call to + this property. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating and therefore + without the process start time being reset. + + + + + + Gets the UTC time when the current process started. + + + This is the UTC time when this process started. + + + + Tries to get the start time for the current process. + Failing that it returns the time of the first call to + this property. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating and therefore + without the process start time being reset. + + + + + + Gets the of the logging event. + + + The of the logging event. + + + + Gets the of the logging event. + + + + + + Gets the time of the logging event. + + + The time of the logging event. + + + + The TimeStamp is stored in UTC and converted to the local time zone for this computer. + + + + + + Gets UTC the time of the logging event. + + + The UTC time of the logging event. + + + + + Gets the name of the logger that logged the event. + + + The name of the logger that logged the event. + + + + Gets the name of the logger that logged the event. + + + + + + Gets the location information for this logging event. + + + The location information for this logging event. + + + + The collected information is cached for future use. + + + See the class for more information on + supported frameworks and the different behavior in Debug and + Release builds. + + + + + + Gets the message object used to initialize this event. + + + The message object used to initialize this event. + + + + Gets the message object used to initialize this event. + Note that this event may not have a valid message object. + If the event is serialized the message object will not + be transferred. To get the text of the message the + property must be used + not this property. + + + If there is no defined message object for this event then + null will be returned. + + + + + + Gets the exception object used to initialize this event. + + + The exception object used to initialize this event. + + + + Gets the exception object used to initialize this event. + Note that this event may not have a valid exception object. + If the event is serialized the exception object will not + be transferred. To get the text of the exception the + method must be used + not this property. + + + If there is no defined exception object for this event then + null will be returned. + + + + + + The that this event was created in. + + + + The that this event was created in. + + + + + + Gets the message, rendered through the . + + + The message rendered through the . + + + + The collected information is cached for future use. + + + + + + Gets the name of the current thread. + + + The name of the current thread, or the thread ID when + the name is not available. + + + + The collected information is cached for future use. + + + + + + Gets the name of the current user. + + + The name of the current user, or NOT AVAILABLE when the + underlying runtime has no support for retrieving the name of the + current user. + + + + Calls WindowsIdentity.GetCurrent().Name to get the name of + the current windows user. + + + To improve performance, we could cache the string representation of + the name, and reuse that as long as the identity stayed constant. + Once the identity changed, we would need to re-assign and re-render + the string. + + + However, the WindowsIdentity.GetCurrent() call seems to + return different objects every time, so the current implementation + doesn't do this type of caching. + + + Timing for these operations: + + + + Method + Results + + + WindowsIdentity.GetCurrent() + 10000 loops, 00:00:00.2031250 seconds + + + WindowsIdentity.GetCurrent().Name + 10000 loops, 00:00:08.0468750 seconds + + + + This means we could speed things up almost 40 times by caching the + value of the WindowsIdentity.GetCurrent().Name property, since + this takes (8.04-0.20) = 7.84375 seconds. + + + + + + Gets the identity of the current thread principal. + + + The string name of the identity of the current thread principal. + + + + Calls System.Threading.Thread.CurrentPrincipal.Identity.Name to get + the name of the current thread principal. + + + + + + Gets the AppDomain friendly name. + + + The AppDomain friendly name. + + + + Gets the AppDomain friendly name. + + + + + + Additional event specific properties. + + + Additional event specific properties. + + + + A logger or an appender may attach additional + properties to specific events. These properties + have a string key and an object value. + + + This property is for events that have been added directly to + this event. The aggregate properties (which include these + event properties) can be retrieved using + and . + + + Once the properties have been fixed this property + returns the combined cached properties. This ensures that updates to + this property are always reflected in the underlying storage. When + returning the combined properties there may be more keys in the + Dictionary than expected. + + + + + + The fixed fields in this event + + + The set of fields that are fixed in this event + + + + Fields will not be fixed if they have previously been fixed. + It is not possible to 'unfix' a field. + + + + + + Implementation of wrapper interface. + + + + This implementation of the interface + forwards to the held by the base class. + + + This logger has methods to allow the caller to log at the following + levels: + + + + DEBUG + + The and methods log messages + at the DEBUG level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + INFO + + The and methods log messages + at the INFO level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + WARN + + The and methods log messages + at the WARN level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + ERROR + + The and methods log messages + at the ERROR level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + FATAL + + The and methods log messages + at the FATAL level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + + The values for these levels and their semantic meanings can be changed by + configuring the for the repository. + + + Nicko Cadell + Gert Driesen + + + + The ILog interface is use by application to log messages into + the log4net framework. + + + + Use the to obtain logger instances + that implement this interface. The + static method is used to get logger instances. + + + This class contains methods for logging at different levels and also + has properties for determining if those logging levels are + enabled in the current configuration. + + + This interface can be implemented in different ways. This documentation + specifies reasonable behavior that a caller can expect from the actual + implementation, however different implementations reserve the right to + do things differently. + + + Simple example of logging messages + + ILog log = LogManager.GetLogger("application-log"); + + log.Info("Application Start"); + log.Debug("This is a debug message"); + + if (log.IsDebugEnabled) + { + log.Debug("This is another debug message"); + } + + + + + Nicko Cadell + Gert Driesen + + + Log a message object with the level. + + Log a message object with the level. + + The message object to log. + + + This method first checks if this logger is DEBUG + enabled by comparing the level of this logger with the + level. If this logger is + DEBUG enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Logs a message object with the level. + + + + This method first checks if this logger is INFO + enabled by comparing the level of this logger with the + level. If this logger is + INFO enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Logs a message object with the INFO level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Log a message object with the level. + + + + This method first checks if this logger is WARN + enabled by comparing the level of this logger with the + level. If this logger is + WARN enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Logs a message object with the level. + + The message object to log. + + + This method first checks if this logger is ERROR + enabled by comparing the level of this logger with the + level. If this logger is + ERROR enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Log a message object with the level. + + + + This method first checks if this logger is FATAL + enabled by comparing the level of this logger with the + level. If this logger is + FATAL enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + + This function is intended to lessen the computational cost of + disabled log debug statements. + + For some ILog interface log, when you write: + + log.Debug("This is entry number: " + i ); + + + You incur the cost constructing the message, string construction and concatenation in + this case, regardless of whether the message is logged or not. + + + If you are worried about speed (who isn't), then you should write: + + + if (log.IsDebugEnabled) + { + log.Debug("This is entry number: " + i ); + } + + + This way you will not incur the cost of parameter + construction if debugging is disabled for log. On + the other hand, if the log is debug enabled, you + will incur the cost of evaluating whether the logger is debug + enabled twice. Once in and once in + the . This is an insignificant overhead + since evaluating a logger takes about 1% of the time it + takes to actually log. This is the preferred style of logging. + + Alternatively if your logger is available statically then the is debug + enabled state can be stored in a static variable like this: + + + private static readonly bool isDebugEnabled = log.IsDebugEnabled; + + + Then when you come to log you can write: + + + if (isDebugEnabled) + { + log.Debug("This is entry number: " + i ); + } + + + This way the debug enabled state is only queried once + when the class is loaded. Using a private static readonly + variable is the most efficient because it is a run time constant + and can be heavily optimized by the JIT compiler. + + + Of course if you use a static readonly variable to + hold the enabled state of the logger then you cannot + change the enabled state at runtime to vary the logging + that is produced. You have to decide if you need absolute + speed or runtime flexibility. + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Construct a new wrapper for the specified logger. + + The logger to wrap. + + + Construct a new wrapper for the specified logger. + + + + + + Virtual method called when the configuration of the repository changes + + the repository holding the levels + + + Virtual method called when the configuration of the repository changes + + + + + + Logs a message object with the DEBUG level. + + The message object to log. + + + This method first checks if this logger is DEBUG + enabled by comparing the level of this logger with the + DEBUG level. If this logger is + DEBUG enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the DEBUG level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the DEBUG level including + the stack trace of the passed + as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the INFO level. + + The message object to log. + + + This method first checks if this logger is INFO + enabled by comparing the level of this logger with the + INFO level. If this logger is + INFO enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the INFO level. + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the INFO level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the WARN level. + + the message object to log + + + This method first checks if this logger is WARN + enabled by comparing the level of this logger with the + WARN level. If this logger is + WARN enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the WARN level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the WARN level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the ERROR level. + + The message object to log. + + + This method first checks if this logger is ERROR + enabled by comparing the level of this logger with the + ERROR level. If this logger is + ERROR enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the ERROR level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the ERROR level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the FATAL level. + + The message object to log. + + + This method first checks if this logger is FATAL + enabled by comparing the level of this logger with the + FATAL level. If this logger is + FATAL enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the FATAL level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the FATAL level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Event handler for the event + + the repository + Empty + + + + The fully qualified name of this declaring type not the type of any subclass. + + + + + Checks if this logger is enabled for the DEBUG + level. + + + true if this logger is enabled for DEBUG events, + false otherwise. + + + + This function is intended to lessen the computational cost of + disabled log debug statements. + + + For some log Logger object, when you write: + + + log.Debug("This is entry number: " + i ); + + + You incur the cost constructing the message, concatenation in + this case, regardless of whether the message is logged or not. + + + If you are worried about speed, then you should write: + + + if (log.IsDebugEnabled()) + { + log.Debug("This is entry number: " + i ); + } + + + This way you will not incur the cost of parameter + construction if debugging is disabled for log. On + the other hand, if the log is debug enabled, you + will incur the cost of evaluating whether the logger is debug + enabled twice. Once in IsDebugEnabled and once in + the Debug. This is an insignificant overhead + since evaluating a logger takes about 1% of the time it + takes to actually log. + + + + + + Checks if this logger is enabled for the INFO level. + + + true if this logger is enabled for INFO events, + false otherwise. + + + + See for more information and examples + of using this method. + + + + + + + Checks if this logger is enabled for the WARN level. + + + true if this logger is enabled for WARN events, + false otherwise. + + + + See for more information and examples + of using this method. + + + + + + + Checks if this logger is enabled for the ERROR level. + + + true if this logger is enabled for ERROR events, + false otherwise. + + + + See for more information and examples of using this method. + + + + + + + Checks if this logger is enabled for the FATAL level. + + + true if this logger is enabled for FATAL events, + false otherwise. + + + + See for more information and examples of using this method. + + + + + + + provides method information without actually referencing a System.Reflection.MethodBase + as that would require that the containing assembly is loaded. + + + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + constructs a method item for an unknown method. + + + + + constructs a method item from the name of the method. + + + + + + constructs a method item from the name of the method and its parameters. + + + + + + + constructs a method item from a method base by determining the method name and its parameters. + + + + + + The fully qualified type of the StackFrameItem class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the method name of the caller making the logging + request. + + + The method name of the caller making the logging + request. + + + + Gets the method name of the caller making the logging + request. + + + + + + Gets the method parameters of the caller making + the logging request. + + + The method parameters of the caller making + the logging request + + + + Gets the method parameters of the caller making + the logging request. + + + + + + A SecurityContext used by log4net when interacting with protected resources + + + + A SecurityContext used by log4net when interacting with protected resources + for example with operating system services. This can be used to impersonate + a principal that has been granted privileges on the system resources. + + + Nicko Cadell + + + + Impersonate this SecurityContext + + State supplied by the caller + An instance that will + revoke the impersonation of this SecurityContext, or null + + + Impersonate this security context. Further calls on the current + thread should now be made in the security context provided + by this object. When the result + method is called the security + context of the thread should be reverted to the state it was in + before was called. + + + + + + The providers default instances. + + + + A configured component that interacts with potentially protected system + resources uses a to provide the elevated + privileges required. If the object has + been not been explicitly provided to the component then the component + will request one from this . + + + By default the is + an instance of which returns only + objects. This is a reasonable default + where the privileges required are not know by the system. + + + This default behavior can be overridden by subclassing the + and overriding the method to return + the desired objects. The default provider + can be replaced by programmatically setting the value of the + property. + + + An alternative is to use the log4net.Config.SecurityContextProviderAttribute + This attribute can be applied to an assembly in the same way as the + log4net.Config.XmlConfiguratorAttribute". The attribute takes + the type to use as the as an argument. + + + Nicko Cadell + + + + The default provider + + + + + Protected default constructor to allow subclassing + + + + Protected default constructor to allow subclassing + + + + + + Create a SecurityContext for a consumer + + The consumer requesting the SecurityContext + An impersonation context + + + The default implementation is to return a . + + + Subclasses should override this method to provide their own + behavior. + + + + + + Gets or sets the default SecurityContextProvider + + + The default SecurityContextProvider + + + + The default provider is used by configured components that + require a and have not had one + given to them. + + + By default this is an instance of + that returns objects. + + + The default provider can be set programmatically by setting + the value of this property to a sub class of + that has the desired behavior. + + + + + + provides stack frame information without actually referencing a System.Diagnostics.StackFrame + as that would require that the containing assembly is loaded. + + + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + returns a stack frame item from a stack frame. This + + + + + + + The fully qualified type of the StackFrameItem class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the fully qualified class name of the caller making the logging + request. + + + The fully qualified class name of the caller making the logging + request. + + + + Gets the fully qualified class name of the caller making the logging + request. + + + + + + Gets the file name of the caller. + + + The file name of the caller. + + + + Gets the file name of the caller. + + + + + + Gets the line number of the caller. + + + The line number of the caller. + + + + Gets the line number of the caller. + + + + + + Gets the method name of the caller. + + + The method name of the caller. + + + + Gets the method name of the caller. + + + + + + Gets all available caller information + + + All available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + Gets all available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + + + An evaluator that triggers after specified number of seconds. + + + + This evaluator will trigger if the specified time period + has passed since last check. + + + Robert Sevcik + + + + The default time threshold for triggering in seconds. Zero means it won't trigger at all. + + + + + The time threshold for triggering in seconds. Zero means it won't trigger at all. + + + + + The UTC time of last check. This gets updated when the object is created and when the evaluator triggers. + + + + + Create a new evaluator using the time threshold in seconds. + + + + Create a new evaluator using the time threshold in seconds. + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Create a new evaluator using the specified time threshold in seconds. + + + The time threshold in seconds to trigger after. + Zero means it won't trigger at all. + + + + Create a new evaluator using the specified time threshold in seconds. + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Is this the triggering event? + + The event to check + This method returns true, if the specified time period + has passed since last check.. + Otherwise it returns false + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + The time threshold in seconds to trigger after + + + The time threshold in seconds to trigger after. + Zero means it won't trigger at all. + + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Delegate used to handle creation of new wrappers. + + The logger to wrap in a wrapper. + + + Delegate used to handle creation of new wrappers. This delegate + is called from the + method to construct the wrapper for the specified logger. + + + The delegate to use is supplied to the + constructor. + + + + + + Maps between logger objects and wrapper objects. + + + + This class maintains a mapping between objects and + objects. Use the method to + lookup the for the specified . + + + New wrapper instances are created by the + method. The default behavior is for this method to delegate construction + of the wrapper to the delegate supplied + to the constructor. This allows specialization of the behavior without + requiring subclassing of this type. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the + + The handler to use to create the wrapper objects. + + + Initializes a new instance of the class with + the specified handler to create the wrapper objects. + + + + + + Gets the wrapper object for the specified logger. + + The wrapper object for the specified logger + + + If the logger is null then the corresponding wrapper is null. + + + Looks up the wrapper it it has previously been requested and + returns it. If the wrapper has never been requested before then + the virtual method is + called. + + + + + + Creates the wrapper object for the specified logger. + + The logger to wrap in a wrapper. + The wrapper object for the logger. + + + This implementation uses the + passed to the constructor to create the wrapper. This method + can be overridden in a subclass. + + + + + + Called when a monitored repository shutdown event is received. + + The that is shutting down + + + This method is called when a that this + is holding loggers for has signaled its shutdown + event . The default + behavior of this method is to release the references to the loggers + and their wrappers generated for this repository. + + + + + + Event handler for repository shutdown event. + + The sender of the event. + The event args. + + + + Map of logger repositories to hashtables of ILogger to ILoggerWrapper mappings + + + + + The handler to use to create the extension wrapper objects. + + + + + Internal reference to the delegate used to register for repository shutdown events. + + + + + Gets the map of logger repositories. + + + Map of logger repositories. + + + + Gets the hashtable that is keyed on . The + values are hashtables keyed on with the + value being the corresponding . + + + + + + Formats a as "HH:mm:ss,fff". + + + + Formats a in the format "HH:mm:ss,fff" for example, "15:49:37,459". + + + Nicko Cadell + Gert Driesen + + + + Render a as a string. + + + + Interface to abstract the rendering of a + instance into a string. + + + The method is used to render the + date to a text writer. + + + Nicko Cadell + Gert Driesen + + + + Formats the specified date as a string. + + The date to format. + The writer to write to. + + + Format the as a string and write it + to the provided. + + + + + + String constant used to specify AbsoluteTimeDateFormat in layouts. Current value is ABSOLUTE. + + + + + String constant used to specify DateTimeDateFormat in layouts. Current value is DATE. + + + + + String constant used to specify ISO8601DateFormat in layouts. Current value is ISO8601. + + + + + Renders the date into a string. Format is "HH:mm:ss". + + The date to render into a string. + The string builder to write to. + + + Subclasses should override this method to render the date + into a string using a precision up to the second. This method + will be called at most once per second and the result will be + reused if it is needed again during the same second. + + + + + + Renders the date into a string. Format is "HH:mm:ss,fff". + + The date to render into a string. + The writer to write to. + + + Uses the method to generate the + time string up to the seconds and then appends the current + milliseconds. The results from are + cached and is called at most once + per second. + + + Sub classes should override + rather than . + + + + + + Last stored time with precision up to the second. + + + + + Last stored time with precision up to the second, formatted + as a string. + + + + + Last stored time with precision up to the second, formatted + as a string. + + + + + Formats a as "dd MMM yyyy HH:mm:ss,fff" + + + + Formats a in the format + "dd MMM yyyy HH:mm:ss,fff" for example, + "06 Nov 1994 15:49:37,459". + + + Nicko Cadell + Gert Driesen + Angelika Schnagl + + + + Default constructor. + + + + Initializes a new instance of the class. + + + + + + Formats the date without the milliseconds part + + The date to format. + The string builder to write to. + + + Formats a DateTime in the format "dd MMM yyyy HH:mm:ss" + for example, "06 Nov 1994 15:49:37". + + + The base class will append the ",fff" milliseconds section. + This method will only be called at most once per second. + + + + + + The format info for the invariant culture. + + + + + Formats the as "yyyy-MM-dd HH:mm:ss,fff". + + + + Formats the specified as a string: "yyyy-MM-dd HH:mm:ss,fff". + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Formats the date without the milliseconds part + + The date to format. + The string builder to write to. + + + Formats the date specified as a string: "yyyy-MM-dd HH:mm:ss". + + + The base class will append the ",fff" milliseconds section. + This method will only be called at most once per second. + + + + + + Formats the using the method. + + + + Formats the using the method. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The format string. + + + Initializes a new instance of the class + with the specified format string. + + + The format string must be compatible with the options + that can be supplied to . + + + + + + Formats the date using . + + The date to convert to a string. + The writer to write to. + + + Uses the date format string supplied to the constructor to call + the method to format the date. + + + + + + The format string used to format the . + + + + The format string must be compatible with the options + that can be supplied to . + + + + + + This filter drops all . + + + + You can add this filter to the end of a filter chain to + switch from the default "accept all unless instructed otherwise" + filtering behavior to a "deny all unless instructed otherwise" + behavior. + + + Nicko Cadell + Gert Driesen + + + + Subclass this type to implement customized logging event filtering + + + + Users should extend this class to implement customized logging + event filtering. Note that and + , the parent class of all standard + appenders, have built-in filtering rules. It is suggested that you + first use and understand the built-in rules before rushing to write + your own custom filters. + + + This abstract class assumes and also imposes that filters be + organized in a linear chain. The + method of each filter is called sequentially, in the order of their + addition to the chain. + + + The method must return one + of the integer constants , + or . + + + If the value is returned, then the log event is dropped + immediately without consulting with the remaining filters. + + + If the value is returned, then the next filter + in the chain is consulted. If there are no more filters in the + chain, then the log event is logged. Thus, in the presence of no + filters, the default behavior is to log all logging events. + + + If the value is returned, then the log + event is logged without consulting the remaining filters. + + + The philosophy of log4net filters is largely inspired from the + Linux ipchains. + + + Nicko Cadell + Gert Driesen + + + + Implement this interface to provide customized logging event filtering + + + + Users should implement this interface to implement customized logging + event filtering. Note that and + , the parent class of all standard + appenders, have built-in filtering rules. It is suggested that you + first use and understand the built-in rules before rushing to write + your own custom filters. + + + This abstract class assumes and also imposes that filters be + organized in a linear chain. The + method of each filter is called sequentially, in the order of their + addition to the chain. + + + The method must return one + of the integer constants , + or . + + + If the value is returned, then the log event is dropped + immediately without consulting with the remaining filters. + + + If the value is returned, then the next filter + in the chain is consulted. If there are no more filters in the + chain, then the log event is logged. Thus, in the presence of no + filters, the default behavior is to log all logging events. + + + If the value is returned, then the log + event is logged without consulting the remaining filters. + + + The philosophy of log4net filters is largely inspired from the + Linux ipchains. + + + Nicko Cadell + Gert Driesen + + + + Decide if the logging event should be logged through an appender. + + The LoggingEvent to decide upon + The decision of the filter + + + If the decision is , then the event will be + dropped. If the decision is , then the next + filter, if any, will be invoked. If the decision is then + the event will be logged without consulting with other filters in + the chain. + + + + + + Property to get and set the next filter + + + The next filter in the chain + + + + Filters are typically composed into chains. This property allows the next filter in + the chain to be accessed. + + + + + + Points to the next filter in the filter chain. + + + + See for more information. + + + + + + Initialize the filter with the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Typically filter's options become active immediately on set, + however this method must still be called. + + + + + + Decide if the should be logged through an appender. + + The to decide upon + The decision of the filter + + + If the decision is , then the event will be + dropped. If the decision is , then the next + filter, if any, will be invoked. If the decision is then + the event will be logged without consulting with other filters in + the chain. + + + This method is marked abstract and must be implemented + in a subclass. + + + + + + Property to get and set the next filter + + + The next filter in the chain + + + + Filters are typically composed into chains. This property allows the next filter in + the chain to be accessed. + + + + + + Default constructor + + + + + Always returns the integer constant + + the LoggingEvent to filter + Always returns + + + Ignores the event being logged and just returns + . This can be used to change the default filter + chain behavior from to . This filter + should only be used as the last filter in the chain + as any further filters will be ignored! + + + + + + The return result from + + + + The return result from + + + + + + The log event must be dropped immediately without + consulting with the remaining filters, if any, in the chain. + + + + + This filter is neutral with respect to the log event. + The remaining filters, if any, should be consulted for a final decision. + + + + + The log event must be logged immediately without + consulting with the remaining filters, if any, in the chain. + + + + + This is a very simple filter based on matching. + + + + The filter admits two options and + . If there is an exact match between the value + of the option and the of the + , then the method returns in + case the option value is set + to true, if it is false then + is returned. If the does not match then + the result will be . + + + Nicko Cadell + Gert Driesen + + + + flag to indicate if the filter should on a match + + + + + the to match against + + + + + Default constructor + + + + + Tests if the of the logging event matches that of the filter + + the event to filter + see remarks + + + If the of the event matches the level of the + filter then the result of the function depends on the + value of . If it is true then + the function will return , it it is false then it + will return . If the does not match then + the result will be . + + + + + + when matching + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + The that the filter will match + + + + The level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + This is a simple filter based on matching. + + + + The filter admits three options and + that determine the range of priorities that are matched, and + . If there is a match between the range + of priorities and the of the , then the + method returns in case the + option value is set to true, if it is false + then is returned. If there is no match, is returned. + + + Nicko Cadell + Gert Driesen + + + + Flag to indicate the behavior when matching a + + + + + the minimum value to match + + + + + the maximum value to match + + + + + Default constructor + + + + + Check if the event should be logged. + + the logging event to check + see remarks + + + If the of the logging event is outside the range + matched by this filter then + is returned. If the is matched then the value of + is checked. If it is true then + is returned, otherwise + is returned. + + + + + + when matching and + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + Set the minimum matched + + + + The minimum level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + Sets the maximum matched + + + + The maximum level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + Simple filter to match a string in the event's logger name. + + + + The works very similar to the . It admits two + options and . If the + of the starts + with the value of the option, then the + method returns in + case the option value is set to true, + if it is false then is returned. + + + Daniel Cazzulino + + + + Flag to indicate the behavior when we have a match + + + + + The logger name string to substring match against the event + + + + + Default constructor + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The rendered message is matched against the . + If the equals the beginning of + the incoming () + then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + when matching + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + The that the filter will match + + + + This filter will attempt to match this value against logger name in + the following way. The match will be done against the beginning of the + logger name (using ). The match is + case sensitive. If a match is found then + the result depends on the value of . + + + + + + Simple filter to match a keyed string in the + + + + Simple filter to match a keyed string in the + + + As the MDC has been replaced with layered properties the + should be used instead. + + + Nicko Cadell + Gert Driesen + + + + Simple filter to match a string an event property + + + + Simple filter to match a string in the value for a + specific event property + + + Nicko Cadell + + + + Simple filter to match a string in the rendered message + + + + Simple filter to match a string in the rendered message + + + Nicko Cadell + Gert Driesen + + + + Flag to indicate the behavior when we have a match + + + + + The string to substring match against the message + + + + + A string regex to match + + + + + A regex object to match (generated from m_stringRegexToMatch) + + + + + Default constructor + + + + + Initialize and precompile the Regex if required + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The rendered message is matched against the . + If the occurs as a substring within + the message then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + when matching or + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + Sets the static string to match + + + + The string that will be substring matched against + the rendered message. If the message contains this + string then the filter will match. If a match is found then + the result depends on the value of . + + + One of or + must be specified. + + + + + + Sets the regular expression to match + + + + The regular expression pattern that will be matched against + the rendered message. If the message matches this + pattern then the filter will match. If a match is found then + the result depends on the value of . + + + One of or + must be specified. + + + + + + The key to use to lookup the string from the event properties + + + + + Default constructor + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The event property for the is matched against + the . + If the occurs as a substring within + the property value then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + The key to lookup in the event properties and then match against. + + + + The key name to use to lookup in the properties map of the + . The match will be performed against + the value of this property if it exists. + + + + + + Simple filter to match a string in the + + + + Simple filter to match a string in the + + + As the MDC has been replaced with named stacks stored in the + properties collections the should + be used instead. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Sets the to "NDC". + + + + + + Write the event appdomain name to the output + + + + Writes the to the output writer. + + + Daniel Cazzulino + Nicko Cadell + + + + Abstract class that provides the formatting functionality that + derived classes need. + + + Conversion specifiers in a conversion patterns are parsed to + individual PatternConverters. Each of which is responsible for + converting a logging event in a converter specific manner. + + Nicko Cadell + + + + Abstract class that provides the formatting functionality that + derived classes need. + + + + Conversion specifiers in a conversion patterns are parsed to + individual PatternConverters. Each of which is responsible for + converting a logging event in a converter specific manner. + + + Nicko Cadell + Gert Driesen + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + Protected constructor + + + + Initializes a new instance of the class. + + + + + + Evaluate this pattern converter and write the output to a writer. + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the appropriate way. + + + + + + Set the next pattern converter in the chains + + the pattern converter that should follow this converter in the chain + the next converter + + + The PatternConverter can merge with its neighbor during this method (or a sub class). + Therefore the return value may or may not be the value of the argument passed in. + + + + + + Write the pattern converter to the writer with appropriate formatting + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + This method calls to allow the subclass to perform + appropriate conversion of the pattern converter. If formatting options have + been specified via the then this method will + apply those formattings before writing the output. + + + + + + Fast space padding method. + + to which the spaces will be appended. + The number of spaces to be padded. + + + Fast space padding method. + + + + + + The option string to the converter + + + + + Write an dictionary to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the to a writer in the form: + + + {key1=value1, key2=value2, key3=value3} + + + If the specified + is not null then it is used to render the key and value to text, otherwise + the object's ToString method is called. + + + + + + Write an dictionary to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the to a writer in the form: + + + {key1=value1, key2=value2, key3=value3} + + + If the specified + is not null then it is used to render the key and value to text, otherwise + the object's ToString method is called. + + + + + + Write an object to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the Object to a writer. If the specified + is not null then it is used to render the object to text, otherwise + the object's ToString method is called. + + + + + + Get the next pattern converter in the chain + + + the next pattern converter in the chain + + + + Get the next pattern converter in the chain + + + + + + Gets or sets the formatting info for this converter + + + The formatting info for this converter + + + + Gets or sets the formatting info for this converter + + + + + + Gets or sets the option value for this converter + + + The option for this converter + + + + Gets or sets the option value for this converter + + + + + + + + + + + Initializes a new instance of the class. + + + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the correct way. + + that will receive the formatted result. + The on which the pattern converter should be executed. + + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the correct way. + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + + Flag indicating if this converter handles exceptions + + + false if this converter handles exceptions + + + + + Flag indicating if this converter handles the logging event exception + + false if this converter handles the logging event exception + + + If this converter handles the exception object contained within + , then this property should be set to + false. Otherwise, if the layout ignores the exception + object, then the property should be set to true. + + + Set this value to override a this default setting. The default + value is true, this converter does not handle the exception. + + + + + + Write the event appdomain name to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output . + + + + + + Converter for items in the ASP.Net Cache. + + + + Outputs an item from the . + + + Ron Grabowski + + + + Abstract class that provides access to the current HttpContext () that + derived classes need. + + + This class handles the case when HttpContext.Current is null by writing + to the writer. + + Ron Grabowski + + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the correct way. + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + + Write the ASP.Net Cache item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. If no property has been set, all key value pairs from the Cache will + be written to the output. + + + + + + Converter for items in the . + + + + Outputs an item from the . + + + Ron Grabowski + + + + Write the ASP.Net HttpContext item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. + + + + + + Converter for items in the ASP.Net Cache. + + + + Outputs an item from the . + + + Ron Grabowski + + + + Write the ASP.Net Cache item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. + + + + + + Converter for items in the ASP.Net Cache. + + + + Outputs an item from the . + + + Ron Grabowski + + + + Write the ASP.Net Cache item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. If no property has been set, all key value pairs from the Session will + be written to the output. + + + + + + Date pattern converter, uses a to format + the date of a . + + + + Render the to the writer as a string. + + + The value of the determines + the formatting of the date. The following values are allowed: + + + Option value + Output + + + ISO8601 + + Uses the formatter. + Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. + + + + DATE + + Uses the formatter. + Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". + + + + ABSOLUTE + + Uses the formatter. + Formats using the "HH:mm:ss,yyyy" for example, "15:49:37,459". + + + + other + + Any other pattern string uses the formatter. + This formatter passes the pattern string to the + method. + For details on valid patterns see + DateTimeFormatInfo Class. + + + + + + The is in the local time zone and is rendered in that zone. + To output the time in Universal time see . + + + Nicko Cadell + + + + The used to render the date to a string + + + + The used to render the date to a string + + + + + + Initialize the converter pattern based on the property. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Convert the pattern into the rendered message + + that will receive the formatted result. + the event being logged + + + Pass the to the + for it to render it to the writer. + + + The passed is in the local time zone. + + + + + + The fully qualified type of the DatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the exception text to the output + + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + + + If there is no exception then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + Nicko Cadell + + + + Default constructor + + + + + Write the exception text to the output + + that will receive the formatted result. + the event being logged + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + + + If there is no exception or the exception property specified + by the Option value does not exist then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + Recognized values for the Option parameter are: + + + + Message + + + Source + + + StackTrace + + + TargetSite + + + HelpLink + + + + + + + Writes the caller location file name to the output + + + + Writes the value of the for + the event to the output writer. + + + Nicko Cadell + + + + Write the caller location file name to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the for + the to the output . + + + + + + Write the caller location info to the output + + + + Writes the to the output writer. + + + Nicko Cadell + + + + Write the caller location info to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output writer. + + + + + + Writes the event identity to the output + + + + Writes the value of the to + the output writer. + + + Daniel Cazzulino + Nicko Cadell + + + + Writes the event identity to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the + to + the output . + + + + + + Write the event level to the output + + + + Writes the display name of the event + to the writer. + + + Nicko Cadell + + + + Write the event level to the output + + that will receive the formatted result. + the event being logged + + + Writes the of the + to the . + + + + + + Write the caller location line number to the output + + + + Writes the value of the for + the event to the output writer. + + + Nicko Cadell + + + + Write the caller location line number to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the for + the to the output . + + + + + + Converter for logger name + + + + Outputs the of the event. + + + Nicko Cadell + + + + Converter to output and truncate '.' separated strings + + + + This abstract class supports truncating a '.' separated string + to show a specified number of elements from the right hand side. + This is used to truncate class names that are fully qualified. + + + Subclasses should override the method to + return the fully qualified string. + + + Nicko Cadell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Get the fully qualified string data + + the event being logged + the fully qualified name + + + Overridden by subclasses to get the fully qualified name before the + precision is applied to it. + + + Return the fully qualified '.' (dot/period) separated string. + + + + + + Convert the pattern to the rendered message + + that will receive the formatted result. + the event being logged + + Render the to the precision + specified by the property. + + + + + The fully qualified type of the NamedPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the fully qualified name of the logger + + the event being logged + The fully qualified logger name + + + Returns the of the . + + + + + + Writes the event message to the output + + + + Uses the method + to write out the event message. + + + Nicko Cadell + + + + Writes the event message to the output + + that will receive the formatted result. + the event being logged + + + Uses the method + to write out the event message. + + + + + + Write the method name to the output + + + + Writes the caller location to + the output. + + + Nicko Cadell + + + + Write the method name to the output + + that will receive the formatted result. + the event being logged + + + Writes the caller location to + the output. + + + + + + Converter to include event NDC + + + + Outputs the value of the event property named NDC. + + + The should be used instead. + + + Nicko Cadell + + + + Write the event NDC to the output + + that will receive the formatted result. + the event being logged + + + As the thread context stacks are now stored in named event properties + this converter simply looks up the value of the NDC property. + + + The should be used instead. + + + + + + Property pattern converter + + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + Nicko Cadell + + + + Write the property value to the output + + that will receive the formatted result. + the event being logged + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + Converter to output the relative time of the event + + + + Converter to output the time of the event relative to the start of the program. + + + Nicko Cadell + + + + Write the relative time to the output + + that will receive the formatted result. + the event being logged + + + Writes out the relative time of the event in milliseconds. + That is the number of milliseconds between the event + and the . + + + + + + Helper method to get the time difference between two DateTime objects + + start time (in the current local time zone) + end time (in the current local time zone) + the time difference in milliseconds + + + + Write the caller stack frames to the output + + + + Writes the to the output writer, using format: + type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) + + + Adam Davies + + + + Write the caller stack frames to the output + + + + Writes the to the output writer, using format: + type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 + + + Michael Cromwell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the strack frames to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output writer. + + + + + + Returns the Name of the method + + + This method was created, so this class could be used as a base class for StackTraceDetailPatternConverter + string + + + + The fully qualified type of the StackTracePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + The fully qualified type of the StackTraceDetailPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Converter to include event thread name + + + + Writes the to the output. + + + Nicko Cadell + + + + Write the ThreadName to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the . + + + + + + Pattern converter for the class name + + + + Outputs the of the event. + + + Nicko Cadell + + + + Gets the fully qualified name of the class + + the event being logged + The fully qualified type name for the caller location + + + Returns the of the . + + + + + + Converter to include event user name + + Douglas de la Torre + Nicko Cadell + + + + Convert the pattern to the rendered message + + that will receive the formatted result. + the event being logged + + + + Write the TimeStamp to the output + + + + Date pattern converter, uses a to format + the date of a . + + + Uses a to format the + in Universal time. + + + See the for details on the date pattern syntax. + + + + Nicko Cadell + + + + Write the TimeStamp to the output + + that will receive the formatted result. + the event being logged + + + Pass the to the + for it to render it to the writer. + + + The passed is in the local time zone, this is converted + to Universal time before it is rendered. + + + + + + + The fully qualified type of the UtcDatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + A flexible layout configurable with pattern string that re-evaluates on each call. + + + This class is built on and provides all the + features and capabilities of PatternLayout. PatternLayout is a 'static' class + in that its layout is done once at configuration time. This class will recreate + the layout on each reference. + One important difference between PatternLayout and DynamicPatternLayout is the + treatment of the Header and Footer parameters in the configuration. The Header and Footer + parameters for DynamicPatternLayout must be syntactically in the form of a PatternString, + but should not be marked as type log4net.Util.PatternString. Doing so causes the + pattern to be statically converted at configuration time and causes DynamicPatternLayout + to perform the same as PatternLayout. + Please see for complete documentation. + + <layout type="log4net.Layout.DynamicPatternLayout"> + <param name="Header" value="%newline**** Trace Opened Local: %date{yyyy-MM-dd HH:mm:ss.fff} UTC: %utcdate{yyyy-MM-dd HH:mm:ss.fff} ****%newline" /> + <param name="Footer" value="**** Trace Closed %date{yyyy-MM-dd HH:mm:ss.fff} ****%newline" /> + </layout> + + + + + + A flexible layout configurable with pattern string. + + + + The goal of this class is to a + as a string. The results + depend on the conversion pattern. + + + The conversion pattern is closely related to the conversion + pattern of the printf function in C. A conversion pattern is + composed of literal text and format control expressions called + conversion specifiers. + + + You are free to insert any literal text within the conversion + pattern. + + + Each conversion specifier starts with a percent sign (%) and is + followed by optional format modifiers and a conversion + pattern name. The conversion pattern name specifies the type of + data, e.g. logger, level, date, thread name. The format + modifiers control such things as field width, padding, left and + right justification. The following is a simple example. + + + Let the conversion pattern be "%-5level [%thread]: %message%newline" and assume + that the log4net environment was set to use a PatternLayout. Then the + statements + + + ILog log = LogManager.GetLogger(typeof(TestApp)); + log.Debug("Message 1"); + log.Warn("Message 2"); + + would yield the output + + DEBUG [main]: Message 1 + WARN [main]: Message 2 + + + Note that there is no explicit separator between text and + conversion specifiers. The pattern parser knows when it has reached + the end of a conversion specifier when it reads a conversion + character. In the example above the conversion specifier + %-5level means the level of the logging event should be left + justified to a width of five characters. + + + The recognized conversion pattern names are: + + + + Conversion Pattern Name + Effect + + + a + Equivalent to appdomain + + + appdomain + + Used to output the friendly name of the AppDomain where the + logging event was generated. + + + + aspnet-cache + + + Used to output all cache items in the case of %aspnet-cache or just one named item if used as %aspnet-cache{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-context + + + Used to output all context items in the case of %aspnet-context or just one named item if used as %aspnet-context{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-request + + + Used to output all request parameters in the case of %aspnet-request or just one named param if used as %aspnet-request{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-session + + + Used to output all session items in the case of %aspnet-session or just one named item if used as %aspnet-session{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + c + Equivalent to logger + + + C + Equivalent to type + + + class + Equivalent to type + + + d + Equivalent to date + + + date + + + Used to output the date of the logging event in the local time zone. + To output the date in universal time use the %utcdate pattern. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %date{HH:mm:ss,fff} or + %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %date{ISO8601} or %date{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + exception + + + Used to output the exception passed in with the log message. + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + If there is no exception then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + + + F + Equivalent to file + + + file + + + Used to output the file name where the logging request was + issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + identity + + + Used to output the user name for the currently active user + (Principal.Identity.Name). + + + WARNING Generating caller information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + + + l + Equivalent to location + + + L + Equivalent to line + + + location + + + Used to output location information of the caller which generated + the logging event. + + + The location information depends on the CLI implementation but + usually consists of the fully qualified name of the calling + method followed by the callers source the file name and line + number between parentheses. + + + The location information can be very useful. However, its + generation is extremely slow. Its use should be avoided + unless execution speed is not an issue. + + + See the note below on the availability of caller location information. + + + + + level + + + Used to output the level of the logging event. + + + + + line + + + Used to output the line number from where the logging request + was issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + logger + + + Used to output the logger of the logging event. The + logger conversion specifier can be optionally followed by + precision specifier, that is a decimal constant in + brackets. + + + If a precision specifier is given, then only the corresponding + number of right most components of the logger name will be + printed. By default the logger name is printed in full. + + + For example, for the logger name "a.b.c" the pattern + %logger{2} will output "b.c". + + + + + m + Equivalent to message + + + M + Equivalent to method + + + message + + + Used to output the application supplied message associated with + the logging event. + + + + + mdc + + + The MDC (old name for the ThreadContext.Properties) is now part of the + combined event properties. This pattern is supported for compatibility + but is equivalent to property. + + + + + method + + + Used to output the method name where the logging request was + issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + n + Equivalent to newline + + + newline + + + Outputs the platform dependent line separator character or + characters. + + + This conversion pattern offers the same performance as using + non-portable line separator strings such as "\n", or "\r\n". + Thus, it is the preferred way of specifying a line separator. + + + + + ndc + + + Used to output the NDC (nested diagnostic context) associated + with the thread that generated the logging event. + + + + + p + Equivalent to level + + + P + Equivalent to property + + + properties + Equivalent to property + + + property + + + Used to output the an event specific property. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %property{user} would include the value + from the property that is keyed by the string 'user'. Each property value + that is to be included in the log must be specified separately. + Properties are added to events by loggers or appenders. By default + the log4net:HostName property is set to the name of machine on + which the event was originally logged. + + + If no key is specified, e.g. %property then all the keys and their + values are printed in a comma separated list. + + + The properties of an event are combined from a number of different + contexts. These are listed below in the order in which they are searched. + + + + the event properties + + The event has that can be set. These + properties are specific to this event only. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + + r + Equivalent to timestamp + + + stacktrace + + + Used to output the stack trace of the logging event + The stack trace level specifier may be enclosed + between braces. For example, %stacktrace{level}. + If no stack trace level specifier is given then 1 is assumed + + + Output uses the format: + type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 + + + This pattern is not available for Compact Framework assemblies. + + + + + stacktracedetail + + + Used to output the stack trace of the logging event + The stack trace level specifier may be enclosed + between braces. For example, %stacktracedetail{level}. + If no stack trace level specifier is given then 1 is assumed + + + Output uses the format: + type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) + + + This pattern is not available for Compact Framework assemblies. + + + + + t + Equivalent to thread + + + timestamp + + + Used to output the number of milliseconds elapsed since the start + of the application until the creation of the logging event. + + + + + thread + + + Used to output the name of the thread that generated the + logging event. Uses the thread number if no name is available. + + + + + type + + + Used to output the fully qualified type name of the caller + issuing the logging request. This conversion specifier + can be optionally followed by precision specifier, that + is a decimal constant in brackets. + + + If a precision specifier is given, then only the corresponding + number of right most components of the class name will be + printed. By default the class name is output in fully qualified form. + + + For example, for the class name "log4net.Layout.PatternLayout", the + pattern %type{1} will output "PatternLayout". + + + WARNING Generating the caller class information is + slow. Thus, its use should be avoided unless execution speed is + not an issue. + + + See the note below on the availability of caller location information. + + + + + u + Equivalent to identity + + + username + + + Used to output the WindowsIdentity for the currently + active user. + + + WARNING Generating caller WindowsIdentity information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + + + utcdate + + + Used to output the date of the logging event in universal time. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %utcdate{HH:mm:ss,fff} or + %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %utcdate{ISO8601} or %utcdate{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + w + Equivalent to username + + + x + Equivalent to ndc + + + X + Equivalent to mdc + + + % + + + The sequence %% outputs a single percent sign. + + + + + + The single letter patterns are deprecated in favor of the + longer more descriptive pattern names. + + + By default the relevant information is output as is. However, + with the aid of format modifiers it is possible to change the + minimum field width, the maximum field width and justification. + + + The optional format modifier is placed between the percent sign + and the conversion pattern name. + + + The first optional format modifier is the left justification + flag which is just the minus (-) character. Then comes the + optional minimum field width modifier. This is a decimal + constant that represents the minimum number of characters to + output. If the data item requires fewer characters, it is padded on + either the left or the right until the minimum width is + reached. The default is to pad on the left (right justify) but you + can specify right padding with the left justification flag. The + padding character is space. If the data item is larger than the + minimum field width, the field is expanded to accommodate the + data. The value is never truncated. + + + This behavior can be changed using the maximum field + width modifier which is designated by a period followed by a + decimal constant. If the data item is longer than the maximum + field, then the extra characters are removed from the + beginning of the data item and not from the end. For + example, it the maximum field width is eight and the data item is + ten characters long, then the first two characters of the data item + are dropped. This behavior deviates from the printf function in C + where truncation is done from the end. + + + Below are various format modifier examples for the logger + conversion specifier. + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Format modifierleft justifyminimum widthmaximum widthcomment
%20loggerfalse20none + + Left pad with spaces if the logger name is less than 20 + characters long. + +
%-20loggertrue20none + + Right pad with spaces if the logger + name is less than 20 characters long. + +
%.30loggerNAnone30 + + Truncate from the beginning if the logger + name is longer than 30 characters. + +
%20.30loggerfalse2030 + + Left pad with spaces if the logger name is shorter than 20 + characters. However, if logger name is longer than 30 characters, + then truncate from the beginning. + +
%-20.30loggertrue2030 + + Right pad with spaces if the logger name is shorter than 20 + characters. However, if logger name is longer than 30 characters, + then truncate from the beginning. + +
+
+ + Note about caller location information.
+ The following patterns %type %file %line %method %location %class %C %F %L %l %M + all generate caller location information. + Location information uses the System.Diagnostics.StackTrace class to generate + a call stack. The caller's information is then extracted from this stack. +
+ + + The System.Diagnostics.StackTrace class is not supported on the + .NET Compact Framework 1.0 therefore caller location information is not + available on that framework. + + + + + The System.Diagnostics.StackTrace class has this to say about Release builds: + + + "StackTrace information will be most informative with Debug build configurations. + By default, Debug builds include debug symbols, while Release builds do not. The + debug symbols contain most of the file, method name, line number, and column + information used in constructing StackFrame and StackTrace objects. StackTrace + might not report as many method calls as expected, due to code transformations + that occur during optimization." + + + This means that in a Release build the caller information may be incomplete or may + not exist at all! Therefore caller location information cannot be relied upon in a Release build. + + + + Additional pattern converters may be registered with a specific + instance using the method. + +
+ + This is a more detailed pattern. + %timestamp [%thread] %level %logger %ndc - %message%newline + + + A similar pattern except that the relative time is + right padded if less than 6 digits, thread name is right padded if + less than 15 characters and truncated if longer and the logger + name is left padded if shorter than 30 characters and truncated if + longer. + %-6timestamp [%15.15thread] %-5level %30.30logger %ndc - %message%newline + + Nicko Cadell + Gert Driesen + Douglas de la Torre + Daniel Cazzulino +
+ + + Extend this abstract class to create your own log layout format. + + + + This is the base implementation of the + interface. Most layout objects should extend this class. + + + + + + Subclasses must implement the + method. + + + Subclasses should set the in their default + constructor. + + + + Nicko Cadell + Gert Driesen + + + + Interface implemented by layout objects + + + + An object is used to format a + as text. The method is called by an + appender to transform the into a string. + + + The layout can also supply and + text that is appender before any events and after all the events respectively. + + + Nicko Cadell + Gert Driesen + + + + Implement this method to create your own layout format. + + The TextWriter to write the formatted event to + The event to format + + + This method is called by an appender to format + the as text and output to a writer. + + + If the caller does not have a and prefers the + event to be formatted as a then the following + code can be used to format the event into a . + + + StringWriter writer = new StringWriter(); + Layout.Format(writer, loggingEvent); + string formattedEvent = writer.ToString(); + + + + + + The content type output by this layout. + + The content type + + + The content type output by this layout. + + + This is a MIME type e.g. "text/plain". + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + + + + + Flag indicating if this layout handle exceptions + + false if this layout handles exceptions + + + If this layout handles the exception object contained within + , then the layout should return + false. Otherwise, if the layout ignores the exception + object, then the layout should return true. + + + + + + The header text + + + + See for more information. + + + + + + The footer text + + + + See for more information. + + + + + + Flag indicating if this layout handles exceptions + + + + false if this layout handles exceptions + + + + + + Empty default constructor + + + + Empty default constructor + + + + + + Activate component options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + This method must be implemented by the subclass. + + + + + + Implement this method to create your own layout format. + + The TextWriter to write the formatted event to + The event to format + + + This method is called by an appender to format + the as text. + + + + + + Convenience method for easily formatting the logging event into a string variable. + + + + Creates a new StringWriter instance to store the formatted logging event. + + + + + The content type output by this layout. + + The content type is "text/plain" + + + The content type output by this layout. + + + This base class uses the value "text/plain". + To change this value a subclass must override this + property. + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + + + + + Flag indicating if this layout handles exceptions + + false if this layout handles exceptions + + + If this layout handles the exception object contained within + , then the layout should return + false. Otherwise, if the layout ignores the exception + object, then the layout should return true. + + + Set this value to override a this default setting. The default + value is true, this layout does not handle the exception. + + + + + + Default pattern string for log output. + + + + Default pattern string for log output. + Currently set to the string "%message%newline" + which just prints the application supplied message. + + + + + + A detailed conversion pattern + + + + A conversion pattern which includes Time, Thread, Logger, and Nested Context. + Current value is %timestamp [%thread] %level %logger %ndc - %message%newline. + + + + + + Internal map of converter identifiers to converter types. + + + + This static map is overridden by the m_converterRegistry instance map + + + + + + the pattern + + + + + the head of the pattern converter chain + + + + + patterns defined on this PatternLayout only + + + + + Initialize the global registry + + + + Defines the builtin global rules. + + + + + + Constructs a PatternLayout using the DefaultConversionPattern + + + + The default pattern just produces the application supplied message. + + + Note to Inheritors: This constructor calls the virtual method + . If you override this method be + aware that it will be called before your is called constructor. + + + As per the contract the + method must be called after the properties on this object have been + configured. + + + + + + Constructs a PatternLayout using the supplied conversion pattern + + the pattern to use + + + Note to Inheritors: This constructor calls the virtual method + . If you override this method be + aware that it will be called before your is called constructor. + + + When using this constructor the method + need not be called. This may not be the case when using a subclass. + + + + + + Create the pattern parser instance + + the pattern to parse + The that will format the event + + + Creates the used to parse the conversion string. Sets the + global and instance rules on the . + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a formatted string as specified by the conversion pattern. + + the event being logged + The TextWriter to write the formatted event to + + + Parse the using the patter format + specified in the property. + + + + + + Add a converter to this PatternLayout + + the converter info + + + This version of the method is used by the configurator. + Programmatic users should use the alternative method. + + + + + + Add a converter to this PatternLayout + + the name of the conversion pattern for this converter + the type of the converter + + + Add a named pattern converter to this instance. This + converter will be used in the formatting of the event. + This method must be called before . + + + The specified must extend the + type. + + + + + + The pattern formatting string + + + + The ConversionPattern option. This is the string which + controls formatting and consists of a mix of literal content and + conversion specifiers. + + + + + + The header PatternString + + + + + The footer PatternString + + + + + Constructs a DynamicPatternLayout using the DefaultConversionPattern + + + + The default pattern just produces the application supplied message. + + + + + + Constructs a DynamicPatternLayout using the supplied conversion pattern + + the pattern to use + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + The pattern will be formatted on each get operation. + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + The pattern will be formatted on each get operation. + + + + + A Layout that renders only the Exception text from the logging event + + + + A Layout that renders only the Exception text from the logging event. + + + This Layout should only be used with appenders that utilize multiple + layouts (e.g. ). + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Constructs a ExceptionLayout + + + + + + Activate component options + + + + Part of the component activation + framework. + + + This method does nothing as options become effective immediately. + + + + + + Gets the exception text from the logging event + + The TextWriter to write the formatted event to + the event being logged + + + Write the exception string to the . + The exception string is retrieved from . + + + + + + Interface for raw layout objects + + + + Interface used to format a + to an object. + + + This interface should not be confused with the + interface. This interface is used in + only certain specialized situations where a raw object is + required rather than a formatted string. The + is not generally useful than this interface. + + + Nicko Cadell + Gert Driesen + + + + Implement this method to create your own layout format. + + The event to format + returns the formatted event + + + Implement this method to create your own layout format. + + + + + + Adapts any to a + + + + Where an is required this adapter + allows a to be specified. + + + Nicko Cadell + Gert Driesen + + + + The layout to adapt + + + + + Construct a new adapter + + the layout to adapt + + + Create the adapter for the specified . + + + + + + Format the logging event as an object. + + The event to format + returns the formatted event + + + Format the logging event as an object. + + + Uses the object supplied to + the constructor to perform the formatting. + + + + + + Type converter for the interface + + + + Used to convert objects to the interface. + Supports converting from the interface to + the interface using the . + + + Nicko Cadell + Gert Driesen + + + + Interface supported by type converters + + + + This interface supports conversion from arbitrary types + to a single target type. See . + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Test if the can be converted to the + type supported by this converter. + + + + + + Convert the source object to the type supported by this object + + the object to convert + the converted object + + + Converts the to the type supported + by this converter. + + + + + + Can the sourceType be converted to an + + the source to be to be converted + true if the source type can be converted to + + + Test if the can be converted to a + . Only is supported + as the . + + + + + + Convert the value to a object + + the value to convert + the object + + + Convert the object to a + object. If the object + is a then the + is used to adapt between the two interfaces, otherwise an + exception is thrown. + + + + + + Extract the value of a property from the + + + + Extract the value of a property from the + + + Nicko Cadell + + + + Constructs a RawPropertyLayout + + + + + Lookup the property for + + The event to format + returns property value + + + Looks up and returns the object value of the property + named . If there is no property defined + with than name then null will be returned. + + + + + + The name of the value to lookup in the LoggingEvent Properties collection. + + + Value to lookup in the LoggingEvent Properties collection + + + + String name of the property to lookup in the . + + + + + + Extract the date from the + + + + Extract the date from the + + + Nicko Cadell + Gert Driesen + + + + Constructs a RawTimeStampLayout + + + + + Gets the as a . + + The event to format + returns the time stamp + + + Gets the as a . + + + The time stamp is in local time. To format the time stamp + in universal time use . + + + + + + Extract the date from the + + + + Extract the date from the + + + Nicko Cadell + Gert Driesen + + + + Constructs a RawUtcTimeStampLayout + + + + + Gets the as a . + + The event to format + returns the time stamp + + + Gets the as a . + + + The time stamp is in universal time. To format the time stamp + in local time use . + + + + + + A very simple layout + + + + SimpleLayout consists of the level of the log statement, + followed by " - " and then the log message itself. For example, + + DEBUG - Hello world + + + + Nicko Cadell + Gert Driesen + + + + Constructs a SimpleLayout + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a simple formatted output. + + the event being logged + The TextWriter to write the formatted event to + + + Formats the event as the level of the even, + followed by " - " and then the log message itself. The + output is terminated by a newline. + + + + + + Layout that formats the log events as XML elements. + + + + The output of the consists of a series of + log4net:event elements. It does not output a complete well-formed XML + file. The output is designed to be included as an external entity + in a separate file to form a correct XML file. + + + For example, if abc is the name of the file where + the output goes, then a well-formed XML file would + be: + + + <?xml version="1.0" ?> + + <!DOCTYPE log4net:events SYSTEM "log4net-events.dtd" [<!ENTITY data SYSTEM "abc">]> + + <log4net:events version="1.2" xmlns:log4net="http://logging.apache.org/log4net/schemas/log4net-events-1.2> + &data; + </log4net:events> + + + This approach enforces the independence of the + and the appender where it is embedded. + + + The version attribute helps components to correctly + interpret output generated by . The value of + this attribute should be "1.2" for release 1.2 and later. + + + Alternatively the Header and Footer properties can be + configured to output the correct XML header, open tag and close tag. + When setting the Header and Footer properties it is essential + that the underlying data store not be appendable otherwise the data + will become invalid XML. + + + Nicko Cadell + Gert Driesen + + + + Layout that formats the log events as XML elements. + + + + This is an abstract class that must be subclassed by an implementation + to conform to a specific schema. + + + Deriving classes must implement the method. + + + Nicko Cadell + Gert Driesen + + + + Protected constructor to support subclasses + + + + Initializes a new instance of the class + with no location info. + + + + + + Protected constructor to support subclasses + + + + The parameter determines whether + location information will be output by the layout. If + is set to true, then the + file name and line number of the statement at the origin of the log + statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a formatted string. + + The event being logged. + The TextWriter to write the formatted event to + + + Format the and write it to the . + + + This method creates an that writes to the + . The is passed + to the method. Subclasses should override the + method rather than this method. + + + + + + Does the actual writing of the XML. + + The writer to use to output the event to. + The event to write. + + + Subclasses should override this method to format + the as XML. + + + + + + Flag to indicate if location information should be included in + the XML events. + + + + + The string to replace invalid chars with + + + + + Gets a value indicating whether to include location information in + the XML events. + + + true if location information should be included in the XML + events; otherwise, false. + + + + If is set to true, then the file + name and line number of the statement at the origin of the log + statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + The string to replace characters that can not be expressed in XML with. + + + Not all characters may be expressed in XML. This property contains the + string to replace those that can not with. This defaults to a ?. Set it + to the empty string to simply remove offending characters. For more + details on the allowed character ranges see http://www.w3.org/TR/REC-xml/#charsets + Character replacement will occur in the log message, the property names + and the property values. + + + + + + + Gets the content type output by this layout. + + + As this is the XML layout, the value is always "text/xml". + + + + As this is the XML layout, the value is always "text/xml". + + + + + + Constructs an XmlLayout + + + + + Constructs an XmlLayout. + + + + The LocationInfo option takes a boolean value. By + default, it is set to false which means there will be no location + information output by this layout. If the the option is set to + true, then the file name and line number of the statement + at the origin of the log statement will be output. + + + If you are embedding this layout within an SmtpAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Builds a cache of the element names + + + + + + Does the actual writing of the XML. + + The writer to use to output the event to. + The event to write. + + + Override the base class method + to write the to the . + + + + + + The prefix to use for all generated element names + + + + + The prefix to use for all element names + + + + The default prefix is log4net. Set this property + to change the prefix. If the prefix is set to an empty string + then no prefix will be written. + + + + + + Set whether or not to base64 encode the message. + + + + By default the log message will be written as text to the xml + output. This can cause problems when the message contains binary + data. By setting this to true the contents of the message will be + base64 encoded. If this is set then invalid character replacement + (see ) will not be performed + on the log message. + + + + + + Set whether or not to base64 encode the property values. + + + + By default the properties will be written as text to the xml + output. This can cause problems when one or more properties contain + binary data. By setting this to true the values of the properties + will be base64 encoded. If this is set then invalid character replacement + (see ) will not be performed + on the property values. + + + + + + Layout that formats the log events as XML elements compatible with the log4j schema + + + + Formats the log events according to the http://logging.apache.org/log4j schema. + + + Nicko Cadell + + + + The 1st of January 1970 in UTC + + + + + Constructs an XMLLayoutSchemaLog4j + + + + + Constructs an XMLLayoutSchemaLog4j. + + + + The LocationInfo option takes a boolean value. By + default, it is set to false which means there will be no location + information output by this layout. If the the option is set to + true, then the file name and line number of the statement + at the origin of the log statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + Actually do the writing of the xml + + the writer to use + the event to write + + + Generate XML that is compatible with the log4j schema. + + + + + + The version of the log4j schema to use. + + + + Only version 1.2 of the log4j schema is supported. + + + + + + The default object Renderer. + + + + The default renderer supports rendering objects and collections to strings. + + + See the method for details of the output. + + + Nicko Cadell + Gert Driesen + + + + Implement this interface in order to render objects as strings + + + + Certain types require special case conversion to + string form. This conversion is done by an object renderer. + Object renderers implement the + interface. + + + Nicko Cadell + Gert Driesen + + + + Render the object to a string + + The map used to lookup renderers + The object to render + The writer to render to + + + Render the object to a + string. + + + The parameter is + provided to lookup and render other objects. This is + very useful where contains + nested objects of unknown type. The + method can be used to render these objects. + + + + + + Default constructor + + + + Default constructor + + + + + + Render the object to a string + + The map used to lookup renderers + The object to render + The writer to render to + + + Render the object to a string. + + + The parameter is + provided to lookup and render other objects. This is + very useful where contains + nested objects of unknown type. The + method can be used to render these objects. + + + The default renderer supports rendering objects to strings as follows: + + + + Value + Rendered String + + + null + + "(null)" + + + + + + + For a one dimensional array this is the + array type name, an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. + + + For example: int[] {1, 2, 3}. + + + If the array is not one dimensional the + Array.ToString() is returned. + + + + + , & + + + Rendered as an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. + + + For example: {a, b, c}. + + + All collection classes that implement its subclasses, + or generic equivalents all implement the interface. + + + + + + + + Rendered as the key, an equals sign ('='), and the value (using the appropriate + renderer). + + + For example: key=value. + + + + + other + + Object.ToString() + + + + + + + + Render the array argument into a string + + The map used to lookup renderers + the array to render + The writer to render to + + + For a one dimensional array this is the + array type name, an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. For example: + int[] {1, 2, 3}. + + + If the array is not one dimensional the + Array.ToString() is returned. + + + + + + Render the enumerator argument into a string + + The map used to lookup renderers + the enumerator to render + The writer to render to + + + Rendered as an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. For example: + {a, b, c}. + + + + + + Render the DictionaryEntry argument into a string + + The map used to lookup renderers + the DictionaryEntry to render + The writer to render to + + + Render the key, an equals sign ('='), and the value (using the appropriate + renderer). For example: key=value. + + + + + + Map class objects to an . + + + + Maintains a mapping between types that require special + rendering and the that + is used to render them. + + + The method is used to render an + object using the appropriate renderers defined in this map. + + + Nicko Cadell + Gert Driesen + + + + Default Constructor + + + + Default constructor. + + + + + + Render using the appropriate renderer. + + the object to render to a string + the object rendered as a string + + + This is a convenience method used to render an object to a string. + The alternative method + should be used when streaming output to a . + + + + + + Render using the appropriate renderer. + + the object to render to a string + The writer to render to + + + Find the appropriate renderer for the type of the + parameter. This is accomplished by calling the + method. Once a renderer is found, it is + applied on the object and the result is returned + as a . + + + + + + Gets the renderer for the specified object type + + the object to lookup the renderer for + the renderer for + + + Gets the renderer for the specified object type. + + + Syntactic sugar method that calls + with the type of the object parameter. + + + + + + Gets the renderer for the specified type + + the type to lookup the renderer for + the renderer for the specified type + + + Returns the renderer for the specified type. + If no specific renderer has been defined the + will be returned. + + + + + + Internal function to recursively search interfaces + + the type to lookup the renderer for + the renderer for the specified type + + + + Clear the map of renderers + + + + Clear the custom renderers defined by using + . The + cannot be removed. + + + + + + Register an for . + + the type that will be rendered by + the renderer for + + + Register an object renderer for a specific source type. + This renderer will be returned from a call to + specifying the same as an argument. + + + + + + Get the default renderer instance + + the default renderer + + + Get the default renderer + + + + + + Interface implemented by logger repository plugins. + + + + Plugins define additional behavior that can be associated + with a . + The held by the + property is used to store the plugins for a repository. + + + The log4net.Config.PluginAttribute can be used to + attach plugins to repositories created using configuration + attributes. + + + Nicko Cadell + Gert Driesen + + + + Attaches the plugin to the specified . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + This method is called to notify the plugin that + it should stop operating and should detach from + the repository. + + + + + + Gets the name of the plugin. + + + The name of the plugin. + + + + Plugins are stored in the + keyed by name. Each plugin instance attached to a + repository must be a unique name. + + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Creates a read-only wrapper for a PluginCollection instance. + + list to create a readonly wrapper arround + + A PluginCollection wrapper that is read-only. + + + + + Initializes a new instance of the PluginCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the PluginCollection class + that has the specified initial capacity. + + + The number of elements that the new PluginCollection is initially capable of storing. + + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified PluginCollection. + + The PluginCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Allow subclasses to avoid our default constructors + + + + + + + Copies the entire PluginCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire PluginCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Adds a to the end of the PluginCollection. + + The to be added to the end of the PluginCollection. + The index at which the value has been added. + + + + Removes all elements from the PluginCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the PluginCollection. + + The to check for. + true if is found in the PluginCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the PluginCollection. + + The to locate in the PluginCollection. + + The zero-based index of the first occurrence of + in the entire PluginCollection, if found; otherwise, -1. + + + + + Inserts an element into the PluginCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the PluginCollection. + + The to remove from the PluginCollection. + + The specified was not found in the PluginCollection. + + + + + Removes the element at the specified index of the PluginCollection. + + The zero-based index of the element to remove. + + is less than zero. + -or- + is equal to or greater than . + + + + + Returns an enumerator that can iterate through the PluginCollection. + + An for the entire PluginCollection. + + + + Adds the elements of another PluginCollection to the current PluginCollection. + + The PluginCollection whose elements should be added to the end of the current PluginCollection. + The new of the PluginCollection. + + + + Adds the elements of a array to the current PluginCollection. + + The array whose elements should be added to the end of the PluginCollection. + The new of the PluginCollection. + + + + Adds the elements of a collection to the current PluginCollection. + + The collection whose elements should be added to the end of the PluginCollection. + The new of the PluginCollection. + + + + Sets the capacity to the actual number of elements. + + + + + is less than zero. + -or- + is equal to or greater than . + + + + + is less than zero. + -or- + is equal to or greater than . + + + + + Gets the number of elements actually contained in the PluginCollection. + + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + An object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + + The at the specified index. + + The zero-based index of the element to get or set. + + is less than zero. + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false. + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false. + + + + Gets or sets the number of elements the PluginCollection can contain. + + + The number of elements the PluginCollection can contain. + + + + + Supports type-safe iteration over a . + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + + A value + + + + + Supports simple iteration over a . + + + + + + Initializes a new instance of the Enumerator class. + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + The current element in the collection. + + + + + + + + Map of repository plugins. + + + + This class is a name keyed map of the plugins that are + attached to a repository. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The repository that the plugins should be attached to. + + + Initialize a new instance of the class with a + repository that the plugins should be attached to. + + + + + + Adds a to the map. + + The to add to the map. + + + The will be attached to the repository when added. + + + If there already exists a plugin with the same name + attached to the repository then the old plugin will + be and replaced with + the new plugin. + + + + + + Removes a from the map. + + The to remove from the map. + + + Remove a specific plugin from this map. + + + + + + Gets a by name. + + The name of the to lookup. + + The from the map with the name specified, or + null if no plugin is found. + + + + Lookup a plugin by name. If the plugin is not found null + will be returned. + + + + + + Gets all possible plugins as a list of objects. + + All possible plugins as a list of objects. + + + Get a collection of all the plugins defined in this map. + + + + + + Base implementation of + + + + Default abstract implementation of the + interface. This base class can be used by implementors + of the interface. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + the name of the plugin + + Initializes a new Plugin with the specified name. + + + + + Attaches this plugin to a . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + This method is called to notify the plugin that + it should stop operating and should detach from + the repository. + + + + + + The name of this plugin. + + + + + The repository this plugin is attached to. + + + + + Gets or sets the name of the plugin. + + + The name of the plugin. + + + + Plugins are stored in the + keyed by name. Each plugin instance attached to a + repository must be a unique name. + + + The name of the plugin must not change one the + plugin has been attached to a repository. + + + + + + The repository for this plugin + + + The that this plugin is attached to. + + + + Gets or sets the that this plugin is + attached to. + + + + + + Plugin that listens for events from the + + + + This plugin publishes an instance of + on a specified . This listens for logging events delivered from + a remote . + + + When an event is received it is relogged within the attached repository + as if it had been raised locally. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Initializes a new instance of the class. + + + The property must be set. + + + + + + Construct with sink Uri. + + The name to publish the sink under in the remoting infrastructure. + See for more details. + + + Initializes a new instance of the class + with specified name. + + + + + + Attaches this plugin to a . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + When the plugin is shutdown the remote logging + sink is disconnected. + + + + + + The fully qualified type of the RemoteLoggingServerPlugin class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the URI of this sink. + + + The URI of this sink. + + + + This is the name under which the object is marshaled. + + + + + + + Delivers objects to a remote sink. + + + + Internal class used to listen for logging events + and deliver them to the local repository. + + + + + + Constructor + + The repository to log to. + + + Initializes a new instance of the for the + specified . + + + + + + Logs the events to the repository. + + The events to log. + + + The events passed are logged to the + + + + + + Obtains a lifetime service object to control the lifetime + policy for this instance. + + null to indicate that this instance should live forever. + + + Obtains a lifetime service object to control the lifetime + policy for this instance. This object should live forever + therefore this implementation returns null. + + + + + + The underlying that events should + be logged to. + + + + + Default implementation of + + + + This default implementation of the + interface is used to create the default subclass + of the object. + + + Nicko Cadell + Gert Driesen + + + + Interface abstracts creation of instances + + + + This interface is used by the to + create new objects. + + + The method is called + to create a named . + + + Implement this interface to create new subclasses of . + + + Nicko Cadell + Gert Driesen + + + + Create a new instance + + The that will own the . + The name of the . + The instance for the specified name. + + + Create a new instance with the + specified name. + + + Called by the to create + new named instances. + + + If the is null then the root logger + must be returned. + + + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Create a new instance + + The that will own the . + The name of the . + The instance for the specified name. + + + Create a new instance with the + specified name. + + + Called by the to create + new named instances. + + + If the is null then the root logger + must be returned. + + + + + + Default internal subclass of + + + + This subclass has no additional behavior over the + class but does allow instances + to be created. + + + + + + Implementation of used by + + + + Internal class used to provide implementation of + interface. Applications should use to get + logger instances. + + + This is one of the central classes in the log4net implementation. One of the + distinctive features of log4net are hierarchical loggers and their + evaluation. The organizes the + instances into a rooted tree hierarchy. + + + The class is abstract. Only concrete subclasses of + can be created. The + is used to create instances of this type for the . + + + Nicko Cadell + Gert Driesen + Aspi Havewala + Douglas de la Torre + + + + This constructor created a new instance and + sets its name. + + The name of the . + + + This constructor is protected and designed to be used by + a subclass that is not abstract. + + + Loggers are constructed by + objects. See for the default + logger creator. + + + + + + Add to the list of appenders of this + Logger instance. + + An appender to add to this logger + + + Add to the list of appenders of this + Logger instance. + + + If is already in the list of + appenders, then it won't be added again. + + + + + + Look for the appender named as name + + The name of the appender to lookup + The appender with the name specified, or null. + + + Returns the named appender, or null if the appender is not found. + + + + + + Remove all previously added appenders from this Logger instance. + + + + Remove all previously added appenders from this Logger instance. + + + This is useful when re-reading configuration information. + + + + + + Remove the appender passed as parameter form the list of appenders. + + The appender to remove + The appender removed from the list + + + Remove the appender passed as parameter form the list of appenders. + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Remove the appender passed as parameter form the list of appenders. + + The name of the appender to remove + The appender removed from the list + + + Remove the named appender passed as parameter form the list of appenders. + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + This generic form is intended to be used by wrappers. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generate a logging event for the specified using + the and . + + + This method must not throw any exception to the caller. + + + + + + This is the most generic printing method that is intended to be used + by wrappers. + + The event being logged. + + + Logs the specified logging event through this logger. + + + This method must not throw any exception to the caller. + + + + + + Checks if this logger is enabled for a given passed as parameter. + + The level to check. + + true if this logger is enabled for level, otherwise false. + + + + Test if this logger is going to log events of the specified . + + + This method must not throw any exception to the caller. + + + + + + Deliver the to the attached appenders. + + The event to log. + + + Call the appenders in the hierarchy starting at + this. If no appenders could be found, emit a + warning. + + + This method calls all the appenders inherited from the + hierarchy circumventing any evaluation of whether to log or not + to log the particular log request. + + + + + + Closes all attached appenders implementing the interface. + + + + Used to ensure that the appenders are correctly shutdown. + + + + + + This is the most generic printing method. This generic form is intended to be used by wrappers + + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generate a logging event for the specified using + the . + + + + + + Creates a new logging event and logs the event without further checks. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generates a logging event and delivers it to the attached + appenders. + + + + + + Creates a new logging event and logs the event without further checks. + + The event being logged. + + + Delivers the logging event to the attached appenders. + + + + + + The fully qualified type of the Logger class. + + + + + The name of this logger. + + + + + The assigned level of this logger. + + + + The level variable need not be + assigned a value in which case it is inherited + form the hierarchy. + + + + + + The parent of this logger. + + + + The parent of this logger. + All loggers have at least one ancestor which is the root logger. + + + + + + Loggers need to know what Hierarchy they are in. + + + + Loggers need to know what Hierarchy they are in. + The hierarchy that this logger is a member of is stored + here. + + + + + + Helper implementation of the interface + + + + + Flag indicating if child loggers inherit their parents appenders + + + + Additivity is set to true by default, that is children inherit + the appenders of their ancestors by default. If this variable is + set to false then the appenders found in the + ancestors of this logger are not used. However, the children + of this logger will inherit its appenders, unless the children + have their additivity flag set to false too. See + the user manual for more details. + + + + + + Lock to protect AppenderAttachedImpl variable m_appenderAttachedImpl + + + + + Gets or sets the parent logger in the hierarchy. + + + The parent logger in the hierarchy. + + + + Part of the Composite pattern that makes the hierarchy. + The hierarchy is parent linked rather than child linked. + + + + + + Gets or sets a value indicating if child loggers inherit their parent's appenders. + + + true if child loggers inherit their parent's appenders. + + + + Additivity is set to true by default, that is children inherit + the appenders of their ancestors by default. If this variable is + set to false then the appenders found in the + ancestors of this logger are not used. However, the children + of this logger will inherit its appenders, unless the children + have their additivity flag set to false too. See + the user manual for more details. + + + + + + Gets the effective level for this logger. + + The nearest level in the logger hierarchy. + + + Starting from this logger, searches the logger hierarchy for a + non-null level and returns it. Otherwise, returns the level of the + root logger. + + The Logger class is designed so that this method executes as + quickly as possible. + + + + + Gets or sets the where this + Logger instance is attached to. + + The hierarchy that this logger belongs to. + + + This logger must be attached to a single . + + + + + + Gets or sets the assigned , if any, for this Logger. + + + The of this logger. + + + + The assigned can be null. + + + + + + Get the appenders contained in this logger as an + . + + A collection of the appenders in this logger + + + Get the appenders contained in this logger as an + . If no appenders + can be found, then a is returned. + + + + + + Gets the logger name. + + + The name of the logger. + + + + The name of this logger + + + + + + Gets the where this + Logger instance is attached to. + + + The that this logger belongs to. + + + + Gets the where this + Logger instance is attached to. + + + + + + Construct a new Logger + + the name of the logger + + + Initializes a new instance of the class + with the specified name. + + + + + + Delegate used to handle logger creation event notifications. + + The in which the has been created. + The event args that hold the instance that has been created. + + + Delegate used to handle logger creation event notifications. + + + + + + Provides data for the event. + + + + A event is raised every time a + is created. + + + + + + The created + + + + + Constructor + + The that has been created. + + + Initializes a new instance of the event argument + class,with the specified . + + + + + + Gets the that has been created. + + + The that has been created. + + + + The that has been created. + + + + + + Hierarchical organization of loggers + + + + The casual user should not have to deal with this class + directly. + + + This class is specialized in retrieving loggers by name and + also maintaining the logger hierarchy. Implements the + interface. + + + The structure of the logger hierarchy is maintained by the + method. The hierarchy is such that children + link to their parent but parents do not have any references to their + children. Moreover, loggers can be instantiated in any order, in + particular descendant before ancestor. + + + In case a descendant is created before a particular ancestor, + then it creates a provision node for the ancestor and adds itself + to the provision node. Other descendants of the same ancestor add + themselves to the previously created provision node. + + + Nicko Cadell + Gert Driesen + + + + Base implementation of + + + + Default abstract implementation of the interface. + + + Skeleton implementation of the interface. + All types can extend this type. + + + Nicko Cadell + Gert Driesen + + + + Interface implemented by logger repositories. + + + + This interface is implemented by logger repositories. e.g. + . + + + This interface is used by the + to obtain interfaces. + + + Nicko Cadell + Gert Driesen + + + + Check if the named logger exists in the repository. If so return + its reference, otherwise returns null. + + The name of the logger to lookup + The Logger object with the name specified + + + If the names logger exists it is returned, otherwise + null is returned. + + + + + + Returns all the currently defined loggers as an Array. + + All the defined loggers + + + Returns all the currently defined loggers as an Array. + + + + + + Returns a named logger instance + + The name of the logger to retrieve + The logger object with the name specified + + + Returns a named logger instance. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + + + Shutdown the repository + + + Shutting down a repository will safely close and remove + all appenders in all loggers including the root logger. + + + Some appenders need to be closed before the + application exists. Otherwise, pending logging events might be + lost. + + + The method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Reset the repositories configuration to a default state + + + + Reset all values contained in this instance to their + default state. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the through this repository. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Returns all the Appenders that are configured as an Array. + + All the Appenders + + + Returns all the Appenders that are configured as an Array. + + + + + + The name of the repository + + + The name of the repository + + + + The name of the repository. + + + + + + RendererMap accesses the object renderer map for this repository. + + + RendererMap accesses the object renderer map for this repository. + + + + RendererMap accesses the object renderer map for this repository. + + + The RendererMap holds a mapping between types and + objects. + + + + + + The plugin map for this repository. + + + The plugin map for this repository. + + + + The plugin map holds the instances + that have been attached to this repository. + + + + + + Get the level map for the Repository. + + + + Get the level map for the Repository. + + + The level map defines the mappings between + level names and objects in + this repository. + + + + + + The threshold for all events in this repository + + + The threshold for all events in this repository + + + + The threshold for all events in this repository. + + + + + + Flag indicates if this repository has been configured. + + + Flag indicates if this repository has been configured. + + + + Flag indicates if this repository has been configured. + + + + + + Collection of internal messages captured during the most + recent configuration process. + + + + + Event to notify that the repository has been shutdown. + + + Event to notify that the repository has been shutdown. + + + + Event raised when the repository has been shutdown. + + + + + + Event to notify that the repository has had its configuration reset. + + + Event to notify that the repository has had its configuration reset. + + + + Event raised when the repository's configuration has been + reset to default. + + + + + + Event to notify that the repository has had its configuration changed. + + + Event to notify that the repository has had its configuration changed. + + + + Event raised when the repository's configuration has been changed. + + + + + + Repository specific properties + + + Repository specific properties + + + + These properties can be specified on a repository specific basis. + + + + + + Default Constructor + + + + Initializes the repository with default (empty) properties. + + + + + + Construct the repository using specific properties + + the properties to set for this repository + + + Initializes the repository with specified properties. + + + + + + Test if logger exists + + The name of the logger to lookup + The Logger object with the name specified + + + Check if the named logger exists in the repository. If so return + its reference, otherwise returns null. + + + + + + Returns all the currently defined loggers in the repository + + All the defined loggers + + + Returns all the currently defined loggers in the repository as an Array. + + + + + + Return a new logger instance + + The name of the logger to retrieve + The logger object with the name specified + + + Return a new logger instance. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + + + + Shutdown the repository + + + + Shutdown the repository. Can be overridden in a subclass. + This base class implementation notifies the + listeners and all attached plugins of the shutdown event. + + + + + + Reset the repositories configuration to a default state + + + + Reset all values contained in this instance to their + default state. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the logEvent through this repository. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Returns all the Appenders that are configured as an Array. + + All the Appenders + + + Returns all the Appenders that are configured as an Array. + + + + + + The fully qualified type of the LoggerRepositorySkeleton class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Adds an object renderer for a specific class. + + The type that will be rendered by the renderer supplied. + The object renderer used to render the object. + + + Adds an object renderer for a specific class. + + + + + + Notify the registered listeners that the repository is shutting down + + Empty EventArgs + + + Notify any listeners that this repository is shutting down. + + + + + + Notify the registered listeners that the repository has had its configuration reset + + Empty EventArgs + + + Notify any listeners that this repository's configuration has been reset. + + + + + + Notify the registered listeners that the repository has had its configuration changed + + Empty EventArgs + + + Notify any listeners that this repository's configuration has changed. + + + + + + Raise a configuration changed event on this repository + + EventArgs.Empty + + + Applications that programmatically change the configuration of the repository should + raise this event notification to notify listeners. + + + + + + Flushes all configured Appenders that implement . + + The maximum time in milliseconds to wait for logging events from asycnhronous appenders to be flushed, + or to wait indefinitely. + True if all logging events were flushed successfully, else false. + + + + The name of the repository + + + The string name of the repository + + + + The name of this repository. The name is + used to store and lookup the repositories + stored by the . + + + + + + The threshold for all events in this repository + + + The threshold for all events in this repository + + + + The threshold for all events in this repository + + + + + + RendererMap accesses the object renderer map for this repository. + + + RendererMap accesses the object renderer map for this repository. + + + + RendererMap accesses the object renderer map for this repository. + + + The RendererMap holds a mapping between types and + objects. + + + + + + The plugin map for this repository. + + + The plugin map for this repository. + + + + The plugin map holds the instances + that have been attached to this repository. + + + + + + Get the level map for the Repository. + + + + Get the level map for the Repository. + + + The level map defines the mappings between + level names and objects in + this repository. + + + + + + Flag indicates if this repository has been configured. + + + Flag indicates if this repository has been configured. + + + + Flag indicates if this repository has been configured. + + + + + + Contains a list of internal messages captures during the + last configuration. + + + + + Event to notify that the repository has been shutdown. + + + Event to notify that the repository has been shutdown. + + + + Event raised when the repository has been shutdown. + + + + + + Event to notify that the repository has had its configuration reset. + + + Event to notify that the repository has had its configuration reset. + + + + Event raised when the repository's configuration has been + reset to default. + + + + + + Event to notify that the repository has had its configuration changed. + + + Event to notify that the repository has had its configuration changed. + + + + Event raised when the repository's configuration has been changed. + + + + + + Repository specific properties + + + Repository specific properties + + + These properties can be specified on a repository specific basis + + + + + Basic Configurator interface for repositories + + + + Interface used by basic configurator to configure a + with a default . + + + A should implement this interface to support + configuration by the . + + + Nicko Cadell + Gert Driesen + + + + Initialize the repository using the specified appender + + the appender to use to log all logging events + + + Configure the repository to route all logging events to the + specified appender. + + + + + + Initialize the repository using the specified appenders + + the appenders to use to log all logging events + + + Configure the repository to route all logging events to the + specified appenders. + + + + + + Configure repository using XML + + + + Interface used by Xml configurator to configure a . + + + A should implement this interface to support + configuration by the . + + + Nicko Cadell + Gert Driesen + + + + Initialize the repository using the specified config + + the element containing the root of the config + + + The schema for the XML configuration data is defined by + the implementation. + + + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Construct with properties + + The properties to pass to this repository. + + + Initializes a new instance of the class. + + + + + + Construct with a logger factory + + The factory to use to create new logger instances. + + + Initializes a new instance of the class with + the specified . + + + + + + Construct with properties and a logger factory + + The properties to pass to this repository. + The factory to use to create new logger instances. + + + Initializes a new instance of the class with + the specified . + + + + + + Test if a logger exists + + The name of the logger to lookup + The Logger object with the name specified + + + Check if the named logger exists in the hierarchy. If so return + its reference, otherwise returns null. + + + + + + Returns all the currently defined loggers in the hierarchy as an Array + + All the defined loggers + + + Returns all the currently defined loggers in the hierarchy as an Array. + The root logger is not included in the returned + enumeration. + + + + + + Return a new logger instance named as the first parameter using + the default factory. + + + + Return a new logger instance named as the first parameter using + the default factory. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + The name of the logger to retrieve + The logger object with the name specified + + + + Shutting down a hierarchy will safely close and remove + all appenders in all loggers including the root logger. + + + + Shutting down a hierarchy will safely close and remove + all appenders in all loggers including the root logger. + + + Some appenders need to be closed before the + application exists. Otherwise, pending logging events might be + lost. + + + The Shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Reset all values contained in this hierarchy instance to their default. + + + + Reset all values contained in this hierarchy instance to their + default. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the logEvent through this hierarchy. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Returns all the Appenders that are currently configured + + An array containing all the currently configured appenders + + + Returns all the instances that are currently configured. + All the loggers are searched for appenders. The appenders may also be containers + for appenders and these are also searched for additional loggers. + + + The list returned is unordered but does not contain duplicates. + + + + + + Collect the appenders from an . + The appender may also be a container. + + + + + + + Collect the appenders from an container + + + + + + + Initialize the log4net system using the specified appender + + the appender to use to log all logging events + + + + Initialize the log4net system using the specified appenders + + the appenders to use to log all logging events + + + + Initialize the log4net system using the specified appenders + + the appenders to use to log all logging events + + + This method provides the same functionality as the + method implemented + on this object, but it is protected and therefore can be called by subclasses. + + + + + + Initialize the log4net system using the specified config + + the element containing the root of the config + + + + Initialize the log4net system using the specified config + + the element containing the root of the config + + + This method provides the same functionality as the + method implemented + on this object, but it is protected and therefore can be called by subclasses. + + + + + + Test if this hierarchy is disabled for the specified . + + The level to check against. + + true if the repository is disabled for the level argument, false otherwise. + + + + If this hierarchy has not been configured then this method will + always return true. + + + This method will return true if this repository is + disabled for level object passed as parameter and + false otherwise. + + + See also the property. + + + + + + Clear all logger definitions from the internal hashtable + + + + This call will clear all logger definitions from the internal + hashtable. Invoking this method will irrevocably mess up the + logger hierarchy. + + + You should really know what you are doing before + invoking this method. + + + + + + Return a new logger instance named as the first parameter using + . + + The name of the logger to retrieve + The factory that will make the new logger instance + The logger object with the name specified + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated by the + parameter and linked with its existing + ancestors as well as children. + + + + + + Sends a logger creation event to all registered listeners + + The newly created logger + + Raises the logger creation event. + + + + + Updates all the parents of the specified logger + + The logger to update the parents for + + + This method loops through all the potential parents of + . There 3 possible cases: + + + + No entry for the potential parent of exists + + We create a ProvisionNode for this potential + parent and insert in that provision node. + + + + The entry is of type Logger for the potential parent. + + The entry is 's nearest existing parent. We + update 's parent field with this entry. We also break from + he loop because updating our parent's parent is our parent's + responsibility. + + + + The entry is of type ProvisionNode for this potential parent. + + We add to the list of children for this + potential parent. + + + + + + + + Replace a with a in the hierarchy. + + + + + + We update the links for all the children that placed themselves + in the provision node 'pn'. The second argument 'log' is a + reference for the newly created Logger, parent of all the + children in 'pn'. + + + We loop on all the children 'c' in 'pn'. + + + If the child 'c' has been already linked to a child of + 'log' then there is no need to update 'c'. + + + Otherwise, we set log's parent field to c's parent and set + c's parent field to log. + + + + + + Define or redefine a Level using the values in the argument + + the level values + + + Define or redefine a Level using the values in the argument + + + Supports setting levels via the configuration file. + + + + + + Set a Property using the values in the argument + + the property value + + + Set a Property using the values in the argument. + + + Supports setting property values via the configuration file. + + + + + + The fully qualified type of the Hierarchy class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Event used to notify that a logger has been created. + + + + Event raised when a logger is created. + + + + + + Has no appender warning been emitted + + + + Flag to indicate if we have already issued a warning + about not having an appender warning. + + + + + + Get the root of this hierarchy + + + + Get the root of this hierarchy. + + + + + + Gets or sets the default instance. + + The default + + + The logger factory is used to create logger instances. + + + + + + A class to hold the value, name and display name for a level + + + + A class to hold the value, name and display name for a level + + + + + + Override Object.ToString to return sensible debug info + + string info about this object + + + + Value of the level + + + + If the value is not set (defaults to -1) the value will be looked + up for the current level with the same name. + + + + + + Name of the level + + + The name of the level + + + + The name of the level. + + + + + + Display name for the level + + + The display name of the level + + + + The display name of the level. + + + + + + Used internally to accelerate hash table searches. + + + + Internal class used to improve performance of + string keyed hashtables. + + + The hashcode of the string is cached for reuse. + The string is stored as an interned value. + When comparing two objects for equality + the reference equality of the interned strings is compared. + + + Nicko Cadell + Gert Driesen + + + + Construct key with string name + + + + Initializes a new instance of the class + with the specified name. + + + Stores the hashcode of the string and interns + the string key to optimize comparisons. + + + The Compact Framework 1.0 the + method does not work. On the Compact Framework + the string keys are not interned nor are they + compared by reference. + + + The name of the logger. + + + + Returns a hash code for the current instance. + + A hash code for the current instance. + + + Returns the cached hashcode. + + + + + + Determines whether two instances + are equal. + + The to compare with the current . + + true if the specified is equal to the current ; otherwise, false. + + + + Compares the references of the interned strings. + + + + + + Provision nodes are used where no logger instance has been specified + + + + instances are used in the + when there is no specified + for that node. + + + A provision node holds a list of child loggers on behalf of + a logger that does not exist. + + + Nicko Cadell + Gert Driesen + + + + Create a new provision node with child node + + A child logger to add to this node. + + + Initializes a new instance of the class + with the specified child logger. + + + + + + The sits at the root of the logger hierarchy tree. + + + + The is a regular except + that it provides several guarantees. + + + First, it cannot be assigned a null + level. Second, since the root logger cannot have a parent, the + property always returns the value of the + level field without walking the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Construct a + + The level to assign to the root logger. + + + Initializes a new instance of the class with + the specified logging level. + + + The root logger names itself as "root". However, the root + logger cannot be retrieved by name. + + + + + + The fully qualified type of the RootLogger class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the assigned level value without walking the logger hierarchy. + + The assigned level value without walking the logger hierarchy. + + + Because the root logger cannot have a parent and its level + must not be null this property just returns the + value of . + + + + + + Gets or sets the assigned for the root logger. + + + The of the root logger. + + + + Setting the level of the root logger to a null reference + may have catastrophic results. We prevent this here. + + + + + + Initializes the log4net environment using an XML DOM. + + + + Configures a using an XML DOM. + + + Nicko Cadell + Gert Driesen + + + + Construct the configurator for a hierarchy + + The hierarchy to build. + + + Initializes a new instance of the class + with the specified . + + + + + + Configure the hierarchy by parsing a DOM tree of XML elements. + + The root element to parse. + + + Configure the hierarchy by parsing a DOM tree of XML elements. + + + + + + Parse appenders by IDREF. + + The appender ref element. + The instance of the appender that the ref refers to. + + + Parse an XML element that represents an appender and return + the appender. + + + + + + Parses an appender element. + + The appender element. + The appender instance or null when parsing failed. + + + Parse an XML element that represents an appender and return + the appender instance. + + + + + + Parses a logger element. + + The logger element. + + + Parse an XML element that represents a logger. + + + + + + Parses the root logger element. + + The root element. + + + Parse an XML element that represents the root logger. + + + + + + Parses the children of a logger element. + + The category element. + The logger instance. + Flag to indicate if the logger is the root logger. + + + Parse the child elements of a <logger> element. + + + + + + Parses an object renderer. + + The renderer element. + + + Parse an XML element that represents a renderer. + + + + + + Parses a level element. + + The level element. + The logger object to set the level on. + Flag to indicate if the logger is the root logger. + + + Parse an XML element that represents a level. + + + + + + Sets a parameter on an object. + + The parameter element. + The object to set the parameter on. + + The parameter name must correspond to a writable property + on the object. The value of the parameter is a string, + therefore this function will attempt to set a string + property first. If unable to set a string property it + will inspect the property and its argument type. It will + attempt to call a static method called Parse on the + type of the property. This method will take a single + string argument and return a value that can be used to + set the property. + + + + + Test if an element has no attributes or child elements + + the element to inspect + true if the element has any attributes or child elements, false otherwise + + + + Test if a is constructible with Activator.CreateInstance. + + the type to inspect + true if the type is creatable using a default constructor, false otherwise + + + + Look for a method on the that matches the supplied + + the type that has the method + the name of the method + the method info found + + + The method must be a public instance method on the . + The method must be named or "Add" followed by . + The method must take a single parameter. + + + + + + Converts a string value to a target type. + + The type of object to convert the string to. + The string value to use as the value of the object. + + + An object of type with value or + null when the conversion could not be performed. + + + + + + Creates an object as specified in XML. + + The XML element that contains the definition of the object. + The object type to use if not explicitly specified. + The type that the returned object must be or must inherit from. + The object or null + + + Parse an XML element and create an object instance based on the configuration + data. + + + The type of the instance may be specified in the XML. If not + specified then the is used + as the type. However the type is specified it must support the + type. + + + + + + key: appenderName, value: appender. + + + + + The Hierarchy being configured. + + + + + The fully qualified type of the XmlHierarchyConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + + + + + + + + + + + + + + + + + Delegate used to handle logger repository shutdown event notifications + + The that is shutting down. + Empty event args + + + Delegate used to handle logger repository shutdown event notifications. + + + + + + Delegate used to handle logger repository configuration reset event notifications + + The that has had its configuration reset. + Empty event args + + + Delegate used to handle logger repository configuration reset event notifications. + + + + + + Delegate used to handle event notifications for logger repository configuration changes. + + The that has had its configuration changed. + Empty event arguments. + + + Delegate used to handle event notifications for logger repository configuration changes. + + + + + + Write the name of the current AppDomain to the output + + + + Write the name of the current AppDomain to the output writer + + + Nicko Cadell + + + + Write the name of the current AppDomain to the output + + the writer to write to + null, state is not set + + + Writes name of the current AppDomain to the output . + + + + + + AppSetting pattern converter + + + + This pattern converter reads appSettings from the application configuration file. + + + If the is specified then that will be used to + lookup a single appSettings value. If no is specified + then all appSettings will be dumped as a list of key value pairs. + + + A typical use is to specify a base directory for log files, e.g. + + + + + ... + + + ]]> + + + + + + + Write the property value to the output + + that will receive the formatted result. + null, state is not set + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + Write the current date to the output + + + + Date pattern converter, uses a to format + the current date and time to the writer as a string. + + + The value of the determines + the formatting of the date. The following values are allowed: + + + Option value + Output + + + ISO8601 + + Uses the formatter. + Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. + + + + DATE + + Uses the formatter. + Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". + + + + ABSOLUTE + + Uses the formatter. + Formats using the "HH:mm:ss,fff" for example, "15:49:37,459". + + + + other + + Any other pattern string uses the formatter. + This formatter passes the pattern string to the + method. + For details on valid patterns see + DateTimeFormatInfo Class. + + + + + + The date and time is in the local time zone and is rendered in that zone. + To output the time in Universal time see . + + + Nicko Cadell + + + + The used to render the date to a string + + + + The used to render the date to a string + + + + + + Initialize the converter options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the current date to the output + + that will receive the formatted result. + null, state is not set + + + Pass the current date and time to the + for it to render it to the writer. + + + The date and time passed is in the local time zone. + + + + + + The fully qualified type of the DatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write an folder path to the output + + + + Write an special path environment folder path to the output writer. + The value of the determines + the name of the variable to output. + should be a value in the enumeration. + + + Ron Grabowski + + + + Write an special path environment folder path to the output + + the writer to write to + null, state is not set + + + Writes the special path environment folder path to the output . + The name of the special path environment folder path to output must be set + using the + property. + + + + + + The fully qualified type of the EnvironmentFolderPathPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write an environment variable to the output + + + + Write an environment variable to the output writer. + The value of the determines + the name of the variable to output. + + + Nicko Cadell + + + + Write an environment variable to the output + + the writer to write to + null, state is not set + + + Writes the environment variable to the output . + The name of the environment variable to output must be set + using the + property. + + + + + + The fully qualified type of the EnvironmentPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the current thread identity to the output + + + + Write the current thread identity to the output writer + + + Nicko Cadell + + + + Write the current thread identity to the output + + the writer to write to + null, state is not set + + + Writes the current thread identity to the output . + + + + + + The fully qualified type of the IdentityPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Pattern converter for literal string instances in the pattern + + + + Writes the literal string value specified in the + property to + the output. + + + Nicko Cadell + + + + Set the next converter in the chain + + The next pattern converter in the chain + The next pattern converter + + + Special case the building of the pattern converter chain + for instances. Two adjacent + literals in the pattern can be represented by a single combined + pattern converter. This implementation detects when a + is added to the chain + after this converter and combines its value with this converter's + literal value. + + + + + + Write the literal to the output + + the writer to write to + null, not set + + + Override the formatting behavior to ignore the FormattingInfo + because we have a literal instead. + + + Writes the value of + to the output . + + + + + + Convert this pattern into the rendered message + + that will receive the formatted result. + null, not set + + + This method is not used. + + + + + + Writes a newline to the output + + + + Writes the system dependent line terminator to the output. + This behavior can be overridden by setting the : + + + + Option Value + Output + + + DOS + DOS or Windows line terminator "\r\n" + + + UNIX + UNIX line terminator "\n" + + + + Nicko Cadell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the current process ID to the output + + + + Write the current process ID to the output writer + + + Nicko Cadell + + + + Write the current process ID to the output + + the writer to write to + null, state is not set + + + Write the current process ID to the output . + + + + + + The fully qualified type of the ProcessIdPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Property pattern converter + + + + This pattern converter reads the thread and global properties. + The thread properties take priority over global properties. + See for details of the + thread properties. See for + details of the global properties. + + + If the is specified then that will be used to + lookup a single property. If no is specified + then all properties will be dumped as a list of key value pairs. + + + Nicko Cadell + + + + Write the property value to the output + + that will receive the formatted result. + null, state is not set + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + A Pattern converter that generates a string of random characters + + + + The converter generates a string of random characters. By default + the string is length 4. This can be changed by setting the + to the string value of the length required. + + + The random characters in the string are limited to uppercase letters + and numbers only. + + + The random number generator used by this class is not cryptographically secure. + + + Nicko Cadell + + + + Shared random number generator + + + + + Length of random string to generate. Default length 4. + + + + + Initialize the converter options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write a randoim string to the output + + the writer to write to + null, state is not set + + + Write a randoim string to the output . + + + + + + The fully qualified type of the RandomStringPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the current threads username to the output + + + + Write the current threads username to the output writer + + + Nicko Cadell + + + + Write the current threads username to the output + + the writer to write to + null, state is not set + + + Write the current threads username to the output . + + + + + + The fully qualified type of the UserNamePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the UTC date time to the output + + + + Date pattern converter, uses a to format + the current date and time in Universal time. + + + See the for details on the date pattern syntax. + + + + Nicko Cadell + + + + Write the current date and time to the output + + that will receive the formatted result. + null, state is not set + + + Pass the current date and time to the + for it to render it to the writer. + + + The date is in Universal time when it is rendered. + + + + + + + The fully qualified type of the UtcDatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Type converter for Boolean. + + + + Supports conversion from string to bool type. + + + + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Convert the source object to the type supported by this object + + the object to convert + the converted object + + + Uses the method to convert the + argument to a . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Exception base type for conversion errors. + + + + This type extends . It + does not add any new functionality but does differentiate the + type of exception being thrown. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + A message to include with the exception. + + + Initializes a new instance of the class + with the specified message. + + + + + + Constructor + + A message to include with the exception. + A nested exception to include. + + + Initializes a new instance of the class + with the specified message and inner exception. + + + + + + Serialization constructor + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Creates a new instance of the class. + + The conversion destination type. + The value to convert. + An instance of the . + + + Creates a new instance of the class. + + + + + + Creates a new instance of the class. + + The conversion destination type. + The value to convert. + A nested exception to include. + An instance of the . + + + Creates a new instance of the class. + + + + + + Register of type converters for specific types. + + + + Maintains a registry of type converters used to convert between + types. + + + Use the and + methods to register new converters. + The and methods + lookup appropriate converters to use. + + + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + Initializes a new instance of the class. + + + + + Static constructor. + + + + This constructor defines the intrinsic type converters. + + + + + + Adds a converter for a specific type. + + The type being converted to. + The type converter to use to convert to the destination type. + + + Adds a converter instance for a specific type. + + + + + + Adds a converter for a specific type. + + The type being converted to. + The type of the type converter to use to convert to the destination type. + + + Adds a converter for a specific type. + + + + + + Gets the type converter to use to convert values to the destination type. + + The type being converted from. + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + Gets the type converter to use to convert values to the destination type. + + + + + + Gets the type converter to use to convert values to the destination type. + + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + Gets the type converter to use to convert values to the destination type. + + + + + + Lookups the type converter to use as specified by the attributes on the + destination type. + + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + + Creates the instance of the type converter. + + The type of the type converter. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + The type specified for the type converter must implement + the or interfaces + and must have a public default (no argument) constructor. + + + + + + The fully qualified type of the ConverterRegistry class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Mapping from to type converter. + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to an encoding + the encoding + + + Uses the method to + convert the argument to an . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Interface supported by type converters + + + + This interface supports conversion from a single type to arbitrary types. + See . + + + Nicko Cadell + + + + Returns whether this converter can convert the object to the specified type + + A Type that represents the type you want to convert to + true if the conversion is possible + + + Test if the type supported by this converter can be converted to the + . + + + + + + Converts the given value object to the specified type, using the arguments + + the object to convert + The Type to convert the value parameter to + the converted object + + + Converts the (which must be of the type supported + by this converter) to the specified.. + + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to an IPAddress + the IPAddress + + + Uses the method to convert the + argument to an . + If that fails then the string is resolved as a DNS hostname. + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Valid characters in an IPv4 or IPv6 address string. (Does not support subnets) + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + The string is used as the + of the . + + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a PatternLayout + the PatternLayout + + + Creates and returns a new using + the as the + . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Convert between string and + + + + Supports conversion from string to type, + and from a type to a string. + + + The string is used as the + of the . + + + + + + Nicko Cadell + + + + Can the target type be converted to the type supported by this object + + A that represents the type you want to convert to + true if the conversion is possible + + + Returns true if the is + assignable from a type. + + + + + + Converts the given value object to the specified type, using the arguments + + the object to convert + The Type to convert the value parameter to + the converted object + + + Uses the method to convert the + argument to a . + + + + The object cannot be converted to the + . To check for this condition use the + method. + + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a PatternString + the PatternString + + + Creates and returns a new using + the as the + . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a Type + the Type + + + Uses the method to convert the + argument to a . + Additional effort is made to locate partially specified types + by searching the loaded assemblies. + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Attribute used to associate a type converter + + + + Class and Interface level attribute that specifies a type converter + to use with the associated type. + + + To associate a type converter with a target type apply a + TypeConverterAttribute to the target type. Specify the + type of the type converter on the attribute. + + + Nicko Cadell + Gert Driesen + + + + The string type name of the type converter + + + + + Default constructor + + + + Default constructor + + + + + + Create a new type converter attribute for the specified type name + + The string type name of the type converter + + + The type specified must implement the + or the interfaces. + + + + + + Create a new type converter attribute for the specified type + + The type of the type converter + + + The type specified must implement the + or the interfaces. + + + + + + The string type name of the type converter + + + The string type name of the type converter + + + + The type specified must implement the + or the interfaces. + + + + + + A straightforward implementation of the interface. + + + + This is the default implementation of the + interface. Implementors of the interface + should aggregate an instance of this type. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Append on on all attached appenders. + + The event being logged. + The number of appenders called. + + + Calls the method on all + attached appenders. + + + + + + Append on on all attached appenders. + + The array of events being logged. + The number of appenders called. + + + Calls the method on all + attached appenders. + + + + + + Calls the DoAppende method on the with + the objects supplied. + + The appender + The events + + + If the supports the + interface then the will be passed + through using that interface. Otherwise the + objects in the array will be passed one at a time. + + + + + + Attaches an appender. + + The appender to add. + + + If the appender is already in the list it won't be added again. + + + + + + Gets an attached appender with the specified name. + + The name of the appender to get. + + The appender with the name specified, or null if no appender with the + specified name is found. + + + + Lookup an attached appender by name. + + + + + + Removes all attached appenders. + + + + Removes and closes all attached appenders + + + + + + Removes the specified appender from the list of attached appenders. + + The appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + List of appenders + + + + + Array of appenders, used to cache the m_appenderList + + + + + The fully qualified type of the AppenderAttachedImpl class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets all attached appenders. + + + A collection of attached appenders, or null if there + are no attached appenders. + + + + The read only collection of all currently attached appenders. + + + + + + This class aggregates several PropertiesDictionary collections together. + + + + Provides a dictionary style lookup over an ordered list of + collections. + + + Nicko Cadell + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Add a Properties Dictionary to this composite collection + + the properties to add + + + Properties dictionaries added first take precedence over dictionaries added + later. + + + + + + Flatten this composite collection into a single properties dictionary + + the flattened dictionary + + + Reduces the collection of ordered dictionaries to a single dictionary + containing the resultant values for the keys. + + + + + + Gets the value of a property + + + The value for the property with the specified key + + + + Looks up the value for the specified. + The collections are searched + in the order in which they were added to this collection. The value + returned is the value held by the first collection that contains + the specified key. + + + If none of the collections contain the specified key then + null is returned. + + + + + + Base class for Context Properties implementations + + + + This class defines a basic property get set accessor + + + Nicko Cadell + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Gets or sets the value of a property + + + + + + Wrapper class used to map converter names to converter types + + + + Pattern converter info class used during configuration by custom + PatternString and PatternLayer converters. + + + + + + default constructor + + + + + + + + + + + Gets or sets the name of the conversion pattern + + + + The name of the pattern in the format string + + + + + + Gets or sets the type of the converter + + + + The value specified must extend the + type. + + + + + + + + + + + Subclass of that maintains a count of + the number of bytes written. + + + + This writer counts the number of bytes written. + + + Nicko Cadell + Gert Driesen + + + + that does not leak exceptions + + + + does not throw exceptions when things go wrong. + Instead, it delegates error handling to its . + + + Nicko Cadell + Gert Driesen + + + + Adapter that extends and forwards all + messages to an instance of . + + + + Adapter that extends and forwards all + messages to an instance of . + + + Nicko Cadell + + + + The writer to forward messages to + + + + + Create an instance of that forwards all + messages to a . + + The to forward to + + + Create an instance of that forwards all + messages to a . + + + + + + Closes the writer and releases any system resources associated with the writer + + + + + + + + + Dispose this writer + + flag indicating if we are being disposed + + + Dispose this writer + + + + + + Flushes any buffered output + + + + Clears all buffers for the writer and causes any buffered data to be written + to the underlying device + + + + + + Writes a character to the wrapped TextWriter + + the value to write to the TextWriter + + + Writes a character to the wrapped TextWriter + + + + + + Writes a character buffer to the wrapped TextWriter + + the data buffer + the start index + the number of characters to write + + + Writes a character buffer to the wrapped TextWriter + + + + + + Writes a string to the wrapped TextWriter + + the value to write to the TextWriter + + + Writes a string to the wrapped TextWriter + + + + + + Gets or sets the underlying . + + + The underlying . + + + + Gets or sets the underlying . + + + + + + The Encoding in which the output is written + + + The + + + + The Encoding in which the output is written + + + + + + Gets an object that controls formatting + + + The format provider + + + + Gets an object that controls formatting + + + + + + Gets or sets the line terminator string used by the TextWriter + + + The line terminator to use + + + + Gets or sets the line terminator string used by the TextWriter + + + + + + Constructor + + the writer to actually write to + the error handler to report error to + + + Create a new QuietTextWriter using a writer and error handler + + + + + + Writes a character to the underlying writer + + the char to write + + + Writes a character to the underlying writer + + + + + + Writes a buffer to the underlying writer + + the buffer to write + the start index to write from + the number of characters to write + + + Writes a buffer to the underlying writer + + + + + + Writes a string to the output. + + The string data to write to the output. + + + Writes a string to the output. + + + + + + Closes the underlying output writer. + + + + Closes the underlying output writer. + + + + + + The error handler instance to pass all errors to + + + + + Flag to indicate if this writer is closed + + + + + Gets or sets the error handler that all errors are passed to. + + + The error handler that all errors are passed to. + + + + Gets or sets the error handler that all errors are passed to. + + + + + + Gets a value indicating whether this writer is closed. + + + true if this writer is closed, otherwise false. + + + + Gets a value indicating whether this writer is closed. + + + + + + Constructor + + The to actually write to. + The to report errors to. + + + Creates a new instance of the class + with the specified and . + + + + + + Writes a character to the underlying writer and counts the number of bytes written. + + the char to write + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Writes a buffer to the underlying writer and counts the number of bytes written. + + the buffer to write + the start index to write from + the number of characters to write + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Writes a string to the output and counts the number of bytes written. + + The string data to write to the output. + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Total number of bytes written. + + + + + Gets or sets the total number of bytes written. + + + The total number of bytes written. + + + + Gets or sets the total number of bytes written. + + + + + + A fixed size rolling buffer of logging events. + + + + An array backed fixed size leaky bucket. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The maximum number of logging events in the buffer. + + + Initializes a new instance of the class with + the specified maximum number of buffered logging events. + + + The argument is not a positive integer. + + + + Appends a to the buffer. + + The event to append to the buffer. + The event discarded from the buffer, if the buffer is full, otherwise null. + + + Append an event to the buffer. If the buffer still contains free space then + null is returned. If the buffer is full then an event will be dropped + to make space for the new event, the event dropped is returned. + + + + + + Get and remove the oldest event in the buffer. + + The oldest logging event in the buffer + + + Gets the oldest (first) logging event in the buffer and removes it + from the buffer. + + + + + + Pops all the logging events from the buffer into an array. + + An array of all the logging events in the buffer. + + + Get all the events in the buffer and clear the buffer. + + + + + + Clear the buffer + + + + Clear the buffer of all events. The events in the buffer are lost. + + + + + + Gets the th oldest event currently in the buffer. + + The th oldest event currently in the buffer. + + + If is outside the range 0 to the number of events + currently in the buffer, then null is returned. + + + + + + Gets the maximum size of the buffer. + + The maximum size of the buffer. + + + Gets the maximum size of the buffer + + + + + + Gets the number of logging events in the buffer. + + The number of logging events in the buffer. + + + This number is guaranteed to be in the range 0 to + (inclusive). + + + + + + An always empty . + + + + A singleton implementation of the + interface that always represents an empty collection. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Copies the elements of the to an + , starting at a particular Array index. + + The one-dimensional + that is the destination of the elements copied from + . The Array must have zero-based + indexing. + The zero-based index in array at which + copying begins. + + + As the collection is empty no values are copied into the array. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + The singleton instance of the empty collection. + + + + + Gets the singleton instance of the empty collection. + + The singleton instance of the empty collection. + + + Gets the singleton instance of the empty collection. + + + + + + Gets a value indicating if access to the is synchronized (thread-safe). + + + true if access to the is synchronized (thread-safe); otherwise, false. + + + + For the this property is always true. + + + + + + Gets the number of elements contained in the . + + + The number of elements contained in the . + + + + As the collection is empty the is always 0. + + + + + + Gets an object that can be used to synchronize access to the . + + + An object that can be used to synchronize access to the . + + + + As the collection is empty and thread safe and synchronized this instance is also + the object. + + + + + + An always empty . + + + + A singleton implementation of the + interface that always represents an empty collection. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Copies the elements of the to an + , starting at a particular Array index. + + The one-dimensional + that is the destination of the elements copied from + . The Array must have zero-based + indexing. + The zero-based index in array at which + copying begins. + + + As the collection is empty no values are copied into the array. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + Adds an element with the provided key and value to the + . + + The to use as the key of the element to add. + The to use as the value of the element to add. + + + As the collection is empty no new values can be added. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + Removes all elements from the . + + + + As the collection is empty no values can be removed. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + Determines whether the contains an element + with the specified key. + + The key to locate in the . + false + + + As the collection is empty the method always returns false. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + Removes the element with the specified key from the . + + The key of the element to remove. + + + As the collection is empty no values can be removed. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + The singleton instance of the empty dictionary. + + + + + Gets the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets a value indicating if access to the is synchronized (thread-safe). + + + true if access to the is synchronized (thread-safe); otherwise, false. + + + + For the this property is always true. + + + + + + Gets the number of elements contained in the + + + The number of elements contained in the . + + + + As the collection is empty the is always 0. + + + + + + Gets an object that can be used to synchronize access to the . + + + An object that can be used to synchronize access to the . + + + + As the collection is empty and thread safe and synchronized this instance is also + the object. + + + + + + Gets a value indicating whether the has a fixed size. + + true + + + As the collection is empty always returns true. + + + + + + Gets a value indicating whether the is read-only. + + true + + + As the collection is empty always returns true. + + + + + + Gets an containing the keys of the . + + An containing the keys of the . + + + As the collection is empty a is returned. + + + + + + Gets an containing the values of the . + + An containing the values of the . + + + As the collection is empty a is returned. + + + + + + Gets or sets the element with the specified key. + + The key of the element to get or set. + null + + + As the collection is empty no values can be looked up or stored. + If the index getter is called then null is returned. + A is thrown if the setter is called. + + + This dictionary is always empty and cannot be modified. + + + + Contain the information obtained when parsing formatting modifiers + in conversion modifiers. + + + + Holds the formatting information extracted from the format string by + the . This is used by the + objects when rendering the output. + + + Nicko Cadell + Gert Driesen + + + + Defaut Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + + + Initializes a new instance of the class + with the specified parameters. + + + + + + Gets or sets the minimum value. + + + The minimum value. + + + + Gets or sets the minimum value. + + + + + + Gets or sets the maximum value. + + + The maximum value. + + + + Gets or sets the maximum value. + + + + + + Gets or sets a flag indicating whether left align is enabled + or not. + + + A flag indicating whether left align is enabled or not. + + + + Gets or sets a flag indicating whether left align is enabled or not. + + + + + + Implementation of Properties collection for the + + + + This class implements a properties collection that is thread safe and supports both + storing properties and capturing a read only copy of the current propertied. + + + This class is optimized to the scenario where the properties are read frequently + and are modified infrequently. + + + Nicko Cadell + + + + The read only copy of the properties. + + + + This variable is declared volatile to prevent the compiler and JIT from + reordering reads and writes of this thread performed on different threads. + + + + + + Lock object used to synchronize updates within this instance + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Remove a property from the global context + + the key for the entry to remove + + + Removing an entry from the global context properties is relatively expensive compared + with reading a value. + + + + + + Clear the global context properties + + + + + Get a readonly immutable copy of the properties + + the current global context properties + + + This implementation is fast because the GlobalContextProperties class + stores a readonly copy of the properties. + + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Reading the value for a key is faster than setting the value. + When the value is written a new read only copy of + the properties is created. + + + + + + Manages a mapping from levels to + + + + Manages an ordered mapping from instances + to subclasses. + + + Nicko Cadell + + + + Default constructor + + + + Initialise a new instance of . + + + + + + Add a to this mapping + + the entry to add + + + If a has previously been added + for the same then that entry will be + overwritten. + + + + + + Lookup the mapping for the specified level + + the level to lookup + the for the level or null if no mapping found + + + Lookup the value for the specified level. Finds the nearest + mapping value for the level that is equal to or less than the + specified. + + + If no mapping could be found then null is returned. + + + + + + Initialize options + + + + Caches the sorted list of in an array + + + + + + Implementation of Properties collection for the + + + + Class implements a collection of properties that is specific to each thread. + The class is not synchronized as each thread has its own . + + + This class stores its properties in a slot on the named + log4net.Util.LogicalThreadContextProperties. + + + For .NET Standard 1.3 this class uses + System.Threading.AsyncLocal rather than . + + + The requires a link time + for the + . + If the calling code does not have this permission then this context will be disabled. + It will not store any property values set on it. + + + Nicko Cadell + + + + Flag used to disable this context if we don't have permission to access the CallContext. + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Remove a property + + the key for the entry to remove + + + Remove the value for the specified from the context. + + + + + + Clear all the context properties + + + + Clear all the context properties + + + + + + Get the PropertiesDictionary stored in the LocalDataStoreSlot for this thread. + + create the dictionary if it does not exist, otherwise return null if is does not exist + the properties for this thread + + + The collection returned is only to be used on the calling thread. If the + caller needs to share the collection between different threads then the + caller must clone the collection before doings so. + + + + + + Gets the call context get data. + + The peroperties dictionary stored in the call context + + The method has a + security link demand, therfore we must put the method call in a seperate method + that we can wrap in an exception handler. + + + + + Sets the call context data. + + The properties. + + The method has a + security link demand, therfore we must put the method call in a seperate method + that we can wrap in an exception handler. + + + + + The fully qualified type of the LogicalThreadContextProperties class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Get or set the property value for the specified. + + + + + + Delegate type used for LogicalThreadContextStack's callbacks. + + + + + Implementation of Stack for the + + + + Implementation of Stack for the + + + Nicko Cadell + + + + The stack store. + + + + + The name of this within the + . + + + + + The callback used to let the register a + new instance of a . + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Clears all the contextual information held in this stack. + + + + Clears all the contextual information held in this stack. + Only call this if you think that this thread is being reused after + a previous call execution which may not have completed correctly. + You do not need to use this method if you always guarantee to call + the method of the + returned from even in exceptional circumstances, + for example by using the using(log4net.LogicalThreadContext.Stacks["NDC"].Push("Stack_Message")) + syntax. + + + + + + Removes the top context from this stack. + + The message in the context that was removed from the top of this stack. + + + Remove the top context from this stack, and return + it to the caller. If this stack is empty then an + empty string (not ) is returned. + + + + + + Pushes a new context message into this stack. + + The new context message. + + An that can be used to clean up the context stack. + + + + Pushes a new context onto this stack. An + is returned that can be used to clean up this stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.LogicalThreadContext.Stacks["NDC"].Push("Stack_Message")) + { + log.Warn("This should have an ThreadContext Stack message"); + } + + + + + + Gets the current context information for this stack. + + The current context information. + + + + Gets the current context information for this stack. + + Gets the current context information + + + Gets the current context information for this stack. + + + + + + Get a portable version of this object + + the portable instance of this object + + + Get a cross thread portable version of this object + + + + + + The number of messages in the stack + + + The current number of messages in the stack + + + + The current number of messages in the stack. That is + the number of times has been called + minus the number of times has been called. + + + + + + Gets and sets the internal stack used by this + + The internal storage stack + + + This property is provided only to support backward compatability + of the . Tytpically the internal stack should not + be modified. + + + + + + Inner class used to represent a single context frame in the stack. + + + + Inner class used to represent a single context frame in the stack. + + + + + + Constructor + + The message for this context. + The parent context in the chain. + + + Initializes a new instance of the class + with the specified message and parent context. + + + + + + Get the message. + + The message. + + + Get the message. + + + + + + Gets the full text of the context down to the root level. + + + The full text of the context down to the root level. + + + + Gets the full text of the context down to the root level. + + + + + + Struct returned from the method. + + + + This struct implements the and is designed to be used + with the pattern to remove the stack frame at the end of the scope. + + + + + + The depth to trim the stack to when this instance is disposed + + + + + The outer LogicalThreadContextStack. + + + + + Constructor + + The internal stack used by the ThreadContextStack. + The depth to return the stack to when this object is disposed. + + + Initializes a new instance of the class with + the specified stack and return depth. + + + + + + Returns the stack to the correct depth. + + + + Returns the stack to the correct depth. + + + + + + Implementation of Stacks collection for the + + + + Implementation of Stacks collection for the + + + Nicko Cadell + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + The fully qualified type of the ThreadContextStacks class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the named thread context stack + + + The named stack + + + + Gets the named thread context stack + + + + + + + + + + + + + Outputs log statements from within the log4net assembly. + + + + Log4net components cannot make log4net logging calls. However, it is + sometimes useful for the user to learn about what log4net is + doing. + + + All log4net internal debug calls go to the standard output stream + whereas internal error messages are sent to the standard error output + stream. + + + Nicko Cadell + Gert Driesen + + + + Formats Prefix, Source, and Message in the same format as the value + sent to Console.Out and Trace.Write. + + + + + + Initializes a new instance of the class. + + + + + + + + + Static constructor that initializes logging by reading + settings from the application configuration file. + + + + The log4net.Internal.Debug application setting + controls internal debugging. This setting should be set + to true to enable debugging. + + + The log4net.Internal.Quiet application setting + suppresses all internal logging including error messages. + This setting should be set to true to enable message + suppression. + + + + + + Raises the LogReceived event when an internal messages is received. + + + + + + + + + Writes log4net internal debug messages to the + standard output stream. + + + The message to log. + + + All internal debug messages are prepended with + the string "log4net: ". + + + + + + Writes log4net internal debug messages to the + standard output stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal debug messages are prepended with + the string "log4net: ". + + + + + + Writes log4net internal warning messages to the + standard error stream. + + The Type that generated this message. + The message to log. + + + All internal warning messages are prepended with + the string "log4net:WARN ". + + + + + + Writes log4net internal warning messages to the + standard error stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal warning messages are prepended with + the string "log4net:WARN ". + + + + + + Writes log4net internal error messages to the + standard error stream. + + The Type that generated this message. + The message to log. + + + All internal error messages are prepended with + the string "log4net:ERROR ". + + + + + + Writes log4net internal error messages to the + standard error stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal debug messages are prepended with + the string "log4net:ERROR ". + + + + + + Writes output to the standard output stream. + + The message to log. + + + Writes to both Console.Out and System.Diagnostics.Trace. + Note that the System.Diagnostics.Trace is not supported + on the Compact Framework. + + + If the AppDomain is not configured with a config file then + the call to System.Diagnostics.Trace may fail. This is only + an issue if you are programmatically creating your own AppDomains. + + + + + + Writes output to the standard error stream. + + The message to log. + + + Writes to both Console.Error and System.Diagnostics.Trace. + Note that the System.Diagnostics.Trace is not supported + on the Compact Framework. + + + If the AppDomain is not configured with a config file then + the call to System.Diagnostics.Trace may fail. This is only + an issue if you are programmatically creating your own AppDomains. + + + + + + Default debug level + + + + + In quietMode not even errors generate any output. + + + + + The event raised when an internal message has been received. + + + + + The Type that generated the internal message. + + + + + The DateTime stamp of when the internal message was received. + + + + + The UTC DateTime stamp of when the internal message was received. + + + + + A string indicating the severity of the internal message. + + + "log4net: ", + "log4net:ERROR ", + "log4net:WARN " + + + + + The internal log message. + + + + + The Exception related to the message. + + + Optional. Will be null if no Exception was passed. + + + + + Gets or sets a value indicating whether log4net internal logging + is enabled or disabled. + + + true if log4net internal logging is enabled, otherwise + false. + + + + When set to true, internal debug level logging will be + displayed. + + + This value can be set by setting the application setting + log4net.Internal.Debug in the application configuration + file. + + + The default value is false, i.e. debugging is + disabled. + + + + + The following example enables internal debugging using the + application configuration file : + + + + + + + + + + + + + Gets or sets a value indicating whether log4net should generate no output + from internal logging, not even for errors. + + + true if log4net should generate no output at all from internal + logging, otherwise false. + + + + When set to true will cause internal logging at all levels to be + suppressed. This means that no warning or error reports will be logged. + This option overrides the setting and + disables all debug also. + + This value can be set by setting the application setting + log4net.Internal.Quiet in the application configuration file. + + + The default value is false, i.e. internal logging is not + disabled. + + + + The following example disables internal logging using the + application configuration file : + + + + + + + + + + + + + + + + + Test if LogLog.Debug is enabled for output. + + + true if Debug is enabled + + + + Test if LogLog.Debug is enabled for output. + + + + + + Test if LogLog.Warn is enabled for output. + + + true if Warn is enabled + + + + Test if LogLog.Warn is enabled for output. + + + + + + Test if LogLog.Error is enabled for output. + + + true if Error is enabled + + + + Test if LogLog.Error is enabled for output. + + + + + + Subscribes to the LogLog.LogReceived event and stores messages + to the supplied IList instance. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a native error code and message. + + + + Represents a Win32 platform native error. + + + Nicko Cadell + Gert Driesen + + + + Create an instance of the class with the specified + error number and message. + + The number of the native error. + The message of the native error. + + + Create an instance of the class with the specified + error number and message. + + + + + + Create a new instance of the class for the last Windows error. + + + An instance of the class for the last windows error. + + + + The message for the error number is lookup up using the + native Win32 FormatMessage function. + + + + + + Create a new instance of the class. + + the error number for the native error + + An instance of the class for the specified + error number. + + + + The message for the specified error number is lookup up using the + native Win32 FormatMessage function. + + + + + + Retrieves the message corresponding with a Win32 message identifier. + + Message identifier for the requested message. + + The message corresponding with the specified message identifier. + + + + The message will be searched for in system message-table resource(s) + using the native FormatMessage function. + + + + + + Return error information string + + error information string + + + Return error information string + + + + + + Formats a message string. + + Formatting options, and how to interpret the parameter. + Location of the message definition. + Message identifier for the requested message. + Language identifier for the requested message. + If includes FORMAT_MESSAGE_ALLOCATE_BUFFER, the function allocates a buffer using the LocalAlloc function, and places the pointer to the buffer at the address specified in . + If the FORMAT_MESSAGE_ALLOCATE_BUFFER flag is not set, this parameter specifies the maximum number of TCHARs that can be stored in the output buffer. If FORMAT_MESSAGE_ALLOCATE_BUFFER is set, this parameter specifies the minimum number of TCHARs to allocate for an output buffer. + Pointer to an array of values that are used as insert values in the formatted message. + + + The function requires a message definition as input. The message definition can come from a + buffer passed into the function. It can come from a message table resource in an + already-loaded module. Or the caller can ask the function to search the system's message + table resource(s) for the message definition. The function finds the message definition + in a message table resource based on a message identifier and a language identifier. + The function copies the formatted message text to an output buffer, processing any embedded + insert sequences if requested. + + + To prevent the usage of unsafe code, this stub does not support inserting values in the formatted message. + + + + + If the function succeeds, the return value is the number of TCHARs stored in the output + buffer, excluding the terminating null character. + + + If the function fails, the return value is zero. To get extended error information, + call . + + + + + + Gets the number of the native error. + + + The number of the native error. + + + + Gets the number of the native error. + + + + + + Gets the message of the native error. + + + The message of the native error. + + + + + Gets the message of the native error. + + + + + An always empty . + + + + A singleton implementation of the over a collection + that is empty and not modifiable. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Test if the enumerator can advance, if so advance. + + false as the cannot advance. + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will always return false. + + + + + + Resets the enumerator back to the start. + + + + As the enumerator is over an empty collection does nothing. + + + + + + The singleton instance of the . + + + + + Gets the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets the current object from the enumerator. + + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current key from the enumerator. + + + Throws an exception because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current value from the enumerator. + + The current value from the enumerator. + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current entry from the enumerator. + + + Throws an because the + never has a current entry. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + An always empty . + + + + A singleton implementation of the over a collection + that is empty and not modifiable. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Test if the enumerator can advance, if so advance + + false as the cannot advance. + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will always return false. + + + + + + Resets the enumerator back to the start. + + + + As the enumerator is over an empty collection does nothing. + + + + + + The singleton instance of the . + + + + + Get the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets the current object from the enumerator. + + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + A SecurityContext used when a SecurityContext is not required + + + + The is a no-op implementation of the + base class. It is used where a + is required but one has not been provided. + + + Nicko Cadell + + + + Singleton instance of + + + + Singleton instance of + + + + + + Private constructor + + + + Private constructor for singleton pattern. + + + + + + Impersonate this SecurityContext + + State supplied by the caller + null + + + No impersonation is done and null is always returned. + + + + + + Implements log4net's default error handling policy which consists + of emitting a message for the first error in an appender and + ignoring all subsequent errors. + + + + The error message is processed using the LogLog sub-system by default. + + + This policy aims at protecting an otherwise working application + from being flooded with error messages when logging fails. + + + Nicko Cadell + Gert Driesen + Ron Grabowski + + + + Default Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + The prefix to use for each message. + + + Initializes a new instance of the class + with the specified prefix. + + + + + + Reset the error handler back to its initial disabled state. + + + + + Log an Error + + The error message. + The exception. + The internal error code. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + Log the very first error + + The error message. + The exception. + The internal error code. + + + Sends the error information to 's Error method. + + + + + + Log an Error + + The error message. + The exception. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + Log an error + + The error message. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + The UTC date the error was recorded. + + + + + Flag to indicate if it is the first error + + + + + The message recorded during the first error. + + + + + The exception recorded during the first error. + + + + + The error code recorded during the first error. + + + + + String to prefix each message with + + + + + The fully qualified type of the OnlyOnceErrorHandler class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Is error logging enabled + + + + Is error logging enabled. Logging is only enabled for the + first error delivered to the . + + + + + + The date the first error that trigged this error handler occurred, or if it has not been triggered. + + + + + The UTC date the first error that trigged this error handler occured, or if it has not been triggered. + + + + + The message from the first error that trigged this error handler. + + + + + The exception from the first error that trigged this error handler. + + + May be . + + + + + The error code from the first error that trigged this error handler. + + + Defaults to + + + + + A convenience class to convert property values to specific types. + + + + Utility functions for converting types and parsing values. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Converts a string to a value. + + String to convert. + The default value. + The value of . + + + If is "true", then true is returned. + If is "false", then false is returned. + Otherwise, is returned. + + + + + + Parses a file size into a number. + + String to parse. + The default value. + The value of . + + + Parses a file size of the form: number[KB|MB|GB] into a + long value. It is scaled with the appropriate multiplier. + + + is returned when + cannot be converted to a value. + + + + + + Converts a string to an object. + + The target type to convert to. + The string to convert to an object. + + The object converted from a string or null when the + conversion failed. + + + + Converts a string to an object. Uses the converter registry to try + to convert the string value into the specified target type. + + + + + + Checks if there is an appropriate type conversion from the source type to the target type. + + The type to convert from. + The type to convert to. + true if there is a conversion from the source type to the target type. + + Checks if there is an appropriate type conversion from the source type to the target type. + + + + + + + Converts an object to the target type. + + The object to convert to the target type. + The type to convert to. + The converted object. + + + Converts an object to the target type. + + + + + + Instantiates an object given a class name. + + The fully qualified class name of the object to instantiate. + The class to which the new object should belong. + The object to return in case of non-fulfillment. + + An instance of the or + if the object could not be instantiated. + + + + Checks that the is a subclass of + . If that test fails or the object could + not be instantiated, then is returned. + + + + + + Performs variable substitution in string from the + values of keys found in . + + The string on which variable substitution is performed. + The dictionary to use to lookup variables. + The result of the substitutions. + + + The variable substitution delimiters are ${ and }. + + + For example, if props contains key=value, then the call + + + + string s = OptionConverter.SubstituteVariables("Value of key is ${key}."); + + + + will set the variable s to "Value of key is value.". + + + If no value could be found for the specified key, then substitution + defaults to an empty string. + + + For example, if system properties contains no value for the key + "nonExistentKey", then the call + + + + string s = OptionConverter.SubstituteVariables("Value of nonExistentKey is [${nonExistentKey}]"); + + + + will set s to "Value of nonExistentKey is []". + + + An Exception is thrown if contains a start + delimiter "${" which is not balanced by a stop delimiter "}". + + + + + + Converts the string representation of the name or numeric value of one or + more enumerated constants to an equivalent enumerated object. + + The type to convert to. + The enum string value. + If true, ignore case; otherwise, regard case. + An object of type whose value is represented by . + + + + The fully qualified type of the OptionConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Most of the work of the class + is delegated to the PatternParser class. + + + + The PatternParser processes a pattern string and + returns a chain of objects. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The pattern to parse. + + + Initializes a new instance of the class + with the specified pattern string. + + + + + + Parses the pattern into a chain of pattern converters. + + The head of a chain of pattern converters. + + + Parses the pattern into a chain of pattern converters. + + + + + + Build the unified cache of converters from the static and instance maps + + the list of all the converter names + + + Build the unified cache of converters from the static and instance maps + + + + + + Internal method to parse the specified pattern to find specified matches + + the pattern to parse + the converter names to match in the pattern + + + The matches param must be sorted such that longer strings come before shorter ones. + + + + + + Process a parsed literal + + the literal text + + + + Process a parsed converter pattern + + the name of the converter + the optional option for the converter + the formatting info for the converter + + + + Resets the internal state of the parser and adds the specified pattern converter + to the chain. + + The pattern converter to add. + + + + The first pattern converter in the chain + + + + + the last pattern converter in the chain + + + + + The pattern + + + + + Internal map of converter identifiers to converter types + + + + This map overrides the static s_globalRulesRegistry map. + + + + + + The fully qualified type of the PatternParser class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Get the converter registry used by this parser + + + The converter registry used by this parser + + + + Get the converter registry used by this parser + + + + + + Sort strings by length + + + + that orders strings by string length. + The longest strings are placed first + + + + + + This class implements a patterned string. + + + + This string has embedded patterns that are resolved and expanded + when the string is formatted. + + + This class functions similarly to the + in that it accepts a pattern and renders it to a string. Unlike the + however the PatternString + does not render the properties of a specific but + of the process in general. + + + The recognized conversion pattern names are: + + + + Conversion Pattern Name + Effect + + + appdomain + + + Used to output the friendly name of the current AppDomain. + + + + + appsetting + + + Used to output the value of a specific appSetting key in the application + configuration file. + + + + + date + + + Used to output the current date and time in the local time zone. + To output the date in universal time use the %utcdate pattern. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %date{HH:mm:ss,fff} or + %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %date{ISO8601} or %date{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + env + + + Used to output the a specific environment variable. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %env{COMPUTERNAME} would include the value + of the COMPUTERNAME environment variable. + + + The env pattern is not supported on the .NET Compact Framework. + + + + + identity + + + Used to output the user name for the currently active user + (Principal.Identity.Name). + + + + + newline + + + Outputs the platform dependent line separator character or + characters. + + + This conversion pattern name offers the same performance as using + non-portable line separator strings such as "\n", or "\r\n". + Thus, it is the preferred way of specifying a line separator. + + + + + processid + + + Used to output the system process ID for the current process. + + + + + property + + + Used to output a specific context property. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %property{user} would include the value + from the property that is keyed by the string 'user'. Each property value + that is to be included in the log must be specified separately. + Properties are stored in logging contexts. By default + the log4net:HostName property is set to the name of machine on + which the event was originally logged. + + + If no key is specified, e.g. %property then all the keys and their + values are printed in a comma separated list. + + + The properties of an event are combined from a number of different + contexts. These are listed below in the order in which they are searched. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + random + + + Used to output a random string of characters. The string is made up of + uppercase letters and numbers. By default the string is 4 characters long. + The length of the string can be specified within braces directly following the + pattern specifier, e.g. %random{8} would output an 8 character string. + + + + + username + + + Used to output the WindowsIdentity for the currently + active user. + + + + + utcdate + + + Used to output the date of the logging event in universal time. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %utcdate{HH:mm:ss,fff} or + %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %utcdate{ISO8601} or %utcdate{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + % + + + The sequence %% outputs a single percent sign. + + + + + + Additional pattern converters may be registered with a specific + instance using or + . + + + See the for details on the + format modifiers supported by the patterns. + + + Nicko Cadell + + + + Internal map of converter identifiers to converter types. + + + + + the pattern + + + + + the head of the pattern converter chain + + + + + patterns defined on this PatternString only + + + + + Initialize the global registry + + + + + Default constructor + + + + Initialize a new instance of + + + + + + Constructs a PatternString + + The pattern to use with this PatternString + + + Initialize a new instance of with the pattern specified. + + + + + + Initialize object options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Create the used to parse the pattern + + the pattern to parse + The + + + Returns PatternParser used to parse the conversion string. Subclasses + may override this to return a subclass of PatternParser which recognize + custom conversion pattern name. + + + + + + Produces a formatted string as specified by the conversion pattern. + + The TextWriter to write the formatted event to + + + Format the pattern to the . + + + + + + Format the pattern as a string + + the pattern formatted as a string + + + Format the pattern to a string. + + + + + + Add a converter to this PatternString + + the converter info + + + This version of the method is used by the configurator. + Programmatic users should use the alternative method. + + + + + + Add a converter to this PatternString + + the name of the conversion pattern for this converter + the type of the converter + + + Add a converter to this PatternString + + + + + + Gets or sets the pattern formatting string + + + The pattern formatting string + + + + The ConversionPattern option. This is the string which + controls formatting and consists of a mix of literal content and + conversion specifiers. + + + + + + String keyed object map. + + + + While this collection is serializable only member + objects that are serializable will + be serialized along with this collection. + + + Nicko Cadell + Gert Driesen + + + + String keyed object map that is read only. + + + + This collection is readonly and cannot be modified. + + + While this collection is serializable only member + objects that are serializable will + be serialized along with this collection. + + + Nicko Cadell + Gert Driesen + + + + The Hashtable used to store the properties data + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Copy Constructor + + properties to copy + + + Initializes a new instance of the class. + + + + + + Deserialization constructor + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Gets the key names. + + An array of all the keys. + + + Gets the key names. + + + + + + Test if the dictionary contains a specified key + + the key to look for + true if the dictionary contains the specified key + + + Test if the dictionary contains a specified key + + + + + + Serializes this object into the provided. + + The to populate with data. + The destination for this serialization. + + + Serializes this object into the provided. + + + + + + See + + + + + See + + + + + + See + + + + + + + Remove all properties from the properties collection + + + + + See + + + + + + + See + + + + + + + See + + + + + Gets or sets the value of the property with the specified key. + + + The value of the property with the specified key. + + The key of the property to get or set. + + + The property value will only be serialized if it is serializable. + If it cannot be serialized it will be silently ignored if + a serialization operation is performed. + + + + + + The hashtable used to store the properties + + + The internal collection used to store the properties + + + + The hashtable used to store the properties + + + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + The number of properties in this collection + + + + + See + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + properties to copy + + + Initializes a new instance of the class. + + + + + + Initializes a new instance of the class + with serialized data. + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Because this class is sealed the serialization constructor is private. + + + + + + Remove the entry with the specified key from this dictionary + + the key for the entry to remove + + + Remove the entry with the specified key from this dictionary + + + + + + See + + an enumerator + + + Returns a over the contest of this collection. + + + + + + See + + the key to remove + + + Remove the entry with the specified key from this dictionary + + + + + + See + + the key to lookup in the collection + true if the collection contains the specified key + + + Test if this collection contains a specified key. + + + + + + Remove all properties from the properties collection + + + + Remove all properties from the properties collection + + + + + + See + + the key + the value to store for the key + + + Store a value for the specified . + + + Thrown if the is not a string + + + + See + + + + + + + See + + + + + Gets or sets the value of the property with the specified key. + + + The value of the property with the specified key. + + The key of the property to get or set. + + + The property value will only be serialized if it is serializable. + If it cannot be serialized it will be silently ignored if + a serialization operation is performed. + + + + + + See + + + false + + + + This collection is modifiable. This property always + returns false. + + + + + + See + + + The value for the key specified. + + + + Get or set a value for the specified . + + + Thrown if the is not a string + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + A class to hold the key and data for a property set in the config file + + + + A class to hold the key and data for a property set in the config file + + + + + + Override Object.ToString to return sensible debug info + + string info about this object + + + + Property Key + + + Property Key + + + + Property Key. + + + + + + Property Value + + + Property Value + + + + Property Value. + + + + + + A that ignores the message + + + + This writer is used in special cases where it is necessary + to protect a writer from being closed by a client. + + + Nicko Cadell + + + + Constructor + + the writer to actually write to + + + Create a new ProtectCloseTextWriter using a writer + + + + + + Attach this instance to a different underlying + + the writer to attach to + + + Attach this instance to a different underlying + + + + + + Does not close the underlying output writer. + + + + Does not close the underlying output writer. + This method does nothing. + + + + + + Defines a lock that supports single writers and multiple readers + + + + ReaderWriterLock is used to synchronize access to a resource. + At any given time, it allows either concurrent read access for + multiple threads, or write access for a single thread. In a + situation where a resource is changed infrequently, a + ReaderWriterLock provides better throughput than a simple + one-at-a-time lock, such as . + + + If a platform does not support a System.Threading.ReaderWriterLock + implementation then all readers and writers are serialized. Therefore + the caller must not rely on multiple simultaneous readers. + + + Nicko Cadell + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Acquires a reader lock + + + + blocks if a different thread has the writer + lock, or if at least one thread is waiting for the writer lock. + + + + + + Decrements the lock count + + + + decrements the lock count. When the count + reaches zero, the lock is released. + + + + + + Acquires the writer lock + + + + This method blocks if another thread has a reader lock or writer lock. + + + + + + Decrements the lock count on the writer lock + + + + ReleaseWriterLock decrements the writer lock count. + When the count reaches zero, the writer lock is released. + + + + + + A that can be and reused + + + + A that can be and reused. + This uses a single buffer for string operations. + + + Nicko Cadell + + + + Create an instance of + + the format provider to use + + + Create an instance of + + + + + + Override Dispose to prevent closing of writer + + flag + + + Override Dispose to prevent closing of writer + + + + + + Reset this string writer so that it can be reused. + + the maximum buffer capacity before it is trimmed + the default size to make the buffer + + + Reset this string writer so that it can be reused. + The internal buffers are cleared and reset. + + + + + + Utility class for system specific information. + + + + Utility class of static methods for system specific information. + + + Nicko Cadell + Gert Driesen + Alexey Solofnenko + + + + Private constructor to prevent instances. + + + + Only static methods are exposed from this type. + + + + + + Initialize default values for private static fields. + + + + Only static methods are exposed from this type. + + + + + + Gets the assembly location path for the specified assembly. + + The assembly to get the location for. + The location of the assembly. + + + This method does not guarantee to return the correct path + to the assembly. If only tries to give an indication as to + where the assembly was loaded from. + + + + + + Gets the fully qualified name of the , including + the name of the assembly from which the was + loaded. + + The to get the fully qualified name for. + The fully qualified name for the . + + + This is equivalent to the Type.AssemblyQualifiedName property, + but this method works on the .NET Compact Framework 1.0 as well as + the full .NET runtime. + + + + + + Gets the short name of the . + + The to get the name for. + The short name of the . + + + The short name of the assembly is the + without the version, culture, or public key. i.e. it is just the + assembly's file name without the extension. + + + Use this rather than Assembly.GetName().Name because that + is not available on the Compact Framework. + + + Because of a FileIOPermission security demand we cannot do + the obvious Assembly.GetName().Name. We are allowed to get + the of the assembly so we + start from there and strip out just the assembly name. + + + + + + Gets the file name portion of the , including the extension. + + The to get the file name for. + The file name of the assembly. + + + Gets the file name portion of the , including the extension. + + + + + + Loads the type specified in the type string. + + A sibling type to use to load the type. + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified, it will be loaded from the assembly + containing the specified relative type. If the type is not found in the assembly + then all the loaded assemblies will be searched for the type. + + + + + + Loads the type specified in the type string. + + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified it will be loaded from the + assembly that is directly calling this method. If the type is not found + in the assembly then all the loaded assemblies will be searched for the type. + + + + + + Loads the type specified in the type string. + + An assembly to load the type from. + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified it will be loaded from the specified + assembly. If the type is not found in the assembly then all the loaded assemblies + will be searched for the type. + + + + + + Generate a new guid + + A new Guid + + + Generate a new guid + + + + + + Create an + + The name of the parameter that caused the exception + The value of the argument that causes this exception + The message that describes the error + the ArgumentOutOfRangeException object + + + Create a new instance of the class + with a specified error message, the parameter name, and the value + of the argument. + + + The Compact Framework does not support the 3 parameter constructor for the + type. This method provides an + implementation that works for all platforms. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Lookup an application setting + + the application settings key to lookup + the value for the key, or null + + + Configuration APIs are not supported under the Compact Framework + + + + + + Convert a path into a fully qualified local file path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + The path specified must be a local file path, a URI is not supported. + + + + + + Creates a new case-insensitive instance of the class with the default initial capacity. + + A new case-insensitive instance of the class with the default initial capacity + + + The new Hashtable instance uses the default load factor, the CaseInsensitiveHashCodeProvider, and the CaseInsensitiveComparer. + + + + + + Tests two strings for equality, the ignoring case. + + + If the platform permits, culture information is ignored completely (ordinal comparison). + The aim of this method is to provide a fast comparison that deals with null and ignores different casing. + It is not supposed to deal with various, culture-specific habits. + Use it to compare against pure ASCII constants, like keywords etc. + + The one string. + The other string. + true if the strings are equal, false otherwise. + + + + Gets an empty array of types. + + + + The Type.EmptyTypes field is not available on + the .NET Compact Framework 1.0. + + + + + + The fully qualified type of the SystemInfo class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Cache the host name for the current machine + + + + + Cache the application friendly name + + + + + Text to output when a null is encountered. + + + + + Text to output when an unsupported feature is requested. + + + + + Start time for the current process. + + + + + Gets the system dependent line terminator. + + + The system dependent line terminator. + + + + Gets the system dependent line terminator. + + + + + + Gets the base directory for this . + + The base directory path for the current . + + + Gets the base directory for this . + + + The value returned may be either a local file path or a URI. + + + + + + Gets the path to the configuration file for the current . + + The path to the configuration file for the current . + + + The .NET Compact Framework 1.0 does not have a concept of a configuration + file. For this runtime, we use the entry assembly location as the root for + the configuration file name. + + + The value returned may be either a local file path or a URI. + + + + + + Gets the path to the file that first executed in the current . + + The path to the entry assembly. + + + Gets the path to the file that first executed in the current . + + + + + + Gets the ID of the current thread. + + The ID of the current thread. + + + On the .NET framework, the AppDomain.GetCurrentThreadId method + is used to obtain the thread ID for the current thread. This is the + operating system ID for the thread. + + + On the .NET Compact Framework 1.0 it is not possible to get the + operating system thread ID for the current thread. The native method + GetCurrentThreadId is implemented inline in a header file + and cannot be called. + + + On the .NET Framework 2.0 the Thread.ManagedThreadId is used as this + gives a stable id unrelated to the operating system thread ID which may + change if the runtime is using fibers. + + + + + + Get the host name or machine name for the current machine + + + The hostname or machine name + + + + Get the host name or machine name for the current machine + + + The host name () or + the machine name (Environment.MachineName) for + the current machine, or if neither of these are available + then NOT AVAILABLE is returned. + + + + + + Get this application's friendly name + + + The friendly name of this application as a string + + + + If available the name of the application is retrieved from + the AppDomain using AppDomain.CurrentDomain.FriendlyName. + + + Otherwise the file name of the entry assembly is used. + + + + + + Get the start time for the current process. + + + + This is the time at which the log4net library was loaded into the + AppDomain. Due to reports of a hang in the call to System.Diagnostics.Process.StartTime + this is not the start time for the current process. + + + The log4net library should be loaded by an application early during its + startup, therefore this start time should be a good approximation for + the actual start time. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating, however this start time + will be set per AppDomain. + + + + + + Get the UTC start time for the current process. + + + + This is the UTC time at which the log4net library was loaded into the + AppDomain. Due to reports of a hang in the call to System.Diagnostics.Process.StartTime + this is not the start time for the current process. + + + The log4net library should be loaded by an application early during its + startup, therefore this start time should be a good approximation for + the actual start time. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating, however this start time + will be set per AppDomain. + + + + + + Text to output when a null is encountered. + + + + Use this value to indicate a null has been encountered while + outputting a string representation of an item. + + + The default value is (null). This value can be overridden by specifying + a value for the log4net.NullText appSetting in the application's + .config file. + + + + + + Text to output when an unsupported feature is requested. + + + + Use this value when an unsupported feature is requested. + + + The default value is NOT AVAILABLE. This value can be overridden by specifying + a value for the log4net.NotAvailableText appSetting in the application's + .config file. + + + + + + Utility class that represents a format string. + + + + Utility class that represents a format string. + + + Nicko Cadell + + + + Initialise the + + An that supplies culture-specific formatting information. + A containing zero or more format items. + An array containing zero or more objects to format. + + + + Format the string and arguments + + the formatted string + + + + Replaces the format item in a specified with the text equivalent + of the value of a corresponding instance in a specified array. + A specified parameter supplies culture-specific formatting information. + + An that supplies culture-specific formatting information. + A containing zero or more format items. + An array containing zero or more objects to format. + + A copy of format in which the format items have been replaced by the + equivalent of the corresponding instances of in args. + + + + This method does not throw exceptions. If an exception thrown while formatting the result the + exception and arguments are returned in the result string. + + + + + + Process an error during StringFormat + + + + + Dump the contents of an array into a string builder + + + + + Dump an object to a string + + + + + The fully qualified type of the SystemStringFormat class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Implementation of Properties collection for the + + + + Class implements a collection of properties that is specific to each thread. + The class is not synchronized as each thread has its own . + + + Nicko Cadell + + + + Each thread will automatically have its instance. + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Remove a property + + the key for the entry to remove + + + Remove a property + + + + + + Get the keys stored in the properties. + + + Gets the keys stored in the properties. + + a set of the defined keys + + + + Clear all properties + + + + Clear all properties + + + + + + Get the PropertiesDictionary for this thread. + + create the dictionary if it does not exist, otherwise return null if does not exist + the properties for this thread + + + The collection returned is only to be used on the calling thread. If the + caller needs to share the collection between different threads then the + caller must clone the collection before doing so. + + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Gets or sets the value of a property + + + + + + Implementation of Stack for the + + + + Implementation of Stack for the + + + Nicko Cadell + + + + The stack store. + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Clears all the contextual information held in this stack. + + + + Clears all the contextual information held in this stack. + Only call this if you think that this tread is being reused after + a previous call execution which may not have completed correctly. + You do not need to use this method if you always guarantee to call + the method of the + returned from even in exceptional circumstances, + for example by using the using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) + syntax. + + + + + + Removes the top context from this stack. + + The message in the context that was removed from the top of this stack. + + + Remove the top context from this stack, and return + it to the caller. If this stack is empty then an + empty string (not ) is returned. + + + + + + Pushes a new context message into this stack. + + The new context message. + + An that can be used to clean up the context stack. + + + + Pushes a new context onto this stack. An + is returned that can be used to clean up this stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) + { + log.Warn("This should have an ThreadContext Stack message"); + } + + + + + + Gets the current context information for this stack. + + The current context information. + + + + Gets the current context information for this stack. + + Gets the current context information + + + Gets the current context information for this stack. + + + + + + Get a portable version of this object + + the portable instance of this object + + + Get a cross thread portable version of this object + + + + + + The number of messages in the stack + + + The current number of messages in the stack + + + + The current number of messages in the stack. That is + the number of times has been called + minus the number of times has been called. + + + + + + Gets and sets the internal stack used by this + + The internal storage stack + + + This property is provided only to support backward compatability + of the . Tytpically the internal stack should not + be modified. + + + + + + Inner class used to represent a single context frame in the stack. + + + + Inner class used to represent a single context frame in the stack. + + + + + + Constructor + + The message for this context. + The parent context in the chain. + + + Initializes a new instance of the class + with the specified message and parent context. + + + + + + Get the message. + + The message. + + + Get the message. + + + + + + Gets the full text of the context down to the root level. + + + The full text of the context down to the root level. + + + + Gets the full text of the context down to the root level. + + + + + + Struct returned from the method. + + + + This struct implements the and is designed to be used + with the pattern to remove the stack frame at the end of the scope. + + + + + + The ThreadContextStack internal stack + + + + + The depth to trim the stack to when this instance is disposed + + + + + Constructor + + The internal stack used by the ThreadContextStack. + The depth to return the stack to when this object is disposed. + + + Initializes a new instance of the class with + the specified stack and return depth. + + + + + + Returns the stack to the correct depth. + + + + Returns the stack to the correct depth. + + + + + + Implementation of Stacks collection for the + + + + Implementation of Stacks collection for the + + + Nicko Cadell + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + The fully qualified type of the ThreadContextStacks class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the named thread context stack + + + The named stack + + + + Gets the named thread context stack + + + + + + Utility class for transforming strings. + + + + Utility class for transforming strings. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Write a string to an + + the writer to write to + the string to write + The string to replace non XML compliant chars with + + + The test is escaped either using XML escape entities + or using CDATA sections. + + + + + + Replace invalid XML characters in text string + + the XML text input string + the string to use in place of invalid characters + A string that does not contain invalid XML characters. + + + Certain Unicode code points are not allowed in the XML InfoSet, for + details see: http://www.w3.org/TR/REC-xml/#charsets. + + + This method replaces any illegal characters in the input string + with the mask string specified. + + + + + + Count the number of times that the substring occurs in the text + + the text to search + the substring to find + the number of times the substring occurs in the text + + + The substring is assumed to be non repeating within itself. + + + + + + Characters illegal in XML 1.0 + + + + + Impersonate a Windows Account + + + + This impersonates a Windows account. + + + How the impersonation is done depends on the value of . + This allows the context to either impersonate a set of user credentials specified + using username, domain name and password or to revert to the process credentials. + + + + + + Default constructor + + + + Default constructor + + + + + + Initialize the SecurityContext based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The security context will try to Logon the specified user account and + capture a primary token for impersonation. + + + The required , + or properties were not specified. + + + + Impersonate the Windows account specified by the and properties. + + caller provided state + + An instance that will revoke the impersonation of this SecurityContext + + + + Depending on the property either + impersonate a user using credentials supplied or revert + to the process credentials. + + + + + + Create a given the userName, domainName and password. + + the user name + the domain name + the password + the for the account specified + + + Uses the Windows API call LogonUser to get a principal token for the account. This + token is used to initialize the WindowsIdentity. + + + + + + Gets or sets the impersonation mode for this security context + + + The impersonation mode for this security context + + + + Impersonate either a user with user credentials or + revert this thread to the credentials of the process. + The value is one of the + enum. + + + The default value is + + + When the mode is set to + the user's credentials are established using the + , and + values. + + + When the mode is set to + no other properties need to be set. If the calling thread is + impersonating then it will be reverted back to the process credentials. + + + + + + Gets or sets the Windows username for this security context + + + The Windows username for this security context + + + + This property must be set if + is set to (the default setting). + + + + + + Gets or sets the Windows domain name for this security context + + + The Windows domain name for this security context + + + + The default value for is the local machine name + taken from the property. + + + This property must be set if + is set to (the default setting). + + + + + + Sets the password for the Windows account specified by the and properties. + + + The password for the Windows account specified by the and properties. + + + + This property must be set if + is set to (the default setting). + + + + + + The impersonation modes for the + + + + See the property for + details. + + + + + + Impersonate a user using the credentials supplied + + + + + Revert this the thread to the credentials of the process + + + + + Adds to + + + + Helper class to expose the + through the interface. + + + + + + Constructor + + the impersonation context being wrapped + + + Constructor + + + + + + Revert the impersonation + + + + Revert the impersonation + + + + + + The log4net Global Context. + + + + The GlobalContext provides a location for global debugging + information to be stored. + + + The global context has a properties map and these properties can + be included in the output of log messages. The + supports selecting and outputing these properties. + + + By default the log4net:HostName property is set to the name of + the current machine. + + + + + GlobalContext.Properties["hostname"] = Environment.MachineName; + + + + Nicko Cadell + + + + Private Constructor. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + The global context properties instance + + + + + The global properties map. + + + The global properties map. + + + + The global properties map. + + + + + + Provides information about the environment the assembly has + been built for. + + + + Version of the assembly + + + Version of the framework targeted + + + Type of framework targeted + + + Does it target a client profile? + + + + Identifies the version and target for this assembly. + + + + + The log4net Logical Thread Context. + + + + The LogicalThreadContext provides a location for specific debugging + information to be stored. + The LogicalThreadContext properties override any or + properties with the same name. + + + For .NET Standard 1.3 this class uses + System.Threading.AsyncLocal rather than . + + + The Logical Thread Context has a properties map and a stack. + The properties and stack can + be included in the output of log messages. The + supports selecting and outputting these properties. + + + The Logical Thread Context provides a diagnostic context for the current call context. + This is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The Logical Thread Context is managed on a per basis. + + + The requires a link time + for the + . + If the calling code does not have this permission then this context will be disabled. + It will not store any property values set on it. + + + Example of using the thread context properties to store a username. + + LogicalThreadContext.Properties["user"] = userName; + log.Info("This log message has a LogicalThreadContext Property called 'user'"); + + + Example of how to push a message into the context stack + + using(LogicalThreadContext.Stacks["LDC"].Push("my context message")) + { + log.Info("This log message has a LogicalThreadContext Stack message that includes 'my context message'"); + + } // at the end of the using block the message is automatically popped + + + + Nicko Cadell + + + + Private Constructor. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + The thread context properties instance + + + + + The thread context stacks instance + + + + + The thread properties map + + + The thread properties map + + + + The LogicalThreadContext properties override any + or properties with the same name. + + + + + + The thread stacks + + + stack map + + + + The logical thread stacks. + + + + + + This class is used by client applications to request logger instances. + + + + This class has static methods that are used by a client to request + a logger instance. The method is + used to retrieve a logger. + + + See the interface for more details. + + + Simple example of logging messages + + ILog log = LogManager.GetLogger("application-log"); + + log.Info("Application Start"); + log.Debug("This is a debug message"); + + if (log.IsDebugEnabled) + { + log.Debug("This is another debug message"); + } + + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + Returns the named logger if it exists. + + Returns the named logger if it exists. + + + + If the named logger exists (in the default repository) then it + returns a reference to the logger, otherwise it returns null. + + + The fully qualified logger name to look for. + The logger found, or null if no logger could be found. + + + Get the currently defined loggers. + + Returns all the currently defined loggers in the default repository. + + + The root logger is not included in the returned array. + + All the defined loggers. + + + Get or create a logger. + + Retrieves or creates a named logger. + + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The name of the logger to retrieve. + The logger with the name specified. + + + + Returns the named logger if it exists. + + + + If the named logger exists (in the specified repository) then it + returns a reference to the logger, otherwise it returns + null. + + + The repository to lookup in. + The fully qualified logger name to look for. + + The logger found, or null if the logger doesn't exist in the specified + repository. + + + + + Returns the named logger if it exists. + + + + If the named logger exists (in the repository for the specified assembly) then it + returns a reference to the logger, otherwise it returns + null. + + + The assembly to use to lookup the repository. + The fully qualified logger name to look for. + + The logger, or null if the logger doesn't exist in the specified + assembly's repository. + + + + + Returns all the currently defined loggers in the specified repository. + + The repository to lookup in. + + The root logger is not included in the returned array. + + All the defined loggers. + + + + Returns all the currently defined loggers in the specified assembly's repository. + + The assembly to use to lookup the repository. + + The root logger is not included in the returned array. + + All the defined loggers. + + + + Retrieves or creates a named logger. + + + + Retrieve a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The repository to lookup in. + The name of the logger to retrieve. + The logger with the name specified. + + + + Retrieves or creates a named logger. + + + + Retrieve a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The assembly to use to lookup the repository. + The name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Get the logger for the fully qualified name of the type specified. + + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Gets the logger for the fully qualified name of the type specified. + + The repository to lookup in. + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Gets the logger for the fully qualified name of the type specified. + + The assembly to use to lookup the repository. + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shuts down the log4net system. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in all the + default repositories. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + Shutdown a logger repository. + + Shuts down the default repository. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + default repository. + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + The repository to shutdown. + + + + Shuts down the repository specified. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository. The repository is looked up using + the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + The assembly to use to lookup the repository. + + + Reset the configuration of a repository + + Resets all values contained in this repository instance to their defaults. + + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + + + + Resets all values contained in this repository instance to their defaults. + + + + Reset all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + The repository to reset. + + + + Resets all values contained in this repository instance to their defaults. + + + + Reset all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + The assembly to use to lookup the repository to reset. + + + Get the logger repository. + + Returns the default instance. + + + + Gets the for the repository specified + by the callers assembly (). + + + The instance for the default repository. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The repository to lookup in. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The assembly to use to lookup the repository. + + + Get a logger repository. + + Returns the default instance. + + + + Gets the for the repository specified + by the callers assembly (). + + + The instance for the default repository. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The repository to lookup in. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The assembly to use to lookup the repository. + + + Create a domain + + Creates a repository with the specified repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to will return + the same repository instance. + + + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + Create a logger repository. + + Creates a repository with the specified repository type. + + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The created will be associated with the repository + specified such that a call to will return + the same repository instance. + + + + + + Creates a repository with the specified name. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name. + + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + The specified repository already exists. + + + + Creates a repository for the specified assembly and repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + + Creates a repository for the specified assembly and repository type. + + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + + Gets the list of currently defined repositories. + + + + Get an array of all the objects that have been created. + + + An array of all the known objects. + + + + Flushes logging events buffered in all configured appenders in the default repository. + + The maximum time in milliseconds to wait for logging events from asycnhronous appenders to be flushed. + True if all logging events were flushed successfully, else false. + + + + Looks up the wrapper object for the logger specified. + + The logger to get the wrapper for. + The wrapper for the logger specified. + + + + Looks up the wrapper objects for the loggers specified. + + The loggers to get the wrappers for. + The wrapper objects for the loggers specified. + + + + Create the objects used by + this manager. + + The logger to wrap. + The wrapper for the logger specified. + + + + The wrapper map to use to hold the objects. + + + + + Implementation of Mapped Diagnostic Contexts. + + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + The MDC class is similar to the class except that it is + based on a map instead of a stack. It provides mapped + diagnostic contexts. A Mapped Diagnostic Context, or + MDC in short, is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The MDC is managed on a per thread basis. + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + Gets the context value identified by the parameter. + + The key to lookup in the MDC. + The string value held for the key, or a null reference if no corresponding value is found. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + If the parameter does not look up to a + previously defined context then null will be returned. + + + + + + Add an entry to the MDC + + The key to store the value under. + The value to store. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Puts a context value (the parameter) as identified + with the parameter into the current thread's + context map. + + + If a value is already defined for the + specified then the value will be replaced. If the + is specified as null then the key value mapping will be removed. + + + + + + Removes the key value mapping for the key specified. + + The key to remove. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Remove the specified entry from this thread's MDC + + + + + + Clear all entries in the MDC + + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Remove all the entries from this thread's MDC + + + + + + Implementation of Nested Diagnostic Contexts. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + A Nested Diagnostic Context, or NDC in short, is an instrument + to distinguish interleaved log output from different sources. Log + output is typically interleaved when a server handles multiple + clients near-simultaneously. + + + Interleaved log output can still be meaningful if each log entry + from different contexts had a distinctive stamp. This is where NDCs + come into play. + + + Note that NDCs are managed on a per thread basis. The NDC class + is made up of static methods that operate on the context of the + calling thread. + + + How to push a message into the context + + using(NDC.Push("my context message")) + { + ... all log calls will have 'my context message' included ... + + } // at the end of the using block the message is automatically removed + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + Clears all the contextual information held on the current thread. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Clears the stack of NDC data held on the current thread. + + + + + + Creates a clone of the stack of context information. + + A clone of the context info for this thread. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + The results of this method can be passed to the + method to allow child threads to inherit the context of their + parent thread. + + + + + + Inherits the contextual information from another thread. + + The context stack to inherit. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + This thread will use the context information from the stack + supplied. This can be used to initialize child threads with + the same contextual information as their parent threads. These + contexts will NOT be shared. Any further contexts that + are pushed onto the stack will not be visible to the other. + Call to obtain a stack to pass to + this method. + + + + + + Removes the top context from the stack. + + + The message in the context that was removed from the top + of the stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Remove the top context from the stack, and return + it to the caller. If the stack is empty then an + empty string (not null) is returned. + + + + + + Pushes a new context message. + + The new context message. + + An that can be used to clean up + the context stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Pushes a new context onto the context stack. An + is returned that can be used to clean up the context stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.NDC.Push("NDC_Message")) + { + log.Warn("This should have an NDC message"); + } + + + + + + Pushes a new context message. + + The new context message string format. + Arguments to be passed into messageFormat. + + An that can be used to clean up + the context stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Pushes a new context onto the context stack. An + is returned that can be used to clean up the context stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + var someValue = "ExampleContext" + using(log4net.NDC.PushFormat("NDC_Message {0}", someValue)) + { + log.Warn("This should have an NDC message"); + } + + + + + + Removes the context information for this thread. It is + not required to call this method. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + This method is not implemented. + + + + + + Forces the stack depth to be at most . + + The maximum depth of the stack + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Forces the stack depth to be at most . + This may truncate the head of the stack. This only affects the + stack in the current thread. Also it does not prevent it from + growing, it only sets the maximum depth at the time of the + call. This can be used to return to a known context depth. + + + + + + Gets the current context depth. + + The current context depth. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + The number of context values pushed onto the context stack. + + + Used to record the current depth of the context. This can then + be restored using the method. + + + + + + + The log4net Thread Context. + + + + The ThreadContext provides a location for thread specific debugging + information to be stored. + The ThreadContext properties override any + properties with the same name. + + + The thread context has a properties map and a stack. + The properties and stack can + be included in the output of log messages. The + supports selecting and outputting these properties. + + + The Thread Context provides a diagnostic context for the current thread. + This is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The Thread Context is managed on a per thread basis. + + + Example of using the thread context properties to store a username. + + ThreadContext.Properties["user"] = userName; + log.Info("This log message has a ThreadContext Property called 'user'"); + + + Example of how to push a message into the context stack + + using(ThreadContext.Stacks["NDC"].Push("my context message")) + { + log.Info("This log message has a ThreadContext Stack message that includes 'my context message'"); + + } // at the end of the using block the message is automatically popped + + + + Nicko Cadell + + + + Private Constructor. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + The thread context properties instance + + + + + The thread context stacks instance + + + + + The thread properties map + + + The thread properties map + + + + The ThreadContext properties override any + properties with the same name. + + + + + + The thread stacks + + + stack map + + + + The thread local stacks. + + + + + diff --git a/packages/log4net.2.0.8/lib/net35-client/log4net.dll b/packages/log4net.2.0.8/lib/net35-client/log4net.dll new file mode 100644 index 0000000..e8a0d0e Binary files /dev/null and b/packages/log4net.2.0.8/lib/net35-client/log4net.dll differ diff --git a/packages/log4net.2.0.8/lib/net35-client/log4net.xml b/packages/log4net.2.0.8/lib/net35-client/log4net.xml new file mode 100644 index 0000000..4a92205 --- /dev/null +++ b/packages/log4net.2.0.8/lib/net35-client/log4net.xml @@ -0,0 +1,32259 @@ + + + + log4net + + + + + Appender that logs to a database. + + + + appends logging events to a table within a + database. The appender can be configured to specify the connection + string by setting the property. + The connection type (provider) can be specified by setting the + property. For more information on database connection strings for + your specific database see http://www.connectionstrings.com/. + + + Records are written into the database either using a prepared + statement or a stored procedure. The property + is set to (System.Data.CommandType.Text) to specify a prepared statement + or to (System.Data.CommandType.StoredProcedure) to specify a stored + procedure. + + + The prepared statement text or the name of the stored procedure + must be set in the property. + + + The prepared statement or stored procedure can take a number + of parameters. Parameters are added using the + method. This adds a single to the + ordered list of parameters. The + type may be subclassed if required to provide database specific + functionality. The specifies + the parameter name, database type, size, and how the value should + be generated using a . + + + + An example of a SQL Server table that could be logged to: + + CREATE TABLE [dbo].[Log] ( + [ID] [int] IDENTITY (1, 1) NOT NULL , + [Date] [datetime] NOT NULL , + [Thread] [varchar] (255) NOT NULL , + [Level] [varchar] (20) NOT NULL , + [Logger] [varchar] (255) NOT NULL , + [Message] [varchar] (4000) NOT NULL + ) ON [PRIMARY] + + + + An example configuration to log to the above table: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Julian Biddle + Nicko Cadell + Gert Driesen + Lance Nehring + + + + Abstract base class implementation of that + buffers events in a fixed size buffer. + + + + This base class should be used by appenders that need to buffer a + number of events before logging them. For example the + buffers events and then submits the entire contents of the buffer to + the underlying database in one go. + + + Subclasses should override the + method to deliver the buffered events. + + The BufferingAppenderSkeleton maintains a fixed size cyclic + buffer of events. The size of the buffer is set using + the property. + + A is used to inspect + each event as it arrives in the appender. If the + triggers, then the current buffer is sent immediately + (see ). Otherwise the event + is stored in the buffer. For example, an evaluator can be used to + deliver the events immediately when an ERROR event arrives. + + + The buffering appender can be configured in a mode. + By default the appender is NOT lossy. When the buffer is full all + the buffered events are sent with . + If the property is set to true then the + buffer will not be sent when it is full, and new events arriving + in the appender will overwrite the oldest event in the buffer. + In lossy mode the buffer will only be sent when the + triggers. This can be useful behavior when you need to know about + ERROR events but not about events with a lower level, configure an + evaluator that will trigger when an ERROR event arrives, the whole + buffer will be sent which gives a history of events leading up to + the ERROR event. + + + Nicko Cadell + Gert Driesen + + + + Abstract base class implementation of . + + + + This class provides the code for common functionality, such + as support for threshold filtering and support for general filters. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + Implement this interface for your own strategies for printing log statements. + + + + Implementors should consider extending the + class which provides a default implementation of this interface. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Log the logging event in Appender specific way. + + The event to log + + + This method is called to log a message into this appender. + + + + + + Gets or sets the name of this appender. + + The name of the appender. + + The name uniquely identifies the appender. + + + + + Interface for appenders that support bulk logging. + + + + This interface extends the interface to + support bulk logging of objects. Appenders + should only implement this interface if they can bulk log efficiently. + + + Nicko Cadell + + + + Log the array of logging events in Appender specific way. + + The events to log + + + This method is called to log an array of events into this appender. + + + + + + Interface used to delay activate a configured object. + + + + This allows an object to defer activation of its options until all + options have been set. This is required for components which have + related options that remain ambiguous until all are set. + + + If a component implements this interface then the method + must be called by the container after its all the configured properties have been set + and before the component can be used. + + + Nicko Cadell + + + + Activate the options that were previously set with calls to properties. + + + + This allows an object to defer activation of its options until all + options have been set. This is required for components which have + related options that remain ambiguous until all are set. + + + If a component implements this interface then this method must be called + after its properties have been set before the component can be used. + + + + + + Interface that can be implemented by Appenders that buffer logging data and expose a method. + + + + + Flushes any buffered log data. + + + Appenders that implement the method must do so in a thread-safe manner: it can be called concurrently with + the method. + + Typically this is done by locking on the Appender instance, e.g.: + + + + + + The parameter is only relevant for appenders that process logging events asynchronously, + such as . + + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + Default constructor + + + Empty default constructor + + + + + Finalizes this appender by calling the implementation's + method. + + + + If this appender has not been closed then the Finalize method + will call . + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Closes the appender and release resources. + + + + Release any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + This method cannot be overridden by subclasses. This method + delegates the closing of the appender to the + method which must be overridden in the subclass. + + + + + + Performs threshold checks and invokes filters before + delegating actual logging to the subclasses specific + method. + + The event to log. + + + This method cannot be overridden by derived classes. A + derived class should override the method + which is called by this method. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + Calls and checks that + it returns true. + + + + + If all of the above steps succeed then the + will be passed to the abstract method. + + + + + + Performs threshold checks and invokes filters before + delegating actual logging to the subclasses specific + method. + + The array of events to log. + + + This method cannot be overridden by derived classes. A + derived class should override the method + which is called by this method. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + Calls and checks that + it returns true. + + + + + If all of the above steps succeed then the + will be passed to the method. + + + + + + Test if the logging event should we output by this appender + + the event to test + true if the event should be output, false if the event should be ignored + + + This method checks the logging event against the threshold level set + on this appender and also against the filters specified on this + appender. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + + + + + Adds a filter to the end of the filter chain. + + the filter to add to this appender + + + The Filters are organized in a linked list. + + + Setting this property causes the new filter to be pushed onto the + back of the filter chain. + + + + + + Clears the filter list for this appender. + + + + Clears the filter list for this appender. + + + + + + Checks if the message level is below this appender's threshold. + + to test against. + + + If there is no threshold set, then the return value is always true. + + + + true if the meets the + requirements of this appender. + + + + + Is called when the appender is closed. Derived classes should override + this method if resources need to be released. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Subclasses of should implement this method + to perform actual logging. + + The event to append. + + + A subclass must implement this method to perform + logging of the . + + This method will be called by + if all the conditions listed for that method are met. + + + To restrict the logging of events in the appender + override the method. + + + + + + Append a bulk array of logging events. + + the array of logging events + + + This base class implementation calls the + method for each element in the bulk array. + + + A sub class that can better process a bulk array of events should + override this method in addition to . + + + + + + Called before as a precondition. + + + + This method is called by + before the call to the abstract method. + + + This method can be overridden in a subclass to extend the checks + made before the event is passed to the method. + + + A subclass should ensure that they delegate this call to + this base class if it is overridden. + + + true if the call to should proceed. + + + + Renders the to a string. + + The event to render. + The event rendered as a string. + + + Helper method to render a to + a string. This appender must have a + set to render the to + a string. + + If there is exception data in the logging event and + the layout does not process the exception, this method + will append the exception text to the rendered string. + + + Where possible use the alternative version of this method + . + That method streams the rendering onto an existing Writer + which can give better performance if the caller already has + a open and ready for writing. + + + + + + Renders the to a string. + + The event to render. + The TextWriter to write the formatted event to + + + Helper method to render a to + a string. This appender must have a + set to render the to + a string. + + If there is exception data in the logging event and + the layout does not process the exception, this method + will append the exception text to the rendered string. + + + Use this method in preference to + where possible. If, however, the caller needs to render the event + to a string then does + provide an efficient mechanism for doing so. + + + + + + Flushes any buffered log data. + + + This implementation doesn't flush anything and always returns true + + True if all logging events were flushed successfully, else false. + + + + The layout of this appender. + + + See for more information. + + + + + The name of this appender. + + + See for more information. + + + + + The level threshold of this appender. + + + + There is no level threshold filtering by default. + + + See for more information. + + + + + + It is assumed and enforced that errorHandler is never null. + + + + It is assumed and enforced that errorHandler is never null. + + + See for more information. + + + + + + The first filter in the filter chain. + + + + Set to null initially. + + + See for more information. + + + + + + The last filter in the filter chain. + + + See for more information. + + + + + Flag indicating if this appender is closed. + + + See for more information. + + + + + The guard prevents an appender from repeatedly calling its own DoAppend method + + + + + StringWriter used to render events + + + + + The fully qualified type of the AppenderSkeleton class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the threshold of this appender. + + + The threshold of the appender. + + + + All log events with lower level than the threshold level are ignored + by the appender. + + + In configuration files this option is specified by setting the + value of the option to a level + string, such as "DEBUG", "INFO" and so on. + + + + + + Gets or sets the for this appender. + + The of the appender + + + The provides a default + implementation for the property. + + + + + + The filter chain. + + The head of the filter chain filter chain. + + + Returns the head Filter. The Filters are organized in a linked list + and so all Filters on this Appender are available through the result. + + + + + + Gets or sets the for this appender. + + The layout of the appender. + + + See for more information. + + + + + + + Gets or sets the name of this appender. + + The name of the appender. + + + The name uniquely identifies the appender. + + + + + + Tests if this appender requires a to be set. + + + + In the rather exceptional case, where the appender + implementation admits a layout but can also work without it, + then the appender should return true. + + + This default implementation always returns false. + + + + true if the appender requires a layout object, otherwise false. + + + + + The default buffer size. + + + The default size of the cyclic buffer used to store events. + This is set to 512 by default. + + + + + Initializes a new instance of the class. + + + + Protected default constructor to allow subclassing. + + + + + + Initializes a new instance of the class. + + the events passed through this appender must be + fixed by the time that they arrive in the derived class' SendBuffer method. + + + Protected constructor to allow subclassing. + + + The should be set if the subclass + expects the events delivered to be fixed even if the + is set to zero, i.e. when no buffering occurs. + + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Flush the currently buffered events + + + + Flushes any events that have been buffered. + + + If the appender is buffering in mode then the contents + of the buffer will NOT be flushed to the appender. + + + + + + Flush the currently buffered events + + set to true to flush the buffer of lossy events + + + Flushes events that have been buffered. If is + false then events will only be flushed if this buffer is non-lossy mode. + + + If the appender is buffering in mode then the contents + of the buffer will only be flushed if is true. + In this case the contents of the buffer will be tested against the + and if triggering will be output. All other buffered + events will be discarded. + + + If is true then the buffer will always + be emptied by calling this method. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Close this appender instance. + + + + Close this appender instance. If this appender is marked + as not then the remaining events in + the buffer must be sent when the appender is closed. + + + + + + This method is called by the method. + + the event to log + + + Stores the in the cyclic buffer. + + + The buffer will be sent (i.e. passed to the + method) if one of the following conditions is met: + + + + The cyclic buffer is full and this appender is + marked as not lossy (see ) + + + An is set and + it is triggered for the + specified. + + + + Before the event is stored in the buffer it is fixed + (see ) to ensure that + any data referenced by the event will be valid when the buffer + is processed. + + + + + + Sends the contents of the buffer. + + The first logging event. + The buffer containing the events that need to be send. + + + The subclass must override . + + + + + + Sends the events. + + The events that need to be send. + + + The subclass must override this method to process the buffered events. + + + + + + The size of the cyclic buffer used to hold the logging events. + + + Set to by default. + + + + + The cyclic buffer used to store the logging events. + + + + + The triggering event evaluator that causes the buffer to be sent immediately. + + + The object that is used to determine if an event causes the entire + buffer to be sent immediately. This field can be null, which + indicates that event triggering is not to be done. The evaluator + can be set using the property. If this appender + has the ( property) set to + true then an must be set. + + + + + Indicates if the appender should overwrite events in the cyclic buffer + when it becomes full, or if the buffer should be flushed when the + buffer is full. + + + If this field is set to true then an must + be set. + + + + + The triggering event evaluator filters discarded events. + + + The object that is used to determine if an event that is discarded should + really be discarded or if it should be sent to the appenders. + This field can be null, which indicates that all discarded events will + be discarded. + + + + + Value indicating which fields in the event should be fixed + + + By default all fields are fixed + + + + + The events delivered to the subclass must be fixed. + + + + + Gets or sets a value that indicates whether the appender is lossy. + + + true if the appender is lossy, otherwise false. The default is false. + + + + This appender uses a buffer to store logging events before + delivering them. A triggering event causes the whole buffer + to be send to the remote sink. If the buffer overruns before + a triggering event then logging events could be lost. Set + to false to prevent logging events + from being lost. + + If is set to true then an + must be specified. + + + + + Gets or sets the size of the cyclic buffer used to hold the + logging events. + + + The size of the cyclic buffer used to hold the logging events. + + + + The option takes a positive integer + representing the maximum number of logging events to collect in + a cyclic buffer. When the is reached, + oldest events are deleted as new events are added to the + buffer. By default the size of the cyclic buffer is 512 events. + + + If the is set to a value less than + or equal to 1 then no buffering will occur. The logging event + will be delivered synchronously (depending on the + and properties). Otherwise the event will + be buffered. + + + + + + Gets or sets the that causes the + buffer to be sent immediately. + + + The that causes the buffer to be + sent immediately. + + + + The evaluator will be called for each event that is appended to this + appender. If the evaluator triggers then the current buffer will + immediately be sent (see ). + + If is set to true then an + must be specified. + + + + + Gets or sets the value of the to use. + + + The value of the to use. + + + + The evaluator will be called for each event that is discarded from this + appender. If the evaluator triggers then the current buffer will immediately + be sent (see ). + + + + + + Gets or sets a value indicating if only part of the logging event data + should be fixed. + + + true if the appender should only fix part of the logging event + data, otherwise false. The default is false. + + + + Setting this property to true will cause only part of the + event data to be fixed and serialized. This will improve performance. + + + See for more information. + + + + + + Gets or sets a the fields that will be fixed in the event + + + The event fields that will be fixed before the event is buffered + + + + The logging event needs to have certain thread specific values + captured before it can be buffered. See + for details. + + + + + + + Initializes a new instance of the class. + + + Public default constructor to initialize a new instance of this class. + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Override the parent method to close the database + + + + Closes the database command and database connection. + + + + + + Inserts the events into the database. + + The events to insert into the database. + + + Insert all the events specified in the + array into the database. + + + + + + Adds a parameter to the command. + + The parameter to add to the command. + + + Adds a parameter to the ordered list of command parameters. + + + + + + Writes the events to the database using the transaction specified. + + The transaction that the events will be executed under. + The array of events to insert into the database. + + + The transaction argument can be null if the appender has been + configured not to use transactions. See + property for more information. + + + + + + Formats the log message into database statement text. + + The event being logged. + + This method can be overridden by subclasses to provide + more control over the format of the database statement. + + + Text that can be passed to a . + + + + + Creates an instance used to connect to the database. + + + This method is called whenever a new IDbConnection is needed (i.e. when a reconnect is necessary). + + The of the object. + The connectionString output from the ResolveConnectionString method. + An instance with a valid connection string. + + + + Resolves the connection string from the ConnectionString, ConnectionStringName, or AppSettingsKey + property. + + + ConnectiongStringName is only supported on .NET 2.0 and higher. + + Additional information describing the connection string. + A connection string used to connect to the database. + + + + Retrieves the class type of the ADO.NET provider. + + + + Gets the Type of the ADO.NET provider to use to connect to the + database. This method resolves the type specified in the + property. + + + Subclasses can override this method to return a different type + if necessary. + + + The of the ADO.NET provider + + + + Connects to the database. + + + + + Cleanup the existing connection. + + + Calls the IDbConnection's method. + + + + + The list of objects. + + + + The list of objects. + + + + + + The security context to use for privileged calls + + + + + The that will be used + to insert logging events into a database. + + + + + Database connection string. + + + + + The appSettings key from App.Config that contains the connection string. + + + + + The connectionStrings key from App.Config that contains the connection string. + + + + + String type name of the type name. + + + + + The text of the command. + + + + + The command type. + + + + + Indicates whether to use transactions when writing to the database. + + + + + Indicates whether to reconnect when a connection is lost. + + + + + The fully qualified type of the AdoNetAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the database connection string that is used to connect to + the database. + + + The database connection string used to connect to the database. + + + + The connections string is specific to the connection type. + See for more information. + + + Connection string for MS Access via ODBC: + "DSN=MS Access Database;UID=admin;PWD=;SystemDB=C:\data\System.mdw;SafeTransactions = 0;FIL=MS Access;DriverID = 25;DBQ=C:\data\train33.mdb" + + Another connection string for MS Access via ODBC: + "Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\Work\cvs_root\log4net-1.2\access.mdb;UID=;PWD=;" + + Connection string for MS Access via OLE DB: + "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Work\cvs_root\log4net-1.2\access.mdb;User Id=;Password=;" + + + + + The appSettings key from App.Config that contains the connection string. + + + + + The connectionStrings key from App.Config that contains the connection string. + + + This property requires at least .NET 2.0. + + + + + Gets or sets the type name of the connection + that should be created. + + + The type name of the connection. + + + + The type name of the ADO.NET provider to use. + + + The default is to use the OLE DB provider. + + + Use the OLE DB Provider. This is the default value. + System.Data.OleDb.OleDbConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Use the MS SQL Server Provider. + System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Use the ODBC Provider. + Microsoft.Data.Odbc.OdbcConnection,Microsoft.Data.Odbc,version=1.0.3300.0,publicKeyToken=b77a5c561934e089,culture=neutral + This is an optional package that you can download from + http://msdn.microsoft.com/downloads + search for ODBC .NET Data Provider. + + Use the Oracle Provider. + System.Data.OracleClient.OracleConnection, System.Data.OracleClient, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + This is an optional package that you can download from + http://msdn.microsoft.com/downloads + search for .NET Managed Provider for Oracle. + + + + + Gets or sets the command text that is used to insert logging events + into the database. + + + The command text used to insert logging events into the database. + + + + Either the text of the prepared statement or the + name of the stored procedure to execute to write into + the database. + + + The property determines if + this text is a prepared statement or a stored procedure. + + + If this property is not set, the command text is retrieved by invoking + . + + + + + + Gets or sets the command type to execute. + + + The command type to execute. + + + + This value may be either (System.Data.CommandType.Text) to specify + that the is a prepared statement to execute, + or (System.Data.CommandType.StoredProcedure) to specify that the + property is the name of a stored procedure + to execute. + + + The default value is (System.Data.CommandType.Text). + + + + + + Should transactions be used to insert logging events in the database. + + + true if transactions should be used to insert logging events in + the database, otherwise false. The default value is true. + + + + Gets or sets a value that indicates whether transactions should be used + to insert logging events in the database. + + + When set a single transaction will be used to insert the buffered events + into the database. Otherwise each event will be inserted without using + an explicit transaction. + + + + + + Gets or sets the used to call the NetSend method. + + + The used to call the NetSend method. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Should this appender try to reconnect to the database on error. + + + true if the appender should try to reconnect to the database after an + error has occurred, otherwise false. The default value is false, + i.e. not to try to reconnect. + + + + The default behaviour is for the appender not to try to reconnect to the + database if an error occurs. Subsequent logging events are discarded. + + + To force the appender to attempt to reconnect to the database set this + property to true. + + + When the appender attempts to connect to the database there may be a + delay of up to the connection timeout specified in the connection string. + This delay will block the calling application's thread. + Until the connection can be reestablished this potential delay may occur multiple times. + + + + + + Gets or sets the underlying . + + + The underlying . + + + creates a to insert + logging events into a database. Classes deriving from + can use this property to get or set this . Use the + underlying returned from if + you require access beyond that which provides. + + + + + Parameter type used by the . + + + + This class provides the basic database parameter properties + as defined by the interface. + + This type can be subclassed to provide database specific + functionality. The two methods that are called externally are + and . + + + + + + Initializes a new instance of the class. + + + Default constructor for the AdoNetAppenderParameter class. + + + + + Prepare the specified database command object. + + The command to prepare. + + + Prepares the database command object by adding + this parameter to its collection of parameters. + + + + + + Renders the logging event and set the parameter value in the command. + + The command containing the parameter. + The event to be rendered. + + + Renders the logging event using this parameters layout + object. Sets the value of the parameter on the command object. + + + + + + The name of this parameter. + + + + + The database type for this parameter. + + + + + Flag to infer type rather than use the DbType + + + + + The precision for this parameter. + + + + + The scale for this parameter. + + + + + The size for this parameter. + + + + + The to use to render the + logging event into an object for this parameter. + + + + + Gets or sets the name of this parameter. + + + The name of this parameter. + + + + The name of this parameter. The parameter name + must match up to a named parameter to the SQL stored procedure + or prepared statement. + + + + + + Gets or sets the database type for this parameter. + + + The database type for this parameter. + + + + The database type for this parameter. This property should + be set to the database type from the + enumeration. See . + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the type from the value. + + + + + + + Gets or sets the precision for this parameter. + + + The precision for this parameter. + + + + The maximum number of digits used to represent the Value. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the precision from the value. + + + + + + + Gets or sets the scale for this parameter. + + + The scale for this parameter. + + + + The number of decimal places to which Value is resolved. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the scale from the value. + + + + + + + Gets or sets the size for this parameter. + + + The size for this parameter. + + + + The maximum size, in bytes, of the data within the column. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the size from the value. + + + For BLOB data types like VARCHAR(max) it may be impossible to infer the value automatically, use -1 as the size in this case. + + + + + + + Gets or sets the to use to + render the logging event into an object for this + parameter. + + + The used to render the + logging event into an object for this parameter. + + + + The that renders the value for this + parameter. + + + The can be used to adapt + any into a + for use in the property. + + + + + + Appends logging events to the terminal using ANSI color escape sequences. + + + + AnsiColorTerminalAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific level of message to be set. + + + This appender expects the terminal to understand the VT100 control set + in order to interpret the color codes. If the terminal or console does not + understand the control codes the behavior is not defined. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes each message to the System.Console.Out or + System.Console.Error that is set at the time the event is appended. + Therefore it is possible to programmatically redirect the output of this appender + (for example NUnit does this to capture program output). While this is the desired + behavior of this appender it may have security implications in your application. + + + When configuring the ANSI colored terminal appender, a mapping should be + specified to map a logging level to a color. For example: + + + + + + + + + + + + + + + The Level is the standard log4net logging level and ForeColor and BackColor can be any + of the following values: + + Blue + Green + Red + White + Yellow + Purple + Cyan + + These color values cannot be combined together to make new colors. + + + The attributes can be any combination of the following: + + Brightforeground is brighter + Dimforeground is dimmer + Underscoremessage is underlined + Blinkforeground is blinking (does not work on all terminals) + Reverseforeground and background are reversed + Hiddenoutput is hidden + Strikethroughmessage has a line through it + + While any of these attributes may be combined together not all combinations + work well together, for example setting both Bright and Dim attributes makes + no sense. + + + Patrick Wagstrom + Nicko Cadell + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Ansi code to reset terminal + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Add a mapping of level to color + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colours + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + Target is the value of the console output stream. + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + The enum of possible display attributes + + + + The following flags can be combined together to + form the ANSI color attributes. + + + + + + + text is bright + + + + + text is dim + + + + + text is underlined + + + + + text is blinking + + + Not all terminals support this attribute + + + + + text and background colors are reversed + + + + + text is hidden + + + + + text is displayed with a strikethrough + + + + + text color is light + + + + + The enum of possible foreground or background color values for + use with the color mapping method + + + + The output can be in one for the following ANSI colors. + + + + + + + color is black + + + + + color is red + + + + + color is green + + + + + color is yellow + + + + + color is blue + + + + + color is magenta + + + + + color is cyan + + + + + color is white + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + An entry in the + + + + This is an abstract base class for types that are stored in the + object. + + + Nicko Cadell + + + + Default protected constructor + + + + Default protected constructor + + + + + + Initialize any options defined on this entry + + + + Should be overridden by any classes that need to initialise based on their options + + + + + + The level that is the key for this mapping + + + The that is the key for this mapping + + + + Get or set the that is the key for this + mapping subclass. + + + + + + Initialize the options for the object + + + + Combine the and together + and append the attributes. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level + + + + + + The color attributes for the specified level + + + + Required property. + The color attributes for the specified level + + + + + + The combined , and + suitable for setting the ansi terminal color. + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Creates a read-only wrapper for a AppenderCollection instance. + + list to create a readonly wrapper arround + + An AppenderCollection wrapper that is read-only. + + + + + An empty readonly static AppenderCollection + + + + + Initializes a new instance of the AppenderCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the AppenderCollection class + that has the specified initial capacity. + + + The number of elements that the new AppenderCollection is initially capable of storing. + + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified AppenderCollection. + + The AppenderCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Allow subclasses to avoid our default constructors + + + + + + + Copies the entire AppenderCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire AppenderCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Adds a to the end of the AppenderCollection. + + The to be added to the end of the AppenderCollection. + The index at which the value has been added. + + + + Removes all elements from the AppenderCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the AppenderCollection. + + The to check for. + true if is found in the AppenderCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the AppenderCollection. + + The to locate in the AppenderCollection. + + The zero-based index of the first occurrence of + in the entire AppenderCollection, if found; otherwise, -1. + + + + + Inserts an element into the AppenderCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the AppenderCollection. + + The to remove from the AppenderCollection. + + The specified was not found in the AppenderCollection. + + + + + Removes the element at the specified index of the AppenderCollection. + + The zero-based index of the element to remove. + + is less than zero + -or- + is equal to or greater than . + + + + + Returns an enumerator that can iterate through the AppenderCollection. + + An for the entire AppenderCollection. + + + + Adds the elements of another AppenderCollection to the current AppenderCollection. + + The AppenderCollection whose elements should be added to the end of the current AppenderCollection. + The new of the AppenderCollection. + + + + Adds the elements of a array to the current AppenderCollection. + + The array whose elements should be added to the end of the AppenderCollection. + The new of the AppenderCollection. + + + + Adds the elements of a collection to the current AppenderCollection. + + The collection whose elements should be added to the end of the AppenderCollection. + The new of the AppenderCollection. + + + + Sets the capacity to the actual number of elements. + + + + + Return the collection elements as an array + + the array + + + + is less than zero + -or- + is equal to or greater than . + + + + + is less than zero + -or- + is equal to or greater than . + + + + + Gets the number of elements actually contained in the AppenderCollection. + + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + The zero-based index of the element to get or set. + + is less than zero + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false + + + + Gets or sets the number of elements the AppenderCollection can contain. + + + + + Supports type-safe iteration over a . + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + + A value + + + + + Supports simple iteration over a . + + + + + + Initializes a new instance of the Enumerator class. + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + + + + Buffers events and then forwards them to attached appenders. + + + + The events are buffered in this appender until conditions are + met to allow the appender to deliver the events to the attached + appenders. See for the + conditions that cause the buffer to be sent. + + The forwarding appender can be used to specify different + thresholds and filters for the same appender at different locations + within the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Interface for attaching appenders to objects. + + + + Interface for attaching, removing and retrieving appenders. + + + Nicko Cadell + Gert Driesen + + + + Attaches an appender. + + The appender to add. + + + Add the specified appender. The implementation may + choose to allow or deny duplicate appenders. + + + + + + Gets an attached appender with the specified name. + + The name of the appender to get. + + The appender with the name specified, or null if no appender with the + specified name is found. + + + + Returns an attached appender with the specified. + If no appender with the specified name is found null will be + returned. + + + + + + Removes all attached appenders. + + + + Removes and closes all attached appenders + + + + + + Removes the specified appender from the list of attached appenders. + + The appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Gets all attached appenders. + + + A collection of attached appenders. + + + + Gets a collection of attached appenders. + If there are no attached appenders the + implementation should return an empty + collection rather than null. + + + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Send the events. + + The events that need to be send. + + + Forwards the events to the attached appenders. + + + + + + Adds an to the list of appenders of this + instance. + + The to add to this appender. + + + If the specified is already in the list of + appenders, then it won't be added again. + + + + + + Looks for the appender with the specified name. + + The name of the appender to lookup. + + The appender with the specified name, or null. + + + + Get the named appender attached to this buffering appender. + + + + + + Removes all previously added appenders from this appender. + + + + This is useful when re-reading configuration information. + + + + + + Removes the specified appender from the list of appenders. + + The appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Implementation of the interface + + + + + Gets the appenders contained in this appender as an + . + + + If no appenders can be found, then an + is returned. + + + A collection of the appenders in this appender. + + + + + Appends logging events to the console. + + + + ColoredConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific type of message to be set. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes directly to the application's attached console + not to the System.Console.Out or System.Console.Error TextWriter. + The System.Console.Out and System.Console.Error streams can be + programmatically redirected (for example NUnit does this to capture program output). + This appender will ignore these redirections because it needs to use Win32 + API calls to colorize the output. To respect these redirections the + must be used. + + + When configuring the colored console appender, mapping should be + specified to map a logging level to a color. For example: + + + + + + + + + + + + + + The Level is the standard log4net logging level and ForeColor and BackColor can be any + combination of the following values: + + Blue + Green + Red + White + Yellow + Purple + Cyan + HighIntensity + + + + Rick Hobbs + Nicko Cadell + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + flag set to true to write to the console error stream + + When is set to true, output is written to + the standard error output stream. Otherwise, output is written to the standard + output stream. + + + + + Add a mapping of level to color - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colors + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + The console output stream writer to write to + + + + This writer is not thread safe. + + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + The enum of possible color values for use with the color mapping method + + + + The following flags can be combined together to + form the colors. + + + + + + + color is blue + + + + + color is green + + + + + color is red + + + + + color is white + + + + + color is yellow + + + + + color is purple + + + + + color is cyan + + + + + color is intensified + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + Initialize the options for the object + + + + Combine the and together. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level. + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level. + + + + + + The combined and suitable for + setting the console color. + + + + + Appends logging events to the console. + + + + ConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes each message to the System.Console.Out or + System.Console.Error that is set at the time the event is appended. + Therefore it is possible to programmatically redirect the output of this appender + (for example NUnit does this to capture program output). While this is the desired + behavior of this appender it may have security implications in your application. + + + Nicko Cadell + Gert Driesen + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + flag set to true to write to the console error stream + + When is set to true, output is written to + the standard error output stream. Otherwise, output is written to the standard + output stream. + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Appends log events to the system. + + + + The application configuration file can be used to control what listeners + are actually used. See the MSDN documentation for the + class for details on configuring the + debug system. + + + Events are written using the + method. The event's logger name is passed as the value for the category name to the Write method. + + + Nicko Cadell + + + + Initializes a new instance of the . + + + + Default constructor. + + + + + + Initializes a new instance of the + with a specified layout. + + The layout to use with this appender. + + + Obsolete constructor. + + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Writes the logging event to the system. + + The event to log. + + + Writes the logging event to the system. + If is true then the + is called. + + + + + + Immediate flush means that the underlying writer or output stream + will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logs events are not actually written to persistent media if and + when the application crashes. + + + The default value is true. + + + + + Defaults to a with %logger as the pattern. + + + + + Gets or sets a value that indicates whether the appender will + flush at the end of each write. + + + The default behavior is to flush at the end of each + write. If the option is set tofalse, then the underlying + stream can defer writing to physical medium to a later time. + + + Avoiding the flush operation at the end of each append results + in a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + + Formats the category parameter sent to the Debug method. + + + + Defaults to a with %logger as the pattern which will use the logger name of the current + as the category parameter. + + + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Writes events to the system event log. + + + + The appender will fail if you try to write using an event source that doesn't exist unless it is running with local administrator privileges. + See also http://logging.apache.org/log4net/release/faq.html#trouble-EventLog + + + The EventID of the event log entry can be + set using the EventID property () + on the . + + + The Category of the event log entry can be + set using the Category property () + on the . + + + There is a limit of 32K characters for an event log message + + + When configuring the EventLogAppender a mapping can be + specified to map a logging level to an event log entry type. For example: + + + <mapping> + <level value="ERROR" /> + <eventLogEntryType value="Error" /> + </mapping> + <mapping> + <level value="DEBUG" /> + <eventLogEntryType value="Information" /> + </mapping> + + + The Level is the standard log4net logging level and eventLogEntryType can be any value + from the enum, i.e.: + + Erroran error event + Warninga warning event + Informationan informational event + + + + Aspi Havewala + Douglas de la Torre + Nicko Cadell + Gert Driesen + Thomas Voss + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initializes a new instance of the class + with the specified . + + The to use with this appender. + + + Obsolete constructor. + + + + + + Add a mapping of level to - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the event log entry type for a level. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Create an event log source + + + Uses different API calls under NET_2_0 + + + + + This method is called by the + method. + + the event to log + + Writes the event to the system event log using the + . + + If the event has an EventID property (see ) + set then this integer will be used as the event log event id. + + + There is a limit of 32K characters for an event log message + + + + + + Get the equivalent for a + + the Level to convert to an EventLogEntryType + The equivalent for a + + Because there are fewer applicable + values to use in logging levels than there are in the + this is a one way mapping. There is + a loss of information during the conversion. + + + + + The log name is the section in the event logs where the messages + are stored. + + + + + Name of the application to use when logging. This appears in the + application column of the event log named by . + + + + + The name of the machine which holds the event log. This is + currently only allowed to be '.' i.e. the current machine. + + + + + Mapping from level object to EventLogEntryType + + + + + The security context to use for privileged calls + + + + + The event ID to use unless one is explicitly specified via the LoggingEvent's properties. + + + + + The event category to use unless one is explicitly specified via the LoggingEvent's properties. + + + + + The fully qualified type of the EventLogAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + The maximum size supported by default. + + + http://msdn.microsoft.com/en-us/library/xzwc042w(v=vs.100).aspx + The 32766 documented max size is two bytes shy of 32K (I'm assuming 32766 + may leave space for a two byte null terminator of #0#0). The 32766 max + length is what the .NET 4.0 source code checks for, but this is WRONG! + Strings with a length > 31839 on Windows Vista or higher can CORRUPT + the event log! See: System.Diagnostics.EventLogInternal.InternalWriteEvent() + for the use of the 32766 max size. + + + + + The maximum size supported by a windows operating system that is vista + or newer. + + + See ReportEvent API: + http://msdn.microsoft.com/en-us/library/aa363679(VS.85).aspx + ReportEvent's lpStrings parameter: + "A pointer to a buffer containing an array of + null-terminated strings that are merged into the message before Event Viewer + displays the string to the user. This parameter must be a valid pointer + (or NULL), even if wNumStrings is zero. Each string is limited to 31,839 characters." + + Going beyond the size of 31839 will (at some point) corrupt the event log on Windows + Vista or higher! It may succeed for a while...but you will eventually run into the + error: "System.ComponentModel.Win32Exception : A device attached to the system is + not functioning", and the event log will then be corrupt (I was able to corrupt + an event log using a length of 31877 on Windows 7). + + The max size for Windows Vista or higher is documented here: + http://msdn.microsoft.com/en-us/library/xzwc042w(v=vs.100).aspx. + Going over this size may succeed a few times but the buffer will overrun and + eventually corrupt the log (based on testing). + + The maxEventMsgSize size is based on the max buffer size of the lpStrings parameter of the ReportEvent API. + The documented max size for EventLog.WriteEntry for Windows Vista and higher is 31839, but I'm leaving room for a + terminator of #0#0, as we cannot see the source of ReportEvent (though we could use an API monitor to examine the + buffer, given enough time). + + + + + The maximum size that the operating system supports for + a event log message. + + + Used to determine the maximum string length that can be written + to the operating system event log and eventually truncate a string + that exceeds the limits. + + + + + This method determines the maximum event log message size allowed for + the current environment. + + + + + + The name of the log where messages will be stored. + + + The string name of the log where messages will be stored. + + + This is the name of the log as it appears in the Event Viewer + tree. The default value is to log into the Application + log, this is where most applications write their events. However + if you need a separate log for your application (or applications) + then you should set the appropriately. + This should not be used to distinguish your event log messages + from those of other applications, the + property should be used to distinguish events. This property should be + used to group together events into a single log. + + + + + + Property used to set the Application name. This appears in the + event logs when logging. + + + The string used to distinguish events from different sources. + + + Sets the event log source property. + + + + + This property is used to return the name of the computer to use + when accessing the event logs. Currently, this is the current + computer, denoted by a dot "." + + + The string name of the machine holding the event log that + will be logged into. + + + This property cannot be changed. It is currently set to '.' + i.e. the local machine. This may be changed in future. + + + + + Gets or sets the used to write to the EventLog. + + + The used to write to the EventLog. + + + + The system security context used to write to the EventLog. + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Gets or sets the EventId to use unless one is explicitly specified via the LoggingEvent's properties. + + + + The EventID of the event log entry will normally be + set using the EventID property () + on the . + This property provides the fallback value which defaults to 0. + + + + + + Gets or sets the Category to use unless one is explicitly specified via the LoggingEvent's properties. + + + + The Category of the event log entry will normally be + set using the Category property () + on the . + This property provides the fallback value which defaults to 0. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and its event log entry type. + + + + + + The for this entry + + + + Required property. + The for this entry + + + + + + Appends logging events to a file. + + + + Logging events are sent to the file specified by + the property. + + + The file can be opened in either append or overwrite mode + by specifying the property. + If the file path is relative it is taken as relative from + the application base directory. The file encoding can be + specified by setting the property. + + + The layout's and + values will be written each time the file is opened and closed + respectively. If the property is + then the file may contain multiple copies of the header and footer. + + + This appender will first try to open the file for writing when + is called. This will typically be during configuration. + If the file cannot be opened for writing the appender will attempt + to open the file again each time a message is logged to the appender. + If the file cannot be opened for writing when a message is logged then + the message will be discarded by this appender. + + + The supports pluggable file locking models via + the property. + The default behavior, implemented by + is to obtain an exclusive write lock on the file until this appender is closed. + The alternative models only hold a + write lock while the appender is writing a logging event () + or synchronize by using a named system wide Mutex (). + + + All locking strategies have issues and you should seriously consider using a different strategy that + avoids having multiple processes logging to the same file. + + + Nicko Cadell + Gert Driesen + Rodrigo B. de Oliveira + Douglas de la Torre + Niall Daley + + + + Sends logging events to a . + + + + An Appender that writes to a . + + + This appender may be used stand alone if initialized with an appropriate + writer, however it is typically used as a base class for an appender that + can open a to write to. + + + Nicko Cadell + Gert Driesen + Douglas de la Torre + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initializes a new instance of the class and + sets the output destination to a new initialized + with the specified . + + The layout to use with this appender. + The to output to. + + + Obsolete constructor. + + + + + + Initializes a new instance of the class and sets + the output destination to the specified . + + The layout to use with this appender + The to output to + + The must have been previously opened. + + + + Obsolete constructor. + + + + + + This method determines if there is a sense in attempting to append. + + + + This method checks if an output target has been set and if a + layout has been set. + + + false if any of the preconditions fail. + + + + This method is called by the + method. + + The event to log. + + + Writes a log statement to the output stream if the output stream exists + and is writable. + + + The format of the output will depend on the appender's layout. + + + + + + This method is called by the + method. + + The array of events to log. + + + This method writes all the bulk logged events to the output writer + before flushing the stream. + + + + + + Close this appender instance. The underlying stream or writer is also closed. + + + Closed appenders cannot be reused. + + + + + Writes the footer and closes the underlying . + + + + Writes the footer and closes the underlying . + + + + + + Closes the underlying . + + + + Closes the underlying . + + + + + + Clears internal references to the underlying + and other variables. + + + + Subclasses can override this method for an alternate closing behavior. + + + + + + Writes a footer as produced by the embedded layout's property. + + + + Writes a footer as produced by the embedded layout's property. + + + + + + Writes a header produced by the embedded layout's property. + + + + Writes a header produced by the embedded layout's property. + + + + + + Called to allow a subclass to lazily initialize the writer + + + + This method is called when an event is logged and the or + have not been set. This allows a subclass to + attempt to initialize the writer multiple times. + + + + + + This is the where logging events + will be written to. + + + + + Immediate flush means that the underlying + or output stream will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logging events are not actually persisted if and when the application + crashes. + + + The default value is true. + + + + + + The fully qualified type of the TextWriterAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Gets or set whether the appender will flush at the end + of each append operation. + + + + The default behavior is to flush at the end of each + append operation. + + + If this option is set to false, then the underlying + stream can defer persisting the logging event to a later + time. + + + + Avoiding the flush operation at the end of each append results in + a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + Sets the where the log output will go. + + + + The specified must be open and writable. + + + The will be closed when the appender + instance is closed. + + + Note: Logging to an unopened will fail. + + + + + + Gets or set the and the underlying + , if any, for this appender. + + + The for this appender. + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Gets or sets the where logging events + will be written to. + + + The where logging events are written. + + + + This is the where logging events + will be written to. + + + + + + Default constructor + + + + Default constructor + + + + + + Construct a new appender using the layout, file and append mode. + + the layout to use with this appender + the full path to the file to write to + flag to indicate if the file should be appended to + + + Obsolete constructor. + + + + + + Construct a new appender using the layout and file specified. + The file will be appended to. + + the layout to use with this appender + the full path to the file to write to + + + Obsolete constructor. + + + + + + Activate the options on the file appender. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + This will cause the file to be opened. + + + + + + Closes any previously opened file and calls the parent's . + + + + Resets the filename and the file stream. + + + + + + Close this appender instance. The underlying stream or writer is also closed. + + + + + Called to initialize the file writer + + + + Will be called for each logged message until the file is + successfully opened. + + + + + + This method is called by the + method. + + The event to log. + + + Writes a log statement to the output stream if the output stream exists + and is writable. + + + The format of the output will depend on the appender's layout. + + + + + + This method is called by the + method. + + The array of events to log. + + + Acquires the output file locks once before writing all the events to + the stream. + + + + + + Writes a footer as produced by the embedded layout's property. + + + + Writes a footer as produced by the embedded layout's property. + + + + + + Writes a header produced by the embedded layout's property. + + + + Writes a header produced by the embedded layout's property. + + + + + + Closes the underlying . + + + + Closes the underlying . + + + + + + Closes the previously opened file. + + + + Writes the to the file and then + closes the file. + + + + + + Sets and opens the file where the log output will go. The specified file must be writable. + + The path to the log file. Must be a fully qualified path. + If true will append to fileName. Otherwise will truncate fileName + + + Calls but guarantees not to throw an exception. + Errors are passed to the . + + + + + + Sets and opens the file where the log output will go. The specified file must be writable. + + The path to the log file. Must be a fully qualified path. + If true will append to fileName. Otherwise will truncate fileName + + + If there was already an opened file, then the previous file + is closed first. + + + This method will ensure that the directory structure + for the specified exists. + + + + + + Sets the quiet writer used for file output + + the file stream that has been opened for writing + + + This implementation of creates a + over the and passes it to the + method. + + + This method can be overridden by sub classes that want to wrap the + in some way, for example to encrypt the output + data using a System.Security.Cryptography.CryptoStream. + + + + + + Sets the quiet writer being used. + + the writer over the file stream that has been opened for writing + + + This method can be overridden by sub classes that want to + wrap the in some way. + + + + + + Convert a path into a fully qualified path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + + + + Flag to indicate if we should append to the file + or overwrite the file. The default is to append. + + + + + The name of the log file. + + + + + The encoding to use for the file stream. + + + + + The security context to use for privileged calls + + + + + The stream to log to. Has added locking semantics + + + + + The locking model to use + + + + + The fully qualified type of the FileAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the path to the file that logging will be written to. + + + The path to the file that logging will be written to. + + + + If the path is relative it is taken as relative from + the application base directory. + + + + + + Gets or sets a flag that indicates whether the file should be + appended to or overwritten. + + + Indicates whether the file should be appended to or overwritten. + + + + If the value is set to false then the file will be overwritten, if + it is set to true then the file will be appended to. + + The default value is true. + + + + + Gets or sets used to write to the file. + + + The used to write to the file. + + + + The default encoding set is + which is the encoding for the system's current ANSI code page. + + + + + + Gets or sets the used to write to the file. + + + The used to write to the file. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Gets or sets the used to handle locking of the file. + + + The used to lock the file. + + + + Gets or sets the used to handle locking of the file. + + + There are three built in locking models, , and . + The first locks the file from the start of logging to the end, the + second locks only for the minimal amount of time when logging each message + and the last synchronizes processes using a named system wide Mutex. + + + The default locking model is the . + + + + + + Write only that uses the + to manage access to an underlying resource. + + + + + True asynchronous writes are not supported, the implementation forces a synchronous write. + + + + + Exception base type for log4net. + + + + This type extends . It + does not add any new functionality but does differentiate the + type of exception being thrown. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + A message to include with the exception. + + + Initializes a new instance of the class with + the specified message. + + + + + + Constructor + + A message to include with the exception. + A nested exception to include. + + + Initializes a new instance of the class + with the specified message and inner exception. + + + + + + Serialization constructor + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Locking model base class + + + + Base class for the locking models available to the derived loggers. + + + + + + Open the output file + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Acquire the lock on the file in preparation for writing to it. + Return a stream pointing to the file. + must be called to release the lock on the output file. + + + + + + Release the lock on the file + + + + Release the lock on the file. No further writes will be made to the + stream until is called again. + + + + + + Helper method that creates a FileStream under CurrentAppender's SecurityContext. + + + + Typically called during OpenFile or AcquireLock. + + + If the directory portion of the does not exist, it is created + via Directory.CreateDirecctory. + + + + + + + + + + Helper method to close under CurrentAppender's SecurityContext. + + + Does not set to null. + + + + + + Gets or sets the for this LockingModel + + + The for this LockingModel + + + + The file appender this locking model is attached to and working on + behalf of. + + + The file appender is used to locate the security context and the error handler to use. + + + The value of this property will be set before is + called. + + + + + + Hold an exclusive lock on the output file + + + + Open the file once for writing and hold it open until is called. + Maintains an exclusive lock on the file during this time. + + + + + + Open the file specified and prepare for logging. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Does nothing. The lock is already taken + + + + + + Release the lock on the file + + + + Does nothing. The lock will be released when the file is closed. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Acquires the file lock for each write + + + + Opens the file once for each / cycle, + thus holding the lock for the minimal amount of time. This method of locking + is considerably slower than but allows + other processes to move/delete the log file whilst logging continues. + + + + + + Prepares to open the file when the first message is logged. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Acquire the lock on the file in preparation for writing to it. + Return a stream pointing to the file. + must be called to release the lock on the output file. + + + + + + Release the lock on the file + + + + Release the lock on the file. No further writes will be made to the + stream until is called again. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Provides cross-process file locking. + + Ron Grabowski + Steve Wranovsky + + + + Open the file specified and prepare for logging. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + - and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Does nothing. The lock is already taken + + + + + + Releases the lock and allows others to acquire a lock. + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + This appender forwards logging events to attached appenders. + + + + The forwarding appender can be used to specify different thresholds + and filters for the same appender at different locations within the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Forward the logging event to the attached appenders + + The event to log. + + + Delivers the logging event to all the attached appenders. + + + + + + Forward the logging events to the attached appenders + + The array of events to log. + + + Delivers the logging events to all the attached appenders. + + + + + + Adds an to the list of appenders of this + instance. + + The to add to this appender. + + + If the specified is already in the list of + appenders, then it won't be added again. + + + + + + Looks for the appender with the specified name. + + The name of the appender to lookup. + + The appender with the specified name, or null. + + + + Get the named appender attached to this appender. + + + + + + Removes all previously added appenders from this appender. + + + + This is useful when re-reading configuration information. + + + + + + Removes the specified appender from the list of appenders. + + The appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Implementation of the interface + + + + + Gets the appenders contained in this appender as an + . + + + If no appenders can be found, then an + is returned. + + + A collection of the appenders in this appender. + + + + + Logs events to a local syslog service. + + + + This appender uses the POSIX libc library functions openlog, syslog, and closelog. + If these functions are not available on the local system then this appender will not work! + + + The functions openlog, syslog, and closelog are specified in SUSv2 and + POSIX 1003.1-2001 standards. These are used to log messages to the local syslog service. + + + This appender talks to a local syslog service. If you need to log to a remote syslog + daemon and you cannot configure your local syslog service to do this you may be + able to use the to log via UDP. + + + Syslog messages must have a facility and and a severity. The severity + is derived from the Level of the logging event. + The facility must be chosen from the set of defined syslog + values. The facilities list is predefined + and cannot be extended. + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + Rob Lyon + Nicko Cadell + + + + Initializes a new instance of the class. + + + This instance of the class is set up to write + to a local syslog service. + + + + + Add a mapping of level to severity + + The mapping to add + + + Adds a to this appender. + + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to a remote syslog daemon. + + + The format of the output will depend on the appender's layout. + + + + + + Close the syslog when the appender is closed + + + + Close the syslog when the appender is closed + + + + + + Translates a log4net level to a syslog severity. + + A log4net level. + A syslog severity. + + + Translates a log4net level to a syslog severity. + + + + + + Generate a syslog priority. + + The syslog facility. + The syslog severity. + A syslog priority. + + + + The facility. The default facility is . + + + + + The message identity + + + + + Marshaled handle to the identity string. We have to hold on to the + string as the openlog and syslog APIs just hold the + pointer to the ident and dereference it for each log message. + + + + + Mapping from level object to syslog severity + + + + + Open connection to system logger. + + + + + Generate a log message. + + + + The libc syslog method takes a format string and a variable argument list similar + to the classic printf function. As this type of vararg list is not supported + by C# we need to specify the arguments explicitly. Here we have specified the + format string with a single message argument. The caller must set the format + string to "%s". + + + + + + Close descriptor used to write to system logger. + + + + + Message identity + + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + + + + Syslog facility + + + Set to one of the values. The list of + facilities is predefined and cannot be extended. The default value + is . + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + syslog severities + + + + The log4net Level maps to a syslog severity using the + method and the + class. The severity is set on . + + + + + + system is unusable + + + + + action must be taken immediately + + + + + critical conditions + + + + + error conditions + + + + + warning conditions + + + + + normal but significant condition + + + + + informational + + + + + debug-level messages + + + + + syslog facilities + + + + The syslog facility defines which subsystem the logging comes from. + This is set on the property. + + + + + + kernel messages + + + + + random user-level messages + + + + + mail system + + + + + system daemons + + + + + security/authorization messages + + + + + messages generated internally by syslogd + + + + + line printer subsystem + + + + + network news subsystem + + + + + UUCP subsystem + + + + + clock (cron/at) daemon + + + + + security/authorization messages (private) + + + + + ftp daemon + + + + + NTP subsystem + + + + + log audit + + + + + log alert + + + + + clock daemon + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + + + The mapped syslog severity for the specified level + + + + Required property. + The mapped syslog severity for the specified level + + + + + + Appends colorful logging events to the console, using the .NET 2 + built-in capabilities. + + + + ManagedColoredConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific type of message to be set. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + When configuring the colored console appender, mappings should be + specified to map logging levels to colors. For example: + + + + + + + + + + + + + + + + + + + + + + The Level is the standard log4net logging level while + ForeColor and BackColor are the values of + enumeration. + + + Based on the ColoredConsoleAppender + + + Rick Hobbs + Nicko Cadell + Pavlos Touboulidis + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Add a mapping of level to color - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colors + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level. + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level. + + + + + + Stores logging events in an array. + + + + The memory appender stores all the logging events + that are appended in an in-memory array. + + + Use the method to get + and clear the current list of events that have been appended. + + + Use the method to get the current + list of events that have been appended. Note there is a + race-condition when calling and + in pairs, you better use in that case. + + + Use the method to clear the + current list of events. Note there is a + race-condition when calling and + in pairs, you better use in that case. + + + Julian Biddle + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Gets the events that have been logged. + + The events that have been logged + + + Gets the events that have been logged. + + + + + + This method is called by the method. + + the event to log + + Stores the in the events list. + + + + + Clear the list of events + + + Clear the list of events + + + + + Gets the events that have been logged and clears the list of events. + + The events that have been logged + + + Gets the events that have been logged and clears the list of events. + + + + + + The list of events that have been appended. + + + + + Value indicating which fields in the event should be fixed + + + By default all fields are fixed + + + + + Gets or sets a value indicating whether only part of the logging event + data should be fixed. + + + true if the appender should only fix part of the logging event + data, otherwise false. The default is false. + + + + Setting this property to true will cause only part of the event + data to be fixed and stored in the appender, hereby improving performance. + + + See for more information. + + + + + + Gets or sets the fields that will be fixed in the event + + + + The logging event needs to have certain thread specific values + captured before it can be buffered. See + for details. + + + + + + Logs entries by sending network messages using the + native function. + + + + You can send messages only to names that are active + on the network. If you send the message to a user name, + that user must be logged on and running the Messenger + service to receive the message. + + + The receiver will get a top most window displaying the + messages one at a time, therefore this appender should + not be used to deliver a high volume of messages. + + + The following table lists some possible uses for this appender : + + + + + Action + Property Value(s) + + + Send a message to a user account on the local machine + + + = <name of the local machine> + + + = <user name> + + + + + Send a message to a user account on a remote machine + + + = <name of the remote machine> + + + = <user name> + + + + + Send a message to a domain user account + + + = <name of a domain controller | uninitialized> + + + = <user name> + + + + + Send a message to all the names in a workgroup or domain + + + = <workgroup name | domain name>* + + + + + Send a message from the local machine to a remote machine + + + = <name of the local machine | uninitialized> + + + = <name of the remote machine> + + + + + + + Note : security restrictions apply for sending + network messages, see + for more information. + + + + + An example configuration section to log information + using this appender from the local machine, named + LOCAL_PC, to machine OPERATOR_PC : + + + + + + + + + + Nicko Cadell + Gert Driesen + + + + The DNS or NetBIOS name of the server on which the function is to execute. + + + + + The sender of the network message. + + + + + The message alias to which the message should be sent. + + + + + The security context to use for privileged calls + + + + + Initializes the appender. + + + The default constructor initializes all fields to their default values. + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The appender will be ignored if no was specified. + + + The required property was not specified. + + + + This method is called by the method. + + The event to log. + + + Sends the event using a network message. + + + + + + Sends a buffer of information to a registered message alias. + + The DNS or NetBIOS name of the server on which the function is to execute. + The message alias to which the message buffer should be sent + The originator of the message. + The message text. + The length, in bytes, of the message text. + + + The following restrictions apply for sending network messages: + + + + + Platform + Requirements + + + Windows NT + + + No special group membership is required to send a network message. + + + Admin, Accounts, Print, or Server Operator group membership is required to + successfully send a network message on a remote server. + + + + + Windows 2000 or later + + + If you send a message on a domain controller that is running Active Directory, + access is allowed or denied based on the access control list (ACL) for the securable + object. The default ACL permits only Domain Admins and Account Operators to send a network message. + + + On a member server or workstation, only Administrators and Server Operators can send a network message. + + + + + + + For more information see Security Requirements for the Network Management Functions. + + + + + If the function succeeds, the return value is zero. + + + + + + Gets or sets the sender of the message. + + + The sender of the message. + + + If this property is not specified, the message is sent from the local computer. + + + + + Gets or sets the message alias to which the message should be sent. + + + The recipient of the message. + + + This property should always be specified in order to send a message. + + + + + Gets or sets the DNS or NetBIOS name of the remote server on which the function is to execute. + + + DNS or NetBIOS name of the remote server on which the function is to execute. + + + + For Windows NT 4.0 and earlier, the string should begin with \\. + + + If this property is not specified, the local computer is used. + + + + + + Gets or sets the used to call the NetSend method. + + + The used to call the NetSend method. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Appends log events to the OutputDebugString system. + + + + OutputDebugStringAppender appends log events to the + OutputDebugString system. + + + The string is passed to the native OutputDebugString + function. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Write the logging event to the output debug string API + + the event to log + + + Write the logging event to the output debug string API + + + + + + Stub for OutputDebugString native method + + the string to output + + + Stub for OutputDebugString native method + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Logs events to a remote syslog daemon. + + + + The BSD syslog protocol is used to remotely log to + a syslog daemon. The syslogd listens for for messages + on UDP port 514. + + + The syslog UDP protocol is not authenticated. Most syslog daemons + do not accept remote log messages because of the security implications. + You may be able to use the LocalSyslogAppender to talk to a local + syslog service. + + + There is an RFC 3164 that claims to document the BSD Syslog Protocol. + This RFC can be seen here: http://www.faqs.org/rfcs/rfc3164.html. + This appender generates what the RFC calls an "Original Device Message", + i.e. does not include the TIMESTAMP or HOSTNAME fields. By observation + this format of message will be accepted by all current syslog daemon + implementations. The daemon will attach the current time and the source + hostname or IP address to any messages received. + + + Syslog messages must have a facility and and a severity. The severity + is derived from the Level of the logging event. + The facility must be chosen from the set of defined syslog + values. The facilities list is predefined + and cannot be extended. + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + Rob Lyon + Nicko Cadell + + + + Sends logging events as connectionless UDP datagrams to a remote host or a + multicast group using an . + + + + UDP guarantees neither that messages arrive, nor that they arrive in the correct order. + + + To view the logging results, a custom application can be developed that listens for logging + events. + + + When decoding events send via this appender remember to use the same encoding + to decode the events as was used to send the events. See the + property to specify the encoding to use. + + + + This example shows how to log receive logging events that are sent + on IP address 244.0.0.1 and port 8080 to the console. The event is + encoded in the packet as a unicode string and it is decoded as such. + + IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0); + UdpClient udpClient; + byte[] buffer; + string loggingEvent; + + try + { + udpClient = new UdpClient(8080); + + while(true) + { + buffer = udpClient.Receive(ref remoteEndPoint); + loggingEvent = System.Text.Encoding.Unicode.GetString(buffer); + Console.WriteLine(loggingEvent); + } + } + catch(Exception e) + { + Console.WriteLine(e.ToString()); + } + + + Dim remoteEndPoint as IPEndPoint + Dim udpClient as UdpClient + Dim buffer as Byte() + Dim loggingEvent as String + + Try + remoteEndPoint = new IPEndPoint(IPAddress.Any, 0) + udpClient = new UdpClient(8080) + + While True + buffer = udpClient.Receive(ByRef remoteEndPoint) + loggingEvent = System.Text.Encoding.Unicode.GetString(buffer) + Console.WriteLine(loggingEvent) + Wend + Catch e As Exception + Console.WriteLine(e.ToString()) + End Try + + + An example configuration section to log information using this appender to the + IP 224.0.0.1 on port 8080: + + + + + + + + + + Gert Driesen + Nicko Cadell + + + + Initializes a new instance of the class. + + + The default constructor initializes all fields to their default values. + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The appender will be ignored if no was specified or + an invalid remote or local TCP port number was specified. + + + The required property was not specified. + The TCP port number assigned to or is less than or greater than . + + + + This method is called by the method. + + The event to log. + + + Sends the event using an UDP datagram. + + + Exceptions are passed to the . + + + + + + Closes the UDP connection and releases all resources associated with + this instance. + + + + Disables the underlying and releases all managed + and unmanaged resources associated with the . + + + + + + Initializes the underlying connection. + + + + The underlying is initialized and binds to the + port number from which you intend to communicate. + + + Exceptions are passed to the . + + + + + + The IP address of the remote host or multicast group to which + the logging event will be sent. + + + + + The TCP port number of the remote host or multicast group to + which the logging event will be sent. + + + + + The cached remote endpoint to which the logging events will be sent. + + + + + The TCP port number from which the will communicate. + + + + + The instance that will be used for sending the + logging events. + + + + + The encoding to use for the packet. + + + + + Gets or sets the IP address of the remote host or multicast group to which + the underlying should sent the logging event. + + + The IP address of the remote host or multicast group to which the logging event + will be sent. + + + + Multicast addresses are identified by IP class D addresses (in the range 224.0.0.0 to + 239.255.255.255). Multicast packets can pass across different networks through routers, so + it is possible to use multicasts in an Internet scenario as long as your network provider + supports multicasting. + + + Hosts that want to receive particular multicast messages must register their interest by joining + the multicast group. Multicast messages are not sent to networks where no host has joined + the multicast group. Class D IP addresses are used for multicast groups, to differentiate + them from normal host addresses, allowing nodes to easily detect if a message is of interest. + + + Static multicast addresses that are needed globally are assigned by IANA. A few examples are listed in the table below: + + + + + IP Address + Description + + + 224.0.0.1 + + + Sends a message to all system on the subnet. + + + + + 224.0.0.2 + + + Sends a message to all routers on the subnet. + + + + + 224.0.0.12 + + + The DHCP server answers messages on the IP address 224.0.0.12, but only on a subnet. + + + + + + + A complete list of actually reserved multicast addresses and their owners in the ranges + defined by RFC 3171 can be found at the IANA web site. + + + The address range 239.0.0.0 to 239.255.255.255 is reserved for administrative scope-relative + addresses. These addresses can be reused with other local groups. Routers are typically + configured with filters to prevent multicast traffic in this range from flowing outside + of the local network. + + + + + + Gets or sets the TCP port number of the remote host or multicast group to which + the underlying should sent the logging event. + + + An integer value in the range to + indicating the TCP port number of the remote host or multicast group to which the logging event + will be sent. + + + The underlying will send messages to this TCP port number + on the remote host or multicast group. + + The value specified is less than or greater than . + + + + Gets or sets the TCP port number from which the underlying will communicate. + + + An integer value in the range to + indicating the TCP port number from which the underlying will communicate. + + + + The underlying will bind to this port for sending messages. + + + Setting the value to 0 (the default) will cause the udp client not to bind to + a local port. + + + The value specified is less than or greater than . + + + + Gets or sets used to write the packets. + + + The used to write the packets. + + + + The used to write the packets. + + + + + + Gets or sets the underlying . + + + The underlying . + + + creates a to send logging events + over a network. Classes deriving from can use this + property to get or set this . Use the underlying + returned from if you require access beyond that which + provides. + + + + + Gets or sets the cached remote endpoint to which the logging events should be sent. + + + The cached remote endpoint to which the logging events will be sent. + + + The method will initialize the remote endpoint + with the values of the and + properties. + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Syslog port 514 + + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + Initializes a new instance of the class. + + + This instance of the class is set up to write + to a remote syslog daemon. + + + + + Add a mapping of level to severity + + The mapping to add + + + Add a mapping to this appender. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to a remote syslog daemon. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to syslog severity mappings set on this appender. + + + + + + Translates a log4net level to a syslog severity. + + A log4net level. + A syslog severity. + + + Translates a log4net level to a syslog severity. + + + + + + Generate a syslog priority. + + The syslog facility. + The syslog severity. + A syslog priority. + + + Generate a syslog priority. + + + + + + The facility. The default facility is . + + + + + The message identity + + + + + Mapping from level object to syslog severity + + + + + Message identity + + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + + + + Syslog facility + + + Set to one of the values. The list of + facilities is predefined and cannot be extended. The default value + is . + + + + + syslog severities + + + + The syslog severities. + + + + + + system is unusable + + + + + action must be taken immediately + + + + + critical conditions + + + + + error conditions + + + + + warning conditions + + + + + normal but significant condition + + + + + informational + + + + + debug-level messages + + + + + syslog facilities + + + + The syslog facilities + + + + + + kernel messages + + + + + random user-level messages + + + + + mail system + + + + + system daemons + + + + + security/authorization messages + + + + + messages generated internally by syslogd + + + + + line printer subsystem + + + + + network news subsystem + + + + + UUCP subsystem + + + + + clock (cron/at) daemon + + + + + security/authorization messages (private) + + + + + ftp daemon + + + + + NTP subsystem + + + + + log audit + + + + + log alert + + + + + clock daemon + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + + + The mapped syslog severity for the specified level + + + + Required property. + The mapped syslog severity for the specified level + + + + + + Delivers logging events to a remote logging sink. + + + + This Appender is designed to deliver events to a remote sink. + That is any object that implements the + interface. It delivers the events using .NET remoting. The + object to deliver events to is specified by setting the + appenders property. + + The RemotingAppender buffers events before sending them. This allows it to + make more efficient use of the remoting infrastructure. + + Once the buffer is full the events are still not sent immediately. + They are scheduled to be sent using a pool thread. The effect is that + the send occurs asynchronously. This is very important for a + number of non obvious reasons. The remoting infrastructure will + flow thread local variables (stored in the ), + if they are marked as , across the + remoting boundary. If the server is not contactable then + the remoting infrastructure will clear the + objects from the . To prevent a logging failure from + having side effects on the calling application the remoting call must be made + from a separate thread to the one used by the application. A + thread is used for this. If no thread is available then + the events will block in the thread pool manager until a thread is available. + + Because the events are sent asynchronously using pool threads it is possible to close + this appender before all the queued events have been sent. + When closing the appender attempts to wait until all the queued events have been sent, but + this will timeout after 30 seconds regardless. + + If this appender is being closed because the + event has fired it may not be possible to send all the queued events. During process + exit the runtime limits the time that a + event handler is allowed to run for. If the runtime terminates the threads before + the queued events have been sent then they will be lost. To ensure that all events + are sent the appender must be closed before the application exits. See + for details on how to shutdown + log4net programmatically. + + + Nicko Cadell + Gert Driesen + Daniel Cazzulino + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Send the contents of the buffer to the remote sink. + + + The events are not sent immediately. They are scheduled to be sent + using a pool thread. The effect is that the send occurs asynchronously. + This is very important for a number of non obvious reasons. The remoting + infrastructure will flow thread local variables (stored in the ), + if they are marked as , across the + remoting boundary. If the server is not contactable then + the remoting infrastructure will clear the + objects from the . To prevent a logging failure from + having side effects on the calling application the remoting call must be made + from a separate thread to the one used by the application. A + thread is used for this. If no thread is available then + the events will block in the thread pool manager until a thread is available. + + The events to send. + + + + Override base class close. + + + + This method waits while there are queued work items. The events are + sent asynchronously using work items. These items + will be sent once a thread pool thread is available to send them, therefore + it is possible to close the appender before all the queued events have been + sent. + + This method attempts to wait until all the queued events have been sent, but this + method will timeout after 30 seconds regardless. + + If the appender is being closed because the + event has fired it may not be possible to send all the queued events. During process + exit the runtime limits the time that a + event handler is allowed to run for. + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + A work item is being queued into the thread pool + + + + + A work item from the thread pool has completed + + + + + Send the contents of the buffer to the remote sink. + + + This method is designed to be used with the . + This method expects to be passed an array of + objects in the state param. + + the logging events to send + + + + The URL of the remote sink. + + + + + The local proxy (.NET remoting) for the remote logging sink. + + + + + The number of queued callbacks currently waiting or executing + + + + + Event used to signal when there are no queued work items + + + This event is set when there are no queued work items. In this + state it is safe to close the appender. + + + + + Gets or sets the URL of the well-known object that will accept + the logging events. + + + The well-known URL of the remote sink. + + + + The URL of the remoting sink that will accept logging events. + The sink must implement the + interface. + + + + + + Interface used to deliver objects to a remote sink. + + + This interface must be implemented by a remoting sink + if the is to be used + to deliver logging events to the sink. + + + + + Delivers logging events to the remote sink + + Array of events to log. + + + Delivers logging events to the remote sink + + + + + + Appender that rolls log files based on size or date or both. + + + + RollingFileAppender can roll log files based on size or date or both + depending on the setting of the property. + When set to the log file will be rolled + once its size exceeds the . + When set to the log file will be rolled + once the date boundary specified in the property + is crossed. + When set to the log file will be + rolled once the date boundary specified in the property + is crossed, but within a date boundary the file will also be rolled + once its size exceeds the . + When set to the log file will be rolled when + the appender is configured. This effectively means that the log file can be + rolled once per program execution. + + + A of few additional optional features have been added: + + Attach date pattern for current log file + Backup number increments for newer files + Infinite number of backups by file size + + + + + + For large or infinite numbers of backup files a + greater than zero is highly recommended, otherwise all the backup files need + to be renamed each time a new backup is created. + + + When Date/Time based rolling is used setting + to will reduce the number of file renamings to few or none. + + + + + + Changing or without clearing + the log file directory of backup files will cause unexpected and unwanted side effects. + + + + + If Date/Time based rolling is enabled this appender will attempt to roll existing files + in the directory without a Date/Time tag based on the last write date of the base log file. + The appender only rolls the log file when a message is logged. If Date/Time based rolling + is enabled then the appender will not roll the log file at the Date/Time boundary but + at the point when the next message is logged after the boundary has been crossed. + + + + The extends the and + has the same behavior when opening the log file. + The appender will first try to open the file for writing when + is called. This will typically be during configuration. + If the file cannot be opened for writing the appender will attempt + to open the file again each time a message is logged to the appender. + If the file cannot be opened for writing when a message is logged then + the message will be discarded by this appender. + + + When rolling a backup file necessitates deleting an older backup file the + file to be deleted is moved to a temporary name before being deleted. + + + + + A maximum number of backup files when rolling on date/time boundaries is not supported. + + + + Nicko Cadell + Gert Driesen + Aspi Havewala + Douglas de la Torre + Edward Smit + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Cleans up all resources used by this appender. + + + + + The fully qualified type of the RollingFileAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Sets the quiet writer being used. + + + This method can be overridden by sub classes. + + the writer to set + + + + Write out a logging event. + + the event to write to file. + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Write out an array of logging events. + + the events to write to file. + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Performs any required rolling before outputting the next event + + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Creates and opens the file for logging. If + is false then the fully qualified name is determined and used. + + the name of the file to open + true to append to existing file + + This method will ensure that the directory structure + for the specified exists. + + + + + Get the current output file name + + the base file name + the output file name + + The output file name is based on the base fileName specified. + If is set then the output + file name is the same as the base file passed in. Otherwise + the output file depends on the date pattern, on the count + direction or both. + + + + + Determines curSizeRollBackups (only within the current roll point) + + + + + Generates a wildcard pattern that can be used to find all files + that are similar to the base file name. + + + + + + + Builds a list of filenames for all files matching the base filename plus a file + pattern. + + + + + + + Initiates a roll over if needed for crossing a date boundary since the last run. + + + + + Initializes based on existing conditions at time of . + + + + Initializes based on existing conditions at time of . + The following is done + + determine curSizeRollBackups (only within the current roll point) + initiates a roll over if needed for crossing a date boundary since the last run. + + + + + + + Does the work of bumping the 'current' file counter higher + to the highest count when an incremental file name is seen. + The highest count is either the first file (when count direction + is greater than 0) or the last file (when count direction less than 0). + In either case, we want to know the highest count that is present. + + + + + + + Attempts to extract a number from the end of the file name that indicates + the number of the times the file has been rolled over. + + + Certain date pattern extensions like yyyyMMdd will be parsed as valid backup indexes. + + + + + + + Takes a list of files and a base file name, and looks for + 'incremented' versions of the base file. Bumps the max + count up to the highest count seen. + + + + + + + Calculates the RollPoint for the datePattern supplied. + + the date pattern to calculate the check period for + The RollPoint that is most accurate for the date pattern supplied + + Essentially the date pattern is examined to determine what the + most suitable roll point is. The roll point chosen is the roll point + with the smallest period that can be detected using the date pattern + supplied. i.e. if the date pattern only outputs the year, month, day + and hour then the smallest roll point that can be detected would be + and hourly roll point as minutes could not be detected. + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Sets initial conditions including date/time roll over information, first check, + scheduledFilename, and calls to initialize + the current number of backups. + + + + + + + + + .1, .2, .3, etc. + + + + + Rollover the file(s) to date/time tagged file(s). + + set to true if the file to be rolled is currently open + + + Rollover the file(s) to date/time tagged file(s). + Resets curSizeRollBackups. + If fileIsOpen is set then the new file is opened (through SafeOpenFile). + + + + + + Renames file to file . + + Name of existing file to roll. + New name for file. + + + Renames file to file . It + also checks for existence of target file and deletes if it does. + + + + + + Test if a file exists at a specified path + + the path to the file + true if the file exists + + + Test if a file exists at a specified path + + + + + + Deletes the specified file if it exists. + + The file to delete. + + + Delete a file if is exists. + The file is first moved to a new filename then deleted. + This allows the file to be removed even when it cannot + be deleted, but it still can be moved. + + + + + + Implements file roll base on file size. + + + + If the maximum number of size based backups is reached + (curSizeRollBackups == maxSizeRollBackups) then the oldest + file is deleted -- its index determined by the sign of countDirection. + If countDirection < 0, then files + {File.1, ..., File.curSizeRollBackups -1} + are renamed to {File.2, ..., + File.curSizeRollBackups}. Moreover, File is + renamed File.1 and closed. + + + A new file is created to receive further log output. + + + If maxSizeRollBackups is equal to zero, then the + File is truncated with no backup files created. + + + If maxSizeRollBackups < 0, then File is + renamed if needed and no files are deleted. + + + + + + Implements file roll. + + the base name to rename + + + If the maximum number of size based backups is reached + (curSizeRollBackups == maxSizeRollBackups) then the oldest + file is deleted -- its index determined by the sign of countDirection. + If countDirection < 0, then files + {File.1, ..., File.curSizeRollBackups -1} + are renamed to {File.2, ..., + File.curSizeRollBackups}. + + + If maxSizeRollBackups is equal to zero, then the + File is truncated with no backup files created. + + + If maxSizeRollBackups < 0, then File is + renamed if needed and no files are deleted. + + + This is called by to rename the files. + + + + + + Get the start time of the next window for the current rollpoint + + the current date + the type of roll point we are working with + the start time for the next roll point an interval after the currentDateTime date + + + Returns the date of the next roll point after the currentDateTime date passed to the method. + + + The basic strategy is to subtract the time parts that are less significant + than the rollpoint from the current time. This should roll the time back to + the start of the time window for the current rollpoint. Then we add 1 window + worth of time and get the start time of the next window for the rollpoint. + + + + + + This object supplies the current date/time. Allows test code to plug in + a method to control this class when testing date/time based rolling. The default + implementation uses the underlying value of DateTime.Now. + + + + + The date pattern. By default, the pattern is set to ".yyyy-MM-dd" + meaning daily rollover. + + + + + The actual formatted filename that is currently being written to + or will be the file transferred to on roll over + (based on staticLogFileName). + + + + + The timestamp when we shall next recompute the filename. + + + + + Holds date of last roll over + + + + + The type of rolling done + + + + + The default maximum file size is 10MB + + + + + There is zero backup files by default + + + + + How many sized based backups have been made so far + + + + + The rolling file count direction. + + + + + The rolling mode used in this appender. + + + + + Cache flag set if we are rolling by date. + + + + + Cache flag set if we are rolling by size. + + + + + Value indicating whether to always log to the same file. + + + + + Value indicating whether to preserve the file name extension when rolling. + + + + + FileName provided in configuration. Used for rolling properly + + + + + A mutex that is used to lock rolling of files. + + + + + The 1st of January 1970 in UTC + + + + + Gets or sets the strategy for determining the current date and time. The default + implementation is to use LocalDateTime which internally calls through to DateTime.Now. + DateTime.UtcNow may be used on frameworks newer than .NET 1.0 by specifying + . + + + An implementation of the interface which returns the current date and time. + + + + Gets or sets the used to return the current date and time. + + + There are two built strategies for determining the current date and time, + + and . + + + The default strategy is . + + + + + + Gets or sets the date pattern to be used for generating file names + when rolling over on date. + + + The date pattern to be used for generating file names when rolling + over on date. + + + + Takes a string in the same format as expected by + . + + + This property determines the rollover schedule when rolling over + on date. + + + + + + Gets or sets the maximum number of backup files that are kept before + the oldest is erased. + + + The maximum number of backup files that are kept before the oldest is + erased. + + + + If set to zero, then there will be no backup files and the log file + will be truncated when it reaches . + + + If a negative number is supplied then no deletions will be made. Note + that this could result in very slow performance as a large number of + files are rolled over unless is used. + + + The maximum applies to each time based group of files and + not the total. + + + + + + Gets or sets the maximum size that the output file is allowed to reach + before being rolled over to backup files. + + + The maximum size in bytes that the output file is allowed to reach before being + rolled over to backup files. + + + + This property is equivalent to except + that it is required for differentiating the setter taking a + argument from the setter taking a + argument. + + + The default maximum file size is 10MB (10*1024*1024). + + + + + + Gets or sets the maximum size that the output file is allowed to reach + before being rolled over to backup files. + + + The maximum size that the output file is allowed to reach before being + rolled over to backup files. + + + + This property allows you to specify the maximum size with the + suffixes "KB", "MB" or "GB" so that the size is interpreted being + expressed respectively in kilobytes, megabytes or gigabytes. + + + For example, the value "10KB" will be interpreted as 10240 bytes. + + + The default maximum file size is 10MB. + + + If you have the option to set the maximum file size programmatically + consider using the property instead as this + allows you to set the size in bytes as a . + + + + + + Gets or sets the rolling file count direction. + + + The rolling file count direction. + + + + Indicates if the current file is the lowest numbered file or the + highest numbered file. + + + By default newer files have lower numbers ( < 0), + i.e. log.1 is most recent, log.5 is the 5th backup, etc... + + + >= 0 does the opposite i.e. + log.1 is the first backup made, log.5 is the 5th backup made, etc. + For infinite backups use >= 0 to reduce + rollover costs. + + The default file count direction is -1. + + + + + Gets or sets the rolling style. + + The rolling style. + + + The default rolling style is . + + + When set to this appender's + property is set to false, otherwise + the appender would append to a single file rather than rolling + the file each time it is opened. + + + + + + Gets or sets a value indicating whether to preserve the file name extension when rolling. + + + true if the file name extension should be preserved. + + + + By default file.log is rolled to file.log.yyyy-MM-dd or file.log.curSizeRollBackup. + However, under Windows the new file name will loose any program associations as the + extension is changed. Optionally file.log can be renamed to file.yyyy-MM-dd.log or + file.curSizeRollBackup.log to maintain any program associations. + + + + + + Gets or sets a value indicating whether to always log to + the same file. + + + true if always should be logged to the same file, otherwise false. + + + + By default file.log is always the current file. Optionally + file.log.yyyy-mm-dd for current formatted datePattern can by the currently + logging file (or file.log.curSizeRollBackup or even + file.log.yyyy-mm-dd.curSizeRollBackup). + + + This will make time based rollovers with a large number of backups + much faster as the appender it won't have to rename all the backups! + + + + + + Style of rolling to use + + + + Style of rolling to use + + + + + + Roll files once per program execution + + + + Roll files once per program execution. + Well really once each time this appender is + configured. + + + Setting this option also sets AppendToFile to + false on the RollingFileAppender, otherwise + this appender would just be a normal file appender. + + + + + + Roll files based only on the size of the file + + + + + Roll files based only on the date + + + + + Roll files based on both the size and date of the file + + + + + The code assumes that the following 'time' constants are in a increasing sequence. + + + + The code assumes that the following 'time' constants are in a increasing sequence. + + + + + + Roll the log not based on the date + + + + + Roll the log for each minute + + + + + Roll the log for each hour + + + + + Roll the log twice a day (midday and midnight) + + + + + Roll the log each day (midnight) + + + + + Roll the log each week + + + + + Roll the log each month + + + + + This interface is used to supply Date/Time information to the . + + + This interface is used to supply Date/Time information to the . + Used primarily to allow test classes to plug themselves in so they can + supply test date/times. + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Default implementation of that returns the current time. + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Implementation of that returns the current time as the coordinated universal time (UTC). + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Send an e-mail when a specific logging event occurs, typically on errors + or fatal errors. + + + + The number of logging events delivered in this e-mail depend on + the value of option. The + keeps only the last + logging events in its + cyclic buffer. This keeps memory requirements at a reasonable level while + still delivering useful application context. + + + Authentication and setting the server Port are only available on the MS .NET 1.1 runtime. + For these features to be enabled you need to ensure that you are using a version of + the log4net assembly that is built against the MS .NET 1.1 framework and that you are + running the your application on the MS .NET 1.1 runtime. On all other platforms only sending + unauthenticated messages to a server listening on port 25 (the default) is supported. + + + Authentication is supported by setting the property to + either or . + If using authentication then the + and properties must also be set. + + + To set the SMTP server port use the property. The default port is 25. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Default constructor + + + + + + Sends the contents of the cyclic buffer as an e-mail message. + + The logging events to send. + + + + Send the email message + + the body text to include in the mail + + + + trims leading and trailing commas or semicolons + + + + + Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses (use semicolon on .NET 1.1 and comma for later versions). + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + + Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses + that will be carbon copied (use semicolon on .NET 1.1 and comma for later versions). + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + + Gets or sets a semicolon-delimited list of recipient e-mail addresses + that will be blind carbon copied. + + + A semicolon-delimited list of e-mail addresses. + + + + A semicolon-delimited list of recipient e-mail addresses. + + + + + + Gets or sets the e-mail address of the sender. + + + The e-mail address of the sender. + + + + The e-mail address of the sender. + + + + + + Gets or sets the subject line of the e-mail message. + + + The subject line of the e-mail message. + + + + The subject line of the e-mail message. + + + + + + Gets or sets the name of the SMTP relay mail server to use to send + the e-mail messages. + + + The name of the e-mail relay server. If SmtpServer is not set, the + name of the local SMTP server is used. + + + + The name of the e-mail relay server. If SmtpServer is not set, the + name of the local SMTP server is used. + + + + + + Obsolete + + + Use the BufferingAppenderSkeleton Fix methods instead + + + + Obsolete property. + + + + + + The mode to use to authentication with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + Valid Authentication mode values are: , + , and . + The default value is . When using + you must specify the + and to use to authenticate. + When using the Windows credentials for the current + thread, if impersonating, or the process will be used to authenticate. + + + + + + The username to use to authenticate with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + A and must be specified when + is set to , + otherwise the username will be ignored. + + + + + + The password to use to authenticate with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + A and must be specified when + is set to , + otherwise the password will be ignored. + + + + + + The port on which the SMTP server is listening + + + Server Port is only available on the MS .NET 1.1 runtime. + + The port on which the SMTP server is listening. The default + port is 25. The Port can only be changed when running on + the MS .NET 1.1 runtime. + + + + + + Gets or sets the priority of the e-mail message + + + One of the values. + + + + Sets the priority of the e-mails generated by this + appender. The default priority is . + + + If you are using this appender to report errors then + you may want to set the priority to . + + + + + + Enable or disable use of SSL when sending e-mail message + + + This is available on MS .NET 2.0 runtime and higher + + + + + Gets or sets the reply-to e-mail address. + + + This is available on MS .NET 2.0 runtime and higher + + + + + Gets or sets the subject encoding to be used. + + + The default encoding is the operating system's current ANSI codepage. + + + + + Gets or sets the body encoding to be used. + + + The default encoding is the operating system's current ANSI codepage. + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Values for the property. + + + + SMTP authentication modes. + + + + + + No authentication + + + + + Basic authentication. + + + Requires a username and password to be supplied + + + + + Integrated authentication + + + Uses the Windows credentials from the current thread or process to authenticate. + + + + + Send an email when a specific logging event occurs, typically on errors + or fatal errors. Rather than sending via smtp it writes a file into the + directory specified by . This allows services such + as the IIS SMTP agent to manage sending the messages. + + + + The configuration for this appender is identical to that of the SMTPAppender, + except that instead of specifying the SMTPAppender.SMTPHost you specify + . + + + The number of logging events delivered in this e-mail depend on + the value of option. The + keeps only the last + logging events in its + cyclic buffer. This keeps memory requirements at a reasonable level while + still delivering useful application context. + + + Niall Daley + Nicko Cadell + + + + Default constructor + + + + Default constructor + + + + + + Sends the contents of the cyclic buffer as an e-mail message. + + The logging events to send. + + + Sends the contents of the cyclic buffer as an e-mail message. + + + + + + Activate the options on this appender. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Convert a path into a fully qualified path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + + + + The security context to use for privileged calls + + + + + Gets or sets a semicolon-delimited list of recipient e-mail addresses. + + + A semicolon-delimited list of e-mail addresses. + + + + A semicolon-delimited list of e-mail addresses. + + + + + + Gets or sets the e-mail address of the sender. + + + The e-mail address of the sender. + + + + The e-mail address of the sender. + + + + + + Gets or sets the subject line of the e-mail message. + + + The subject line of the e-mail message. + + + + The subject line of the e-mail message. + + + + + + Gets or sets the path to write the messages to. + + + + Gets or sets the path to write the messages to. This should be the same + as that used by the agent sending the messages. + + + + + + Gets or sets the file extension for the generated files + + + The file extension for the generated files + + + + The file extension for the generated files + + + + + + Gets or sets the used to write to the pickup directory. + + + The used to write to the pickup directory. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Appender that allows clients to connect via Telnet to receive log messages + + + + The TelnetAppender accepts socket connections and streams logging messages + back to the client. + The output is provided in a telnet-friendly way so that a log can be monitored + over a TCP/IP socket. + This allows simple remote monitoring of application logging. + + + The default is 23 (the telnet port). + + + Keith Long + Nicko Cadell + + + + Default constructor + + + + Default constructor + + + + + + The fully qualified type of the TelnetAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Overrides the parent method to close the socket handler + + + + Closes all the outstanding connections. + + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Create the socket handler and wait for connections + + + + + + Writes the logging event to each connected client. + + The event to log. + + + Writes the logging event to each connected client. + + + + + + Gets or sets the TCP port number on which this will listen for connections. + + + An integer value in the range to + indicating the TCP port number on which this will listen for connections. + + + + The default value is 23 (the telnet port). + + + The value specified is less than + or greater than . + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Helper class to manage connected clients + + + + The SocketHandler class is used to accept connections from + clients. It is threaded so that clients can connect/disconnect + asynchronously. + + + + + + Opens a new server port on + + the local port to listen on for connections + + + Creates a socket handler on the specified local server port. + + + + + + Sends a string message to each of the connected clients + + the text to send + + + Sends a string message to each of the connected clients + + + + + + Add a client to the internal clients list + + client to add + + + + Remove a client from the internal clients list + + client to remove + + + + Callback used to accept a connection on the server socket + + The result of the asynchronous operation + + + On connection adds to the list of connections + if there are two many open connections you will be disconnected + + + + + + Close all network connections + + + + Make sure we close all network connections + + + + + + Test if this handler has active connections + + + true if this handler has active connections + + + + This property will be true while this handler has + active connections, that is at least one connection that + the handler will attempt to send a message to. + + + + + + Class that represents a client connected to this handler + + + + Class that represents a client connected to this handler + + + + + + Create this for the specified + + the client's socket + + + Opens a stream writer on the socket. + + + + + + Write a string to the client + + string to send + + + Write a string to the client + + + + + + Cleanup the clients connection + + + + Close the socket connection. + + + + + + Appends log events to the system. + + + + The application configuration file can be used to control what listeners + are actually used. See the MSDN documentation for the + class for details on configuring the + trace system. + + + Events are written using the System.Diagnostics.Trace.Write(string,string) + method. The event's logger name is the default value for the category parameter + of the Write method. + + + Compact Framework
+ The Compact Framework does not support the + class for any operation except Assert. When using the Compact Framework this + appender will write to the system rather than + the Trace system. This appender will therefore behave like the . +
+
+ Douglas de la Torre + Nicko Cadell + Gert Driesen + Ron Grabowski +
+ + + Initializes a new instance of the . + + + + Default constructor. + + + + + + Initializes a new instance of the + with a specified layout. + + The layout to use with this appender. + + + Obsolete constructor. + + + + + + Writes the logging event to the system. + + The event to log. + + + Writes the logging event to the system. + + + + + + Immediate flush means that the underlying writer or output stream + will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logs events are not actually written to persistent media if and + when the application crashes. + + + The default value is true. + + + + + Defaults to %logger + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Gets or sets a value that indicates whether the appender will + flush at the end of each write. + + + The default behavior is to flush at the end of each + write. If the option is set tofalse, then the underlying + stream can defer writing to physical medium to a later time. + + + Avoiding the flush operation at the end of each append results + in a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + + The category parameter sent to the Trace method. + + + + Defaults to %logger which will use the logger name of the current + as the category parameter. + + + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Assembly level attribute that specifies a domain to alias to this assembly's repository. + + + + AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. + + + An assembly's logger repository is defined by its , + however this can be overridden by an assembly loaded before the target assembly. + + + An assembly can alias another assembly's domain to its repository by + specifying this attribute with the name of the target domain. + + + This attribute can only be specified on the assembly and may be used + as many times as necessary to alias all the required domains. + + + Nicko Cadell + Gert Driesen + + + + Assembly level attribute that specifies a repository to alias to this assembly's repository. + + + + An assembly's logger repository is defined by its , + however this can be overridden by an assembly loaded before the target assembly. + + + An assembly can alias another assembly's repository to its repository by + specifying this attribute with the name of the target repository. + + + This attribute can only be specified on the assembly and may be used + as many times as necessary to alias all the required repositories. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class with + the specified repository to alias to this assembly's repository. + + The repository to alias to this assemby's repository. + + + Initializes a new instance of the class with + the specified repository to alias to this assembly's repository. + + + + + + Gets or sets the repository to alias to this assemby's repository. + + + The repository to alias to this assemby's repository. + + + + The name of the repository to alias to this assemby's repository. + + + + + + Initializes a new instance of the class with + the specified domain to alias to this assembly's repository. + + The domain to alias to this assemby's repository. + + + Obsolete. Use instead of . + + + + + + Use this class to quickly configure a . + + + + Allows very simple programmatic configuration of log4net. + + + Only one appender can be configured using this configurator. + The appender is set at the root of the hierarchy and all logging + events will be delivered to that appender. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + The fully qualified type of the BasicConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Initializes the log4net system with a default configuration. + + + + Initializes the log4net logging system using a + that will write to Console.Out. The log messages are + formatted using the layout object + with the + layout style. + + + + + + Initializes the log4net system using the specified appenders. + + The appenders to use to log all logging events. + + + Initializes the log4net system using the specified appenders. + + + + + + Initializes the log4net system using the specified appender. + + The appender to use to log all logging events. + + + Initializes the log4net system using the specified appender. + + + + + + Initializes the with a default configuration. + + The repository to configure. + + + Initializes the specified repository using a + that will write to Console.Out. The log messages are + formatted using the layout object + with the + layout style. + + + + + + Initializes the using the specified appender. + + The repository to configure. + The appender to use to log all logging events. + + + Initializes the using the specified appender. + + + + + + Initializes the using the specified appenders. + + The repository to configure. + The appenders to use to log all logging events. + + + Initializes the using the specified appender. + + + + + + Base class for all log4net configuration attributes. + + + This is an abstract class that must be extended by + specific configurators. This attribute allows the + configurator to be parameterized by an assembly level + attribute. + + Nicko Cadell + Gert Driesen + + + + Constructor used by subclasses. + + the ordering priority for this configurator + + + The is used to order the configurator + attributes before they are invoked. Higher priority configurators are executed + before lower priority ones. + + + + + + Configures the for the specified assembly. + + The assembly that this attribute was defined on. + The repository to configure. + + + Abstract method implemented by a subclass. When this method is called + the subclass should configure the . + + + + + + Compare this instance to another ConfiguratorAttribute + + the object to compare to + see + + + Compares the priorities of the two instances. + Sorts by priority in descending order. Objects with the same priority are + randomly ordered. + + + + + + Assembly level attribute that specifies the logging domain for the assembly. + + + + DomainAttribute is obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + Assemblies are mapped to logging domains. Each domain has its own + logging repository. This attribute specified on the assembly controls + the configuration of the domain. The property specifies the name + of the domain that this assembly is a part of. The + specifies the type of the repository objects to create for the domain. If + this attribute is not specified and a is not specified + then the assembly will be part of the default shared logging domain. + + + This attribute can only be specified on the assembly and may only be used + once per assembly. + + + Nicko Cadell + Gert Driesen + + + + Assembly level attribute that specifies the logging repository for the assembly. + + + + Assemblies are mapped to logging repository. This attribute specified + on the assembly controls + the configuration of the repository. The property specifies the name + of the repository that this assembly is a part of. The + specifies the type of the object + to create for the assembly. If this attribute is not specified or a + is not specified then the assembly will be part of the default shared logging repository. + + + This attribute can only be specified on the assembly and may only be used + once per assembly. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initialize a new instance of the class + with the name of the repository. + + The name of the repository. + + + Initialize the attribute with the name for the assembly's repository. + + + + + + Gets or sets the name of the logging repository. + + + The string name to use as the name of the repository associated with this + assembly. + + + + This value does not have to be unique. Several assemblies can share the + same repository. They will share the logging configuration of the repository. + + + + + + Gets or sets the type of repository to create for this assembly. + + + The type of repository to create for this assembly. + + + + The type of the repository to create for the assembly. + The type must implement the + interface. + + + This will be the type of repository created when + the repository is created. If multiple assemblies reference the + same repository then the repository is only created once using the + of the first assembly to call into the + repository. + + + + + + Initializes a new instance of the class. + + + + Obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + + + + Initialize a new instance of the class + with the name of the domain. + + The name of the domain. + + + Obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + + + + Use this class to initialize the log4net environment using an Xml tree. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + Configures a using an Xml tree. + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + + + Automatically configures the log4net system based on the + application's configuration settings. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + + + Automatically configures the using settings + stored in the application's configuration file. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + The repository to configure. + + + + Configures log4net using a log4net element + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Loads the log4net configuration from the XML element + supplied as . + + The element to parse. + + + + Configures the using the specified XML + element. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Loads the log4net configuration from the XML element + supplied as . + + The repository to configure. + The element to parse. + + + + Configures log4net using the specified configuration file. + + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures log4net using the specified configuration file. + + A stream to load the XML configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The stream to load the XML configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures log4net using the file specified, monitors the file for changes + and reloads the configuration if a change is detected. + + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the using the file specified, + monitors the file for changes and reloads the configuration if a change + is detected. + + The repository to configure. + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Assembly level attribute to configure the . + + + + AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + Nicko Cadell + Gert Driesen + + + + Assembly level attribute to configure the . + + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + If neither of the or + properties are set the configuration is loaded from the application's .config file. + If set the property takes priority over the + property. The property + specifies a path to a file to load the config from. The path is relative to the + application's base directory; . + The property is used as a postfix to the assembly file name. + The config file must be located in the application's base directory; . + For example in a console application setting the to + config has the same effect as not specifying the or + properties. + + + The property can be set to cause the + to watch the configuration file for changes. + + + + Log4net will only look for assembly level configuration attributes once. + When using the log4net assembly level attributes to control the configuration + of log4net you must ensure that the first call to any of the + methods is made from the assembly with the configuration + attributes. + + + If you cannot guarantee the order in which log4net calls will be made from + different assemblies you must use programmatic configuration instead, i.e. + call the method directly. + + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Default constructor + + + + + + Configures the for the specified assembly. + + The assembly that this attribute was defined on. + The repository to configure. + + + Configure the repository using the . + The specified must extend the + class otherwise the will not be able to + configure it. + + + The does not extend . + + + + Attempt to load configuration from the local file system + + The assembly that this attribute was defined on. + The repository to configure. + + + + Configure the specified repository using a + + The repository to configure. + the FileInfo pointing to the config file + + + + Attempt to load configuration from a URI + + The assembly that this attribute was defined on. + The repository to configure. + + + + The fully qualified type of the XmlConfiguratorAttribute class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the filename of the configuration file. + + + The filename of the configuration file. + + + + If specified, this is the name of the configuration file to use with + the . This file path is relative to the + application base directory (). + + + The takes priority over the . + + + + + + Gets or sets the extension of the configuration file. + + + The extension of the configuration file. + + + + If specified this is the extension for the configuration file. + The path to the config file is built by using the application + base directory (), + the assembly file name and the config file extension. + + + If the is set to MyExt then + possible config file names would be: MyConsoleApp.exe.MyExt or + MyClassLibrary.dll.MyExt. + + + The takes priority over the . + + + + + + Gets or sets a value indicating whether to watch the configuration file. + + + true if the configuration should be watched, false otherwise. + + + + If this flag is specified and set to true then the framework + will watch the configuration file and will reload the config each time + the file is modified. + + + The config file can only be watched if it is loaded from local disk. + In a No-Touch (Smart Client) deployment where the application is downloaded + from a web server the config file may not reside on the local disk + and therefore it may not be able to watch it. + + + Watching configuration is not supported on the SSCLI. + + + + + + Class to register for the log4net section of the configuration file + + + The log4net section of the configuration file needs to have a section + handler registered. This is the section handler used. It simply returns + the XML element that is the root of the section. + + + Example of registering the log4net section handler : + + + +
+ + + log4net configuration XML goes here + + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Parses the configuration section. + + The configuration settings in a corresponding parent configuration section. + The configuration context when called from the ASP.NET configuration system. Otherwise, this parameter is reserved and is a null reference. + The for the log4net section. + The for the log4net section. + + + Returns the containing the configuration data, + + + + + + Assembly level attribute that specifies a plugin to attach to + the repository. + + + + Specifies the type of a plugin to create and attach to the + assembly's repository. The plugin type must implement the + interface. + + + Nicko Cadell + Gert Driesen + + + + Interface used to create plugins. + + + + Interface used to create a plugin. + + + Nicko Cadell + Gert Driesen + + + + Creates the plugin object. + + the new plugin instance + + + Create and return a new plugin instance. + + + + + + Initializes a new instance of the class + with the specified type. + + The type name of plugin to create. + + + Create the attribute with the plugin type specified. + + + Where possible use the constructor that takes a . + + + + + + Initializes a new instance of the class + with the specified type. + + The type of plugin to create. + + + Create the attribute with the plugin type specified. + + + + + + Creates the plugin object defined by this attribute. + + + + Creates the instance of the object as + specified by this attribute. + + + The plugin object. + + + + Returns a representation of the properties of this object. + + + + Overrides base class method to + return a representation of the properties of this object. + + + A representation of the properties of this object + + + + Gets or sets the type for the plugin. + + + The type for the plugin. + + + + The type for the plugin. + + + + + + Gets or sets the type name for the plugin. + + + The type name for the plugin. + + + + The type name for the plugin. + + + Where possible use the property instead. + + + + + + Assembly level attribute to configure the . + + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + Nicko Cadell + + + + Construct provider attribute with type specified + + the type of the provider to use + + + The provider specified must subclass the + class. + + + + + + Configures the SecurityContextProvider + + The assembly that this attribute was defined on. + The repository to configure. + + + Creates a provider instance from the specified. + Sets this as the default security context provider . + + + + + + The fully qualified type of the SecurityContextProviderAttribute class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the type of the provider to use. + + + the type of the provider to use. + + + + The provider specified must subclass the + class. + + + + + + Use this class to initialize the log4net environment using an Xml tree. + + + + Configures a using an Xml tree. + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + + + Automatically configures the using settings + stored in the application's configuration file. + + + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + To use this method to configure log4net you must specify + the section + handler for the log4net configuration section. See the + for an example. + + + The repository to configure. + + + + Automatically configures the log4net system based on the + application's configuration settings. + + + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + To use this method to configure log4net you must specify + the section + handler for the log4net configuration section. See the + for an example. + + + + + + + Configures log4net using a log4net element + + + + Loads the log4net configuration from the XML element + supplied as . + + + The element to parse. + + + + Configures log4net using the specified configuration file. + + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The first element matching <configuration> will be read as the + configuration. If this file is also a .NET .config file then you must specify + a configuration section for the log4net element otherwise .NET will + complain. Set the type for the section handler to , for example: + + +
+ + + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures log4net using the specified configuration URI. + + A URI to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The must support the URI scheme specified. + + + + + + Configures log4net using the specified configuration data stream. + + A stream to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures the using the specified XML + element. + + + Loads the log4net configuration from the XML element + supplied as . + + The repository to configure. + The element to parse. + + + + Configures the using the specified configuration + file. + + The repository to configure. + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The first element matching <configuration> will be read as the + configuration. If this file is also a .NET .config file then you must specify + a configuration section for the log4net element otherwise .NET will + complain. Set the type for the section handler to , for example: + + +
+ + + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures the using the specified configuration + URI. + + The repository to configure. + A URI to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The must support the URI scheme specified. + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The stream to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures log4net using the file specified, monitors the file for changes + and reloads the configuration if a change is detected. + + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the using the file specified, + monitors the file for changes and reloads the configuration if a change + is detected. + + The repository to configure. + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the specified repository using a log4net element. + + The hierarchy to configure. + The element to parse. + + + Loads the log4net configuration from the XML element + supplied as . + + + This method is ultimately called by one of the Configure methods + to load the configuration from an . + + + + + + Maps repository names to ConfigAndWatchHandler instances to allow a particular + ConfigAndWatchHandler to dispose of its FileSystemWatcher when a repository is + reconfigured. + + + + + The fully qualified type of the XmlConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Class used to watch config files. + + + + Uses the to monitor + changes to a specified file. Because multiple change notifications + may be raised when the file is modified, a timer is used to + compress the notifications into a single event. The timer + waits for time before delivering + the event notification. If any further + change notifications arrive while the timer is waiting it + is reset and waits again for to + elapse. + + + + + + The default amount of time to wait after receiving notification + before reloading the config file. + + + + + Holds the FileInfo used to configure the XmlConfigurator + + + + + Holds the repository being configured. + + + + + The timer used to compress the notification events. + + + + + Watches file for changes. This object should be disposed when no longer + needed to free system handles on the watched resources. + + + + + Initializes a new instance of the class to + watch a specified config file used to configure a repository. + + The repository to configure. + The configuration file to watch. + + + Initializes a new instance of the class. + + + + + + Event handler used by . + + The firing the event. + The argument indicates the file that caused the event to be fired. + + + This handler reloads the configuration from the file when the event is fired. + + + + + + Event handler used by . + + The firing the event. + The argument indicates the file that caused the event to be fired. + + + This handler reloads the configuration from the file when the event is fired. + + + + + + Called by the timer when the configuration has been updated. + + null + + + + Release the handles held by the watcher and timer. + + + + + The implementation of the interface suitable + for use with the compact framework + + + + This implementation is a simple + mapping between repository name and + object. + + + The .NET Compact Framework 1.0 does not support retrieving assembly + level attributes therefore unlike the DefaultRepositorySelector + this selector does not examine the calling assembly for attributes. + + + Nicko Cadell + + + + Interface used by the to select the . + + + + The uses a + to specify the policy for selecting the correct + to return to the caller. + + + Nicko Cadell + Gert Driesen + + + + Gets the for the specified assembly. + + The assembly to use to lookup to the + The for the assembly. + + + Gets the for the specified assembly. + + + How the association between and + is made is not defined. The implementation may choose any method for + this association. The results of this method must be repeatable, i.e. + when called again with the same arguments the result must be the + save value. + + + + + + Gets the named . + + The name to use to lookup to the . + The named + + Lookup a named . This is the repository created by + calling . + + + + + Creates a new repository for the assembly specified. + + The assembly to use to create the domain to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the domain + specified such that a call to with the + same assembly specified will return the same repository instance. + + + How the association between and + is made is not defined. The implementation may choose any method for + this association. + + + + + + Creates a new repository with the name specified. + + The name to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the name + specified such that a call to with the + same name will return the same repository instance. + + + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets an array of all currently defined repositories. + + + An array of the instances created by + this . + + + Gets an array of all of the repositories created by this selector. + + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + Create a new repository selector + + the type of the repositories to create, must implement + + + Create an new compact repository selector. + The default type for repositories must be specified, + an appropriate value would be . + + + throw if is null + throw if does not implement + + + + Get the for the specified assembly + + not used + The default + + + The argument is not used. This selector does not create a + separate repository for each assembly. + + + As a named repository is not specified the default repository is + returned. The default repository is named log4net-default-repository. + + + + + + Get the named + + the name of the repository to lookup + The named + + + Get the named . The default + repository is log4net-default-repository. Other repositories + must be created using the . + If the named repository does not exist an exception is thrown. + + + throw if is null + throw if the does not exist + + + + Create a new repository for the assembly specified + + not used + the type of repository to create, must implement + the repository created + + + The argument is not used. This selector does not create a + separate repository for each assembly. + + + If the is null then the + default repository type specified to the constructor is used. + + + As a named repository is not specified the default repository is + returned. The default repository is named log4net-default-repository. + + + + + + Create a new repository for the repository specified + + the repository to associate with the + the type of repository to create, must implement . + If this param is null then the default repository type is used. + the repository created + + + The created will be associated with the repository + specified such that a call to with the + same repository specified will return the same repository instance. + + + If the named repository already exists an exception will be thrown. + + + If is null then the default + repository type specified to the constructor is used. + + + throw if is null + throw if the already exists + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets a list of objects + + an array of all known objects + + + Gets an array of all of the repositories created by this selector. + + + + + + The fully qualified type of the CompactRepositorySelector class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Notify the registered listeners that the repository has been created + + The repository that has been created + + + Raises the LoggerRepositoryCreatedEvent + event. + + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + The default implementation of the interface. + + + + Uses attributes defined on the calling assembly to determine how to + configure the hierarchy for the repository. + + + Nicko Cadell + Gert Driesen + + + + Creates a new repository selector. + + The type of the repositories to create, must implement + + + Create an new repository selector. + The default type for repositories must be specified, + an appropriate value would be . + + + is . + does not implement . + + + + Gets the for the specified assembly. + + The assembly use to lookup the . + + + The type of the created and the repository + to create can be overridden by specifying the + attribute on the . + + + The default values are to use the + implementation of the interface and to use the + as the name of the repository. + + + The created will be automatically configured using + any attributes defined on + the . + + + The for the assembly + is . + + + + Gets the for the specified repository. + + The repository to use to lookup the . + The for the specified repository. + + + Returns the named repository. If is null + a is thrown. If the repository + does not exist a is thrown. + + + Use to create a repository. + + + is . + does not exist. + + + + Create a new repository for the assembly specified + + the assembly to use to create the repository to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The type of the created and + the repository to create can be overridden by specifying the + attribute on the + . The default values are to use the + implementation of the + interface and to use the + as the name of the repository. + + + The created will be automatically + configured using any + attributes defined on the . + + + If a repository for the already exists + that repository will be returned. An error will not be raised and that + repository may be of a different type to that specified in . + Also the attribute on the + assembly may be used to override the repository type specified in + . + + + is . + + + + Creates a new repository for the assembly specified. + + the assembly to use to create the repository to associate with the . + The type of repository to create, must implement . + The name to assign to the created repository + Set to true to read and apply the assembly attributes + The repository created. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The type of the created and + the repository to create can be overridden by specifying the + attribute on the + . The default values are to use the + implementation of the + interface and to use the + as the name of the repository. + + + The created will be automatically + configured using any + attributes defined on the . + + + If a repository for the already exists + that repository will be returned. An error will not be raised and that + repository may be of a different type to that specified in . + Also the attribute on the + assembly may be used to override the repository type specified in + . + + + is . + + + + Creates a new repository for the specified repository. + + The repository to associate with the . + The type of repository to create, must implement . + If this param is then the default repository type is used. + The new repository. + + + The created will be associated with the repository + specified such that a call to with the + same repository specified will return the same repository instance. + + + is . + already exists. + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets a list of objects + + an array of all known objects + + + Gets an array of all of the repositories created by this selector. + + + + + + Aliases a repository to an existing repository. + + The repository to alias. + The repository that the repository is aliased to. + + + The repository specified will be aliased to the repository when created. + The repository must not already exist. + + + When the repository is created it must utilize the same repository type as + the repository it is aliased to, otherwise the aliasing will fail. + + + + is . + -or- + is . + + + + + Notifies the registered listeners that the repository has been created. + + The repository that has been created. + + + Raises the event. + + + + + + Gets the repository name and repository type for the specified assembly. + + The assembly that has a . + in/out param to hold the repository name to use for the assembly, caller should set this to the default value before calling. + in/out param to hold the type of the repository to create for the assembly, caller should set this to the default value before calling. + is . + + + + Configures the repository using information from the assembly. + + The assembly containing + attributes which define the configuration for the repository. + The repository to configure. + + is . + -or- + is . + + + + + Loads the attribute defined plugins on the assembly. + + The assembly that contains the attributes. + The repository to add the plugins to. + + is . + -or- + is . + + + + + Loads the attribute defined aliases on the assembly. + + The assembly that contains the attributes. + The repository to alias to. + + is . + -or- + is . + + + + + The fully qualified type of the DefaultRepositorySelector class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + Defined error codes that can be passed to the method. + + + + Values passed to the method. + + + Nicko Cadell + + + + A general error + + + + + Error while writing output + + + + + Failed to flush file + + + + + Failed to close file + + + + + Unable to open output file + + + + + No layout specified + + + + + Failed to parse address + + + + + An evaluator that triggers on an Exception type + + + + This evaluator will trigger if the type of the Exception + passed to + is equal to a Type in . /// + + + Drew Schaeffer + + + + Test if an triggers an action + + + + Implementations of this interface allow certain appenders to decide + when to perform an appender specific action. + + + The action or behavior triggered is defined by the implementation. + + + Nicko Cadell + + + + Test if this event triggers the action + + The event to check + true if this event triggers the action, otherwise false + + + Return true if this event triggers the action + + + + + + The type that causes the trigger to fire. + + + + + Causes subclasses of to cause the trigger to fire. + + + + + Default ctor to allow dynamic creation through a configurator. + + + + + Constructs an evaluator and initializes to trigger on + + the type that triggers this evaluator. + If true, this evaluator will trigger on subclasses of . + + + + Is this the triggering event? + + The event to check + This method returns true, if the logging event Exception + Type is . + Otherwise it returns false + + + This evaluator will trigger if the Exception Type of the event + passed to + is . + + + + + + The type that triggers this evaluator. + + + + + If true, this evaluator will trigger on subclasses of . + + + + + Appenders may delegate their error handling to an . + + + + Error handling is a particularly tedious to get right because by + definition errors are hard to predict and to reproduce. + + + Nicko Cadell + Gert Driesen + + + + Handles the error and information about the error condition is passed as + a parameter. + + The message associated with the error. + The that was thrown when the error occurred. + The error code associated with the error. + + + Handles the error and information about the error condition is passed as + a parameter. + + + + + + Prints the error message passed as a parameter. + + The message associated with the error. + The that was thrown when the error occurred. + + + See . + + + + + + Prints the error message passed as a parameter. + + The message associated with the error. + + + See . + + + + + + Interface for objects that require fixing. + + + + Interface that indicates that the object requires fixing before it + can be taken outside the context of the appender's + method. + + + When objects that implement this interface are stored + in the context properties maps + and + are fixed + (see ) the + method will be called. + + + Nicko Cadell + + + + Get a portable version of this object + + the portable instance of this object + + + Get a portable instance object that represents the current + state of this object. The portable object can be stored + and logged from any thread with identical results. + + + + + + Interface that all loggers implement + + + + This interface supports logging events and testing if a level + is enabled for logging. + + + These methods will not throw exceptions. Note to implementor, ensure + that the implementation of these methods cannot allow an exception + to be thrown to the caller. + + + Nicko Cadell + Gert Driesen + + + + This generic form is intended to be used by wrappers. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + the exception to log, including its stack trace. Pass null to not log an exception. + + + Generates a logging event for the specified using + the and . + + + + + + This is the most generic printing method that is intended to be used + by wrappers. + + The event being logged. + + + Logs the specified logging event through this logger. + + + + + + Checks if this logger is enabled for a given passed as parameter. + + The level to check. + + true if this logger is enabled for level, otherwise false. + + + + Test if this logger is going to log events of the specified . + + + + + + Gets the name of the logger. + + + The name of the logger. + + + + The name of this logger + + + + + + Gets the where this + Logger instance is attached to. + + + The that this logger belongs to. + + + + Gets the where this + Logger instance is attached to. + + + + + + Base interface for all wrappers + + + + Base interface for all wrappers. + + + All wrappers must implement this interface. + + + Nicko Cadell + + + + Get the implementation behind this wrapper object. + + + The object that in implementing this object. + + + + The object that in implementing this + object. The Logger object may not + be the same object as this object because of logger decorators. + This gets the actual underlying objects that is used to process + the log events. + + + + + + Delegate used to handle logger repository creation event notifications + + The which created the repository. + The event args + that holds the instance that has been created. + + + Delegate used to handle logger repository creation event notifications. + + + + + + Provides data for the event. + + + + A + event is raised every time a is created. + + + + + + The created + + + + + Construct instance using specified + + the that has been created + + + Construct instance using specified + + + + + + The that has been created + + + The that has been created + + + + The that has been created + + + + + + Defines the default set of levels recognized by the system. + + + + Each has an associated . + + + Levels have a numeric that defines the relative + ordering between levels. Two Levels with the same + are deemed to be equivalent. + + + The levels that are recognized by log4net are set for each + and each repository can have different levels defined. The levels are stored + in the on the repository. Levels are + looked up by name from the . + + + When logging at level INFO the actual level used is not but + the value of LoggerRepository.LevelMap["INFO"]. The default value for this is + , but this can be changed by reconfiguring the level map. + + + Each level has a in addition to its . The + is the string that is written into the output log. By default + the display name is the same as the level name, but this can be used to alias levels + or to localize the log output. + + + Some of the predefined levels recognized by the system are: + + + + . + + + . + + + . + + + . + + + . + + + . + + + . + + + + Nicko Cadell + Gert Driesen + + + + Constructor + + Integer value for this level, higher values represent more severe levels. + The string name of this level. + The display name for this level. This may be localized or otherwise different from the name + + + Initializes a new instance of the class with + the specified level name and value. + + + + + + Constructor + + Integer value for this level, higher values represent more severe levels. + The string name of this level. + + + Initializes a new instance of the class with + the specified level name and value. + + + + + + Returns the representation of the current + . + + + A representation of the current . + + + + Returns the level . + + + + + + Compares levels. + + The object to compare against. + true if the objects are equal. + + + Compares the levels of instances, and + defers to base class if the target object is not a + instance. + + + + + + Returns a hash code + + A hash code for the current . + + + Returns a hash code suitable for use in hashing algorithms and data + structures like a hash table. + + + Returns the hash code of the level . + + + + + + Compares this instance to a specified object and returns an + indication of their relative values. + + A instance or to compare with this instance. + + A 32-bit signed integer that indicates the relative order of the + values compared. The return value has these meanings: + + + Value + Meaning + + + Less than zero + This instance is less than . + + + Zero + This instance is equal to . + + + Greater than zero + + This instance is greater than . + -or- + is . + + + + + + + must be an instance of + or ; otherwise, an exception is thrown. + + + is not a . + + + + Returns a value indicating whether a specified + is greater than another specified . + + A + A + + true if is greater than + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is less than another specified . + + A + A + + true if is less than + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is greater than or equal to another specified . + + A + A + + true if is greater than or equal to + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is less than or equal to another specified . + + A + A + + true if is less than or equal to + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether two specified + objects have the same value. + + A or . + A or . + + true if the value of is the same as the + value of ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether two specified + objects have different values. + + A or . + A or . + + true if the value of is different from + the value of ; otherwise, false. + + + + Compares two levels. + + + + + + Compares two specified instances. + + The first to compare. + The second to compare. + + A 32-bit signed integer that indicates the relative order of the + two values compared. The return value has these meanings: + + + Value + Meaning + + + Less than zero + is less than . + + + Zero + is equal to . + + + Greater than zero + is greater than . + + + + + + Compares two levels. + + + + + + The level designates a higher level than all the rest. + + + + + The level designates very severe error events. + System unusable, emergencies. + + + + + The level designates very severe error events. + System unusable, emergencies. + + + + + The level designates very severe error events + that will presumably lead the application to abort. + + + + + The level designates very severe error events. + Take immediate action, alerts. + + + + + The level designates very severe error events. + Critical condition, critical. + + + + + The level designates very severe error events. + + + + + The level designates error events that might + still allow the application to continue running. + + + + + The level designates potentially harmful + situations. + + + + + The level designates informational messages + that highlight the progress of the application at the highest level. + + + + + The level designates informational messages that + highlight the progress of the application at coarse-grained level. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates the lowest level possible. + + + + + Gets the name of this level. + + + The name of this level. + + + + Gets the name of this level. + + + + + + Gets the value of this level. + + + The value of this level. + + + + Gets the value of this level. + + + + + + Gets the display name of this level. + + + The display name of this level. + + + + Gets the display name of this level. + + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Creates a read-only wrapper for a LevelCollection instance. + + list to create a readonly wrapper arround + + A LevelCollection wrapper that is read-only. + + + + + Initializes a new instance of the LevelCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the LevelCollection class + that has the specified initial capacity. + + + The number of elements that the new LevelCollection is initially capable of storing. + + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified LevelCollection. + + The LevelCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Allow subclasses to avoid our default constructors + + + + + + Copies the entire LevelCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire LevelCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Adds a to the end of the LevelCollection. + + The to be added to the end of the LevelCollection. + The index at which the value has been added. + + + + Removes all elements from the LevelCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the LevelCollection. + + The to check for. + true if is found in the LevelCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the LevelCollection. + + The to locate in the LevelCollection. + + The zero-based index of the first occurrence of + in the entire LevelCollection, if found; otherwise, -1. + + + + + Inserts an element into the LevelCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the LevelCollection. + + The to remove from the LevelCollection. + + The specified was not found in the LevelCollection. + + + + + Removes the element at the specified index of the LevelCollection. + + The zero-based index of the element to remove. + + is less than zero + -or- + is equal to or greater than . + + + + + Returns an enumerator that can iterate through the LevelCollection. + + An for the entire LevelCollection. + + + + Adds the elements of another LevelCollection to the current LevelCollection. + + The LevelCollection whose elements should be added to the end of the current LevelCollection. + The new of the LevelCollection. + + + + Adds the elements of a array to the current LevelCollection. + + The array whose elements should be added to the end of the LevelCollection. + The new of the LevelCollection. + + + + Adds the elements of a collection to the current LevelCollection. + + The collection whose elements should be added to the end of the LevelCollection. + The new of the LevelCollection. + + + + Sets the capacity to the actual number of elements. + + + + + is less than zero + -or- + is equal to or greater than . + + + + + is less than zero + -or- + is equal to or greater than . + + + + + Gets the number of elements actually contained in the LevelCollection. + + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + The zero-based index of the element to get or set. + + is less than zero + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false + + + + Gets or sets the number of elements the LevelCollection can contain. + + + + + Supports type-safe iteration over a . + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + A value + + + + + Supports simple iteration over a . + + + + + Initializes a new instance of the Enumerator class. + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + An evaluator that triggers at a threshold level + + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + Nicko Cadell + + + + The threshold for triggering + + + + + Create a new evaluator using the threshold. + + + + Create a new evaluator using the threshold. + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Create a new evaluator using the specified threshold. + + the threshold to trigger at + + + Create a new evaluator using the specified threshold. + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Is this the triggering event? + + The event to check + This method returns true, if the event level + is equal or higher than the . + Otherwise it returns false + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + the threshold to trigger at + + + The that will cause this evaluator to trigger + + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Mapping between string name and Level object + + + + Mapping between string name and object. + This mapping is held separately for each . + The level name is case insensitive. + + + Nicko Cadell + + + + Mapping from level name to Level object. The + level name is case insensitive + + + + + Construct the level map + + + + Construct the level map. + + + + + + Clear the internal maps of all levels + + + + Clear the internal maps of all levels + + + + + + Create a new Level and add it to the map + + the string to display for the Level + the level value to give to the Level + + + Create a new Level and add it to the map + + + + + + + Create a new Level and add it to the map + + the string to display for the Level + the level value to give to the Level + the display name to give to the Level + + + Create a new Level and add it to the map + + + + + + Add a Level to the map + + the Level to add + + + Add a Level to the map + + + + + + Lookup a named level from the map + + the name of the level to lookup is taken from this level. + If the level is not set on the map then this level is added + the level in the map with the name specified + + + Lookup a named level from the map. The name of the level to lookup is taken + from the property of the + argument. + + + If no level with the specified name is found then the + argument is added to the level map + and returned. + + + + + + Lookup a by name + + The name of the Level to lookup + a Level from the map with the name specified + + + Returns the from the + map with the name specified. If the no level is + found then null is returned. + + + + + + Return all possible levels as a list of Level objects. + + all possible levels as a list of Level objects + + + Return all possible levels as a list of Level objects. + + + + + + The internal representation of caller location information. + + + + This class uses the System.Diagnostics.StackTrace class to generate + a call stack. The caller's information is then extracted from this stack. + + + The System.Diagnostics.StackTrace class is not supported on the + .NET Compact Framework 1.0 therefore caller location information is not + available on that framework. + + + The System.Diagnostics.StackTrace class has this to say about Release builds: + + + "StackTrace information will be most informative with Debug build configurations. + By default, Debug builds include debug symbols, while Release builds do not. The + debug symbols contain most of the file, method name, line number, and column + information used in constructing StackFrame and StackTrace objects. StackTrace + might not report as many method calls as expected, due to code transformations + that occur during optimization." + + + This means that in a Release build the caller information may be incomplete or may + not exist at all! Therefore caller location information cannot be relied upon in a Release build. + + + Nicko Cadell + Gert Driesen + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + Constructor + + The declaring type of the method that is + the stack boundary into the logging system for this call. + + + Initializes a new instance of the + class based on the current thread. + + + + + + Constructor + + The fully qualified class name. + The method name. + The file name. + The line number of the method within the file. + + + Initializes a new instance of the + class with the specified data. + + + + + + The fully qualified type of the LocationInfo class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the fully qualified class name of the caller making the logging + request. + + + The fully qualified class name of the caller making the logging + request. + + + + Gets the fully qualified class name of the caller making the logging + request. + + + + + + Gets the file name of the caller. + + + The file name of the caller. + + + + Gets the file name of the caller. + + + + + + Gets the line number of the caller. + + + The line number of the caller. + + + + Gets the line number of the caller. + + + + + + Gets the method name of the caller. + + + The method name of the caller. + + + + Gets the method name of the caller. + + + + + + Gets all available caller information + + + All available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + Gets all available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + + + Gets the stack frames from the stack trace of the caller making the log request + + + + + Static manager that controls the creation of repositories + + + + Static manager that controls the creation of repositories + + + This class is used by the wrapper managers (e.g. ) + to provide access to the objects. + + + This manager also holds the that is used to + lookup and create repositories. The selector can be set either programmatically using + the property, or by setting the log4net.RepositorySelector + AppSetting in the applications config file to the fully qualified type name of the + selector to use. + + + Nicko Cadell + Gert Driesen + + + + Private constructor to prevent instances. Only static methods should be used. + + + + Private constructor to prevent instances. Only static methods should be used. + + + + + + Hook the shutdown event + + + + On the full .NET runtime, the static constructor hooks up the + AppDomain.ProcessExit and AppDomain.DomainUnload> events. + These are used to shutdown the log4net system as the application exits. + + + + + + Register for ProcessExit and DomainUnload events on the AppDomain + + + + This needs to be in a separate method because the events make + a LinkDemand for the ControlAppDomain SecurityPermission. Because + this is a LinkDemand it is demanded at JIT time. Therefore we cannot + catch the exception in the method itself, we have to catch it in the + caller. + + + + + + Return the default instance. + + the repository to lookup in + Return the default instance + + + Gets the for the repository specified + by the argument. + + + + + + Returns the default instance. + + The assembly to use to lookup the repository. + The default instance. + + + + Return the default instance. + + the repository to lookup in + Return the default instance + + + Gets the for the repository specified + by the argument. + + + + + + Returns the default instance. + + The assembly to use to lookup the repository. + The default instance. + + + Returns the default instance. + + + + + + Returns the named logger if it exists. + + The repository to lookup in. + The fully qualified logger name to look for. + + The logger found, or null if the named logger does not exist in the + specified repository. + + + + If the named logger exists (in the specified repository) then it + returns a reference to the logger, otherwise it returns + null. + + + + + + Returns the named logger if it exists. + + The assembly to use to lookup the repository. + The fully qualified logger name to look for. + + The logger found, or null if the named logger does not exist in the + specified assembly's repository. + + + + If the named logger exists (in the specified assembly's repository) then it + returns a reference to the logger, otherwise it returns + null. + + + + + + Returns all the currently defined loggers in the specified repository. + + The repository to lookup in. + All the defined loggers. + + + The root logger is not included in the returned array. + + + + + + Returns all the currently defined loggers in the specified assembly's repository. + + The assembly to use to lookup the repository. + All the defined loggers. + + + The root logger is not included in the returned array. + + + + + + Retrieves or creates a named logger. + + The repository to lookup in. + The name of the logger to retrieve. + The logger with the name specified. + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + + + + Retrieves or creates a named logger. + + The assembly to use to lookup the repository. + The name of the logger to retrieve. + The logger with the name specified. + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + + + + Shorthand for . + + The repository to lookup in. + The of which the fullname will be used as the name of the logger to retrieve. + The logger with the name specified. + + + Gets the logger for the fully qualified name of the type specified. + + + + + + Shorthand for . + + the assembly to use to lookup the repository + The of which the fullname will be used as the name of the logger to retrieve. + The logger with the name specified. + + + Gets the logger for the fully qualified name of the type specified. + + + + + + Shuts down the log4net system. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in all the + default repositories. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + The repository to shutdown. + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository for the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + The assembly to use to lookup the repository. + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository for the repository. The repository is looked up using + the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Resets all values contained in this repository instance to their defaults. + + The repository to reset. + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + + + + Resets all values contained in this repository instance to their defaults. + + The assembly to use to lookup the repository to reset. + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + + + + Creates a repository with the specified name. + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name. + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The name must be unique. Repositories cannot be redefined. + An Exception will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The name must be unique. Repositories cannot be redefined. + An Exception will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository for the specified assembly and repository type. + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + + + + Creates a repository for the specified assembly and repository type. + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + + + + Gets an array of all currently defined repositories. + + An array of all the known objects. + + + Gets an array of all currently defined repositories. + + + + + + Internal method to get pertinent version info. + + A string of version info. + + + + Called when the event fires + + the that is exiting + null + + + Called when the event fires. + + + When the event is triggered the log4net system is . + + + + + + Called when the event fires + + the that is exiting + null + + + Called when the event fires. + + + When the event is triggered the log4net system is . + + + + + + The fully qualified type of the LoggerManager class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Initialize the default repository selector + + + + + Gets or sets the repository selector used by the . + + + The repository selector used by the . + + + + The repository selector () is used by + the to create and select repositories + (). + + + The caller to supplies either a string name + or an assembly (if not supplied the assembly is inferred using + ). + + + This context is used by the selector to lookup a specific repository. + + + For the full .NET Framework, the default repository is DefaultRepositorySelector; + for the .NET Compact Framework CompactRepositorySelector is the default + repository. + + + + + + Implementation of the interface. + + + + This class should be used as the base for all wrapper implementations. + + + Nicko Cadell + Gert Driesen + + + + Constructs a new wrapper for the specified logger. + + The logger to wrap. + + + Constructs a new wrapper for the specified logger. + + + + + + The logger that this object is wrapping + + + + + Gets the implementation behind this wrapper object. + + + The object that this object is implementing. + + + + The Logger object may not be the same object as this object + because of logger decorators. + + + This gets the actual underlying objects that is used to process + the log events. + + + + + + Portable data structure used by + + + + Portable data structure used by + + + Nicko Cadell + + + + The logger name. + + + + The logger name. + + + + + + Level of logging event. + + + + Level of logging event. Level cannot be Serializable + because it is a flyweight. Due to its special serialization it + cannot be declared final either. + + + + + + The application supplied message. + + + + The application supplied message of logging event. + + + + + + The name of thread + + + + The name of thread in which this logging event was generated + + + + + + Gets or sets the local time the event was logged + + + + Prefer using the setter, since local time can be ambiguous. + + + + + + Location information for the caller. + + + + Location information for the caller. + + + + + + String representation of the user + + + + String representation of the user's windows name, + like DOMAIN\username + + + + + + String representation of the identity. + + + + String representation of the current thread's principal identity. + + + + + + The string representation of the exception + + + + The string representation of the exception + + + + + + String representation of the AppDomain. + + + + String representation of the AppDomain. + + + + + + Additional event specific properties + + + + A logger or an appender may attach additional + properties to specific events. These properties + have a string key and an object value. + + + + + + Gets or sets the UTC time the event was logged + + + + The TimeStamp is stored in the UTC time zone. + + + + + + Flags passed to the property + + + + Flags passed to the property + + + Nicko Cadell + + + + Fix the MDC + + + + + Fix the NDC + + + + + Fix the rendered message + + + + + Fix the thread name + + + + + Fix the callers location information + + + CAUTION: Very slow to generate + + + + + Fix the callers windows user name + + + CAUTION: Slow to generate + + + + + Fix the domain friendly name + + + + + Fix the callers principal name + + + CAUTION: May be slow to generate + + + + + Fix the exception text + + + + + Fix the event properties. Active properties must implement in order to be eligible for fixing. + + + + + No fields fixed + + + + + All fields fixed + + + + + Partial fields fixed + + + + This set of partial fields gives good performance. The following fields are fixed: + + + + + + + + + + + + + The internal representation of logging events. + + + + When an affirmative decision is made to log then a + instance is created. This instance + is passed around to the different log4net components. + + + This class is of concern to those wishing to extend log4net. + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + for incurred by calling but it + is essential to maintaining data consistency. + + + Nicko Cadell + Gert Driesen + Douglas de la Torre + Daniel Cazzulino + + + + The key into the Properties map for the host name value. + + + + + The key into the Properties map for the thread identity value. + + + + + The key into the Properties map for the user name value. + + + + + Initializes a new instance of the class + from the supplied parameters. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + The name of the logger of this event. + The level of this event. + The message of this event. + The exception for this event. + + + Except , and , + all fields of LoggingEvent are filled when actually needed. Call + to cache all data locally + to prevent inconsistencies. + + This method is called by the log4net framework + to create a logging event. + + + + + + Initializes a new instance of the class + using specific data. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + Data used to initialize the logging event. + The fields in the struct that have already been fixed. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + The parameter should be used to specify which fields in the + struct have been preset. Fields not specified in the + will be captured from the environment if requested or fixed. + + + + + + Initializes a new instance of the class + using specific data. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + Data used to initialize the logging event. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + This constructor sets this objects flags to , + this assumes that all the data relating to this event is passed in via the + parameter and no other data should be captured from the environment. + + + + + + Initializes a new instance of the class + using specific data. + + Data used to initialize the logging event. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + This constructor sets this objects flags to , + this assumes that all the data relating to this event is passed in via the + parameter and no other data should be captured from the environment. + + + + + + Serialization constructor + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Ensure that the repository is set. + + the value for the repository + + + + Write the rendered message to a TextWriter + + the writer to write the message to + + + Unlike the property this method + does store the message data in the internal cache. Therefore + if called only once this method should be faster than the + property, however if the message is + to be accessed multiple times then the property will be more efficient. + + + + + + Serializes this object into the provided. + + The to populate with data. + The destination for this serialization. + + + The data in this event must be fixed before it can be serialized. + + + The method must be called during the + method call if this event + is to be used outside that method. + + + + + + Gets the portable data for this . + + The for this event. + + + A new can be constructed using a + instance. + + + Does a fix of the data + in the logging event before returning the event data. + + + + + + Gets the portable data for this . + + The set of data to ensure is fixed in the LoggingEventData + The for this event. + + + A new can be constructed using a + instance. + + + + + + Returns this event's exception's rendered using the + . + + + This event's exception's rendered using the . + + + + Obsolete. Use instead. + + + + + + Returns this event's exception's rendered using the + . + + + This event's exception's rendered using the . + + + + Returns this event's exception's rendered using the + . + + + + + + Fix instance fields that hold volatile data. + + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + incurred by calling but it + is essential to maintaining data consistency. + + + Calling is equivalent to + calling passing the parameter + false. + + + See for more + information. + + + + + + Fixes instance fields that hold volatile data. + + Set to true to not fix data that takes a long time to fix. + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + for incurred by calling but it + is essential to maintaining data consistency. + + + The param controls the data that + is fixed. Some of the data that can be fixed takes a long time to + generate, therefore if you do not require those settings to be fixed + they can be ignored by setting the param + to true. This setting will ignore the + and settings. + + + Set to false to ensure that all + settings are fixed. + + + + + + Fix the fields specified by the parameter + + the fields to fix + + + Only fields specified in the will be fixed. + Fields will not be fixed if they have previously been fixed. + It is not possible to 'unfix' a field. + + + + + + Lookup a composite property in this event + + the key for the property to lookup + the value for the property + + + This event has composite properties that combine together properties from + several different contexts in the following order: + + + this events properties + + This event has that can be set. These + properties are specific to this event only. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + + + Get all the composite properties in this event + + the containing all the properties + + + See for details of the composite properties + stored by the event. + + + This method returns a single containing all the + properties defined for this event. + + + + + + The internal logging event data. + + + + + The internal logging event data. + + + + + The internal logging event data. + + + + + The fully qualified Type of the calling + logger class in the stack frame (i.e. the declaring type of the method). + + + + + The application supplied message of logging event. + + + + + The exception that was thrown. + + + This is not serialized. The string representation + is serialized instead. + + + + + The repository that generated the logging event + + + This is not serialized. + + + + + The fix state for this event + + + These flags indicate which fields have been fixed. + Not serialized. + + + + + Indicated that the internal cache is updateable (ie not fixed) + + + This is a seperate flag to m_fixFlags as it allows incrementel fixing and simpler + changes in the caching strategy. + + + + + Gets the time when the current process started. + + + This is the time when this process started. + + + + The TimeStamp is stored internally in UTC and converted to the local time zone for this computer. + + + Tries to get the start time for the current process. + Failing that it returns the time of the first call to + this property. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating and therefore + without the process start time being reset. + + + + + + Gets the UTC time when the current process started. + + + This is the UTC time when this process started. + + + + Tries to get the start time for the current process. + Failing that it returns the time of the first call to + this property. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating and therefore + without the process start time being reset. + + + + + + Gets the of the logging event. + + + The of the logging event. + + + + Gets the of the logging event. + + + + + + Gets the time of the logging event. + + + The time of the logging event. + + + + The TimeStamp is stored in UTC and converted to the local time zone for this computer. + + + + + + Gets UTC the time of the logging event. + + + The UTC time of the logging event. + + + + + Gets the name of the logger that logged the event. + + + The name of the logger that logged the event. + + + + Gets the name of the logger that logged the event. + + + + + + Gets the location information for this logging event. + + + The location information for this logging event. + + + + The collected information is cached for future use. + + + See the class for more information on + supported frameworks and the different behavior in Debug and + Release builds. + + + + + + Gets the message object used to initialize this event. + + + The message object used to initialize this event. + + + + Gets the message object used to initialize this event. + Note that this event may not have a valid message object. + If the event is serialized the message object will not + be transferred. To get the text of the message the + property must be used + not this property. + + + If there is no defined message object for this event then + null will be returned. + + + + + + Gets the exception object used to initialize this event. + + + The exception object used to initialize this event. + + + + Gets the exception object used to initialize this event. + Note that this event may not have a valid exception object. + If the event is serialized the exception object will not + be transferred. To get the text of the exception the + method must be used + not this property. + + + If there is no defined exception object for this event then + null will be returned. + + + + + + The that this event was created in. + + + + The that this event was created in. + + + + + + Gets the message, rendered through the . + + + The message rendered through the . + + + + The collected information is cached for future use. + + + + + + Gets the name of the current thread. + + + The name of the current thread, or the thread ID when + the name is not available. + + + + The collected information is cached for future use. + + + + + + Gets the name of the current user. + + + The name of the current user, or NOT AVAILABLE when the + underlying runtime has no support for retrieving the name of the + current user. + + + + Calls WindowsIdentity.GetCurrent().Name to get the name of + the current windows user. + + + To improve performance, we could cache the string representation of + the name, and reuse that as long as the identity stayed constant. + Once the identity changed, we would need to re-assign and re-render + the string. + + + However, the WindowsIdentity.GetCurrent() call seems to + return different objects every time, so the current implementation + doesn't do this type of caching. + + + Timing for these operations: + + + + Method + Results + + + WindowsIdentity.GetCurrent() + 10000 loops, 00:00:00.2031250 seconds + + + WindowsIdentity.GetCurrent().Name + 10000 loops, 00:00:08.0468750 seconds + + + + This means we could speed things up almost 40 times by caching the + value of the WindowsIdentity.GetCurrent().Name property, since + this takes (8.04-0.20) = 7.84375 seconds. + + + + + + Gets the identity of the current thread principal. + + + The string name of the identity of the current thread principal. + + + + Calls System.Threading.Thread.CurrentPrincipal.Identity.Name to get + the name of the current thread principal. + + + + + + Gets the AppDomain friendly name. + + + The AppDomain friendly name. + + + + Gets the AppDomain friendly name. + + + + + + Additional event specific properties. + + + Additional event specific properties. + + + + A logger or an appender may attach additional + properties to specific events. These properties + have a string key and an object value. + + + This property is for events that have been added directly to + this event. The aggregate properties (which include these + event properties) can be retrieved using + and . + + + Once the properties have been fixed this property + returns the combined cached properties. This ensures that updates to + this property are always reflected in the underlying storage. When + returning the combined properties there may be more keys in the + Dictionary than expected. + + + + + + The fixed fields in this event + + + The set of fields that are fixed in this event + + + + Fields will not be fixed if they have previously been fixed. + It is not possible to 'unfix' a field. + + + + + + Implementation of wrapper interface. + + + + This implementation of the interface + forwards to the held by the base class. + + + This logger has methods to allow the caller to log at the following + levels: + + + + DEBUG + + The and methods log messages + at the DEBUG level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + INFO + + The and methods log messages + at the INFO level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + WARN + + The and methods log messages + at the WARN level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + ERROR + + The and methods log messages + at the ERROR level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + FATAL + + The and methods log messages + at the FATAL level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + + The values for these levels and their semantic meanings can be changed by + configuring the for the repository. + + + Nicko Cadell + Gert Driesen + + + + The ILog interface is use by application to log messages into + the log4net framework. + + + + Use the to obtain logger instances + that implement this interface. The + static method is used to get logger instances. + + + This class contains methods for logging at different levels and also + has properties for determining if those logging levels are + enabled in the current configuration. + + + This interface can be implemented in different ways. This documentation + specifies reasonable behavior that a caller can expect from the actual + implementation, however different implementations reserve the right to + do things differently. + + + Simple example of logging messages + + ILog log = LogManager.GetLogger("application-log"); + + log.Info("Application Start"); + log.Debug("This is a debug message"); + + if (log.IsDebugEnabled) + { + log.Debug("This is another debug message"); + } + + + + + Nicko Cadell + Gert Driesen + + + Log a message object with the level. + + Log a message object with the level. + + The message object to log. + + + This method first checks if this logger is DEBUG + enabled by comparing the level of this logger with the + level. If this logger is + DEBUG enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Logs a message object with the level. + + + + This method first checks if this logger is INFO + enabled by comparing the level of this logger with the + level. If this logger is + INFO enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Logs a message object with the INFO level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Log a message object with the level. + + + + This method first checks if this logger is WARN + enabled by comparing the level of this logger with the + level. If this logger is + WARN enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Logs a message object with the level. + + The message object to log. + + + This method first checks if this logger is ERROR + enabled by comparing the level of this logger with the + level. If this logger is + ERROR enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Log a message object with the level. + + + + This method first checks if this logger is FATAL + enabled by comparing the level of this logger with the + level. If this logger is + FATAL enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + + This function is intended to lessen the computational cost of + disabled log debug statements. + + For some ILog interface log, when you write: + + log.Debug("This is entry number: " + i ); + + + You incur the cost constructing the message, string construction and concatenation in + this case, regardless of whether the message is logged or not. + + + If you are worried about speed (who isn't), then you should write: + + + if (log.IsDebugEnabled) + { + log.Debug("This is entry number: " + i ); + } + + + This way you will not incur the cost of parameter + construction if debugging is disabled for log. On + the other hand, if the log is debug enabled, you + will incur the cost of evaluating whether the logger is debug + enabled twice. Once in and once in + the . This is an insignificant overhead + since evaluating a logger takes about 1% of the time it + takes to actually log. This is the preferred style of logging. + + Alternatively if your logger is available statically then the is debug + enabled state can be stored in a static variable like this: + + + private static readonly bool isDebugEnabled = log.IsDebugEnabled; + + + Then when you come to log you can write: + + + if (isDebugEnabled) + { + log.Debug("This is entry number: " + i ); + } + + + This way the debug enabled state is only queried once + when the class is loaded. Using a private static readonly + variable is the most efficient because it is a run time constant + and can be heavily optimized by the JIT compiler. + + + Of course if you use a static readonly variable to + hold the enabled state of the logger then you cannot + change the enabled state at runtime to vary the logging + that is produced. You have to decide if you need absolute + speed or runtime flexibility. + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Construct a new wrapper for the specified logger. + + The logger to wrap. + + + Construct a new wrapper for the specified logger. + + + + + + Virtual method called when the configuration of the repository changes + + the repository holding the levels + + + Virtual method called when the configuration of the repository changes + + + + + + Logs a message object with the DEBUG level. + + The message object to log. + + + This method first checks if this logger is DEBUG + enabled by comparing the level of this logger with the + DEBUG level. If this logger is + DEBUG enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the DEBUG level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the DEBUG level including + the stack trace of the passed + as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the INFO level. + + The message object to log. + + + This method first checks if this logger is INFO + enabled by comparing the level of this logger with the + INFO level. If this logger is + INFO enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the INFO level. + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the INFO level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the WARN level. + + the message object to log + + + This method first checks if this logger is WARN + enabled by comparing the level of this logger with the + WARN level. If this logger is + WARN enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the WARN level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the WARN level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the ERROR level. + + The message object to log. + + + This method first checks if this logger is ERROR + enabled by comparing the level of this logger with the + ERROR level. If this logger is + ERROR enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the ERROR level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the ERROR level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the FATAL level. + + The message object to log. + + + This method first checks if this logger is FATAL + enabled by comparing the level of this logger with the + FATAL level. If this logger is + FATAL enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the FATAL level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the FATAL level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Event handler for the event + + the repository + Empty + + + + The fully qualified name of this declaring type not the type of any subclass. + + + + + Checks if this logger is enabled for the DEBUG + level. + + + true if this logger is enabled for DEBUG events, + false otherwise. + + + + This function is intended to lessen the computational cost of + disabled log debug statements. + + + For some log Logger object, when you write: + + + log.Debug("This is entry number: " + i ); + + + You incur the cost constructing the message, concatenation in + this case, regardless of whether the message is logged or not. + + + If you are worried about speed, then you should write: + + + if (log.IsDebugEnabled()) + { + log.Debug("This is entry number: " + i ); + } + + + This way you will not incur the cost of parameter + construction if debugging is disabled for log. On + the other hand, if the log is debug enabled, you + will incur the cost of evaluating whether the logger is debug + enabled twice. Once in IsDebugEnabled and once in + the Debug. This is an insignificant overhead + since evaluating a logger takes about 1% of the time it + takes to actually log. + + + + + + Checks if this logger is enabled for the INFO level. + + + true if this logger is enabled for INFO events, + false otherwise. + + + + See for more information and examples + of using this method. + + + + + + + Checks if this logger is enabled for the WARN level. + + + true if this logger is enabled for WARN events, + false otherwise. + + + + See for more information and examples + of using this method. + + + + + + + Checks if this logger is enabled for the ERROR level. + + + true if this logger is enabled for ERROR events, + false otherwise. + + + + See for more information and examples of using this method. + + + + + + + Checks if this logger is enabled for the FATAL level. + + + true if this logger is enabled for FATAL events, + false otherwise. + + + + See for more information and examples of using this method. + + + + + + + provides method information without actually referencing a System.Reflection.MethodBase + as that would require that the containing assembly is loaded. + + + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + constructs a method item for an unknown method. + + + + + constructs a method item from the name of the method. + + + + + + constructs a method item from the name of the method and its parameters. + + + + + + + constructs a method item from a method base by determining the method name and its parameters. + + + + + + The fully qualified type of the StackFrameItem class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the method name of the caller making the logging + request. + + + The method name of the caller making the logging + request. + + + + Gets the method name of the caller making the logging + request. + + + + + + Gets the method parameters of the caller making + the logging request. + + + The method parameters of the caller making + the logging request + + + + Gets the method parameters of the caller making + the logging request. + + + + + + A SecurityContext used by log4net when interacting with protected resources + + + + A SecurityContext used by log4net when interacting with protected resources + for example with operating system services. This can be used to impersonate + a principal that has been granted privileges on the system resources. + + + Nicko Cadell + + + + Impersonate this SecurityContext + + State supplied by the caller + An instance that will + revoke the impersonation of this SecurityContext, or null + + + Impersonate this security context. Further calls on the current + thread should now be made in the security context provided + by this object. When the result + method is called the security + context of the thread should be reverted to the state it was in + before was called. + + + + + + The providers default instances. + + + + A configured component that interacts with potentially protected system + resources uses a to provide the elevated + privileges required. If the object has + been not been explicitly provided to the component then the component + will request one from this . + + + By default the is + an instance of which returns only + objects. This is a reasonable default + where the privileges required are not know by the system. + + + This default behavior can be overridden by subclassing the + and overriding the method to return + the desired objects. The default provider + can be replaced by programmatically setting the value of the + property. + + + An alternative is to use the log4net.Config.SecurityContextProviderAttribute + This attribute can be applied to an assembly in the same way as the + log4net.Config.XmlConfiguratorAttribute". The attribute takes + the type to use as the as an argument. + + + Nicko Cadell + + + + The default provider + + + + + Protected default constructor to allow subclassing + + + + Protected default constructor to allow subclassing + + + + + + Create a SecurityContext for a consumer + + The consumer requesting the SecurityContext + An impersonation context + + + The default implementation is to return a . + + + Subclasses should override this method to provide their own + behavior. + + + + + + Gets or sets the default SecurityContextProvider + + + The default SecurityContextProvider + + + + The default provider is used by configured components that + require a and have not had one + given to them. + + + By default this is an instance of + that returns objects. + + + The default provider can be set programmatically by setting + the value of this property to a sub class of + that has the desired behavior. + + + + + + provides stack frame information without actually referencing a System.Diagnostics.StackFrame + as that would require that the containing assembly is loaded. + + + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + returns a stack frame item from a stack frame. This + + + + + + + The fully qualified type of the StackFrameItem class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the fully qualified class name of the caller making the logging + request. + + + The fully qualified class name of the caller making the logging + request. + + + + Gets the fully qualified class name of the caller making the logging + request. + + + + + + Gets the file name of the caller. + + + The file name of the caller. + + + + Gets the file name of the caller. + + + + + + Gets the line number of the caller. + + + The line number of the caller. + + + + Gets the line number of the caller. + + + + + + Gets the method name of the caller. + + + The method name of the caller. + + + + Gets the method name of the caller. + + + + + + Gets all available caller information + + + All available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + Gets all available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + + + An evaluator that triggers after specified number of seconds. + + + + This evaluator will trigger if the specified time period + has passed since last check. + + + Robert Sevcik + + + + The default time threshold for triggering in seconds. Zero means it won't trigger at all. + + + + + The time threshold for triggering in seconds. Zero means it won't trigger at all. + + + + + The UTC time of last check. This gets updated when the object is created and when the evaluator triggers. + + + + + Create a new evaluator using the time threshold in seconds. + + + + Create a new evaluator using the time threshold in seconds. + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Create a new evaluator using the specified time threshold in seconds. + + + The time threshold in seconds to trigger after. + Zero means it won't trigger at all. + + + + Create a new evaluator using the specified time threshold in seconds. + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Is this the triggering event? + + The event to check + This method returns true, if the specified time period + has passed since last check.. + Otherwise it returns false + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + The time threshold in seconds to trigger after + + + The time threshold in seconds to trigger after. + Zero means it won't trigger at all. + + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Delegate used to handle creation of new wrappers. + + The logger to wrap in a wrapper. + + + Delegate used to handle creation of new wrappers. This delegate + is called from the + method to construct the wrapper for the specified logger. + + + The delegate to use is supplied to the + constructor. + + + + + + Maps between logger objects and wrapper objects. + + + + This class maintains a mapping between objects and + objects. Use the method to + lookup the for the specified . + + + New wrapper instances are created by the + method. The default behavior is for this method to delegate construction + of the wrapper to the delegate supplied + to the constructor. This allows specialization of the behavior without + requiring subclassing of this type. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the + + The handler to use to create the wrapper objects. + + + Initializes a new instance of the class with + the specified handler to create the wrapper objects. + + + + + + Gets the wrapper object for the specified logger. + + The wrapper object for the specified logger + + + If the logger is null then the corresponding wrapper is null. + + + Looks up the wrapper it it has previously been requested and + returns it. If the wrapper has never been requested before then + the virtual method is + called. + + + + + + Creates the wrapper object for the specified logger. + + The logger to wrap in a wrapper. + The wrapper object for the logger. + + + This implementation uses the + passed to the constructor to create the wrapper. This method + can be overridden in a subclass. + + + + + + Called when a monitored repository shutdown event is received. + + The that is shutting down + + + This method is called when a that this + is holding loggers for has signaled its shutdown + event . The default + behavior of this method is to release the references to the loggers + and their wrappers generated for this repository. + + + + + + Event handler for repository shutdown event. + + The sender of the event. + The event args. + + + + Map of logger repositories to hashtables of ILogger to ILoggerWrapper mappings + + + + + The handler to use to create the extension wrapper objects. + + + + + Internal reference to the delegate used to register for repository shutdown events. + + + + + Gets the map of logger repositories. + + + Map of logger repositories. + + + + Gets the hashtable that is keyed on . The + values are hashtables keyed on with the + value being the corresponding . + + + + + + Formats a as "HH:mm:ss,fff". + + + + Formats a in the format "HH:mm:ss,fff" for example, "15:49:37,459". + + + Nicko Cadell + Gert Driesen + + + + Render a as a string. + + + + Interface to abstract the rendering of a + instance into a string. + + + The method is used to render the + date to a text writer. + + + Nicko Cadell + Gert Driesen + + + + Formats the specified date as a string. + + The date to format. + The writer to write to. + + + Format the as a string and write it + to the provided. + + + + + + String constant used to specify AbsoluteTimeDateFormat in layouts. Current value is ABSOLUTE. + + + + + String constant used to specify DateTimeDateFormat in layouts. Current value is DATE. + + + + + String constant used to specify ISO8601DateFormat in layouts. Current value is ISO8601. + + + + + Renders the date into a string. Format is "HH:mm:ss". + + The date to render into a string. + The string builder to write to. + + + Subclasses should override this method to render the date + into a string using a precision up to the second. This method + will be called at most once per second and the result will be + reused if it is needed again during the same second. + + + + + + Renders the date into a string. Format is "HH:mm:ss,fff". + + The date to render into a string. + The writer to write to. + + + Uses the method to generate the + time string up to the seconds and then appends the current + milliseconds. The results from are + cached and is called at most once + per second. + + + Sub classes should override + rather than . + + + + + + Last stored time with precision up to the second. + + + + + Last stored time with precision up to the second, formatted + as a string. + + + + + Last stored time with precision up to the second, formatted + as a string. + + + + + Formats a as "dd MMM yyyy HH:mm:ss,fff" + + + + Formats a in the format + "dd MMM yyyy HH:mm:ss,fff" for example, + "06 Nov 1994 15:49:37,459". + + + Nicko Cadell + Gert Driesen + Angelika Schnagl + + + + Default constructor. + + + + Initializes a new instance of the class. + + + + + + Formats the date without the milliseconds part + + The date to format. + The string builder to write to. + + + Formats a DateTime in the format "dd MMM yyyy HH:mm:ss" + for example, "06 Nov 1994 15:49:37". + + + The base class will append the ",fff" milliseconds section. + This method will only be called at most once per second. + + + + + + The format info for the invariant culture. + + + + + Formats the as "yyyy-MM-dd HH:mm:ss,fff". + + + + Formats the specified as a string: "yyyy-MM-dd HH:mm:ss,fff". + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Formats the date without the milliseconds part + + The date to format. + The string builder to write to. + + + Formats the date specified as a string: "yyyy-MM-dd HH:mm:ss". + + + The base class will append the ",fff" milliseconds section. + This method will only be called at most once per second. + + + + + + Formats the using the method. + + + + Formats the using the method. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The format string. + + + Initializes a new instance of the class + with the specified format string. + + + The format string must be compatible with the options + that can be supplied to . + + + + + + Formats the date using . + + The date to convert to a string. + The writer to write to. + + + Uses the date format string supplied to the constructor to call + the method to format the date. + + + + + + The format string used to format the . + + + + The format string must be compatible with the options + that can be supplied to . + + + + + + This filter drops all . + + + + You can add this filter to the end of a filter chain to + switch from the default "accept all unless instructed otherwise" + filtering behavior to a "deny all unless instructed otherwise" + behavior. + + + Nicko Cadell + Gert Driesen + + + + Subclass this type to implement customized logging event filtering + + + + Users should extend this class to implement customized logging + event filtering. Note that and + , the parent class of all standard + appenders, have built-in filtering rules. It is suggested that you + first use and understand the built-in rules before rushing to write + your own custom filters. + + + This abstract class assumes and also imposes that filters be + organized in a linear chain. The + method of each filter is called sequentially, in the order of their + addition to the chain. + + + The method must return one + of the integer constants , + or . + + + If the value is returned, then the log event is dropped + immediately without consulting with the remaining filters. + + + If the value is returned, then the next filter + in the chain is consulted. If there are no more filters in the + chain, then the log event is logged. Thus, in the presence of no + filters, the default behavior is to log all logging events. + + + If the value is returned, then the log + event is logged without consulting the remaining filters. + + + The philosophy of log4net filters is largely inspired from the + Linux ipchains. + + + Nicko Cadell + Gert Driesen + + + + Implement this interface to provide customized logging event filtering + + + + Users should implement this interface to implement customized logging + event filtering. Note that and + , the parent class of all standard + appenders, have built-in filtering rules. It is suggested that you + first use and understand the built-in rules before rushing to write + your own custom filters. + + + This abstract class assumes and also imposes that filters be + organized in a linear chain. The + method of each filter is called sequentially, in the order of their + addition to the chain. + + + The method must return one + of the integer constants , + or . + + + If the value is returned, then the log event is dropped + immediately without consulting with the remaining filters. + + + If the value is returned, then the next filter + in the chain is consulted. If there are no more filters in the + chain, then the log event is logged. Thus, in the presence of no + filters, the default behavior is to log all logging events. + + + If the value is returned, then the log + event is logged without consulting the remaining filters. + + + The philosophy of log4net filters is largely inspired from the + Linux ipchains. + + + Nicko Cadell + Gert Driesen + + + + Decide if the logging event should be logged through an appender. + + The LoggingEvent to decide upon + The decision of the filter + + + If the decision is , then the event will be + dropped. If the decision is , then the next + filter, if any, will be invoked. If the decision is then + the event will be logged without consulting with other filters in + the chain. + + + + + + Property to get and set the next filter + + + The next filter in the chain + + + + Filters are typically composed into chains. This property allows the next filter in + the chain to be accessed. + + + + + + Points to the next filter in the filter chain. + + + + See for more information. + + + + + + Initialize the filter with the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Typically filter's options become active immediately on set, + however this method must still be called. + + + + + + Decide if the should be logged through an appender. + + The to decide upon + The decision of the filter + + + If the decision is , then the event will be + dropped. If the decision is , then the next + filter, if any, will be invoked. If the decision is then + the event will be logged without consulting with other filters in + the chain. + + + This method is marked abstract and must be implemented + in a subclass. + + + + + + Property to get and set the next filter + + + The next filter in the chain + + + + Filters are typically composed into chains. This property allows the next filter in + the chain to be accessed. + + + + + + Default constructor + + + + + Always returns the integer constant + + the LoggingEvent to filter + Always returns + + + Ignores the event being logged and just returns + . This can be used to change the default filter + chain behavior from to . This filter + should only be used as the last filter in the chain + as any further filters will be ignored! + + + + + + The return result from + + + + The return result from + + + + + + The log event must be dropped immediately without + consulting with the remaining filters, if any, in the chain. + + + + + This filter is neutral with respect to the log event. + The remaining filters, if any, should be consulted for a final decision. + + + + + The log event must be logged immediately without + consulting with the remaining filters, if any, in the chain. + + + + + This is a very simple filter based on matching. + + + + The filter admits two options and + . If there is an exact match between the value + of the option and the of the + , then the method returns in + case the option value is set + to true, if it is false then + is returned. If the does not match then + the result will be . + + + Nicko Cadell + Gert Driesen + + + + flag to indicate if the filter should on a match + + + + + the to match against + + + + + Default constructor + + + + + Tests if the of the logging event matches that of the filter + + the event to filter + see remarks + + + If the of the event matches the level of the + filter then the result of the function depends on the + value of . If it is true then + the function will return , it it is false then it + will return . If the does not match then + the result will be . + + + + + + when matching + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + The that the filter will match + + + + The level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + This is a simple filter based on matching. + + + + The filter admits three options and + that determine the range of priorities that are matched, and + . If there is a match between the range + of priorities and the of the , then the + method returns in case the + option value is set to true, if it is false + then is returned. If there is no match, is returned. + + + Nicko Cadell + Gert Driesen + + + + Flag to indicate the behavior when matching a + + + + + the minimum value to match + + + + + the maximum value to match + + + + + Default constructor + + + + + Check if the event should be logged. + + the logging event to check + see remarks + + + If the of the logging event is outside the range + matched by this filter then + is returned. If the is matched then the value of + is checked. If it is true then + is returned, otherwise + is returned. + + + + + + when matching and + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + Set the minimum matched + + + + The minimum level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + Sets the maximum matched + + + + The maximum level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + Simple filter to match a string in the event's logger name. + + + + The works very similar to the . It admits two + options and . If the + of the starts + with the value of the option, then the + method returns in + case the option value is set to true, + if it is false then is returned. + + + Daniel Cazzulino + + + + Flag to indicate the behavior when we have a match + + + + + The logger name string to substring match against the event + + + + + Default constructor + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The rendered message is matched against the . + If the equals the beginning of + the incoming () + then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + when matching + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + The that the filter will match + + + + This filter will attempt to match this value against logger name in + the following way. The match will be done against the beginning of the + logger name (using ). The match is + case sensitive. If a match is found then + the result depends on the value of . + + + + + + Simple filter to match a keyed string in the + + + + Simple filter to match a keyed string in the + + + As the MDC has been replaced with layered properties the + should be used instead. + + + Nicko Cadell + Gert Driesen + + + + Simple filter to match a string an event property + + + + Simple filter to match a string in the value for a + specific event property + + + Nicko Cadell + + + + Simple filter to match a string in the rendered message + + + + Simple filter to match a string in the rendered message + + + Nicko Cadell + Gert Driesen + + + + Flag to indicate the behavior when we have a match + + + + + The string to substring match against the message + + + + + A string regex to match + + + + + A regex object to match (generated from m_stringRegexToMatch) + + + + + Default constructor + + + + + Initialize and precompile the Regex if required + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The rendered message is matched against the . + If the occurs as a substring within + the message then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + when matching or + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + Sets the static string to match + + + + The string that will be substring matched against + the rendered message. If the message contains this + string then the filter will match. If a match is found then + the result depends on the value of . + + + One of or + must be specified. + + + + + + Sets the regular expression to match + + + + The regular expression pattern that will be matched against + the rendered message. If the message matches this + pattern then the filter will match. If a match is found then + the result depends on the value of . + + + One of or + must be specified. + + + + + + The key to use to lookup the string from the event properties + + + + + Default constructor + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The event property for the is matched against + the . + If the occurs as a substring within + the property value then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + The key to lookup in the event properties and then match against. + + + + The key name to use to lookup in the properties map of the + . The match will be performed against + the value of this property if it exists. + + + + + + Simple filter to match a string in the + + + + Simple filter to match a string in the + + + As the MDC has been replaced with named stacks stored in the + properties collections the should + be used instead. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Sets the to "NDC". + + + + + + Write the event appdomain name to the output + + + + Writes the to the output writer. + + + Daniel Cazzulino + Nicko Cadell + + + + Abstract class that provides the formatting functionality that + derived classes need. + + + Conversion specifiers in a conversion patterns are parsed to + individual PatternConverters. Each of which is responsible for + converting a logging event in a converter specific manner. + + Nicko Cadell + + + + Abstract class that provides the formatting functionality that + derived classes need. + + + + Conversion specifiers in a conversion patterns are parsed to + individual PatternConverters. Each of which is responsible for + converting a logging event in a converter specific manner. + + + Nicko Cadell + Gert Driesen + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + Protected constructor + + + + Initializes a new instance of the class. + + + + + + Evaluate this pattern converter and write the output to a writer. + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the appropriate way. + + + + + + Set the next pattern converter in the chains + + the pattern converter that should follow this converter in the chain + the next converter + + + The PatternConverter can merge with its neighbor during this method (or a sub class). + Therefore the return value may or may not be the value of the argument passed in. + + + + + + Write the pattern converter to the writer with appropriate formatting + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + This method calls to allow the subclass to perform + appropriate conversion of the pattern converter. If formatting options have + been specified via the then this method will + apply those formattings before writing the output. + + + + + + Fast space padding method. + + to which the spaces will be appended. + The number of spaces to be padded. + + + Fast space padding method. + + + + + + The option string to the converter + + + + + Write an dictionary to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the to a writer in the form: + + + {key1=value1, key2=value2, key3=value3} + + + If the specified + is not null then it is used to render the key and value to text, otherwise + the object's ToString method is called. + + + + + + Write an dictionary to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the to a writer in the form: + + + {key1=value1, key2=value2, key3=value3} + + + If the specified + is not null then it is used to render the key and value to text, otherwise + the object's ToString method is called. + + + + + + Write an object to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the Object to a writer. If the specified + is not null then it is used to render the object to text, otherwise + the object's ToString method is called. + + + + + + Get the next pattern converter in the chain + + + the next pattern converter in the chain + + + + Get the next pattern converter in the chain + + + + + + Gets or sets the formatting info for this converter + + + The formatting info for this converter + + + + Gets or sets the formatting info for this converter + + + + + + Gets or sets the option value for this converter + + + The option for this converter + + + + Gets or sets the option value for this converter + + + + + + + + + + + Initializes a new instance of the class. + + + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the correct way. + + that will receive the formatted result. + The on which the pattern converter should be executed. + + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the correct way. + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + + Flag indicating if this converter handles exceptions + + + false if this converter handles exceptions + + + + + Flag indicating if this converter handles the logging event exception + + false if this converter handles the logging event exception + + + If this converter handles the exception object contained within + , then this property should be set to + false. Otherwise, if the layout ignores the exception + object, then the property should be set to true. + + + Set this value to override a this default setting. The default + value is true, this converter does not handle the exception. + + + + + + Write the event appdomain name to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output . + + + + + + Date pattern converter, uses a to format + the date of a . + + + + Render the to the writer as a string. + + + The value of the determines + the formatting of the date. The following values are allowed: + + + Option value + Output + + + ISO8601 + + Uses the formatter. + Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. + + + + DATE + + Uses the formatter. + Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". + + + + ABSOLUTE + + Uses the formatter. + Formats using the "HH:mm:ss,yyyy" for example, "15:49:37,459". + + + + other + + Any other pattern string uses the formatter. + This formatter passes the pattern string to the + method. + For details on valid patterns see + DateTimeFormatInfo Class. + + + + + + The is in the local time zone and is rendered in that zone. + To output the time in Universal time see . + + + Nicko Cadell + + + + The used to render the date to a string + + + + The used to render the date to a string + + + + + + Initialize the converter pattern based on the property. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Convert the pattern into the rendered message + + that will receive the formatted result. + the event being logged + + + Pass the to the + for it to render it to the writer. + + + The passed is in the local time zone. + + + + + + The fully qualified type of the DatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the exception text to the output + + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + + + If there is no exception then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + Nicko Cadell + + + + Default constructor + + + + + Write the exception text to the output + + that will receive the formatted result. + the event being logged + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + + + If there is no exception or the exception property specified + by the Option value does not exist then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + Recognized values for the Option parameter are: + + + + Message + + + Source + + + StackTrace + + + TargetSite + + + HelpLink + + + + + + + Writes the caller location file name to the output + + + + Writes the value of the for + the event to the output writer. + + + Nicko Cadell + + + + Write the caller location file name to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the for + the to the output . + + + + + + Write the caller location info to the output + + + + Writes the to the output writer. + + + Nicko Cadell + + + + Write the caller location info to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output writer. + + + + + + Writes the event identity to the output + + + + Writes the value of the to + the output writer. + + + Daniel Cazzulino + Nicko Cadell + + + + Writes the event identity to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the + to + the output . + + + + + + Write the event level to the output + + + + Writes the display name of the event + to the writer. + + + Nicko Cadell + + + + Write the event level to the output + + that will receive the formatted result. + the event being logged + + + Writes the of the + to the . + + + + + + Write the caller location line number to the output + + + + Writes the value of the for + the event to the output writer. + + + Nicko Cadell + + + + Write the caller location line number to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the for + the to the output . + + + + + + Converter for logger name + + + + Outputs the of the event. + + + Nicko Cadell + + + + Converter to output and truncate '.' separated strings + + + + This abstract class supports truncating a '.' separated string + to show a specified number of elements from the right hand side. + This is used to truncate class names that are fully qualified. + + + Subclasses should override the method to + return the fully qualified string. + + + Nicko Cadell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Get the fully qualified string data + + the event being logged + the fully qualified name + + + Overridden by subclasses to get the fully qualified name before the + precision is applied to it. + + + Return the fully qualified '.' (dot/period) separated string. + + + + + + Convert the pattern to the rendered message + + that will receive the formatted result. + the event being logged + + Render the to the precision + specified by the property. + + + + + The fully qualified type of the NamedPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the fully qualified name of the logger + + the event being logged + The fully qualified logger name + + + Returns the of the . + + + + + + Writes the event message to the output + + + + Uses the method + to write out the event message. + + + Nicko Cadell + + + + Writes the event message to the output + + that will receive the formatted result. + the event being logged + + + Uses the method + to write out the event message. + + + + + + Write the method name to the output + + + + Writes the caller location to + the output. + + + Nicko Cadell + + + + Write the method name to the output + + that will receive the formatted result. + the event being logged + + + Writes the caller location to + the output. + + + + + + Converter to include event NDC + + + + Outputs the value of the event property named NDC. + + + The should be used instead. + + + Nicko Cadell + + + + Write the event NDC to the output + + that will receive the formatted result. + the event being logged + + + As the thread context stacks are now stored in named event properties + this converter simply looks up the value of the NDC property. + + + The should be used instead. + + + + + + Property pattern converter + + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + Nicko Cadell + + + + Write the property value to the output + + that will receive the formatted result. + the event being logged + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + Converter to output the relative time of the event + + + + Converter to output the time of the event relative to the start of the program. + + + Nicko Cadell + + + + Write the relative time to the output + + that will receive the formatted result. + the event being logged + + + Writes out the relative time of the event in milliseconds. + That is the number of milliseconds between the event + and the . + + + + + + Helper method to get the time difference between two DateTime objects + + start time (in the current local time zone) + end time (in the current local time zone) + the time difference in milliseconds + + + + Write the caller stack frames to the output + + + + Writes the to the output writer, using format: + type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) + + + Adam Davies + + + + Write the caller stack frames to the output + + + + Writes the to the output writer, using format: + type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 + + + Michael Cromwell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the strack frames to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output writer. + + + + + + Returns the Name of the method + + + This method was created, so this class could be used as a base class for StackTraceDetailPatternConverter + string + + + + The fully qualified type of the StackTracePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + The fully qualified type of the StackTraceDetailPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Converter to include event thread name + + + + Writes the to the output. + + + Nicko Cadell + + + + Write the ThreadName to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the . + + + + + + Pattern converter for the class name + + + + Outputs the of the event. + + + Nicko Cadell + + + + Gets the fully qualified name of the class + + the event being logged + The fully qualified type name for the caller location + + + Returns the of the . + + + + + + Converter to include event user name + + Douglas de la Torre + Nicko Cadell + + + + Convert the pattern to the rendered message + + that will receive the formatted result. + the event being logged + + + + Write the TimeStamp to the output + + + + Date pattern converter, uses a to format + the date of a . + + + Uses a to format the + in Universal time. + + + See the for details on the date pattern syntax. + + + + Nicko Cadell + + + + Write the TimeStamp to the output + + that will receive the formatted result. + the event being logged + + + Pass the to the + for it to render it to the writer. + + + The passed is in the local time zone, this is converted + to Universal time before it is rendered. + + + + + + + The fully qualified type of the UtcDatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + A flexible layout configurable with pattern string that re-evaluates on each call. + + + This class is built on and provides all the + features and capabilities of PatternLayout. PatternLayout is a 'static' class + in that its layout is done once at configuration time. This class will recreate + the layout on each reference. + One important difference between PatternLayout and DynamicPatternLayout is the + treatment of the Header and Footer parameters in the configuration. The Header and Footer + parameters for DynamicPatternLayout must be syntactically in the form of a PatternString, + but should not be marked as type log4net.Util.PatternString. Doing so causes the + pattern to be statically converted at configuration time and causes DynamicPatternLayout + to perform the same as PatternLayout. + Please see for complete documentation. + + <layout type="log4net.Layout.DynamicPatternLayout"> + <param name="Header" value="%newline**** Trace Opened Local: %date{yyyy-MM-dd HH:mm:ss.fff} UTC: %utcdate{yyyy-MM-dd HH:mm:ss.fff} ****%newline" /> + <param name="Footer" value="**** Trace Closed %date{yyyy-MM-dd HH:mm:ss.fff} ****%newline" /> + </layout> + + + + + + A flexible layout configurable with pattern string. + + + + The goal of this class is to a + as a string. The results + depend on the conversion pattern. + + + The conversion pattern is closely related to the conversion + pattern of the printf function in C. A conversion pattern is + composed of literal text and format control expressions called + conversion specifiers. + + + You are free to insert any literal text within the conversion + pattern. + + + Each conversion specifier starts with a percent sign (%) and is + followed by optional format modifiers and a conversion + pattern name. The conversion pattern name specifies the type of + data, e.g. logger, level, date, thread name. The format + modifiers control such things as field width, padding, left and + right justification. The following is a simple example. + + + Let the conversion pattern be "%-5level [%thread]: %message%newline" and assume + that the log4net environment was set to use a PatternLayout. Then the + statements + + + ILog log = LogManager.GetLogger(typeof(TestApp)); + log.Debug("Message 1"); + log.Warn("Message 2"); + + would yield the output + + DEBUG [main]: Message 1 + WARN [main]: Message 2 + + + Note that there is no explicit separator between text and + conversion specifiers. The pattern parser knows when it has reached + the end of a conversion specifier when it reads a conversion + character. In the example above the conversion specifier + %-5level means the level of the logging event should be left + justified to a width of five characters. + + + The recognized conversion pattern names are: + + + + Conversion Pattern Name + Effect + + + a + Equivalent to appdomain + + + appdomain + + Used to output the friendly name of the AppDomain where the + logging event was generated. + + + + aspnet-cache + + + Used to output all cache items in the case of %aspnet-cache or just one named item if used as %aspnet-cache{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-context + + + Used to output all context items in the case of %aspnet-context or just one named item if used as %aspnet-context{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-request + + + Used to output all request parameters in the case of %aspnet-request or just one named param if used as %aspnet-request{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-session + + + Used to output all session items in the case of %aspnet-session or just one named item if used as %aspnet-session{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + c + Equivalent to logger + + + C + Equivalent to type + + + class + Equivalent to type + + + d + Equivalent to date + + + date + + + Used to output the date of the logging event in the local time zone. + To output the date in universal time use the %utcdate pattern. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %date{HH:mm:ss,fff} or + %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %date{ISO8601} or %date{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + exception + + + Used to output the exception passed in with the log message. + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + If there is no exception then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + + + F + Equivalent to file + + + file + + + Used to output the file name where the logging request was + issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + identity + + + Used to output the user name for the currently active user + (Principal.Identity.Name). + + + WARNING Generating caller information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + + + l + Equivalent to location + + + L + Equivalent to line + + + location + + + Used to output location information of the caller which generated + the logging event. + + + The location information depends on the CLI implementation but + usually consists of the fully qualified name of the calling + method followed by the callers source the file name and line + number between parentheses. + + + The location information can be very useful. However, its + generation is extremely slow. Its use should be avoided + unless execution speed is not an issue. + + + See the note below on the availability of caller location information. + + + + + level + + + Used to output the level of the logging event. + + + + + line + + + Used to output the line number from where the logging request + was issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + logger + + + Used to output the logger of the logging event. The + logger conversion specifier can be optionally followed by + precision specifier, that is a decimal constant in + brackets. + + + If a precision specifier is given, then only the corresponding + number of right most components of the logger name will be + printed. By default the logger name is printed in full. + + + For example, for the logger name "a.b.c" the pattern + %logger{2} will output "b.c". + + + + + m + Equivalent to message + + + M + Equivalent to method + + + message + + + Used to output the application supplied message associated with + the logging event. + + + + + mdc + + + The MDC (old name for the ThreadContext.Properties) is now part of the + combined event properties. This pattern is supported for compatibility + but is equivalent to property. + + + + + method + + + Used to output the method name where the logging request was + issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + n + Equivalent to newline + + + newline + + + Outputs the platform dependent line separator character or + characters. + + + This conversion pattern offers the same performance as using + non-portable line separator strings such as "\n", or "\r\n". + Thus, it is the preferred way of specifying a line separator. + + + + + ndc + + + Used to output the NDC (nested diagnostic context) associated + with the thread that generated the logging event. + + + + + p + Equivalent to level + + + P + Equivalent to property + + + properties + Equivalent to property + + + property + + + Used to output the an event specific property. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %property{user} would include the value + from the property that is keyed by the string 'user'. Each property value + that is to be included in the log must be specified separately. + Properties are added to events by loggers or appenders. By default + the log4net:HostName property is set to the name of machine on + which the event was originally logged. + + + If no key is specified, e.g. %property then all the keys and their + values are printed in a comma separated list. + + + The properties of an event are combined from a number of different + contexts. These are listed below in the order in which they are searched. + + + + the event properties + + The event has that can be set. These + properties are specific to this event only. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + + r + Equivalent to timestamp + + + stacktrace + + + Used to output the stack trace of the logging event + The stack trace level specifier may be enclosed + between braces. For example, %stacktrace{level}. + If no stack trace level specifier is given then 1 is assumed + + + Output uses the format: + type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 + + + This pattern is not available for Compact Framework assemblies. + + + + + stacktracedetail + + + Used to output the stack trace of the logging event + The stack trace level specifier may be enclosed + between braces. For example, %stacktracedetail{level}. + If no stack trace level specifier is given then 1 is assumed + + + Output uses the format: + type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) + + + This pattern is not available for Compact Framework assemblies. + + + + + t + Equivalent to thread + + + timestamp + + + Used to output the number of milliseconds elapsed since the start + of the application until the creation of the logging event. + + + + + thread + + + Used to output the name of the thread that generated the + logging event. Uses the thread number if no name is available. + + + + + type + + + Used to output the fully qualified type name of the caller + issuing the logging request. This conversion specifier + can be optionally followed by precision specifier, that + is a decimal constant in brackets. + + + If a precision specifier is given, then only the corresponding + number of right most components of the class name will be + printed. By default the class name is output in fully qualified form. + + + For example, for the class name "log4net.Layout.PatternLayout", the + pattern %type{1} will output "PatternLayout". + + + WARNING Generating the caller class information is + slow. Thus, its use should be avoided unless execution speed is + not an issue. + + + See the note below on the availability of caller location information. + + + + + u + Equivalent to identity + + + username + + + Used to output the WindowsIdentity for the currently + active user. + + + WARNING Generating caller WindowsIdentity information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + + + utcdate + + + Used to output the date of the logging event in universal time. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %utcdate{HH:mm:ss,fff} or + %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %utcdate{ISO8601} or %utcdate{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + w + Equivalent to username + + + x + Equivalent to ndc + + + X + Equivalent to mdc + + + % + + + The sequence %% outputs a single percent sign. + + + + + + The single letter patterns are deprecated in favor of the + longer more descriptive pattern names. + + + By default the relevant information is output as is. However, + with the aid of format modifiers it is possible to change the + minimum field width, the maximum field width and justification. + + + The optional format modifier is placed between the percent sign + and the conversion pattern name. + + + The first optional format modifier is the left justification + flag which is just the minus (-) character. Then comes the + optional minimum field width modifier. This is a decimal + constant that represents the minimum number of characters to + output. If the data item requires fewer characters, it is padded on + either the left or the right until the minimum width is + reached. The default is to pad on the left (right justify) but you + can specify right padding with the left justification flag. The + padding character is space. If the data item is larger than the + minimum field width, the field is expanded to accommodate the + data. The value is never truncated. + + + This behavior can be changed using the maximum field + width modifier which is designated by a period followed by a + decimal constant. If the data item is longer than the maximum + field, then the extra characters are removed from the + beginning of the data item and not from the end. For + example, it the maximum field width is eight and the data item is + ten characters long, then the first two characters of the data item + are dropped. This behavior deviates from the printf function in C + where truncation is done from the end. + + + Below are various format modifier examples for the logger + conversion specifier. + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Format modifierleft justifyminimum widthmaximum widthcomment
%20loggerfalse20none + + Left pad with spaces if the logger name is less than 20 + characters long. + +
%-20loggertrue20none + + Right pad with spaces if the logger + name is less than 20 characters long. + +
%.30loggerNAnone30 + + Truncate from the beginning if the logger + name is longer than 30 characters. + +
%20.30loggerfalse2030 + + Left pad with spaces if the logger name is shorter than 20 + characters. However, if logger name is longer than 30 characters, + then truncate from the beginning. + +
%-20.30loggertrue2030 + + Right pad with spaces if the logger name is shorter than 20 + characters. However, if logger name is longer than 30 characters, + then truncate from the beginning. + +
+
+ + Note about caller location information.
+ The following patterns %type %file %line %method %location %class %C %F %L %l %M + all generate caller location information. + Location information uses the System.Diagnostics.StackTrace class to generate + a call stack. The caller's information is then extracted from this stack. +
+ + + The System.Diagnostics.StackTrace class is not supported on the + .NET Compact Framework 1.0 therefore caller location information is not + available on that framework. + + + + + The System.Diagnostics.StackTrace class has this to say about Release builds: + + + "StackTrace information will be most informative with Debug build configurations. + By default, Debug builds include debug symbols, while Release builds do not. The + debug symbols contain most of the file, method name, line number, and column + information used in constructing StackFrame and StackTrace objects. StackTrace + might not report as many method calls as expected, due to code transformations + that occur during optimization." + + + This means that in a Release build the caller information may be incomplete or may + not exist at all! Therefore caller location information cannot be relied upon in a Release build. + + + + Additional pattern converters may be registered with a specific + instance using the method. + +
+ + This is a more detailed pattern. + %timestamp [%thread] %level %logger %ndc - %message%newline + + + A similar pattern except that the relative time is + right padded if less than 6 digits, thread name is right padded if + less than 15 characters and truncated if longer and the logger + name is left padded if shorter than 30 characters and truncated if + longer. + %-6timestamp [%15.15thread] %-5level %30.30logger %ndc - %message%newline + + Nicko Cadell + Gert Driesen + Douglas de la Torre + Daniel Cazzulino +
+ + + Extend this abstract class to create your own log layout format. + + + + This is the base implementation of the + interface. Most layout objects should extend this class. + + + + + + Subclasses must implement the + method. + + + Subclasses should set the in their default + constructor. + + + + Nicko Cadell + Gert Driesen + + + + Interface implemented by layout objects + + + + An object is used to format a + as text. The method is called by an + appender to transform the into a string. + + + The layout can also supply and + text that is appender before any events and after all the events respectively. + + + Nicko Cadell + Gert Driesen + + + + Implement this method to create your own layout format. + + The TextWriter to write the formatted event to + The event to format + + + This method is called by an appender to format + the as text and output to a writer. + + + If the caller does not have a and prefers the + event to be formatted as a then the following + code can be used to format the event into a . + + + StringWriter writer = new StringWriter(); + Layout.Format(writer, loggingEvent); + string formattedEvent = writer.ToString(); + + + + + + The content type output by this layout. + + The content type + + + The content type output by this layout. + + + This is a MIME type e.g. "text/plain". + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + + + + + Flag indicating if this layout handle exceptions + + false if this layout handles exceptions + + + If this layout handles the exception object contained within + , then the layout should return + false. Otherwise, if the layout ignores the exception + object, then the layout should return true. + + + + + + The header text + + + + See for more information. + + + + + + The footer text + + + + See for more information. + + + + + + Flag indicating if this layout handles exceptions + + + + false if this layout handles exceptions + + + + + + Empty default constructor + + + + Empty default constructor + + + + + + Activate component options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + This method must be implemented by the subclass. + + + + + + Implement this method to create your own layout format. + + The TextWriter to write the formatted event to + The event to format + + + This method is called by an appender to format + the as text. + + + + + + Convenience method for easily formatting the logging event into a string variable. + + + + Creates a new StringWriter instance to store the formatted logging event. + + + + + The content type output by this layout. + + The content type is "text/plain" + + + The content type output by this layout. + + + This base class uses the value "text/plain". + To change this value a subclass must override this + property. + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + + + + + Flag indicating if this layout handles exceptions + + false if this layout handles exceptions + + + If this layout handles the exception object contained within + , then the layout should return + false. Otherwise, if the layout ignores the exception + object, then the layout should return true. + + + Set this value to override a this default setting. The default + value is true, this layout does not handle the exception. + + + + + + Default pattern string for log output. + + + + Default pattern string for log output. + Currently set to the string "%message%newline" + which just prints the application supplied message. + + + + + + A detailed conversion pattern + + + + A conversion pattern which includes Time, Thread, Logger, and Nested Context. + Current value is %timestamp [%thread] %level %logger %ndc - %message%newline. + + + + + + Internal map of converter identifiers to converter types. + + + + This static map is overridden by the m_converterRegistry instance map + + + + + + the pattern + + + + + the head of the pattern converter chain + + + + + patterns defined on this PatternLayout only + + + + + Initialize the global registry + + + + Defines the builtin global rules. + + + + + + Constructs a PatternLayout using the DefaultConversionPattern + + + + The default pattern just produces the application supplied message. + + + Note to Inheritors: This constructor calls the virtual method + . If you override this method be + aware that it will be called before your is called constructor. + + + As per the contract the + method must be called after the properties on this object have been + configured. + + + + + + Constructs a PatternLayout using the supplied conversion pattern + + the pattern to use + + + Note to Inheritors: This constructor calls the virtual method + . If you override this method be + aware that it will be called before your is called constructor. + + + When using this constructor the method + need not be called. This may not be the case when using a subclass. + + + + + + Create the pattern parser instance + + the pattern to parse + The that will format the event + + + Creates the used to parse the conversion string. Sets the + global and instance rules on the . + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a formatted string as specified by the conversion pattern. + + the event being logged + The TextWriter to write the formatted event to + + + Parse the using the patter format + specified in the property. + + + + + + Add a converter to this PatternLayout + + the converter info + + + This version of the method is used by the configurator. + Programmatic users should use the alternative method. + + + + + + Add a converter to this PatternLayout + + the name of the conversion pattern for this converter + the type of the converter + + + Add a named pattern converter to this instance. This + converter will be used in the formatting of the event. + This method must be called before . + + + The specified must extend the + type. + + + + + + The pattern formatting string + + + + The ConversionPattern option. This is the string which + controls formatting and consists of a mix of literal content and + conversion specifiers. + + + + + + The header PatternString + + + + + The footer PatternString + + + + + Constructs a DynamicPatternLayout using the DefaultConversionPattern + + + + The default pattern just produces the application supplied message. + + + + + + Constructs a DynamicPatternLayout using the supplied conversion pattern + + the pattern to use + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + The pattern will be formatted on each get operation. + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + The pattern will be formatted on each get operation. + + + + + A Layout that renders only the Exception text from the logging event + + + + A Layout that renders only the Exception text from the logging event. + + + This Layout should only be used with appenders that utilize multiple + layouts (e.g. ). + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Constructs a ExceptionLayout + + + + + + Activate component options + + + + Part of the component activation + framework. + + + This method does nothing as options become effective immediately. + + + + + + Gets the exception text from the logging event + + The TextWriter to write the formatted event to + the event being logged + + + Write the exception string to the . + The exception string is retrieved from . + + + + + + Interface for raw layout objects + + + + Interface used to format a + to an object. + + + This interface should not be confused with the + interface. This interface is used in + only certain specialized situations where a raw object is + required rather than a formatted string. The + is not generally useful than this interface. + + + Nicko Cadell + Gert Driesen + + + + Implement this method to create your own layout format. + + The event to format + returns the formatted event + + + Implement this method to create your own layout format. + + + + + + Adapts any to a + + + + Where an is required this adapter + allows a to be specified. + + + Nicko Cadell + Gert Driesen + + + + The layout to adapt + + + + + Construct a new adapter + + the layout to adapt + + + Create the adapter for the specified . + + + + + + Format the logging event as an object. + + The event to format + returns the formatted event + + + Format the logging event as an object. + + + Uses the object supplied to + the constructor to perform the formatting. + + + + + + Type converter for the interface + + + + Used to convert objects to the interface. + Supports converting from the interface to + the interface using the . + + + Nicko Cadell + Gert Driesen + + + + Interface supported by type converters + + + + This interface supports conversion from arbitrary types + to a single target type. See . + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Test if the can be converted to the + type supported by this converter. + + + + + + Convert the source object to the type supported by this object + + the object to convert + the converted object + + + Converts the to the type supported + by this converter. + + + + + + Can the sourceType be converted to an + + the source to be to be converted + true if the source type can be converted to + + + Test if the can be converted to a + . Only is supported + as the . + + + + + + Convert the value to a object + + the value to convert + the object + + + Convert the object to a + object. If the object + is a then the + is used to adapt between the two interfaces, otherwise an + exception is thrown. + + + + + + Extract the value of a property from the + + + + Extract the value of a property from the + + + Nicko Cadell + + + + Constructs a RawPropertyLayout + + + + + Lookup the property for + + The event to format + returns property value + + + Looks up and returns the object value of the property + named . If there is no property defined + with than name then null will be returned. + + + + + + The name of the value to lookup in the LoggingEvent Properties collection. + + + Value to lookup in the LoggingEvent Properties collection + + + + String name of the property to lookup in the . + + + + + + Extract the date from the + + + + Extract the date from the + + + Nicko Cadell + Gert Driesen + + + + Constructs a RawTimeStampLayout + + + + + Gets the as a . + + The event to format + returns the time stamp + + + Gets the as a . + + + The time stamp is in local time. To format the time stamp + in universal time use . + + + + + + Extract the date from the + + + + Extract the date from the + + + Nicko Cadell + Gert Driesen + + + + Constructs a RawUtcTimeStampLayout + + + + + Gets the as a . + + The event to format + returns the time stamp + + + Gets the as a . + + + The time stamp is in universal time. To format the time stamp + in local time use . + + + + + + A very simple layout + + + + SimpleLayout consists of the level of the log statement, + followed by " - " and then the log message itself. For example, + + DEBUG - Hello world + + + + Nicko Cadell + Gert Driesen + + + + Constructs a SimpleLayout + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a simple formatted output. + + the event being logged + The TextWriter to write the formatted event to + + + Formats the event as the level of the even, + followed by " - " and then the log message itself. The + output is terminated by a newline. + + + + + + Layout that formats the log events as XML elements. + + + + The output of the consists of a series of + log4net:event elements. It does not output a complete well-formed XML + file. The output is designed to be included as an external entity + in a separate file to form a correct XML file. + + + For example, if abc is the name of the file where + the output goes, then a well-formed XML file would + be: + + + <?xml version="1.0" ?> + + <!DOCTYPE log4net:events SYSTEM "log4net-events.dtd" [<!ENTITY data SYSTEM "abc">]> + + <log4net:events version="1.2" xmlns:log4net="http://logging.apache.org/log4net/schemas/log4net-events-1.2> + &data; + </log4net:events> + + + This approach enforces the independence of the + and the appender where it is embedded. + + + The version attribute helps components to correctly + interpret output generated by . The value of + this attribute should be "1.2" for release 1.2 and later. + + + Alternatively the Header and Footer properties can be + configured to output the correct XML header, open tag and close tag. + When setting the Header and Footer properties it is essential + that the underlying data store not be appendable otherwise the data + will become invalid XML. + + + Nicko Cadell + Gert Driesen + + + + Layout that formats the log events as XML elements. + + + + This is an abstract class that must be subclassed by an implementation + to conform to a specific schema. + + + Deriving classes must implement the method. + + + Nicko Cadell + Gert Driesen + + + + Protected constructor to support subclasses + + + + Initializes a new instance of the class + with no location info. + + + + + + Protected constructor to support subclasses + + + + The parameter determines whether + location information will be output by the layout. If + is set to true, then the + file name and line number of the statement at the origin of the log + statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a formatted string. + + The event being logged. + The TextWriter to write the formatted event to + + + Format the and write it to the . + + + This method creates an that writes to the + . The is passed + to the method. Subclasses should override the + method rather than this method. + + + + + + Does the actual writing of the XML. + + The writer to use to output the event to. + The event to write. + + + Subclasses should override this method to format + the as XML. + + + + + + Flag to indicate if location information should be included in + the XML events. + + + + + The string to replace invalid chars with + + + + + Gets a value indicating whether to include location information in + the XML events. + + + true if location information should be included in the XML + events; otherwise, false. + + + + If is set to true, then the file + name and line number of the statement at the origin of the log + statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + The string to replace characters that can not be expressed in XML with. + + + Not all characters may be expressed in XML. This property contains the + string to replace those that can not with. This defaults to a ?. Set it + to the empty string to simply remove offending characters. For more + details on the allowed character ranges see http://www.w3.org/TR/REC-xml/#charsets + Character replacement will occur in the log message, the property names + and the property values. + + + + + + + Gets the content type output by this layout. + + + As this is the XML layout, the value is always "text/xml". + + + + As this is the XML layout, the value is always "text/xml". + + + + + + Constructs an XmlLayout + + + + + Constructs an XmlLayout. + + + + The LocationInfo option takes a boolean value. By + default, it is set to false which means there will be no location + information output by this layout. If the the option is set to + true, then the file name and line number of the statement + at the origin of the log statement will be output. + + + If you are embedding this layout within an SmtpAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Builds a cache of the element names + + + + + + Does the actual writing of the XML. + + The writer to use to output the event to. + The event to write. + + + Override the base class method + to write the to the . + + + + + + The prefix to use for all generated element names + + + + + The prefix to use for all element names + + + + The default prefix is log4net. Set this property + to change the prefix. If the prefix is set to an empty string + then no prefix will be written. + + + + + + Set whether or not to base64 encode the message. + + + + By default the log message will be written as text to the xml + output. This can cause problems when the message contains binary + data. By setting this to true the contents of the message will be + base64 encoded. If this is set then invalid character replacement + (see ) will not be performed + on the log message. + + + + + + Set whether or not to base64 encode the property values. + + + + By default the properties will be written as text to the xml + output. This can cause problems when one or more properties contain + binary data. By setting this to true the values of the properties + will be base64 encoded. If this is set then invalid character replacement + (see ) will not be performed + on the property values. + + + + + + Layout that formats the log events as XML elements compatible with the log4j schema + + + + Formats the log events according to the http://logging.apache.org/log4j schema. + + + Nicko Cadell + + + + The 1st of January 1970 in UTC + + + + + Constructs an XMLLayoutSchemaLog4j + + + + + Constructs an XMLLayoutSchemaLog4j. + + + + The LocationInfo option takes a boolean value. By + default, it is set to false which means there will be no location + information output by this layout. If the the option is set to + true, then the file name and line number of the statement + at the origin of the log statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + Actually do the writing of the xml + + the writer to use + the event to write + + + Generate XML that is compatible with the log4j schema. + + + + + + The version of the log4j schema to use. + + + + Only version 1.2 of the log4j schema is supported. + + + + + + The default object Renderer. + + + + The default renderer supports rendering objects and collections to strings. + + + See the method for details of the output. + + + Nicko Cadell + Gert Driesen + + + + Implement this interface in order to render objects as strings + + + + Certain types require special case conversion to + string form. This conversion is done by an object renderer. + Object renderers implement the + interface. + + + Nicko Cadell + Gert Driesen + + + + Render the object to a string + + The map used to lookup renderers + The object to render + The writer to render to + + + Render the object to a + string. + + + The parameter is + provided to lookup and render other objects. This is + very useful where contains + nested objects of unknown type. The + method can be used to render these objects. + + + + + + Default constructor + + + + Default constructor + + + + + + Render the object to a string + + The map used to lookup renderers + The object to render + The writer to render to + + + Render the object to a string. + + + The parameter is + provided to lookup and render other objects. This is + very useful where contains + nested objects of unknown type. The + method can be used to render these objects. + + + The default renderer supports rendering objects to strings as follows: + + + + Value + Rendered String + + + null + + "(null)" + + + + + + + For a one dimensional array this is the + array type name, an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. + + + For example: int[] {1, 2, 3}. + + + If the array is not one dimensional the + Array.ToString() is returned. + + + + + , & + + + Rendered as an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. + + + For example: {a, b, c}. + + + All collection classes that implement its subclasses, + or generic equivalents all implement the interface. + + + + + + + + Rendered as the key, an equals sign ('='), and the value (using the appropriate + renderer). + + + For example: key=value. + + + + + other + + Object.ToString() + + + + + + + + Render the array argument into a string + + The map used to lookup renderers + the array to render + The writer to render to + + + For a one dimensional array this is the + array type name, an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. For example: + int[] {1, 2, 3}. + + + If the array is not one dimensional the + Array.ToString() is returned. + + + + + + Render the enumerator argument into a string + + The map used to lookup renderers + the enumerator to render + The writer to render to + + + Rendered as an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. For example: + {a, b, c}. + + + + + + Render the DictionaryEntry argument into a string + + The map used to lookup renderers + the DictionaryEntry to render + The writer to render to + + + Render the key, an equals sign ('='), and the value (using the appropriate + renderer). For example: key=value. + + + + + + Map class objects to an . + + + + Maintains a mapping between types that require special + rendering and the that + is used to render them. + + + The method is used to render an + object using the appropriate renderers defined in this map. + + + Nicko Cadell + Gert Driesen + + + + Default Constructor + + + + Default constructor. + + + + + + Render using the appropriate renderer. + + the object to render to a string + the object rendered as a string + + + This is a convenience method used to render an object to a string. + The alternative method + should be used when streaming output to a . + + + + + + Render using the appropriate renderer. + + the object to render to a string + The writer to render to + + + Find the appropriate renderer for the type of the + parameter. This is accomplished by calling the + method. Once a renderer is found, it is + applied on the object and the result is returned + as a . + + + + + + Gets the renderer for the specified object type + + the object to lookup the renderer for + the renderer for + + + Gets the renderer for the specified object type. + + + Syntactic sugar method that calls + with the type of the object parameter. + + + + + + Gets the renderer for the specified type + + the type to lookup the renderer for + the renderer for the specified type + + + Returns the renderer for the specified type. + If no specific renderer has been defined the + will be returned. + + + + + + Internal function to recursively search interfaces + + the type to lookup the renderer for + the renderer for the specified type + + + + Clear the map of renderers + + + + Clear the custom renderers defined by using + . The + cannot be removed. + + + + + + Register an for . + + the type that will be rendered by + the renderer for + + + Register an object renderer for a specific source type. + This renderer will be returned from a call to + specifying the same as an argument. + + + + + + Get the default renderer instance + + the default renderer + + + Get the default renderer + + + + + + Interface implemented by logger repository plugins. + + + + Plugins define additional behavior that can be associated + with a . + The held by the + property is used to store the plugins for a repository. + + + The log4net.Config.PluginAttribute can be used to + attach plugins to repositories created using configuration + attributes. + + + Nicko Cadell + Gert Driesen + + + + Attaches the plugin to the specified . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + This method is called to notify the plugin that + it should stop operating and should detach from + the repository. + + + + + + Gets the name of the plugin. + + + The name of the plugin. + + + + Plugins are stored in the + keyed by name. Each plugin instance attached to a + repository must be a unique name. + + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Creates a read-only wrapper for a PluginCollection instance. + + list to create a readonly wrapper arround + + A PluginCollection wrapper that is read-only. + + + + + Initializes a new instance of the PluginCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the PluginCollection class + that has the specified initial capacity. + + + The number of elements that the new PluginCollection is initially capable of storing. + + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified PluginCollection. + + The PluginCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Allow subclasses to avoid our default constructors + + + + + + + Copies the entire PluginCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire PluginCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Adds a to the end of the PluginCollection. + + The to be added to the end of the PluginCollection. + The index at which the value has been added. + + + + Removes all elements from the PluginCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the PluginCollection. + + The to check for. + true if is found in the PluginCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the PluginCollection. + + The to locate in the PluginCollection. + + The zero-based index of the first occurrence of + in the entire PluginCollection, if found; otherwise, -1. + + + + + Inserts an element into the PluginCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the PluginCollection. + + The to remove from the PluginCollection. + + The specified was not found in the PluginCollection. + + + + + Removes the element at the specified index of the PluginCollection. + + The zero-based index of the element to remove. + + is less than zero. + -or- + is equal to or greater than . + + + + + Returns an enumerator that can iterate through the PluginCollection. + + An for the entire PluginCollection. + + + + Adds the elements of another PluginCollection to the current PluginCollection. + + The PluginCollection whose elements should be added to the end of the current PluginCollection. + The new of the PluginCollection. + + + + Adds the elements of a array to the current PluginCollection. + + The array whose elements should be added to the end of the PluginCollection. + The new of the PluginCollection. + + + + Adds the elements of a collection to the current PluginCollection. + + The collection whose elements should be added to the end of the PluginCollection. + The new of the PluginCollection. + + + + Sets the capacity to the actual number of elements. + + + + + is less than zero. + -or- + is equal to or greater than . + + + + + is less than zero. + -or- + is equal to or greater than . + + + + + Gets the number of elements actually contained in the PluginCollection. + + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + An object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + + The at the specified index. + + The zero-based index of the element to get or set. + + is less than zero. + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false. + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false. + + + + Gets or sets the number of elements the PluginCollection can contain. + + + The number of elements the PluginCollection can contain. + + + + + Supports type-safe iteration over a . + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + + A value + + + + + Supports simple iteration over a . + + + + + + Initializes a new instance of the Enumerator class. + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + The current element in the collection. + + + + + + + + Map of repository plugins. + + + + This class is a name keyed map of the plugins that are + attached to a repository. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The repository that the plugins should be attached to. + + + Initialize a new instance of the class with a + repository that the plugins should be attached to. + + + + + + Adds a to the map. + + The to add to the map. + + + The will be attached to the repository when added. + + + If there already exists a plugin with the same name + attached to the repository then the old plugin will + be and replaced with + the new plugin. + + + + + + Removes a from the map. + + The to remove from the map. + + + Remove a specific plugin from this map. + + + + + + Gets a by name. + + The name of the to lookup. + + The from the map with the name specified, or + null if no plugin is found. + + + + Lookup a plugin by name. If the plugin is not found null + will be returned. + + + + + + Gets all possible plugins as a list of objects. + + All possible plugins as a list of objects. + + + Get a collection of all the plugins defined in this map. + + + + + + Base implementation of + + + + Default abstract implementation of the + interface. This base class can be used by implementors + of the interface. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + the name of the plugin + + Initializes a new Plugin with the specified name. + + + + + Attaches this plugin to a . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + This method is called to notify the plugin that + it should stop operating and should detach from + the repository. + + + + + + The name of this plugin. + + + + + The repository this plugin is attached to. + + + + + Gets or sets the name of the plugin. + + + The name of the plugin. + + + + Plugins are stored in the + keyed by name. Each plugin instance attached to a + repository must be a unique name. + + + The name of the plugin must not change one the + plugin has been attached to a repository. + + + + + + The repository for this plugin + + + The that this plugin is attached to. + + + + Gets or sets the that this plugin is + attached to. + + + + + + Plugin that listens for events from the + + + + This plugin publishes an instance of + on a specified . This listens for logging events delivered from + a remote . + + + When an event is received it is relogged within the attached repository + as if it had been raised locally. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Initializes a new instance of the class. + + + The property must be set. + + + + + + Construct with sink Uri. + + The name to publish the sink under in the remoting infrastructure. + See for more details. + + + Initializes a new instance of the class + with specified name. + + + + + + Attaches this plugin to a . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + When the plugin is shutdown the remote logging + sink is disconnected. + + + + + + The fully qualified type of the RemoteLoggingServerPlugin class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the URI of this sink. + + + The URI of this sink. + + + + This is the name under which the object is marshaled. + + + + + + + Delivers objects to a remote sink. + + + + Internal class used to listen for logging events + and deliver them to the local repository. + + + + + + Constructor + + The repository to log to. + + + Initializes a new instance of the for the + specified . + + + + + + Logs the events to the repository. + + The events to log. + + + The events passed are logged to the + + + + + + Obtains a lifetime service object to control the lifetime + policy for this instance. + + null to indicate that this instance should live forever. + + + Obtains a lifetime service object to control the lifetime + policy for this instance. This object should live forever + therefore this implementation returns null. + + + + + + The underlying that events should + be logged to. + + + + + Default implementation of + + + + This default implementation of the + interface is used to create the default subclass + of the object. + + + Nicko Cadell + Gert Driesen + + + + Interface abstracts creation of instances + + + + This interface is used by the to + create new objects. + + + The method is called + to create a named . + + + Implement this interface to create new subclasses of . + + + Nicko Cadell + Gert Driesen + + + + Create a new instance + + The that will own the . + The name of the . + The instance for the specified name. + + + Create a new instance with the + specified name. + + + Called by the to create + new named instances. + + + If the is null then the root logger + must be returned. + + + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Create a new instance + + The that will own the . + The name of the . + The instance for the specified name. + + + Create a new instance with the + specified name. + + + Called by the to create + new named instances. + + + If the is null then the root logger + must be returned. + + + + + + Default internal subclass of + + + + This subclass has no additional behavior over the + class but does allow instances + to be created. + + + + + + Implementation of used by + + + + Internal class used to provide implementation of + interface. Applications should use to get + logger instances. + + + This is one of the central classes in the log4net implementation. One of the + distinctive features of log4net are hierarchical loggers and their + evaluation. The organizes the + instances into a rooted tree hierarchy. + + + The class is abstract. Only concrete subclasses of + can be created. The + is used to create instances of this type for the . + + + Nicko Cadell + Gert Driesen + Aspi Havewala + Douglas de la Torre + + + + This constructor created a new instance and + sets its name. + + The name of the . + + + This constructor is protected and designed to be used by + a subclass that is not abstract. + + + Loggers are constructed by + objects. See for the default + logger creator. + + + + + + Add to the list of appenders of this + Logger instance. + + An appender to add to this logger + + + Add to the list of appenders of this + Logger instance. + + + If is already in the list of + appenders, then it won't be added again. + + + + + + Look for the appender named as name + + The name of the appender to lookup + The appender with the name specified, or null. + + + Returns the named appender, or null if the appender is not found. + + + + + + Remove all previously added appenders from this Logger instance. + + + + Remove all previously added appenders from this Logger instance. + + + This is useful when re-reading configuration information. + + + + + + Remove the appender passed as parameter form the list of appenders. + + The appender to remove + The appender removed from the list + + + Remove the appender passed as parameter form the list of appenders. + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Remove the appender passed as parameter form the list of appenders. + + The name of the appender to remove + The appender removed from the list + + + Remove the named appender passed as parameter form the list of appenders. + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + This generic form is intended to be used by wrappers. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generate a logging event for the specified using + the and . + + + This method must not throw any exception to the caller. + + + + + + This is the most generic printing method that is intended to be used + by wrappers. + + The event being logged. + + + Logs the specified logging event through this logger. + + + This method must not throw any exception to the caller. + + + + + + Checks if this logger is enabled for a given passed as parameter. + + The level to check. + + true if this logger is enabled for level, otherwise false. + + + + Test if this logger is going to log events of the specified . + + + This method must not throw any exception to the caller. + + + + + + Deliver the to the attached appenders. + + The event to log. + + + Call the appenders in the hierarchy starting at + this. If no appenders could be found, emit a + warning. + + + This method calls all the appenders inherited from the + hierarchy circumventing any evaluation of whether to log or not + to log the particular log request. + + + + + + Closes all attached appenders implementing the interface. + + + + Used to ensure that the appenders are correctly shutdown. + + + + + + This is the most generic printing method. This generic form is intended to be used by wrappers + + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generate a logging event for the specified using + the . + + + + + + Creates a new logging event and logs the event without further checks. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generates a logging event and delivers it to the attached + appenders. + + + + + + Creates a new logging event and logs the event without further checks. + + The event being logged. + + + Delivers the logging event to the attached appenders. + + + + + + The fully qualified type of the Logger class. + + + + + The name of this logger. + + + + + The assigned level of this logger. + + + + The level variable need not be + assigned a value in which case it is inherited + form the hierarchy. + + + + + + The parent of this logger. + + + + The parent of this logger. + All loggers have at least one ancestor which is the root logger. + + + + + + Loggers need to know what Hierarchy they are in. + + + + Loggers need to know what Hierarchy they are in. + The hierarchy that this logger is a member of is stored + here. + + + + + + Helper implementation of the interface + + + + + Flag indicating if child loggers inherit their parents appenders + + + + Additivity is set to true by default, that is children inherit + the appenders of their ancestors by default. If this variable is + set to false then the appenders found in the + ancestors of this logger are not used. However, the children + of this logger will inherit its appenders, unless the children + have their additivity flag set to false too. See + the user manual for more details. + + + + + + Lock to protect AppenderAttachedImpl variable m_appenderAttachedImpl + + + + + Gets or sets the parent logger in the hierarchy. + + + The parent logger in the hierarchy. + + + + Part of the Composite pattern that makes the hierarchy. + The hierarchy is parent linked rather than child linked. + + + + + + Gets or sets a value indicating if child loggers inherit their parent's appenders. + + + true if child loggers inherit their parent's appenders. + + + + Additivity is set to true by default, that is children inherit + the appenders of their ancestors by default. If this variable is + set to false then the appenders found in the + ancestors of this logger are not used. However, the children + of this logger will inherit its appenders, unless the children + have their additivity flag set to false too. See + the user manual for more details. + + + + + + Gets the effective level for this logger. + + The nearest level in the logger hierarchy. + + + Starting from this logger, searches the logger hierarchy for a + non-null level and returns it. Otherwise, returns the level of the + root logger. + + The Logger class is designed so that this method executes as + quickly as possible. + + + + + Gets or sets the where this + Logger instance is attached to. + + The hierarchy that this logger belongs to. + + + This logger must be attached to a single . + + + + + + Gets or sets the assigned , if any, for this Logger. + + + The of this logger. + + + + The assigned can be null. + + + + + + Get the appenders contained in this logger as an + . + + A collection of the appenders in this logger + + + Get the appenders contained in this logger as an + . If no appenders + can be found, then a is returned. + + + + + + Gets the logger name. + + + The name of the logger. + + + + The name of this logger + + + + + + Gets the where this + Logger instance is attached to. + + + The that this logger belongs to. + + + + Gets the where this + Logger instance is attached to. + + + + + + Construct a new Logger + + the name of the logger + + + Initializes a new instance of the class + with the specified name. + + + + + + Delegate used to handle logger creation event notifications. + + The in which the has been created. + The event args that hold the instance that has been created. + + + Delegate used to handle logger creation event notifications. + + + + + + Provides data for the event. + + + + A event is raised every time a + is created. + + + + + + The created + + + + + Constructor + + The that has been created. + + + Initializes a new instance of the event argument + class,with the specified . + + + + + + Gets the that has been created. + + + The that has been created. + + + + The that has been created. + + + + + + Hierarchical organization of loggers + + + + The casual user should not have to deal with this class + directly. + + + This class is specialized in retrieving loggers by name and + also maintaining the logger hierarchy. Implements the + interface. + + + The structure of the logger hierarchy is maintained by the + method. The hierarchy is such that children + link to their parent but parents do not have any references to their + children. Moreover, loggers can be instantiated in any order, in + particular descendant before ancestor. + + + In case a descendant is created before a particular ancestor, + then it creates a provision node for the ancestor and adds itself + to the provision node. Other descendants of the same ancestor add + themselves to the previously created provision node. + + + Nicko Cadell + Gert Driesen + + + + Base implementation of + + + + Default abstract implementation of the interface. + + + Skeleton implementation of the interface. + All types can extend this type. + + + Nicko Cadell + Gert Driesen + + + + Interface implemented by logger repositories. + + + + This interface is implemented by logger repositories. e.g. + . + + + This interface is used by the + to obtain interfaces. + + + Nicko Cadell + Gert Driesen + + + + Check if the named logger exists in the repository. If so return + its reference, otherwise returns null. + + The name of the logger to lookup + The Logger object with the name specified + + + If the names logger exists it is returned, otherwise + null is returned. + + + + + + Returns all the currently defined loggers as an Array. + + All the defined loggers + + + Returns all the currently defined loggers as an Array. + + + + + + Returns a named logger instance + + The name of the logger to retrieve + The logger object with the name specified + + + Returns a named logger instance. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + + + Shutdown the repository + + + Shutting down a repository will safely close and remove + all appenders in all loggers including the root logger. + + + Some appenders need to be closed before the + application exists. Otherwise, pending logging events might be + lost. + + + The method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Reset the repositories configuration to a default state + + + + Reset all values contained in this instance to their + default state. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the through this repository. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Returns all the Appenders that are configured as an Array. + + All the Appenders + + + Returns all the Appenders that are configured as an Array. + + + + + + The name of the repository + + + The name of the repository + + + + The name of the repository. + + + + + + RendererMap accesses the object renderer map for this repository. + + + RendererMap accesses the object renderer map for this repository. + + + + RendererMap accesses the object renderer map for this repository. + + + The RendererMap holds a mapping between types and + objects. + + + + + + The plugin map for this repository. + + + The plugin map for this repository. + + + + The plugin map holds the instances + that have been attached to this repository. + + + + + + Get the level map for the Repository. + + + + Get the level map for the Repository. + + + The level map defines the mappings between + level names and objects in + this repository. + + + + + + The threshold for all events in this repository + + + The threshold for all events in this repository + + + + The threshold for all events in this repository. + + + + + + Flag indicates if this repository has been configured. + + + Flag indicates if this repository has been configured. + + + + Flag indicates if this repository has been configured. + + + + + + Collection of internal messages captured during the most + recent configuration process. + + + + + Event to notify that the repository has been shutdown. + + + Event to notify that the repository has been shutdown. + + + + Event raised when the repository has been shutdown. + + + + + + Event to notify that the repository has had its configuration reset. + + + Event to notify that the repository has had its configuration reset. + + + + Event raised when the repository's configuration has been + reset to default. + + + + + + Event to notify that the repository has had its configuration changed. + + + Event to notify that the repository has had its configuration changed. + + + + Event raised when the repository's configuration has been changed. + + + + + + Repository specific properties + + + Repository specific properties + + + + These properties can be specified on a repository specific basis. + + + + + + Default Constructor + + + + Initializes the repository with default (empty) properties. + + + + + + Construct the repository using specific properties + + the properties to set for this repository + + + Initializes the repository with specified properties. + + + + + + Test if logger exists + + The name of the logger to lookup + The Logger object with the name specified + + + Check if the named logger exists in the repository. If so return + its reference, otherwise returns null. + + + + + + Returns all the currently defined loggers in the repository + + All the defined loggers + + + Returns all the currently defined loggers in the repository as an Array. + + + + + + Return a new logger instance + + The name of the logger to retrieve + The logger object with the name specified + + + Return a new logger instance. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + + + + Shutdown the repository + + + + Shutdown the repository. Can be overridden in a subclass. + This base class implementation notifies the + listeners and all attached plugins of the shutdown event. + + + + + + Reset the repositories configuration to a default state + + + + Reset all values contained in this instance to their + default state. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the logEvent through this repository. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Returns all the Appenders that are configured as an Array. + + All the Appenders + + + Returns all the Appenders that are configured as an Array. + + + + + + The fully qualified type of the LoggerRepositorySkeleton class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Adds an object renderer for a specific class. + + The type that will be rendered by the renderer supplied. + The object renderer used to render the object. + + + Adds an object renderer for a specific class. + + + + + + Notify the registered listeners that the repository is shutting down + + Empty EventArgs + + + Notify any listeners that this repository is shutting down. + + + + + + Notify the registered listeners that the repository has had its configuration reset + + Empty EventArgs + + + Notify any listeners that this repository's configuration has been reset. + + + + + + Notify the registered listeners that the repository has had its configuration changed + + Empty EventArgs + + + Notify any listeners that this repository's configuration has changed. + + + + + + Raise a configuration changed event on this repository + + EventArgs.Empty + + + Applications that programmatically change the configuration of the repository should + raise this event notification to notify listeners. + + + + + + Flushes all configured Appenders that implement . + + The maximum time in milliseconds to wait for logging events from asycnhronous appenders to be flushed, + or to wait indefinitely. + True if all logging events were flushed successfully, else false. + + + + The name of the repository + + + The string name of the repository + + + + The name of this repository. The name is + used to store and lookup the repositories + stored by the . + + + + + + The threshold for all events in this repository + + + The threshold for all events in this repository + + + + The threshold for all events in this repository + + + + + + RendererMap accesses the object renderer map for this repository. + + + RendererMap accesses the object renderer map for this repository. + + + + RendererMap accesses the object renderer map for this repository. + + + The RendererMap holds a mapping between types and + objects. + + + + + + The plugin map for this repository. + + + The plugin map for this repository. + + + + The plugin map holds the instances + that have been attached to this repository. + + + + + + Get the level map for the Repository. + + + + Get the level map for the Repository. + + + The level map defines the mappings between + level names and objects in + this repository. + + + + + + Flag indicates if this repository has been configured. + + + Flag indicates if this repository has been configured. + + + + Flag indicates if this repository has been configured. + + + + + + Contains a list of internal messages captures during the + last configuration. + + + + + Event to notify that the repository has been shutdown. + + + Event to notify that the repository has been shutdown. + + + + Event raised when the repository has been shutdown. + + + + + + Event to notify that the repository has had its configuration reset. + + + Event to notify that the repository has had its configuration reset. + + + + Event raised when the repository's configuration has been + reset to default. + + + + + + Event to notify that the repository has had its configuration changed. + + + Event to notify that the repository has had its configuration changed. + + + + Event raised when the repository's configuration has been changed. + + + + + + Repository specific properties + + + Repository specific properties + + + These properties can be specified on a repository specific basis + + + + + Basic Configurator interface for repositories + + + + Interface used by basic configurator to configure a + with a default . + + + A should implement this interface to support + configuration by the . + + + Nicko Cadell + Gert Driesen + + + + Initialize the repository using the specified appender + + the appender to use to log all logging events + + + Configure the repository to route all logging events to the + specified appender. + + + + + + Initialize the repository using the specified appenders + + the appenders to use to log all logging events + + + Configure the repository to route all logging events to the + specified appenders. + + + + + + Configure repository using XML + + + + Interface used by Xml configurator to configure a . + + + A should implement this interface to support + configuration by the . + + + Nicko Cadell + Gert Driesen + + + + Initialize the repository using the specified config + + the element containing the root of the config + + + The schema for the XML configuration data is defined by + the implementation. + + + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Construct with properties + + The properties to pass to this repository. + + + Initializes a new instance of the class. + + + + + + Construct with a logger factory + + The factory to use to create new logger instances. + + + Initializes a new instance of the class with + the specified . + + + + + + Construct with properties and a logger factory + + The properties to pass to this repository. + The factory to use to create new logger instances. + + + Initializes a new instance of the class with + the specified . + + + + + + Test if a logger exists + + The name of the logger to lookup + The Logger object with the name specified + + + Check if the named logger exists in the hierarchy. If so return + its reference, otherwise returns null. + + + + + + Returns all the currently defined loggers in the hierarchy as an Array + + All the defined loggers + + + Returns all the currently defined loggers in the hierarchy as an Array. + The root logger is not included in the returned + enumeration. + + + + + + Return a new logger instance named as the first parameter using + the default factory. + + + + Return a new logger instance named as the first parameter using + the default factory. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + The name of the logger to retrieve + The logger object with the name specified + + + + Shutting down a hierarchy will safely close and remove + all appenders in all loggers including the root logger. + + + + Shutting down a hierarchy will safely close and remove + all appenders in all loggers including the root logger. + + + Some appenders need to be closed before the + application exists. Otherwise, pending logging events might be + lost. + + + The Shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Reset all values contained in this hierarchy instance to their default. + + + + Reset all values contained in this hierarchy instance to their + default. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the logEvent through this hierarchy. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Returns all the Appenders that are currently configured + + An array containing all the currently configured appenders + + + Returns all the instances that are currently configured. + All the loggers are searched for appenders. The appenders may also be containers + for appenders and these are also searched for additional loggers. + + + The list returned is unordered but does not contain duplicates. + + + + + + Collect the appenders from an . + The appender may also be a container. + + + + + + + Collect the appenders from an container + + + + + + + Initialize the log4net system using the specified appender + + the appender to use to log all logging events + + + + Initialize the log4net system using the specified appenders + + the appenders to use to log all logging events + + + + Initialize the log4net system using the specified appenders + + the appenders to use to log all logging events + + + This method provides the same functionality as the + method implemented + on this object, but it is protected and therefore can be called by subclasses. + + + + + + Initialize the log4net system using the specified config + + the element containing the root of the config + + + + Initialize the log4net system using the specified config + + the element containing the root of the config + + + This method provides the same functionality as the + method implemented + on this object, but it is protected and therefore can be called by subclasses. + + + + + + Test if this hierarchy is disabled for the specified . + + The level to check against. + + true if the repository is disabled for the level argument, false otherwise. + + + + If this hierarchy has not been configured then this method will + always return true. + + + This method will return true if this repository is + disabled for level object passed as parameter and + false otherwise. + + + See also the property. + + + + + + Clear all logger definitions from the internal hashtable + + + + This call will clear all logger definitions from the internal + hashtable. Invoking this method will irrevocably mess up the + logger hierarchy. + + + You should really know what you are doing before + invoking this method. + + + + + + Return a new logger instance named as the first parameter using + . + + The name of the logger to retrieve + The factory that will make the new logger instance + The logger object with the name specified + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated by the + parameter and linked with its existing + ancestors as well as children. + + + + + + Sends a logger creation event to all registered listeners + + The newly created logger + + Raises the logger creation event. + + + + + Updates all the parents of the specified logger + + The logger to update the parents for + + + This method loops through all the potential parents of + . There 3 possible cases: + + + + No entry for the potential parent of exists + + We create a ProvisionNode for this potential + parent and insert in that provision node. + + + + The entry is of type Logger for the potential parent. + + The entry is 's nearest existing parent. We + update 's parent field with this entry. We also break from + he loop because updating our parent's parent is our parent's + responsibility. + + + + The entry is of type ProvisionNode for this potential parent. + + We add to the list of children for this + potential parent. + + + + + + + + Replace a with a in the hierarchy. + + + + + + We update the links for all the children that placed themselves + in the provision node 'pn'. The second argument 'log' is a + reference for the newly created Logger, parent of all the + children in 'pn'. + + + We loop on all the children 'c' in 'pn'. + + + If the child 'c' has been already linked to a child of + 'log' then there is no need to update 'c'. + + + Otherwise, we set log's parent field to c's parent and set + c's parent field to log. + + + + + + Define or redefine a Level using the values in the argument + + the level values + + + Define or redefine a Level using the values in the argument + + + Supports setting levels via the configuration file. + + + + + + Set a Property using the values in the argument + + the property value + + + Set a Property using the values in the argument. + + + Supports setting property values via the configuration file. + + + + + + The fully qualified type of the Hierarchy class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Event used to notify that a logger has been created. + + + + Event raised when a logger is created. + + + + + + Has no appender warning been emitted + + + + Flag to indicate if we have already issued a warning + about not having an appender warning. + + + + + + Get the root of this hierarchy + + + + Get the root of this hierarchy. + + + + + + Gets or sets the default instance. + + The default + + + The logger factory is used to create logger instances. + + + + + + A class to hold the value, name and display name for a level + + + + A class to hold the value, name and display name for a level + + + + + + Override Object.ToString to return sensible debug info + + string info about this object + + + + Value of the level + + + + If the value is not set (defaults to -1) the value will be looked + up for the current level with the same name. + + + + + + Name of the level + + + The name of the level + + + + The name of the level. + + + + + + Display name for the level + + + The display name of the level + + + + The display name of the level. + + + + + + Used internally to accelerate hash table searches. + + + + Internal class used to improve performance of + string keyed hashtables. + + + The hashcode of the string is cached for reuse. + The string is stored as an interned value. + When comparing two objects for equality + the reference equality of the interned strings is compared. + + + Nicko Cadell + Gert Driesen + + + + Construct key with string name + + + + Initializes a new instance of the class + with the specified name. + + + Stores the hashcode of the string and interns + the string key to optimize comparisons. + + + The Compact Framework 1.0 the + method does not work. On the Compact Framework + the string keys are not interned nor are they + compared by reference. + + + The name of the logger. + + + + Returns a hash code for the current instance. + + A hash code for the current instance. + + + Returns the cached hashcode. + + + + + + Determines whether two instances + are equal. + + The to compare with the current . + + true if the specified is equal to the current ; otherwise, false. + + + + Compares the references of the interned strings. + + + + + + Provision nodes are used where no logger instance has been specified + + + + instances are used in the + when there is no specified + for that node. + + + A provision node holds a list of child loggers on behalf of + a logger that does not exist. + + + Nicko Cadell + Gert Driesen + + + + Create a new provision node with child node + + A child logger to add to this node. + + + Initializes a new instance of the class + with the specified child logger. + + + + + + The sits at the root of the logger hierarchy tree. + + + + The is a regular except + that it provides several guarantees. + + + First, it cannot be assigned a null + level. Second, since the root logger cannot have a parent, the + property always returns the value of the + level field without walking the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Construct a + + The level to assign to the root logger. + + + Initializes a new instance of the class with + the specified logging level. + + + The root logger names itself as "root". However, the root + logger cannot be retrieved by name. + + + + + + The fully qualified type of the RootLogger class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the assigned level value without walking the logger hierarchy. + + The assigned level value without walking the logger hierarchy. + + + Because the root logger cannot have a parent and its level + must not be null this property just returns the + value of . + + + + + + Gets or sets the assigned for the root logger. + + + The of the root logger. + + + + Setting the level of the root logger to a null reference + may have catastrophic results. We prevent this here. + + + + + + Initializes the log4net environment using an XML DOM. + + + + Configures a using an XML DOM. + + + Nicko Cadell + Gert Driesen + + + + Construct the configurator for a hierarchy + + The hierarchy to build. + + + Initializes a new instance of the class + with the specified . + + + + + + Configure the hierarchy by parsing a DOM tree of XML elements. + + The root element to parse. + + + Configure the hierarchy by parsing a DOM tree of XML elements. + + + + + + Parse appenders by IDREF. + + The appender ref element. + The instance of the appender that the ref refers to. + + + Parse an XML element that represents an appender and return + the appender. + + + + + + Parses an appender element. + + The appender element. + The appender instance or null when parsing failed. + + + Parse an XML element that represents an appender and return + the appender instance. + + + + + + Parses a logger element. + + The logger element. + + + Parse an XML element that represents a logger. + + + + + + Parses the root logger element. + + The root element. + + + Parse an XML element that represents the root logger. + + + + + + Parses the children of a logger element. + + The category element. + The logger instance. + Flag to indicate if the logger is the root logger. + + + Parse the child elements of a <logger> element. + + + + + + Parses an object renderer. + + The renderer element. + + + Parse an XML element that represents a renderer. + + + + + + Parses a level element. + + The level element. + The logger object to set the level on. + Flag to indicate if the logger is the root logger. + + + Parse an XML element that represents a level. + + + + + + Sets a parameter on an object. + + The parameter element. + The object to set the parameter on. + + The parameter name must correspond to a writable property + on the object. The value of the parameter is a string, + therefore this function will attempt to set a string + property first. If unable to set a string property it + will inspect the property and its argument type. It will + attempt to call a static method called Parse on the + type of the property. This method will take a single + string argument and return a value that can be used to + set the property. + + + + + Test if an element has no attributes or child elements + + the element to inspect + true if the element has any attributes or child elements, false otherwise + + + + Test if a is constructible with Activator.CreateInstance. + + the type to inspect + true if the type is creatable using a default constructor, false otherwise + + + + Look for a method on the that matches the supplied + + the type that has the method + the name of the method + the method info found + + + The method must be a public instance method on the . + The method must be named or "Add" followed by . + The method must take a single parameter. + + + + + + Converts a string value to a target type. + + The type of object to convert the string to. + The string value to use as the value of the object. + + + An object of type with value or + null when the conversion could not be performed. + + + + + + Creates an object as specified in XML. + + The XML element that contains the definition of the object. + The object type to use if not explicitly specified. + The type that the returned object must be or must inherit from. + The object or null + + + Parse an XML element and create an object instance based on the configuration + data. + + + The type of the instance may be specified in the XML. If not + specified then the is used + as the type. However the type is specified it must support the + type. + + + + + + key: appenderName, value: appender. + + + + + The Hierarchy being configured. + + + + + The fully qualified type of the XmlHierarchyConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + + + + + + + + + + + + + + + + + Delegate used to handle logger repository shutdown event notifications + + The that is shutting down. + Empty event args + + + Delegate used to handle logger repository shutdown event notifications. + + + + + + Delegate used to handle logger repository configuration reset event notifications + + The that has had its configuration reset. + Empty event args + + + Delegate used to handle logger repository configuration reset event notifications. + + + + + + Delegate used to handle event notifications for logger repository configuration changes. + + The that has had its configuration changed. + Empty event arguments. + + + Delegate used to handle event notifications for logger repository configuration changes. + + + + + + Write the name of the current AppDomain to the output + + + + Write the name of the current AppDomain to the output writer + + + Nicko Cadell + + + + Write the name of the current AppDomain to the output + + the writer to write to + null, state is not set + + + Writes name of the current AppDomain to the output . + + + + + + AppSetting pattern converter + + + + This pattern converter reads appSettings from the application configuration file. + + + If the is specified then that will be used to + lookup a single appSettings value. If no is specified + then all appSettings will be dumped as a list of key value pairs. + + + A typical use is to specify a base directory for log files, e.g. + + + + + ... + + + ]]> + + + + + + + Write the property value to the output + + that will receive the formatted result. + null, state is not set + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + Write the current date to the output + + + + Date pattern converter, uses a to format + the current date and time to the writer as a string. + + + The value of the determines + the formatting of the date. The following values are allowed: + + + Option value + Output + + + ISO8601 + + Uses the formatter. + Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. + + + + DATE + + Uses the formatter. + Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". + + + + ABSOLUTE + + Uses the formatter. + Formats using the "HH:mm:ss,fff" for example, "15:49:37,459". + + + + other + + Any other pattern string uses the formatter. + This formatter passes the pattern string to the + method. + For details on valid patterns see + DateTimeFormatInfo Class. + + + + + + The date and time is in the local time zone and is rendered in that zone. + To output the time in Universal time see . + + + Nicko Cadell + + + + The used to render the date to a string + + + + The used to render the date to a string + + + + + + Initialize the converter options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the current date to the output + + that will receive the formatted result. + null, state is not set + + + Pass the current date and time to the + for it to render it to the writer. + + + The date and time passed is in the local time zone. + + + + + + The fully qualified type of the DatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write an folder path to the output + + + + Write an special path environment folder path to the output writer. + The value of the determines + the name of the variable to output. + should be a value in the enumeration. + + + Ron Grabowski + + + + Write an special path environment folder path to the output + + the writer to write to + null, state is not set + + + Writes the special path environment folder path to the output . + The name of the special path environment folder path to output must be set + using the + property. + + + + + + The fully qualified type of the EnvironmentFolderPathPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write an environment variable to the output + + + + Write an environment variable to the output writer. + The value of the determines + the name of the variable to output. + + + Nicko Cadell + + + + Write an environment variable to the output + + the writer to write to + null, state is not set + + + Writes the environment variable to the output . + The name of the environment variable to output must be set + using the + property. + + + + + + The fully qualified type of the EnvironmentPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the current thread identity to the output + + + + Write the current thread identity to the output writer + + + Nicko Cadell + + + + Write the current thread identity to the output + + the writer to write to + null, state is not set + + + Writes the current thread identity to the output . + + + + + + The fully qualified type of the IdentityPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Pattern converter for literal string instances in the pattern + + + + Writes the literal string value specified in the + property to + the output. + + + Nicko Cadell + + + + Set the next converter in the chain + + The next pattern converter in the chain + The next pattern converter + + + Special case the building of the pattern converter chain + for instances. Two adjacent + literals in the pattern can be represented by a single combined + pattern converter. This implementation detects when a + is added to the chain + after this converter and combines its value with this converter's + literal value. + + + + + + Write the literal to the output + + the writer to write to + null, not set + + + Override the formatting behavior to ignore the FormattingInfo + because we have a literal instead. + + + Writes the value of + to the output . + + + + + + Convert this pattern into the rendered message + + that will receive the formatted result. + null, not set + + + This method is not used. + + + + + + Writes a newline to the output + + + + Writes the system dependent line terminator to the output. + This behavior can be overridden by setting the : + + + + Option Value + Output + + + DOS + DOS or Windows line terminator "\r\n" + + + UNIX + UNIX line terminator "\n" + + + + Nicko Cadell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the current process ID to the output + + + + Write the current process ID to the output writer + + + Nicko Cadell + + + + Write the current process ID to the output + + the writer to write to + null, state is not set + + + Write the current process ID to the output . + + + + + + The fully qualified type of the ProcessIdPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Property pattern converter + + + + This pattern converter reads the thread and global properties. + The thread properties take priority over global properties. + See for details of the + thread properties. See for + details of the global properties. + + + If the is specified then that will be used to + lookup a single property. If no is specified + then all properties will be dumped as a list of key value pairs. + + + Nicko Cadell + + + + Write the property value to the output + + that will receive the formatted result. + null, state is not set + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + A Pattern converter that generates a string of random characters + + + + The converter generates a string of random characters. By default + the string is length 4. This can be changed by setting the + to the string value of the length required. + + + The random characters in the string are limited to uppercase letters + and numbers only. + + + The random number generator used by this class is not cryptographically secure. + + + Nicko Cadell + + + + Shared random number generator + + + + + Length of random string to generate. Default length 4. + + + + + Initialize the converter options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write a randoim string to the output + + the writer to write to + null, state is not set + + + Write a randoim string to the output . + + + + + + The fully qualified type of the RandomStringPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the current threads username to the output + + + + Write the current threads username to the output writer + + + Nicko Cadell + + + + Write the current threads username to the output + + the writer to write to + null, state is not set + + + Write the current threads username to the output . + + + + + + The fully qualified type of the UserNamePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the UTC date time to the output + + + + Date pattern converter, uses a to format + the current date and time in Universal time. + + + See the for details on the date pattern syntax. + + + + Nicko Cadell + + + + Write the current date and time to the output + + that will receive the formatted result. + null, state is not set + + + Pass the current date and time to the + for it to render it to the writer. + + + The date is in Universal time when it is rendered. + + + + + + + The fully qualified type of the UtcDatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Type converter for Boolean. + + + + Supports conversion from string to bool type. + + + + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Convert the source object to the type supported by this object + + the object to convert + the converted object + + + Uses the method to convert the + argument to a . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Exception base type for conversion errors. + + + + This type extends . It + does not add any new functionality but does differentiate the + type of exception being thrown. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + A message to include with the exception. + + + Initializes a new instance of the class + with the specified message. + + + + + + Constructor + + A message to include with the exception. + A nested exception to include. + + + Initializes a new instance of the class + with the specified message and inner exception. + + + + + + Serialization constructor + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Creates a new instance of the class. + + The conversion destination type. + The value to convert. + An instance of the . + + + Creates a new instance of the class. + + + + + + Creates a new instance of the class. + + The conversion destination type. + The value to convert. + A nested exception to include. + An instance of the . + + + Creates a new instance of the class. + + + + + + Register of type converters for specific types. + + + + Maintains a registry of type converters used to convert between + types. + + + Use the and + methods to register new converters. + The and methods + lookup appropriate converters to use. + + + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + Initializes a new instance of the class. + + + + + Static constructor. + + + + This constructor defines the intrinsic type converters. + + + + + + Adds a converter for a specific type. + + The type being converted to. + The type converter to use to convert to the destination type. + + + Adds a converter instance for a specific type. + + + + + + Adds a converter for a specific type. + + The type being converted to. + The type of the type converter to use to convert to the destination type. + + + Adds a converter for a specific type. + + + + + + Gets the type converter to use to convert values to the destination type. + + The type being converted from. + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + Gets the type converter to use to convert values to the destination type. + + + + + + Gets the type converter to use to convert values to the destination type. + + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + Gets the type converter to use to convert values to the destination type. + + + + + + Lookups the type converter to use as specified by the attributes on the + destination type. + + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + + Creates the instance of the type converter. + + The type of the type converter. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + The type specified for the type converter must implement + the or interfaces + and must have a public default (no argument) constructor. + + + + + + The fully qualified type of the ConverterRegistry class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Mapping from to type converter. + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to an encoding + the encoding + + + Uses the method to + convert the argument to an . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Interface supported by type converters + + + + This interface supports conversion from a single type to arbitrary types. + See . + + + Nicko Cadell + + + + Returns whether this converter can convert the object to the specified type + + A Type that represents the type you want to convert to + true if the conversion is possible + + + Test if the type supported by this converter can be converted to the + . + + + + + + Converts the given value object to the specified type, using the arguments + + the object to convert + The Type to convert the value parameter to + the converted object + + + Converts the (which must be of the type supported + by this converter) to the specified.. + + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to an IPAddress + the IPAddress + + + Uses the method to convert the + argument to an . + If that fails then the string is resolved as a DNS hostname. + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Valid characters in an IPv4 or IPv6 address string. (Does not support subnets) + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + The string is used as the + of the . + + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a PatternLayout + the PatternLayout + + + Creates and returns a new using + the as the + . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Convert between string and + + + + Supports conversion from string to type, + and from a type to a string. + + + The string is used as the + of the . + + + + + + Nicko Cadell + + + + Can the target type be converted to the type supported by this object + + A that represents the type you want to convert to + true if the conversion is possible + + + Returns true if the is + assignable from a type. + + + + + + Converts the given value object to the specified type, using the arguments + + the object to convert + The Type to convert the value parameter to + the converted object + + + Uses the method to convert the + argument to a . + + + + The object cannot be converted to the + . To check for this condition use the + method. + + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a PatternString + the PatternString + + + Creates and returns a new using + the as the + . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a Type + the Type + + + Uses the method to convert the + argument to a . + Additional effort is made to locate partially specified types + by searching the loaded assemblies. + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Attribute used to associate a type converter + + + + Class and Interface level attribute that specifies a type converter + to use with the associated type. + + + To associate a type converter with a target type apply a + TypeConverterAttribute to the target type. Specify the + type of the type converter on the attribute. + + + Nicko Cadell + Gert Driesen + + + + The string type name of the type converter + + + + + Default constructor + + + + Default constructor + + + + + + Create a new type converter attribute for the specified type name + + The string type name of the type converter + + + The type specified must implement the + or the interfaces. + + + + + + Create a new type converter attribute for the specified type + + The type of the type converter + + + The type specified must implement the + or the interfaces. + + + + + + The string type name of the type converter + + + The string type name of the type converter + + + + The type specified must implement the + or the interfaces. + + + + + + A straightforward implementation of the interface. + + + + This is the default implementation of the + interface. Implementors of the interface + should aggregate an instance of this type. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Append on on all attached appenders. + + The event being logged. + The number of appenders called. + + + Calls the method on all + attached appenders. + + + + + + Append on on all attached appenders. + + The array of events being logged. + The number of appenders called. + + + Calls the method on all + attached appenders. + + + + + + Calls the DoAppende method on the with + the objects supplied. + + The appender + The events + + + If the supports the + interface then the will be passed + through using that interface. Otherwise the + objects in the array will be passed one at a time. + + + + + + Attaches an appender. + + The appender to add. + + + If the appender is already in the list it won't be added again. + + + + + + Gets an attached appender with the specified name. + + The name of the appender to get. + + The appender with the name specified, or null if no appender with the + specified name is found. + + + + Lookup an attached appender by name. + + + + + + Removes all attached appenders. + + + + Removes and closes all attached appenders + + + + + + Removes the specified appender from the list of attached appenders. + + The appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + List of appenders + + + + + Array of appenders, used to cache the m_appenderList + + + + + The fully qualified type of the AppenderAttachedImpl class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets all attached appenders. + + + A collection of attached appenders, or null if there + are no attached appenders. + + + + The read only collection of all currently attached appenders. + + + + + + This class aggregates several PropertiesDictionary collections together. + + + + Provides a dictionary style lookup over an ordered list of + collections. + + + Nicko Cadell + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Add a Properties Dictionary to this composite collection + + the properties to add + + + Properties dictionaries added first take precedence over dictionaries added + later. + + + + + + Flatten this composite collection into a single properties dictionary + + the flattened dictionary + + + Reduces the collection of ordered dictionaries to a single dictionary + containing the resultant values for the keys. + + + + + + Gets the value of a property + + + The value for the property with the specified key + + + + Looks up the value for the specified. + The collections are searched + in the order in which they were added to this collection. The value + returned is the value held by the first collection that contains + the specified key. + + + If none of the collections contain the specified key then + null is returned. + + + + + + Base class for Context Properties implementations + + + + This class defines a basic property get set accessor + + + Nicko Cadell + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Gets or sets the value of a property + + + + + + Wrapper class used to map converter names to converter types + + + + Pattern converter info class used during configuration by custom + PatternString and PatternLayer converters. + + + + + + default constructor + + + + + + + + + + + Gets or sets the name of the conversion pattern + + + + The name of the pattern in the format string + + + + + + Gets or sets the type of the converter + + + + The value specified must extend the + type. + + + + + + + + + + + Subclass of that maintains a count of + the number of bytes written. + + + + This writer counts the number of bytes written. + + + Nicko Cadell + Gert Driesen + + + + that does not leak exceptions + + + + does not throw exceptions when things go wrong. + Instead, it delegates error handling to its . + + + Nicko Cadell + Gert Driesen + + + + Adapter that extends and forwards all + messages to an instance of . + + + + Adapter that extends and forwards all + messages to an instance of . + + + Nicko Cadell + + + + The writer to forward messages to + + + + + Create an instance of that forwards all + messages to a . + + The to forward to + + + Create an instance of that forwards all + messages to a . + + + + + + Closes the writer and releases any system resources associated with the writer + + + + + + + + + Dispose this writer + + flag indicating if we are being disposed + + + Dispose this writer + + + + + + Flushes any buffered output + + + + Clears all buffers for the writer and causes any buffered data to be written + to the underlying device + + + + + + Writes a character to the wrapped TextWriter + + the value to write to the TextWriter + + + Writes a character to the wrapped TextWriter + + + + + + Writes a character buffer to the wrapped TextWriter + + the data buffer + the start index + the number of characters to write + + + Writes a character buffer to the wrapped TextWriter + + + + + + Writes a string to the wrapped TextWriter + + the value to write to the TextWriter + + + Writes a string to the wrapped TextWriter + + + + + + Gets or sets the underlying . + + + The underlying . + + + + Gets or sets the underlying . + + + + + + The Encoding in which the output is written + + + The + + + + The Encoding in which the output is written + + + + + + Gets an object that controls formatting + + + The format provider + + + + Gets an object that controls formatting + + + + + + Gets or sets the line terminator string used by the TextWriter + + + The line terminator to use + + + + Gets or sets the line terminator string used by the TextWriter + + + + + + Constructor + + the writer to actually write to + the error handler to report error to + + + Create a new QuietTextWriter using a writer and error handler + + + + + + Writes a character to the underlying writer + + the char to write + + + Writes a character to the underlying writer + + + + + + Writes a buffer to the underlying writer + + the buffer to write + the start index to write from + the number of characters to write + + + Writes a buffer to the underlying writer + + + + + + Writes a string to the output. + + The string data to write to the output. + + + Writes a string to the output. + + + + + + Closes the underlying output writer. + + + + Closes the underlying output writer. + + + + + + The error handler instance to pass all errors to + + + + + Flag to indicate if this writer is closed + + + + + Gets or sets the error handler that all errors are passed to. + + + The error handler that all errors are passed to. + + + + Gets or sets the error handler that all errors are passed to. + + + + + + Gets a value indicating whether this writer is closed. + + + true if this writer is closed, otherwise false. + + + + Gets a value indicating whether this writer is closed. + + + + + + Constructor + + The to actually write to. + The to report errors to. + + + Creates a new instance of the class + with the specified and . + + + + + + Writes a character to the underlying writer and counts the number of bytes written. + + the char to write + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Writes a buffer to the underlying writer and counts the number of bytes written. + + the buffer to write + the start index to write from + the number of characters to write + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Writes a string to the output and counts the number of bytes written. + + The string data to write to the output. + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Total number of bytes written. + + + + + Gets or sets the total number of bytes written. + + + The total number of bytes written. + + + + Gets or sets the total number of bytes written. + + + + + + A fixed size rolling buffer of logging events. + + + + An array backed fixed size leaky bucket. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The maximum number of logging events in the buffer. + + + Initializes a new instance of the class with + the specified maximum number of buffered logging events. + + + The argument is not a positive integer. + + + + Appends a to the buffer. + + The event to append to the buffer. + The event discarded from the buffer, if the buffer is full, otherwise null. + + + Append an event to the buffer. If the buffer still contains free space then + null is returned. If the buffer is full then an event will be dropped + to make space for the new event, the event dropped is returned. + + + + + + Get and remove the oldest event in the buffer. + + The oldest logging event in the buffer + + + Gets the oldest (first) logging event in the buffer and removes it + from the buffer. + + + + + + Pops all the logging events from the buffer into an array. + + An array of all the logging events in the buffer. + + + Get all the events in the buffer and clear the buffer. + + + + + + Clear the buffer + + + + Clear the buffer of all events. The events in the buffer are lost. + + + + + + Gets the th oldest event currently in the buffer. + + The th oldest event currently in the buffer. + + + If is outside the range 0 to the number of events + currently in the buffer, then null is returned. + + + + + + Gets the maximum size of the buffer. + + The maximum size of the buffer. + + + Gets the maximum size of the buffer + + + + + + Gets the number of logging events in the buffer. + + The number of logging events in the buffer. + + + This number is guaranteed to be in the range 0 to + (inclusive). + + + + + + An always empty . + + + + A singleton implementation of the + interface that always represents an empty collection. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Copies the elements of the to an + , starting at a particular Array index. + + The one-dimensional + that is the destination of the elements copied from + . The Array must have zero-based + indexing. + The zero-based index in array at which + copying begins. + + + As the collection is empty no values are copied into the array. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + The singleton instance of the empty collection. + + + + + Gets the singleton instance of the empty collection. + + The singleton instance of the empty collection. + + + Gets the singleton instance of the empty collection. + + + + + + Gets a value indicating if access to the is synchronized (thread-safe). + + + true if access to the is synchronized (thread-safe); otherwise, false. + + + + For the this property is always true. + + + + + + Gets the number of elements contained in the . + + + The number of elements contained in the . + + + + As the collection is empty the is always 0. + + + + + + Gets an object that can be used to synchronize access to the . + + + An object that can be used to synchronize access to the . + + + + As the collection is empty and thread safe and synchronized this instance is also + the object. + + + + + + An always empty . + + + + A singleton implementation of the + interface that always represents an empty collection. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Copies the elements of the to an + , starting at a particular Array index. + + The one-dimensional + that is the destination of the elements copied from + . The Array must have zero-based + indexing. + The zero-based index in array at which + copying begins. + + + As the collection is empty no values are copied into the array. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + Adds an element with the provided key and value to the + . + + The to use as the key of the element to add. + The to use as the value of the element to add. + + + As the collection is empty no new values can be added. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + Removes all elements from the . + + + + As the collection is empty no values can be removed. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + Determines whether the contains an element + with the specified key. + + The key to locate in the . + false + + + As the collection is empty the method always returns false. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + Removes the element with the specified key from the . + + The key of the element to remove. + + + As the collection is empty no values can be removed. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + The singleton instance of the empty dictionary. + + + + + Gets the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets a value indicating if access to the is synchronized (thread-safe). + + + true if access to the is synchronized (thread-safe); otherwise, false. + + + + For the this property is always true. + + + + + + Gets the number of elements contained in the + + + The number of elements contained in the . + + + + As the collection is empty the is always 0. + + + + + + Gets an object that can be used to synchronize access to the . + + + An object that can be used to synchronize access to the . + + + + As the collection is empty and thread safe and synchronized this instance is also + the object. + + + + + + Gets a value indicating whether the has a fixed size. + + true + + + As the collection is empty always returns true. + + + + + + Gets a value indicating whether the is read-only. + + true + + + As the collection is empty always returns true. + + + + + + Gets an containing the keys of the . + + An containing the keys of the . + + + As the collection is empty a is returned. + + + + + + Gets an containing the values of the . + + An containing the values of the . + + + As the collection is empty a is returned. + + + + + + Gets or sets the element with the specified key. + + The key of the element to get or set. + null + + + As the collection is empty no values can be looked up or stored. + If the index getter is called then null is returned. + A is thrown if the setter is called. + + + This dictionary is always empty and cannot be modified. + + + + Contain the information obtained when parsing formatting modifiers + in conversion modifiers. + + + + Holds the formatting information extracted from the format string by + the . This is used by the + objects when rendering the output. + + + Nicko Cadell + Gert Driesen + + + + Defaut Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + + + Initializes a new instance of the class + with the specified parameters. + + + + + + Gets or sets the minimum value. + + + The minimum value. + + + + Gets or sets the minimum value. + + + + + + Gets or sets the maximum value. + + + The maximum value. + + + + Gets or sets the maximum value. + + + + + + Gets or sets a flag indicating whether left align is enabled + or not. + + + A flag indicating whether left align is enabled or not. + + + + Gets or sets a flag indicating whether left align is enabled or not. + + + + + + Implementation of Properties collection for the + + + + This class implements a properties collection that is thread safe and supports both + storing properties and capturing a read only copy of the current propertied. + + + This class is optimized to the scenario where the properties are read frequently + and are modified infrequently. + + + Nicko Cadell + + + + The read only copy of the properties. + + + + This variable is declared volatile to prevent the compiler and JIT from + reordering reads and writes of this thread performed on different threads. + + + + + + Lock object used to synchronize updates within this instance + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Remove a property from the global context + + the key for the entry to remove + + + Removing an entry from the global context properties is relatively expensive compared + with reading a value. + + + + + + Clear the global context properties + + + + + Get a readonly immutable copy of the properties + + the current global context properties + + + This implementation is fast because the GlobalContextProperties class + stores a readonly copy of the properties. + + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Reading the value for a key is faster than setting the value. + When the value is written a new read only copy of + the properties is created. + + + + + + The static class ILogExtensions contains a set of widely used + methods that ease the interaction with the ILog interface implementations. + + + + This class contains methods for logging at different levels and checks the + properties for determining if those logging levels are enabled in the current + configuration. + + + Simple example of logging messages + + using log4net.Util; + + ILog log = LogManager.GetLogger("application-log"); + + log.InfoExt("Application Start"); + log.DebugExt("This is a debug message"); + + + + + + The fully qualified type of the Logger class. + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is WARN + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is WARN enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is WARN + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is WARN enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is ERROR + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is ERROR enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is ERROR + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is ERROR enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is FATAL + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is FATAL enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is FATAL + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is FATAL enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Manages a mapping from levels to + + + + Manages an ordered mapping from instances + to subclasses. + + + Nicko Cadell + + + + Default constructor + + + + Initialise a new instance of . + + + + + + Add a to this mapping + + the entry to add + + + If a has previously been added + for the same then that entry will be + overwritten. + + + + + + Lookup the mapping for the specified level + + the level to lookup + the for the level or null if no mapping found + + + Lookup the value for the specified level. Finds the nearest + mapping value for the level that is equal to or less than the + specified. + + + If no mapping could be found then null is returned. + + + + + + Initialize options + + + + Caches the sorted list of in an array + + + + + + Implementation of Properties collection for the + + + + Class implements a collection of properties that is specific to each thread. + The class is not synchronized as each thread has its own . + + + This class stores its properties in a slot on the named + log4net.Util.LogicalThreadContextProperties. + + + For .NET Standard 1.3 this class uses + System.Threading.AsyncLocal rather than . + + + The requires a link time + for the + . + If the calling code does not have this permission then this context will be disabled. + It will not store any property values set on it. + + + Nicko Cadell + + + + Flag used to disable this context if we don't have permission to access the CallContext. + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Remove a property + + the key for the entry to remove + + + Remove the value for the specified from the context. + + + + + + Clear all the context properties + + + + Clear all the context properties + + + + + + Get the PropertiesDictionary stored in the LocalDataStoreSlot for this thread. + + create the dictionary if it does not exist, otherwise return null if is does not exist + the properties for this thread + + + The collection returned is only to be used on the calling thread. If the + caller needs to share the collection between different threads then the + caller must clone the collection before doings so. + + + + + + Gets the call context get data. + + The peroperties dictionary stored in the call context + + The method has a + security link demand, therfore we must put the method call in a seperate method + that we can wrap in an exception handler. + + + + + Sets the call context data. + + The properties. + + The method has a + security link demand, therfore we must put the method call in a seperate method + that we can wrap in an exception handler. + + + + + The fully qualified type of the LogicalThreadContextProperties class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Get or set the property value for the specified. + + + + + + Delegate type used for LogicalThreadContextStack's callbacks. + + + + + Implementation of Stack for the + + + + Implementation of Stack for the + + + Nicko Cadell + + + + The stack store. + + + + + The name of this within the + . + + + + + The callback used to let the register a + new instance of a . + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Clears all the contextual information held in this stack. + + + + Clears all the contextual information held in this stack. + Only call this if you think that this thread is being reused after + a previous call execution which may not have completed correctly. + You do not need to use this method if you always guarantee to call + the method of the + returned from even in exceptional circumstances, + for example by using the using(log4net.LogicalThreadContext.Stacks["NDC"].Push("Stack_Message")) + syntax. + + + + + + Removes the top context from this stack. + + The message in the context that was removed from the top of this stack. + + + Remove the top context from this stack, and return + it to the caller. If this stack is empty then an + empty string (not ) is returned. + + + + + + Pushes a new context message into this stack. + + The new context message. + + An that can be used to clean up the context stack. + + + + Pushes a new context onto this stack. An + is returned that can be used to clean up this stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.LogicalThreadContext.Stacks["NDC"].Push("Stack_Message")) + { + log.Warn("This should have an ThreadContext Stack message"); + } + + + + + + Gets the current context information for this stack. + + The current context information. + + + + Gets the current context information for this stack. + + Gets the current context information + + + Gets the current context information for this stack. + + + + + + Get a portable version of this object + + the portable instance of this object + + + Get a cross thread portable version of this object + + + + + + The number of messages in the stack + + + The current number of messages in the stack + + + + The current number of messages in the stack. That is + the number of times has been called + minus the number of times has been called. + + + + + + Gets and sets the internal stack used by this + + The internal storage stack + + + This property is provided only to support backward compatability + of the . Tytpically the internal stack should not + be modified. + + + + + + Inner class used to represent a single context frame in the stack. + + + + Inner class used to represent a single context frame in the stack. + + + + + + Constructor + + The message for this context. + The parent context in the chain. + + + Initializes a new instance of the class + with the specified message and parent context. + + + + + + Get the message. + + The message. + + + Get the message. + + + + + + Gets the full text of the context down to the root level. + + + The full text of the context down to the root level. + + + + Gets the full text of the context down to the root level. + + + + + + Struct returned from the method. + + + + This struct implements the and is designed to be used + with the pattern to remove the stack frame at the end of the scope. + + + + + + The depth to trim the stack to when this instance is disposed + + + + + The outer LogicalThreadContextStack. + + + + + Constructor + + The internal stack used by the ThreadContextStack. + The depth to return the stack to when this object is disposed. + + + Initializes a new instance of the class with + the specified stack and return depth. + + + + + + Returns the stack to the correct depth. + + + + Returns the stack to the correct depth. + + + + + + Implementation of Stacks collection for the + + + + Implementation of Stacks collection for the + + + Nicko Cadell + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + The fully qualified type of the ThreadContextStacks class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the named thread context stack + + + The named stack + + + + Gets the named thread context stack + + + + + + + + + + + + + Outputs log statements from within the log4net assembly. + + + + Log4net components cannot make log4net logging calls. However, it is + sometimes useful for the user to learn about what log4net is + doing. + + + All log4net internal debug calls go to the standard output stream + whereas internal error messages are sent to the standard error output + stream. + + + Nicko Cadell + Gert Driesen + + + + Formats Prefix, Source, and Message in the same format as the value + sent to Console.Out and Trace.Write. + + + + + + Initializes a new instance of the class. + + + + + + + + + Static constructor that initializes logging by reading + settings from the application configuration file. + + + + The log4net.Internal.Debug application setting + controls internal debugging. This setting should be set + to true to enable debugging. + + + The log4net.Internal.Quiet application setting + suppresses all internal logging including error messages. + This setting should be set to true to enable message + suppression. + + + + + + Raises the LogReceived event when an internal messages is received. + + + + + + + + + Writes log4net internal debug messages to the + standard output stream. + + + The message to log. + + + All internal debug messages are prepended with + the string "log4net: ". + + + + + + Writes log4net internal debug messages to the + standard output stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal debug messages are prepended with + the string "log4net: ". + + + + + + Writes log4net internal warning messages to the + standard error stream. + + The Type that generated this message. + The message to log. + + + All internal warning messages are prepended with + the string "log4net:WARN ". + + + + + + Writes log4net internal warning messages to the + standard error stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal warning messages are prepended with + the string "log4net:WARN ". + + + + + + Writes log4net internal error messages to the + standard error stream. + + The Type that generated this message. + The message to log. + + + All internal error messages are prepended with + the string "log4net:ERROR ". + + + + + + Writes log4net internal error messages to the + standard error stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal debug messages are prepended with + the string "log4net:ERROR ". + + + + + + Writes output to the standard output stream. + + The message to log. + + + Writes to both Console.Out and System.Diagnostics.Trace. + Note that the System.Diagnostics.Trace is not supported + on the Compact Framework. + + + If the AppDomain is not configured with a config file then + the call to System.Diagnostics.Trace may fail. This is only + an issue if you are programmatically creating your own AppDomains. + + + + + + Writes output to the standard error stream. + + The message to log. + + + Writes to both Console.Error and System.Diagnostics.Trace. + Note that the System.Diagnostics.Trace is not supported + on the Compact Framework. + + + If the AppDomain is not configured with a config file then + the call to System.Diagnostics.Trace may fail. This is only + an issue if you are programmatically creating your own AppDomains. + + + + + + Default debug level + + + + + In quietMode not even errors generate any output. + + + + + The event raised when an internal message has been received. + + + + + The Type that generated the internal message. + + + + + The DateTime stamp of when the internal message was received. + + + + + The UTC DateTime stamp of when the internal message was received. + + + + + A string indicating the severity of the internal message. + + + "log4net: ", + "log4net:ERROR ", + "log4net:WARN " + + + + + The internal log message. + + + + + The Exception related to the message. + + + Optional. Will be null if no Exception was passed. + + + + + Gets or sets a value indicating whether log4net internal logging + is enabled or disabled. + + + true if log4net internal logging is enabled, otherwise + false. + + + + When set to true, internal debug level logging will be + displayed. + + + This value can be set by setting the application setting + log4net.Internal.Debug in the application configuration + file. + + + The default value is false, i.e. debugging is + disabled. + + + + + The following example enables internal debugging using the + application configuration file : + + + + + + + + + + + + + Gets or sets a value indicating whether log4net should generate no output + from internal logging, not even for errors. + + + true if log4net should generate no output at all from internal + logging, otherwise false. + + + + When set to true will cause internal logging at all levels to be + suppressed. This means that no warning or error reports will be logged. + This option overrides the setting and + disables all debug also. + + This value can be set by setting the application setting + log4net.Internal.Quiet in the application configuration file. + + + The default value is false, i.e. internal logging is not + disabled. + + + + The following example disables internal logging using the + application configuration file : + + + + + + + + + + + + + + + + + Test if LogLog.Debug is enabled for output. + + + true if Debug is enabled + + + + Test if LogLog.Debug is enabled for output. + + + + + + Test if LogLog.Warn is enabled for output. + + + true if Warn is enabled + + + + Test if LogLog.Warn is enabled for output. + + + + + + Test if LogLog.Error is enabled for output. + + + true if Error is enabled + + + + Test if LogLog.Error is enabled for output. + + + + + + Subscribes to the LogLog.LogReceived event and stores messages + to the supplied IList instance. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a native error code and message. + + + + Represents a Win32 platform native error. + + + Nicko Cadell + Gert Driesen + + + + Create an instance of the class with the specified + error number and message. + + The number of the native error. + The message of the native error. + + + Create an instance of the class with the specified + error number and message. + + + + + + Create a new instance of the class for the last Windows error. + + + An instance of the class for the last windows error. + + + + The message for the error number is lookup up using the + native Win32 FormatMessage function. + + + + + + Create a new instance of the class. + + the error number for the native error + + An instance of the class for the specified + error number. + + + + The message for the specified error number is lookup up using the + native Win32 FormatMessage function. + + + + + + Retrieves the message corresponding with a Win32 message identifier. + + Message identifier for the requested message. + + The message corresponding with the specified message identifier. + + + + The message will be searched for in system message-table resource(s) + using the native FormatMessage function. + + + + + + Return error information string + + error information string + + + Return error information string + + + + + + Formats a message string. + + Formatting options, and how to interpret the parameter. + Location of the message definition. + Message identifier for the requested message. + Language identifier for the requested message. + If includes FORMAT_MESSAGE_ALLOCATE_BUFFER, the function allocates a buffer using the LocalAlloc function, and places the pointer to the buffer at the address specified in . + If the FORMAT_MESSAGE_ALLOCATE_BUFFER flag is not set, this parameter specifies the maximum number of TCHARs that can be stored in the output buffer. If FORMAT_MESSAGE_ALLOCATE_BUFFER is set, this parameter specifies the minimum number of TCHARs to allocate for an output buffer. + Pointer to an array of values that are used as insert values in the formatted message. + + + The function requires a message definition as input. The message definition can come from a + buffer passed into the function. It can come from a message table resource in an + already-loaded module. Or the caller can ask the function to search the system's message + table resource(s) for the message definition. The function finds the message definition + in a message table resource based on a message identifier and a language identifier. + The function copies the formatted message text to an output buffer, processing any embedded + insert sequences if requested. + + + To prevent the usage of unsafe code, this stub does not support inserting values in the formatted message. + + + + + If the function succeeds, the return value is the number of TCHARs stored in the output + buffer, excluding the terminating null character. + + + If the function fails, the return value is zero. To get extended error information, + call . + + + + + + Gets the number of the native error. + + + The number of the native error. + + + + Gets the number of the native error. + + + + + + Gets the message of the native error. + + + The message of the native error. + + + + + Gets the message of the native error. + + + + + An always empty . + + + + A singleton implementation of the over a collection + that is empty and not modifiable. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Test if the enumerator can advance, if so advance. + + false as the cannot advance. + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will always return false. + + + + + + Resets the enumerator back to the start. + + + + As the enumerator is over an empty collection does nothing. + + + + + + The singleton instance of the . + + + + + Gets the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets the current object from the enumerator. + + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current key from the enumerator. + + + Throws an exception because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current value from the enumerator. + + The current value from the enumerator. + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current entry from the enumerator. + + + Throws an because the + never has a current entry. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + An always empty . + + + + A singleton implementation of the over a collection + that is empty and not modifiable. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Test if the enumerator can advance, if so advance + + false as the cannot advance. + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will always return false. + + + + + + Resets the enumerator back to the start. + + + + As the enumerator is over an empty collection does nothing. + + + + + + The singleton instance of the . + + + + + Get the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets the current object from the enumerator. + + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + A SecurityContext used when a SecurityContext is not required + + + + The is a no-op implementation of the + base class. It is used where a + is required but one has not been provided. + + + Nicko Cadell + + + + Singleton instance of + + + + Singleton instance of + + + + + + Private constructor + + + + Private constructor for singleton pattern. + + + + + + Impersonate this SecurityContext + + State supplied by the caller + null + + + No impersonation is done and null is always returned. + + + + + + Implements log4net's default error handling policy which consists + of emitting a message for the first error in an appender and + ignoring all subsequent errors. + + + + The error message is processed using the LogLog sub-system by default. + + + This policy aims at protecting an otherwise working application + from being flooded with error messages when logging fails. + + + Nicko Cadell + Gert Driesen + Ron Grabowski + + + + Default Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + The prefix to use for each message. + + + Initializes a new instance of the class + with the specified prefix. + + + + + + Reset the error handler back to its initial disabled state. + + + + + Log an Error + + The error message. + The exception. + The internal error code. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + Log the very first error + + The error message. + The exception. + The internal error code. + + + Sends the error information to 's Error method. + + + + + + Log an Error + + The error message. + The exception. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + Log an error + + The error message. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + The UTC date the error was recorded. + + + + + Flag to indicate if it is the first error + + + + + The message recorded during the first error. + + + + + The exception recorded during the first error. + + + + + The error code recorded during the first error. + + + + + String to prefix each message with + + + + + The fully qualified type of the OnlyOnceErrorHandler class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Is error logging enabled + + + + Is error logging enabled. Logging is only enabled for the + first error delivered to the . + + + + + + The date the first error that trigged this error handler occurred, or if it has not been triggered. + + + + + The UTC date the first error that trigged this error handler occured, or if it has not been triggered. + + + + + The message from the first error that trigged this error handler. + + + + + The exception from the first error that trigged this error handler. + + + May be . + + + + + The error code from the first error that trigged this error handler. + + + Defaults to + + + + + A convenience class to convert property values to specific types. + + + + Utility functions for converting types and parsing values. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Converts a string to a value. + + String to convert. + The default value. + The value of . + + + If is "true", then true is returned. + If is "false", then false is returned. + Otherwise, is returned. + + + + + + Parses a file size into a number. + + String to parse. + The default value. + The value of . + + + Parses a file size of the form: number[KB|MB|GB] into a + long value. It is scaled with the appropriate multiplier. + + + is returned when + cannot be converted to a value. + + + + + + Converts a string to an object. + + The target type to convert to. + The string to convert to an object. + + The object converted from a string or null when the + conversion failed. + + + + Converts a string to an object. Uses the converter registry to try + to convert the string value into the specified target type. + + + + + + Checks if there is an appropriate type conversion from the source type to the target type. + + The type to convert from. + The type to convert to. + true if there is a conversion from the source type to the target type. + + Checks if there is an appropriate type conversion from the source type to the target type. + + + + + + + Converts an object to the target type. + + The object to convert to the target type. + The type to convert to. + The converted object. + + + Converts an object to the target type. + + + + + + Instantiates an object given a class name. + + The fully qualified class name of the object to instantiate. + The class to which the new object should belong. + The object to return in case of non-fulfillment. + + An instance of the or + if the object could not be instantiated. + + + + Checks that the is a subclass of + . If that test fails or the object could + not be instantiated, then is returned. + + + + + + Performs variable substitution in string from the + values of keys found in . + + The string on which variable substitution is performed. + The dictionary to use to lookup variables. + The result of the substitutions. + + + The variable substitution delimiters are ${ and }. + + + For example, if props contains key=value, then the call + + + + string s = OptionConverter.SubstituteVariables("Value of key is ${key}."); + + + + will set the variable s to "Value of key is value.". + + + If no value could be found for the specified key, then substitution + defaults to an empty string. + + + For example, if system properties contains no value for the key + "nonExistentKey", then the call + + + + string s = OptionConverter.SubstituteVariables("Value of nonExistentKey is [${nonExistentKey}]"); + + + + will set s to "Value of nonExistentKey is []". + + + An Exception is thrown if contains a start + delimiter "${" which is not balanced by a stop delimiter "}". + + + + + + Converts the string representation of the name or numeric value of one or + more enumerated constants to an equivalent enumerated object. + + The type to convert to. + The enum string value. + If true, ignore case; otherwise, regard case. + An object of type whose value is represented by . + + + + The fully qualified type of the OptionConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Most of the work of the class + is delegated to the PatternParser class. + + + + The PatternParser processes a pattern string and + returns a chain of objects. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The pattern to parse. + + + Initializes a new instance of the class + with the specified pattern string. + + + + + + Parses the pattern into a chain of pattern converters. + + The head of a chain of pattern converters. + + + Parses the pattern into a chain of pattern converters. + + + + + + Build the unified cache of converters from the static and instance maps + + the list of all the converter names + + + Build the unified cache of converters from the static and instance maps + + + + + + Internal method to parse the specified pattern to find specified matches + + the pattern to parse + the converter names to match in the pattern + + + The matches param must be sorted such that longer strings come before shorter ones. + + + + + + Process a parsed literal + + the literal text + + + + Process a parsed converter pattern + + the name of the converter + the optional option for the converter + the formatting info for the converter + + + + Resets the internal state of the parser and adds the specified pattern converter + to the chain. + + The pattern converter to add. + + + + The first pattern converter in the chain + + + + + the last pattern converter in the chain + + + + + The pattern + + + + + Internal map of converter identifiers to converter types + + + + This map overrides the static s_globalRulesRegistry map. + + + + + + The fully qualified type of the PatternParser class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Get the converter registry used by this parser + + + The converter registry used by this parser + + + + Get the converter registry used by this parser + + + + + + Sort strings by length + + + + that orders strings by string length. + The longest strings are placed first + + + + + + This class implements a patterned string. + + + + This string has embedded patterns that are resolved and expanded + when the string is formatted. + + + This class functions similarly to the + in that it accepts a pattern and renders it to a string. Unlike the + however the PatternString + does not render the properties of a specific but + of the process in general. + + + The recognized conversion pattern names are: + + + + Conversion Pattern Name + Effect + + + appdomain + + + Used to output the friendly name of the current AppDomain. + + + + + appsetting + + + Used to output the value of a specific appSetting key in the application + configuration file. + + + + + date + + + Used to output the current date and time in the local time zone. + To output the date in universal time use the %utcdate pattern. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %date{HH:mm:ss,fff} or + %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %date{ISO8601} or %date{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + env + + + Used to output the a specific environment variable. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %env{COMPUTERNAME} would include the value + of the COMPUTERNAME environment variable. + + + The env pattern is not supported on the .NET Compact Framework. + + + + + identity + + + Used to output the user name for the currently active user + (Principal.Identity.Name). + + + + + newline + + + Outputs the platform dependent line separator character or + characters. + + + This conversion pattern name offers the same performance as using + non-portable line separator strings such as "\n", or "\r\n". + Thus, it is the preferred way of specifying a line separator. + + + + + processid + + + Used to output the system process ID for the current process. + + + + + property + + + Used to output a specific context property. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %property{user} would include the value + from the property that is keyed by the string 'user'. Each property value + that is to be included in the log must be specified separately. + Properties are stored in logging contexts. By default + the log4net:HostName property is set to the name of machine on + which the event was originally logged. + + + If no key is specified, e.g. %property then all the keys and their + values are printed in a comma separated list. + + + The properties of an event are combined from a number of different + contexts. These are listed below in the order in which they are searched. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + random + + + Used to output a random string of characters. The string is made up of + uppercase letters and numbers. By default the string is 4 characters long. + The length of the string can be specified within braces directly following the + pattern specifier, e.g. %random{8} would output an 8 character string. + + + + + username + + + Used to output the WindowsIdentity for the currently + active user. + + + + + utcdate + + + Used to output the date of the logging event in universal time. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %utcdate{HH:mm:ss,fff} or + %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %utcdate{ISO8601} or %utcdate{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + % + + + The sequence %% outputs a single percent sign. + + + + + + Additional pattern converters may be registered with a specific + instance using or + . + + + See the for details on the + format modifiers supported by the patterns. + + + Nicko Cadell + + + + Internal map of converter identifiers to converter types. + + + + + the pattern + + + + + the head of the pattern converter chain + + + + + patterns defined on this PatternString only + + + + + Initialize the global registry + + + + + Default constructor + + + + Initialize a new instance of + + + + + + Constructs a PatternString + + The pattern to use with this PatternString + + + Initialize a new instance of with the pattern specified. + + + + + + Initialize object options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Create the used to parse the pattern + + the pattern to parse + The + + + Returns PatternParser used to parse the conversion string. Subclasses + may override this to return a subclass of PatternParser which recognize + custom conversion pattern name. + + + + + + Produces a formatted string as specified by the conversion pattern. + + The TextWriter to write the formatted event to + + + Format the pattern to the . + + + + + + Format the pattern as a string + + the pattern formatted as a string + + + Format the pattern to a string. + + + + + + Add a converter to this PatternString + + the converter info + + + This version of the method is used by the configurator. + Programmatic users should use the alternative method. + + + + + + Add a converter to this PatternString + + the name of the conversion pattern for this converter + the type of the converter + + + Add a converter to this PatternString + + + + + + Gets or sets the pattern formatting string + + + The pattern formatting string + + + + The ConversionPattern option. This is the string which + controls formatting and consists of a mix of literal content and + conversion specifiers. + + + + + + String keyed object map. + + + + While this collection is serializable only member + objects that are serializable will + be serialized along with this collection. + + + Nicko Cadell + Gert Driesen + + + + String keyed object map that is read only. + + + + This collection is readonly and cannot be modified. + + + While this collection is serializable only member + objects that are serializable will + be serialized along with this collection. + + + Nicko Cadell + Gert Driesen + + + + The Hashtable used to store the properties data + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Copy Constructor + + properties to copy + + + Initializes a new instance of the class. + + + + + + Deserialization constructor + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Gets the key names. + + An array of all the keys. + + + Gets the key names. + + + + + + Test if the dictionary contains a specified key + + the key to look for + true if the dictionary contains the specified key + + + Test if the dictionary contains a specified key + + + + + + Serializes this object into the provided. + + The to populate with data. + The destination for this serialization. + + + Serializes this object into the provided. + + + + + + See + + + + + See + + + + + + See + + + + + + + Remove all properties from the properties collection + + + + + See + + + + + + + See + + + + + + + See + + + + + Gets or sets the value of the property with the specified key. + + + The value of the property with the specified key. + + The key of the property to get or set. + + + The property value will only be serialized if it is serializable. + If it cannot be serialized it will be silently ignored if + a serialization operation is performed. + + + + + + The hashtable used to store the properties + + + The internal collection used to store the properties + + + + The hashtable used to store the properties + + + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + The number of properties in this collection + + + + + See + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + properties to copy + + + Initializes a new instance of the class. + + + + + + Initializes a new instance of the class + with serialized data. + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Because this class is sealed the serialization constructor is private. + + + + + + Remove the entry with the specified key from this dictionary + + the key for the entry to remove + + + Remove the entry with the specified key from this dictionary + + + + + + See + + an enumerator + + + Returns a over the contest of this collection. + + + + + + See + + the key to remove + + + Remove the entry with the specified key from this dictionary + + + + + + See + + the key to lookup in the collection + true if the collection contains the specified key + + + Test if this collection contains a specified key. + + + + + + Remove all properties from the properties collection + + + + Remove all properties from the properties collection + + + + + + See + + the key + the value to store for the key + + + Store a value for the specified . + + + Thrown if the is not a string + + + + See + + + + + + + See + + + + + Gets or sets the value of the property with the specified key. + + + The value of the property with the specified key. + + The key of the property to get or set. + + + The property value will only be serialized if it is serializable. + If it cannot be serialized it will be silently ignored if + a serialization operation is performed. + + + + + + See + + + false + + + + This collection is modifiable. This property always + returns false. + + + + + + See + + + The value for the key specified. + + + + Get or set a value for the specified . + + + Thrown if the is not a string + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + A class to hold the key and data for a property set in the config file + + + + A class to hold the key and data for a property set in the config file + + + + + + Override Object.ToString to return sensible debug info + + string info about this object + + + + Property Key + + + Property Key + + + + Property Key. + + + + + + Property Value + + + Property Value + + + + Property Value. + + + + + + A that ignores the message + + + + This writer is used in special cases where it is necessary + to protect a writer from being closed by a client. + + + Nicko Cadell + + + + Constructor + + the writer to actually write to + + + Create a new ProtectCloseTextWriter using a writer + + + + + + Attach this instance to a different underlying + + the writer to attach to + + + Attach this instance to a different underlying + + + + + + Does not close the underlying output writer. + + + + Does not close the underlying output writer. + This method does nothing. + + + + + + Defines a lock that supports single writers and multiple readers + + + + ReaderWriterLock is used to synchronize access to a resource. + At any given time, it allows either concurrent read access for + multiple threads, or write access for a single thread. In a + situation where a resource is changed infrequently, a + ReaderWriterLock provides better throughput than a simple + one-at-a-time lock, such as . + + + If a platform does not support a System.Threading.ReaderWriterLock + implementation then all readers and writers are serialized. Therefore + the caller must not rely on multiple simultaneous readers. + + + Nicko Cadell + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Acquires a reader lock + + + + blocks if a different thread has the writer + lock, or if at least one thread is waiting for the writer lock. + + + + + + Decrements the lock count + + + + decrements the lock count. When the count + reaches zero, the lock is released. + + + + + + Acquires the writer lock + + + + This method blocks if another thread has a reader lock or writer lock. + + + + + + Decrements the lock count on the writer lock + + + + ReleaseWriterLock decrements the writer lock count. + When the count reaches zero, the writer lock is released. + + + + + + A that can be and reused + + + + A that can be and reused. + This uses a single buffer for string operations. + + + Nicko Cadell + + + + Create an instance of + + the format provider to use + + + Create an instance of + + + + + + Override Dispose to prevent closing of writer + + flag + + + Override Dispose to prevent closing of writer + + + + + + Reset this string writer so that it can be reused. + + the maximum buffer capacity before it is trimmed + the default size to make the buffer + + + Reset this string writer so that it can be reused. + The internal buffers are cleared and reset. + + + + + + Utility class for system specific information. + + + + Utility class of static methods for system specific information. + + + Nicko Cadell + Gert Driesen + Alexey Solofnenko + + + + Private constructor to prevent instances. + + + + Only static methods are exposed from this type. + + + + + + Initialize default values for private static fields. + + + + Only static methods are exposed from this type. + + + + + + Gets the assembly location path for the specified assembly. + + The assembly to get the location for. + The location of the assembly. + + + This method does not guarantee to return the correct path + to the assembly. If only tries to give an indication as to + where the assembly was loaded from. + + + + + + Gets the fully qualified name of the , including + the name of the assembly from which the was + loaded. + + The to get the fully qualified name for. + The fully qualified name for the . + + + This is equivalent to the Type.AssemblyQualifiedName property, + but this method works on the .NET Compact Framework 1.0 as well as + the full .NET runtime. + + + + + + Gets the short name of the . + + The to get the name for. + The short name of the . + + + The short name of the assembly is the + without the version, culture, or public key. i.e. it is just the + assembly's file name without the extension. + + + Use this rather than Assembly.GetName().Name because that + is not available on the Compact Framework. + + + Because of a FileIOPermission security demand we cannot do + the obvious Assembly.GetName().Name. We are allowed to get + the of the assembly so we + start from there and strip out just the assembly name. + + + + + + Gets the file name portion of the , including the extension. + + The to get the file name for. + The file name of the assembly. + + + Gets the file name portion of the , including the extension. + + + + + + Loads the type specified in the type string. + + A sibling type to use to load the type. + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified, it will be loaded from the assembly + containing the specified relative type. If the type is not found in the assembly + then all the loaded assemblies will be searched for the type. + + + + + + Loads the type specified in the type string. + + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified it will be loaded from the + assembly that is directly calling this method. If the type is not found + in the assembly then all the loaded assemblies will be searched for the type. + + + + + + Loads the type specified in the type string. + + An assembly to load the type from. + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified it will be loaded from the specified + assembly. If the type is not found in the assembly then all the loaded assemblies + will be searched for the type. + + + + + + Generate a new guid + + A new Guid + + + Generate a new guid + + + + + + Create an + + The name of the parameter that caused the exception + The value of the argument that causes this exception + The message that describes the error + the ArgumentOutOfRangeException object + + + Create a new instance of the class + with a specified error message, the parameter name, and the value + of the argument. + + + The Compact Framework does not support the 3 parameter constructor for the + type. This method provides an + implementation that works for all platforms. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Lookup an application setting + + the application settings key to lookup + the value for the key, or null + + + Configuration APIs are not supported under the Compact Framework + + + + + + Convert a path into a fully qualified local file path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + The path specified must be a local file path, a URI is not supported. + + + + + + Creates a new case-insensitive instance of the class with the default initial capacity. + + A new case-insensitive instance of the class with the default initial capacity + + + The new Hashtable instance uses the default load factor, the CaseInsensitiveHashCodeProvider, and the CaseInsensitiveComparer. + + + + + + Tests two strings for equality, the ignoring case. + + + If the platform permits, culture information is ignored completely (ordinal comparison). + The aim of this method is to provide a fast comparison that deals with null and ignores different casing. + It is not supposed to deal with various, culture-specific habits. + Use it to compare against pure ASCII constants, like keywords etc. + + The one string. + The other string. + true if the strings are equal, false otherwise. + + + + Gets an empty array of types. + + + + The Type.EmptyTypes field is not available on + the .NET Compact Framework 1.0. + + + + + + The fully qualified type of the SystemInfo class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Cache the host name for the current machine + + + + + Cache the application friendly name + + + + + Text to output when a null is encountered. + + + + + Text to output when an unsupported feature is requested. + + + + + Start time for the current process. + + + + + Gets the system dependent line terminator. + + + The system dependent line terminator. + + + + Gets the system dependent line terminator. + + + + + + Gets the base directory for this . + + The base directory path for the current . + + + Gets the base directory for this . + + + The value returned may be either a local file path or a URI. + + + + + + Gets the path to the configuration file for the current . + + The path to the configuration file for the current . + + + The .NET Compact Framework 1.0 does not have a concept of a configuration + file. For this runtime, we use the entry assembly location as the root for + the configuration file name. + + + The value returned may be either a local file path or a URI. + + + + + + Gets the path to the file that first executed in the current . + + The path to the entry assembly. + + + Gets the path to the file that first executed in the current . + + + + + + Gets the ID of the current thread. + + The ID of the current thread. + + + On the .NET framework, the AppDomain.GetCurrentThreadId method + is used to obtain the thread ID for the current thread. This is the + operating system ID for the thread. + + + On the .NET Compact Framework 1.0 it is not possible to get the + operating system thread ID for the current thread. The native method + GetCurrentThreadId is implemented inline in a header file + and cannot be called. + + + On the .NET Framework 2.0 the Thread.ManagedThreadId is used as this + gives a stable id unrelated to the operating system thread ID which may + change if the runtime is using fibers. + + + + + + Get the host name or machine name for the current machine + + + The hostname or machine name + + + + Get the host name or machine name for the current machine + + + The host name () or + the machine name (Environment.MachineName) for + the current machine, or if neither of these are available + then NOT AVAILABLE is returned. + + + + + + Get this application's friendly name + + + The friendly name of this application as a string + + + + If available the name of the application is retrieved from + the AppDomain using AppDomain.CurrentDomain.FriendlyName. + + + Otherwise the file name of the entry assembly is used. + + + + + + Get the start time for the current process. + + + + This is the time at which the log4net library was loaded into the + AppDomain. Due to reports of a hang in the call to System.Diagnostics.Process.StartTime + this is not the start time for the current process. + + + The log4net library should be loaded by an application early during its + startup, therefore this start time should be a good approximation for + the actual start time. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating, however this start time + will be set per AppDomain. + + + + + + Get the UTC start time for the current process. + + + + This is the UTC time at which the log4net library was loaded into the + AppDomain. Due to reports of a hang in the call to System.Diagnostics.Process.StartTime + this is not the start time for the current process. + + + The log4net library should be loaded by an application early during its + startup, therefore this start time should be a good approximation for + the actual start time. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating, however this start time + will be set per AppDomain. + + + + + + Text to output when a null is encountered. + + + + Use this value to indicate a null has been encountered while + outputting a string representation of an item. + + + The default value is (null). This value can be overridden by specifying + a value for the log4net.NullText appSetting in the application's + .config file. + + + + + + Text to output when an unsupported feature is requested. + + + + Use this value when an unsupported feature is requested. + + + The default value is NOT AVAILABLE. This value can be overridden by specifying + a value for the log4net.NotAvailableText appSetting in the application's + .config file. + + + + + + Utility class that represents a format string. + + + + Utility class that represents a format string. + + + Nicko Cadell + + + + Initialise the + + An that supplies culture-specific formatting information. + A containing zero or more format items. + An array containing zero or more objects to format. + + + + Format the string and arguments + + the formatted string + + + + Replaces the format item in a specified with the text equivalent + of the value of a corresponding instance in a specified array. + A specified parameter supplies culture-specific formatting information. + + An that supplies culture-specific formatting information. + A containing zero or more format items. + An array containing zero or more objects to format. + + A copy of format in which the format items have been replaced by the + equivalent of the corresponding instances of in args. + + + + This method does not throw exceptions. If an exception thrown while formatting the result the + exception and arguments are returned in the result string. + + + + + + Process an error during StringFormat + + + + + Dump the contents of an array into a string builder + + + + + Dump an object to a string + + + + + The fully qualified type of the SystemStringFormat class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Implementation of Properties collection for the + + + + Class implements a collection of properties that is specific to each thread. + The class is not synchronized as each thread has its own . + + + Nicko Cadell + + + + Each thread will automatically have its instance. + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Remove a property + + the key for the entry to remove + + + Remove a property + + + + + + Get the keys stored in the properties. + + + Gets the keys stored in the properties. + + a set of the defined keys + + + + Clear all properties + + + + Clear all properties + + + + + + Get the PropertiesDictionary for this thread. + + create the dictionary if it does not exist, otherwise return null if does not exist + the properties for this thread + + + The collection returned is only to be used on the calling thread. If the + caller needs to share the collection between different threads then the + caller must clone the collection before doing so. + + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Gets or sets the value of a property + + + + + + Implementation of Stack for the + + + + Implementation of Stack for the + + + Nicko Cadell + + + + The stack store. + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Clears all the contextual information held in this stack. + + + + Clears all the contextual information held in this stack. + Only call this if you think that this tread is being reused after + a previous call execution which may not have completed correctly. + You do not need to use this method if you always guarantee to call + the method of the + returned from even in exceptional circumstances, + for example by using the using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) + syntax. + + + + + + Removes the top context from this stack. + + The message in the context that was removed from the top of this stack. + + + Remove the top context from this stack, and return + it to the caller. If this stack is empty then an + empty string (not ) is returned. + + + + + + Pushes a new context message into this stack. + + The new context message. + + An that can be used to clean up the context stack. + + + + Pushes a new context onto this stack. An + is returned that can be used to clean up this stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) + { + log.Warn("This should have an ThreadContext Stack message"); + } + + + + + + Gets the current context information for this stack. + + The current context information. + + + + Gets the current context information for this stack. + + Gets the current context information + + + Gets the current context information for this stack. + + + + + + Get a portable version of this object + + the portable instance of this object + + + Get a cross thread portable version of this object + + + + + + The number of messages in the stack + + + The current number of messages in the stack + + + + The current number of messages in the stack. That is + the number of times has been called + minus the number of times has been called. + + + + + + Gets and sets the internal stack used by this + + The internal storage stack + + + This property is provided only to support backward compatability + of the . Tytpically the internal stack should not + be modified. + + + + + + Inner class used to represent a single context frame in the stack. + + + + Inner class used to represent a single context frame in the stack. + + + + + + Constructor + + The message for this context. + The parent context in the chain. + + + Initializes a new instance of the class + with the specified message and parent context. + + + + + + Get the message. + + The message. + + + Get the message. + + + + + + Gets the full text of the context down to the root level. + + + The full text of the context down to the root level. + + + + Gets the full text of the context down to the root level. + + + + + + Struct returned from the method. + + + + This struct implements the and is designed to be used + with the pattern to remove the stack frame at the end of the scope. + + + + + + The ThreadContextStack internal stack + + + + + The depth to trim the stack to when this instance is disposed + + + + + Constructor + + The internal stack used by the ThreadContextStack. + The depth to return the stack to when this object is disposed. + + + Initializes a new instance of the class with + the specified stack and return depth. + + + + + + Returns the stack to the correct depth. + + + + Returns the stack to the correct depth. + + + + + + Implementation of Stacks collection for the + + + + Implementation of Stacks collection for the + + + Nicko Cadell + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + The fully qualified type of the ThreadContextStacks class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the named thread context stack + + + The named stack + + + + Gets the named thread context stack + + + + + + Utility class for transforming strings. + + + + Utility class for transforming strings. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Write a string to an + + the writer to write to + the string to write + The string to replace non XML compliant chars with + + + The test is escaped either using XML escape entities + or using CDATA sections. + + + + + + Replace invalid XML characters in text string + + the XML text input string + the string to use in place of invalid characters + A string that does not contain invalid XML characters. + + + Certain Unicode code points are not allowed in the XML InfoSet, for + details see: http://www.w3.org/TR/REC-xml/#charsets. + + + This method replaces any illegal characters in the input string + with the mask string specified. + + + + + + Count the number of times that the substring occurs in the text + + the text to search + the substring to find + the number of times the substring occurs in the text + + + The substring is assumed to be non repeating within itself. + + + + + + Characters illegal in XML 1.0 + + + + + Impersonate a Windows Account + + + + This impersonates a Windows account. + + + How the impersonation is done depends on the value of . + This allows the context to either impersonate a set of user credentials specified + using username, domain name and password or to revert to the process credentials. + + + + + + Default constructor + + + + Default constructor + + + + + + Initialize the SecurityContext based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The security context will try to Logon the specified user account and + capture a primary token for impersonation. + + + The required , + or properties were not specified. + + + + Impersonate the Windows account specified by the and properties. + + caller provided state + + An instance that will revoke the impersonation of this SecurityContext + + + + Depending on the property either + impersonate a user using credentials supplied or revert + to the process credentials. + + + + + + Create a given the userName, domainName and password. + + the user name + the domain name + the password + the for the account specified + + + Uses the Windows API call LogonUser to get a principal token for the account. This + token is used to initialize the WindowsIdentity. + + + + + + Gets or sets the impersonation mode for this security context + + + The impersonation mode for this security context + + + + Impersonate either a user with user credentials or + revert this thread to the credentials of the process. + The value is one of the + enum. + + + The default value is + + + When the mode is set to + the user's credentials are established using the + , and + values. + + + When the mode is set to + no other properties need to be set. If the calling thread is + impersonating then it will be reverted back to the process credentials. + + + + + + Gets or sets the Windows username for this security context + + + The Windows username for this security context + + + + This property must be set if + is set to (the default setting). + + + + + + Gets or sets the Windows domain name for this security context + + + The Windows domain name for this security context + + + + The default value for is the local machine name + taken from the property. + + + This property must be set if + is set to (the default setting). + + + + + + Sets the password for the Windows account specified by the and properties. + + + The password for the Windows account specified by the and properties. + + + + This property must be set if + is set to (the default setting). + + + + + + The impersonation modes for the + + + + See the property for + details. + + + + + + Impersonate a user using the credentials supplied + + + + + Revert this the thread to the credentials of the process + + + + + Adds to + + + + Helper class to expose the + through the interface. + + + + + + Constructor + + the impersonation context being wrapped + + + Constructor + + + + + + Revert the impersonation + + + + Revert the impersonation + + + + + + The log4net Global Context. + + + + The GlobalContext provides a location for global debugging + information to be stored. + + + The global context has a properties map and these properties can + be included in the output of log messages. The + supports selecting and outputing these properties. + + + By default the log4net:HostName property is set to the name of + the current machine. + + + + + GlobalContext.Properties["hostname"] = Environment.MachineName; + + + + Nicko Cadell + + + + Private Constructor. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + The global context properties instance + + + + + The global properties map. + + + The global properties map. + + + + The global properties map. + + + + + + Provides information about the environment the assembly has + been built for. + + + + Version of the assembly + + + Version of the framework targeted + + + Type of framework targeted + + + Does it target a client profile? + + + + Identifies the version and target for this assembly. + + + + + The log4net Logical Thread Context. + + + + The LogicalThreadContext provides a location for specific debugging + information to be stored. + The LogicalThreadContext properties override any or + properties with the same name. + + + For .NET Standard 1.3 this class uses + System.Threading.AsyncLocal rather than . + + + The Logical Thread Context has a properties map and a stack. + The properties and stack can + be included in the output of log messages. The + supports selecting and outputting these properties. + + + The Logical Thread Context provides a diagnostic context for the current call context. + This is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The Logical Thread Context is managed on a per basis. + + + The requires a link time + for the + . + If the calling code does not have this permission then this context will be disabled. + It will not store any property values set on it. + + + Example of using the thread context properties to store a username. + + LogicalThreadContext.Properties["user"] = userName; + log.Info("This log message has a LogicalThreadContext Property called 'user'"); + + + Example of how to push a message into the context stack + + using(LogicalThreadContext.Stacks["LDC"].Push("my context message")) + { + log.Info("This log message has a LogicalThreadContext Stack message that includes 'my context message'"); + + } // at the end of the using block the message is automatically popped + + + + Nicko Cadell + + + + Private Constructor. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + The thread context properties instance + + + + + The thread context stacks instance + + + + + The thread properties map + + + The thread properties map + + + + The LogicalThreadContext properties override any + or properties with the same name. + + + + + + The thread stacks + + + stack map + + + + The logical thread stacks. + + + + + + This class is used by client applications to request logger instances. + + + + This class has static methods that are used by a client to request + a logger instance. The method is + used to retrieve a logger. + + + See the interface for more details. + + + Simple example of logging messages + + ILog log = LogManager.GetLogger("application-log"); + + log.Info("Application Start"); + log.Debug("This is a debug message"); + + if (log.IsDebugEnabled) + { + log.Debug("This is another debug message"); + } + + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + Returns the named logger if it exists. + + Returns the named logger if it exists. + + + + If the named logger exists (in the default repository) then it + returns a reference to the logger, otherwise it returns null. + + + The fully qualified logger name to look for. + The logger found, or null if no logger could be found. + + + Get the currently defined loggers. + + Returns all the currently defined loggers in the default repository. + + + The root logger is not included in the returned array. + + All the defined loggers. + + + Get or create a logger. + + Retrieves or creates a named logger. + + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The name of the logger to retrieve. + The logger with the name specified. + + + + Returns the named logger if it exists. + + + + If the named logger exists (in the specified repository) then it + returns a reference to the logger, otherwise it returns + null. + + + The repository to lookup in. + The fully qualified logger name to look for. + + The logger found, or null if the logger doesn't exist in the specified + repository. + + + + + Returns the named logger if it exists. + + + + If the named logger exists (in the repository for the specified assembly) then it + returns a reference to the logger, otherwise it returns + null. + + + The assembly to use to lookup the repository. + The fully qualified logger name to look for. + + The logger, or null if the logger doesn't exist in the specified + assembly's repository. + + + + + Returns all the currently defined loggers in the specified repository. + + The repository to lookup in. + + The root logger is not included in the returned array. + + All the defined loggers. + + + + Returns all the currently defined loggers in the specified assembly's repository. + + The assembly to use to lookup the repository. + + The root logger is not included in the returned array. + + All the defined loggers. + + + + Retrieves or creates a named logger. + + + + Retrieve a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The repository to lookup in. + The name of the logger to retrieve. + The logger with the name specified. + + + + Retrieves or creates a named logger. + + + + Retrieve a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The assembly to use to lookup the repository. + The name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Get the logger for the fully qualified name of the type specified. + + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Gets the logger for the fully qualified name of the type specified. + + The repository to lookup in. + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Gets the logger for the fully qualified name of the type specified. + + The assembly to use to lookup the repository. + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shuts down the log4net system. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in all the + default repositories. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + Shutdown a logger repository. + + Shuts down the default repository. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + default repository. + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + The repository to shutdown. + + + + Shuts down the repository specified. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository. The repository is looked up using + the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + The assembly to use to lookup the repository. + + + Reset the configuration of a repository + + Resets all values contained in this repository instance to their defaults. + + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + + + + Resets all values contained in this repository instance to their defaults. + + + + Reset all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + The repository to reset. + + + + Resets all values contained in this repository instance to their defaults. + + + + Reset all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + The assembly to use to lookup the repository to reset. + + + Get the logger repository. + + Returns the default instance. + + + + Gets the for the repository specified + by the callers assembly (). + + + The instance for the default repository. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The repository to lookup in. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The assembly to use to lookup the repository. + + + Get a logger repository. + + Returns the default instance. + + + + Gets the for the repository specified + by the callers assembly (). + + + The instance for the default repository. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The repository to lookup in. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The assembly to use to lookup the repository. + + + Create a domain + + Creates a repository with the specified repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to will return + the same repository instance. + + + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + Create a logger repository. + + Creates a repository with the specified repository type. + + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The created will be associated with the repository + specified such that a call to will return + the same repository instance. + + + + + + Creates a repository with the specified name. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name. + + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + The specified repository already exists. + + + + Creates a repository for the specified assembly and repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + + Creates a repository for the specified assembly and repository type. + + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + + Gets the list of currently defined repositories. + + + + Get an array of all the objects that have been created. + + + An array of all the known objects. + + + + Flushes logging events buffered in all configured appenders in the default repository. + + The maximum time in milliseconds to wait for logging events from asycnhronous appenders to be flushed. + True if all logging events were flushed successfully, else false. + + + + Looks up the wrapper object for the logger specified. + + The logger to get the wrapper for. + The wrapper for the logger specified. + + + + Looks up the wrapper objects for the loggers specified. + + The loggers to get the wrappers for. + The wrapper objects for the loggers specified. + + + + Create the objects used by + this manager. + + The logger to wrap. + The wrapper for the logger specified. + + + + The wrapper map to use to hold the objects. + + + + + Implementation of Mapped Diagnostic Contexts. + + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + The MDC class is similar to the class except that it is + based on a map instead of a stack. It provides mapped + diagnostic contexts. A Mapped Diagnostic Context, or + MDC in short, is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The MDC is managed on a per thread basis. + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + Gets the context value identified by the parameter. + + The key to lookup in the MDC. + The string value held for the key, or a null reference if no corresponding value is found. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + If the parameter does not look up to a + previously defined context then null will be returned. + + + + + + Add an entry to the MDC + + The key to store the value under. + The value to store. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Puts a context value (the parameter) as identified + with the parameter into the current thread's + context map. + + + If a value is already defined for the + specified then the value will be replaced. If the + is specified as null then the key value mapping will be removed. + + + + + + Removes the key value mapping for the key specified. + + The key to remove. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Remove the specified entry from this thread's MDC + + + + + + Clear all entries in the MDC + + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Remove all the entries from this thread's MDC + + + + + + Implementation of Nested Diagnostic Contexts. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + A Nested Diagnostic Context, or NDC in short, is an instrument + to distinguish interleaved log output from different sources. Log + output is typically interleaved when a server handles multiple + clients near-simultaneously. + + + Interleaved log output can still be meaningful if each log entry + from different contexts had a distinctive stamp. This is where NDCs + come into play. + + + Note that NDCs are managed on a per thread basis. The NDC class + is made up of static methods that operate on the context of the + calling thread. + + + How to push a message into the context + + using(NDC.Push("my context message")) + { + ... all log calls will have 'my context message' included ... + + } // at the end of the using block the message is automatically removed + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + Clears all the contextual information held on the current thread. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Clears the stack of NDC data held on the current thread. + + + + + + Creates a clone of the stack of context information. + + A clone of the context info for this thread. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + The results of this method can be passed to the + method to allow child threads to inherit the context of their + parent thread. + + + + + + Inherits the contextual information from another thread. + + The context stack to inherit. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + This thread will use the context information from the stack + supplied. This can be used to initialize child threads with + the same contextual information as their parent threads. These + contexts will NOT be shared. Any further contexts that + are pushed onto the stack will not be visible to the other. + Call to obtain a stack to pass to + this method. + + + + + + Removes the top context from the stack. + + + The message in the context that was removed from the top + of the stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Remove the top context from the stack, and return + it to the caller. If the stack is empty then an + empty string (not null) is returned. + + + + + + Pushes a new context message. + + The new context message. + + An that can be used to clean up + the context stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Pushes a new context onto the context stack. An + is returned that can be used to clean up the context stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.NDC.Push("NDC_Message")) + { + log.Warn("This should have an NDC message"); + } + + + + + + Pushes a new context message. + + The new context message string format. + Arguments to be passed into messageFormat. + + An that can be used to clean up + the context stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Pushes a new context onto the context stack. An + is returned that can be used to clean up the context stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + var someValue = "ExampleContext" + using(log4net.NDC.PushFormat("NDC_Message {0}", someValue)) + { + log.Warn("This should have an NDC message"); + } + + + + + + Removes the context information for this thread. It is + not required to call this method. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + This method is not implemented. + + + + + + Forces the stack depth to be at most . + + The maximum depth of the stack + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Forces the stack depth to be at most . + This may truncate the head of the stack. This only affects the + stack in the current thread. Also it does not prevent it from + growing, it only sets the maximum depth at the time of the + call. This can be used to return to a known context depth. + + + + + + Gets the current context depth. + + The current context depth. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + The number of context values pushed onto the context stack. + + + Used to record the current depth of the context. This can then + be restored using the method. + + + + + + + The log4net Thread Context. + + + + The ThreadContext provides a location for thread specific debugging + information to be stored. + The ThreadContext properties override any + properties with the same name. + + + The thread context has a properties map and a stack. + The properties and stack can + be included in the output of log messages. The + supports selecting and outputting these properties. + + + The Thread Context provides a diagnostic context for the current thread. + This is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The Thread Context is managed on a per thread basis. + + + Example of using the thread context properties to store a username. + + ThreadContext.Properties["user"] = userName; + log.Info("This log message has a ThreadContext Property called 'user'"); + + + Example of how to push a message into the context stack + + using(ThreadContext.Stacks["NDC"].Push("my context message")) + { + log.Info("This log message has a ThreadContext Stack message that includes 'my context message'"); + + } // at the end of the using block the message is automatically popped + + + + Nicko Cadell + + + + Private Constructor. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + The thread context properties instance + + + + + The thread context stacks instance + + + + + The thread properties map + + + The thread properties map + + + + The ThreadContext properties override any + properties with the same name. + + + + + + The thread stacks + + + stack map + + + + The thread local stacks. + + + + + diff --git a/packages/log4net.2.0.8/lib/net35-full/log4net.dll b/packages/log4net.2.0.8/lib/net35-full/log4net.dll new file mode 100644 index 0000000..24affb7 Binary files /dev/null and b/packages/log4net.2.0.8/lib/net35-full/log4net.dll differ diff --git a/packages/log4net.2.0.8/lib/net35-full/log4net.xml b/packages/log4net.2.0.8/lib/net35-full/log4net.xml new file mode 100644 index 0000000..df56743 --- /dev/null +++ b/packages/log4net.2.0.8/lib/net35-full/log4net.xml @@ -0,0 +1,32464 @@ + + + + log4net + + + + + Appender that logs to a database. + + + + appends logging events to a table within a + database. The appender can be configured to specify the connection + string by setting the property. + The connection type (provider) can be specified by setting the + property. For more information on database connection strings for + your specific database see http://www.connectionstrings.com/. + + + Records are written into the database either using a prepared + statement or a stored procedure. The property + is set to (System.Data.CommandType.Text) to specify a prepared statement + or to (System.Data.CommandType.StoredProcedure) to specify a stored + procedure. + + + The prepared statement text or the name of the stored procedure + must be set in the property. + + + The prepared statement or stored procedure can take a number + of parameters. Parameters are added using the + method. This adds a single to the + ordered list of parameters. The + type may be subclassed if required to provide database specific + functionality. The specifies + the parameter name, database type, size, and how the value should + be generated using a . + + + + An example of a SQL Server table that could be logged to: + + CREATE TABLE [dbo].[Log] ( + [ID] [int] IDENTITY (1, 1) NOT NULL , + [Date] [datetime] NOT NULL , + [Thread] [varchar] (255) NOT NULL , + [Level] [varchar] (20) NOT NULL , + [Logger] [varchar] (255) NOT NULL , + [Message] [varchar] (4000) NOT NULL + ) ON [PRIMARY] + + + + An example configuration to log to the above table: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Julian Biddle + Nicko Cadell + Gert Driesen + Lance Nehring + + + + Abstract base class implementation of that + buffers events in a fixed size buffer. + + + + This base class should be used by appenders that need to buffer a + number of events before logging them. For example the + buffers events and then submits the entire contents of the buffer to + the underlying database in one go. + + + Subclasses should override the + method to deliver the buffered events. + + The BufferingAppenderSkeleton maintains a fixed size cyclic + buffer of events. The size of the buffer is set using + the property. + + A is used to inspect + each event as it arrives in the appender. If the + triggers, then the current buffer is sent immediately + (see ). Otherwise the event + is stored in the buffer. For example, an evaluator can be used to + deliver the events immediately when an ERROR event arrives. + + + The buffering appender can be configured in a mode. + By default the appender is NOT lossy. When the buffer is full all + the buffered events are sent with . + If the property is set to true then the + buffer will not be sent when it is full, and new events arriving + in the appender will overwrite the oldest event in the buffer. + In lossy mode the buffer will only be sent when the + triggers. This can be useful behavior when you need to know about + ERROR events but not about events with a lower level, configure an + evaluator that will trigger when an ERROR event arrives, the whole + buffer will be sent which gives a history of events leading up to + the ERROR event. + + + Nicko Cadell + Gert Driesen + + + + Abstract base class implementation of . + + + + This class provides the code for common functionality, such + as support for threshold filtering and support for general filters. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + Implement this interface for your own strategies for printing log statements. + + + + Implementors should consider extending the + class which provides a default implementation of this interface. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Log the logging event in Appender specific way. + + The event to log + + + This method is called to log a message into this appender. + + + + + + Gets or sets the name of this appender. + + The name of the appender. + + The name uniquely identifies the appender. + + + + + Interface for appenders that support bulk logging. + + + + This interface extends the interface to + support bulk logging of objects. Appenders + should only implement this interface if they can bulk log efficiently. + + + Nicko Cadell + + + + Log the array of logging events in Appender specific way. + + The events to log + + + This method is called to log an array of events into this appender. + + + + + + Interface used to delay activate a configured object. + + + + This allows an object to defer activation of its options until all + options have been set. This is required for components which have + related options that remain ambiguous until all are set. + + + If a component implements this interface then the method + must be called by the container after its all the configured properties have been set + and before the component can be used. + + + Nicko Cadell + + + + Activate the options that were previously set with calls to properties. + + + + This allows an object to defer activation of its options until all + options have been set. This is required for components which have + related options that remain ambiguous until all are set. + + + If a component implements this interface then this method must be called + after its properties have been set before the component can be used. + + + + + + Interface that can be implemented by Appenders that buffer logging data and expose a method. + + + + + Flushes any buffered log data. + + + Appenders that implement the method must do so in a thread-safe manner: it can be called concurrently with + the method. + + Typically this is done by locking on the Appender instance, e.g.: + + + + + + The parameter is only relevant for appenders that process logging events asynchronously, + such as . + + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + Default constructor + + + Empty default constructor + + + + + Finalizes this appender by calling the implementation's + method. + + + + If this appender has not been closed then the Finalize method + will call . + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Closes the appender and release resources. + + + + Release any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + This method cannot be overridden by subclasses. This method + delegates the closing of the appender to the + method which must be overridden in the subclass. + + + + + + Performs threshold checks and invokes filters before + delegating actual logging to the subclasses specific + method. + + The event to log. + + + This method cannot be overridden by derived classes. A + derived class should override the method + which is called by this method. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + Calls and checks that + it returns true. + + + + + If all of the above steps succeed then the + will be passed to the abstract method. + + + + + + Performs threshold checks and invokes filters before + delegating actual logging to the subclasses specific + method. + + The array of events to log. + + + This method cannot be overridden by derived classes. A + derived class should override the method + which is called by this method. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + Calls and checks that + it returns true. + + + + + If all of the above steps succeed then the + will be passed to the method. + + + + + + Test if the logging event should we output by this appender + + the event to test + true if the event should be output, false if the event should be ignored + + + This method checks the logging event against the threshold level set + on this appender and also against the filters specified on this + appender. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + + + + + Adds a filter to the end of the filter chain. + + the filter to add to this appender + + + The Filters are organized in a linked list. + + + Setting this property causes the new filter to be pushed onto the + back of the filter chain. + + + + + + Clears the filter list for this appender. + + + + Clears the filter list for this appender. + + + + + + Checks if the message level is below this appender's threshold. + + to test against. + + + If there is no threshold set, then the return value is always true. + + + + true if the meets the + requirements of this appender. + + + + + Is called when the appender is closed. Derived classes should override + this method if resources need to be released. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Subclasses of should implement this method + to perform actual logging. + + The event to append. + + + A subclass must implement this method to perform + logging of the . + + This method will be called by + if all the conditions listed for that method are met. + + + To restrict the logging of events in the appender + override the method. + + + + + + Append a bulk array of logging events. + + the array of logging events + + + This base class implementation calls the + method for each element in the bulk array. + + + A sub class that can better process a bulk array of events should + override this method in addition to . + + + + + + Called before as a precondition. + + + + This method is called by + before the call to the abstract method. + + + This method can be overridden in a subclass to extend the checks + made before the event is passed to the method. + + + A subclass should ensure that they delegate this call to + this base class if it is overridden. + + + true if the call to should proceed. + + + + Renders the to a string. + + The event to render. + The event rendered as a string. + + + Helper method to render a to + a string. This appender must have a + set to render the to + a string. + + If there is exception data in the logging event and + the layout does not process the exception, this method + will append the exception text to the rendered string. + + + Where possible use the alternative version of this method + . + That method streams the rendering onto an existing Writer + which can give better performance if the caller already has + a open and ready for writing. + + + + + + Renders the to a string. + + The event to render. + The TextWriter to write the formatted event to + + + Helper method to render a to + a string. This appender must have a + set to render the to + a string. + + If there is exception data in the logging event and + the layout does not process the exception, this method + will append the exception text to the rendered string. + + + Use this method in preference to + where possible. If, however, the caller needs to render the event + to a string then does + provide an efficient mechanism for doing so. + + + + + + Flushes any buffered log data. + + + This implementation doesn't flush anything and always returns true + + True if all logging events were flushed successfully, else false. + + + + The layout of this appender. + + + See for more information. + + + + + The name of this appender. + + + See for more information. + + + + + The level threshold of this appender. + + + + There is no level threshold filtering by default. + + + See for more information. + + + + + + It is assumed and enforced that errorHandler is never null. + + + + It is assumed and enforced that errorHandler is never null. + + + See for more information. + + + + + + The first filter in the filter chain. + + + + Set to null initially. + + + See for more information. + + + + + + The last filter in the filter chain. + + + See for more information. + + + + + Flag indicating if this appender is closed. + + + See for more information. + + + + + The guard prevents an appender from repeatedly calling its own DoAppend method + + + + + StringWriter used to render events + + + + + The fully qualified type of the AppenderSkeleton class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the threshold of this appender. + + + The threshold of the appender. + + + + All log events with lower level than the threshold level are ignored + by the appender. + + + In configuration files this option is specified by setting the + value of the option to a level + string, such as "DEBUG", "INFO" and so on. + + + + + + Gets or sets the for this appender. + + The of the appender + + + The provides a default + implementation for the property. + + + + + + The filter chain. + + The head of the filter chain filter chain. + + + Returns the head Filter. The Filters are organized in a linked list + and so all Filters on this Appender are available through the result. + + + + + + Gets or sets the for this appender. + + The layout of the appender. + + + See for more information. + + + + + + + Gets or sets the name of this appender. + + The name of the appender. + + + The name uniquely identifies the appender. + + + + + + Tests if this appender requires a to be set. + + + + In the rather exceptional case, where the appender + implementation admits a layout but can also work without it, + then the appender should return true. + + + This default implementation always returns false. + + + + true if the appender requires a layout object, otherwise false. + + + + + The default buffer size. + + + The default size of the cyclic buffer used to store events. + This is set to 512 by default. + + + + + Initializes a new instance of the class. + + + + Protected default constructor to allow subclassing. + + + + + + Initializes a new instance of the class. + + the events passed through this appender must be + fixed by the time that they arrive in the derived class' SendBuffer method. + + + Protected constructor to allow subclassing. + + + The should be set if the subclass + expects the events delivered to be fixed even if the + is set to zero, i.e. when no buffering occurs. + + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Flush the currently buffered events + + + + Flushes any events that have been buffered. + + + If the appender is buffering in mode then the contents + of the buffer will NOT be flushed to the appender. + + + + + + Flush the currently buffered events + + set to true to flush the buffer of lossy events + + + Flushes events that have been buffered. If is + false then events will only be flushed if this buffer is non-lossy mode. + + + If the appender is buffering in mode then the contents + of the buffer will only be flushed if is true. + In this case the contents of the buffer will be tested against the + and if triggering will be output. All other buffered + events will be discarded. + + + If is true then the buffer will always + be emptied by calling this method. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Close this appender instance. + + + + Close this appender instance. If this appender is marked + as not then the remaining events in + the buffer must be sent when the appender is closed. + + + + + + This method is called by the method. + + the event to log + + + Stores the in the cyclic buffer. + + + The buffer will be sent (i.e. passed to the + method) if one of the following conditions is met: + + + + The cyclic buffer is full and this appender is + marked as not lossy (see ) + + + An is set and + it is triggered for the + specified. + + + + Before the event is stored in the buffer it is fixed + (see ) to ensure that + any data referenced by the event will be valid when the buffer + is processed. + + + + + + Sends the contents of the buffer. + + The first logging event. + The buffer containing the events that need to be send. + + + The subclass must override . + + + + + + Sends the events. + + The events that need to be send. + + + The subclass must override this method to process the buffered events. + + + + + + The size of the cyclic buffer used to hold the logging events. + + + Set to by default. + + + + + The cyclic buffer used to store the logging events. + + + + + The triggering event evaluator that causes the buffer to be sent immediately. + + + The object that is used to determine if an event causes the entire + buffer to be sent immediately. This field can be null, which + indicates that event triggering is not to be done. The evaluator + can be set using the property. If this appender + has the ( property) set to + true then an must be set. + + + + + Indicates if the appender should overwrite events in the cyclic buffer + when it becomes full, or if the buffer should be flushed when the + buffer is full. + + + If this field is set to true then an must + be set. + + + + + The triggering event evaluator filters discarded events. + + + The object that is used to determine if an event that is discarded should + really be discarded or if it should be sent to the appenders. + This field can be null, which indicates that all discarded events will + be discarded. + + + + + Value indicating which fields in the event should be fixed + + + By default all fields are fixed + + + + + The events delivered to the subclass must be fixed. + + + + + Gets or sets a value that indicates whether the appender is lossy. + + + true if the appender is lossy, otherwise false. The default is false. + + + + This appender uses a buffer to store logging events before + delivering them. A triggering event causes the whole buffer + to be send to the remote sink. If the buffer overruns before + a triggering event then logging events could be lost. Set + to false to prevent logging events + from being lost. + + If is set to true then an + must be specified. + + + + + Gets or sets the size of the cyclic buffer used to hold the + logging events. + + + The size of the cyclic buffer used to hold the logging events. + + + + The option takes a positive integer + representing the maximum number of logging events to collect in + a cyclic buffer. When the is reached, + oldest events are deleted as new events are added to the + buffer. By default the size of the cyclic buffer is 512 events. + + + If the is set to a value less than + or equal to 1 then no buffering will occur. The logging event + will be delivered synchronously (depending on the + and properties). Otherwise the event will + be buffered. + + + + + + Gets or sets the that causes the + buffer to be sent immediately. + + + The that causes the buffer to be + sent immediately. + + + + The evaluator will be called for each event that is appended to this + appender. If the evaluator triggers then the current buffer will + immediately be sent (see ). + + If is set to true then an + must be specified. + + + + + Gets or sets the value of the to use. + + + The value of the to use. + + + + The evaluator will be called for each event that is discarded from this + appender. If the evaluator triggers then the current buffer will immediately + be sent (see ). + + + + + + Gets or sets a value indicating if only part of the logging event data + should be fixed. + + + true if the appender should only fix part of the logging event + data, otherwise false. The default is false. + + + + Setting this property to true will cause only part of the + event data to be fixed and serialized. This will improve performance. + + + See for more information. + + + + + + Gets or sets a the fields that will be fixed in the event + + + The event fields that will be fixed before the event is buffered + + + + The logging event needs to have certain thread specific values + captured before it can be buffered. See + for details. + + + + + + + Initializes a new instance of the class. + + + Public default constructor to initialize a new instance of this class. + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Override the parent method to close the database + + + + Closes the database command and database connection. + + + + + + Inserts the events into the database. + + The events to insert into the database. + + + Insert all the events specified in the + array into the database. + + + + + + Adds a parameter to the command. + + The parameter to add to the command. + + + Adds a parameter to the ordered list of command parameters. + + + + + + Writes the events to the database using the transaction specified. + + The transaction that the events will be executed under. + The array of events to insert into the database. + + + The transaction argument can be null if the appender has been + configured not to use transactions. See + property for more information. + + + + + + Formats the log message into database statement text. + + The event being logged. + + This method can be overridden by subclasses to provide + more control over the format of the database statement. + + + Text that can be passed to a . + + + + + Creates an instance used to connect to the database. + + + This method is called whenever a new IDbConnection is needed (i.e. when a reconnect is necessary). + + The of the object. + The connectionString output from the ResolveConnectionString method. + An instance with a valid connection string. + + + + Resolves the connection string from the ConnectionString, ConnectionStringName, or AppSettingsKey + property. + + + ConnectiongStringName is only supported on .NET 2.0 and higher. + + Additional information describing the connection string. + A connection string used to connect to the database. + + + + Retrieves the class type of the ADO.NET provider. + + + + Gets the Type of the ADO.NET provider to use to connect to the + database. This method resolves the type specified in the + property. + + + Subclasses can override this method to return a different type + if necessary. + + + The of the ADO.NET provider + + + + Connects to the database. + + + + + Cleanup the existing connection. + + + Calls the IDbConnection's method. + + + + + The list of objects. + + + + The list of objects. + + + + + + The security context to use for privileged calls + + + + + The that will be used + to insert logging events into a database. + + + + + Database connection string. + + + + + The appSettings key from App.Config that contains the connection string. + + + + + The connectionStrings key from App.Config that contains the connection string. + + + + + String type name of the type name. + + + + + The text of the command. + + + + + The command type. + + + + + Indicates whether to use transactions when writing to the database. + + + + + Indicates whether to reconnect when a connection is lost. + + + + + The fully qualified type of the AdoNetAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the database connection string that is used to connect to + the database. + + + The database connection string used to connect to the database. + + + + The connections string is specific to the connection type. + See for more information. + + + Connection string for MS Access via ODBC: + "DSN=MS Access Database;UID=admin;PWD=;SystemDB=C:\data\System.mdw;SafeTransactions = 0;FIL=MS Access;DriverID = 25;DBQ=C:\data\train33.mdb" + + Another connection string for MS Access via ODBC: + "Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\Work\cvs_root\log4net-1.2\access.mdb;UID=;PWD=;" + + Connection string for MS Access via OLE DB: + "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Work\cvs_root\log4net-1.2\access.mdb;User Id=;Password=;" + + + + + The appSettings key from App.Config that contains the connection string. + + + + + The connectionStrings key from App.Config that contains the connection string. + + + This property requires at least .NET 2.0. + + + + + Gets or sets the type name of the connection + that should be created. + + + The type name of the connection. + + + + The type name of the ADO.NET provider to use. + + + The default is to use the OLE DB provider. + + + Use the OLE DB Provider. This is the default value. + System.Data.OleDb.OleDbConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Use the MS SQL Server Provider. + System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Use the ODBC Provider. + Microsoft.Data.Odbc.OdbcConnection,Microsoft.Data.Odbc,version=1.0.3300.0,publicKeyToken=b77a5c561934e089,culture=neutral + This is an optional package that you can download from + http://msdn.microsoft.com/downloads + search for ODBC .NET Data Provider. + + Use the Oracle Provider. + System.Data.OracleClient.OracleConnection, System.Data.OracleClient, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + This is an optional package that you can download from + http://msdn.microsoft.com/downloads + search for .NET Managed Provider for Oracle. + + + + + Gets or sets the command text that is used to insert logging events + into the database. + + + The command text used to insert logging events into the database. + + + + Either the text of the prepared statement or the + name of the stored procedure to execute to write into + the database. + + + The property determines if + this text is a prepared statement or a stored procedure. + + + If this property is not set, the command text is retrieved by invoking + . + + + + + + Gets or sets the command type to execute. + + + The command type to execute. + + + + This value may be either (System.Data.CommandType.Text) to specify + that the is a prepared statement to execute, + or (System.Data.CommandType.StoredProcedure) to specify that the + property is the name of a stored procedure + to execute. + + + The default value is (System.Data.CommandType.Text). + + + + + + Should transactions be used to insert logging events in the database. + + + true if transactions should be used to insert logging events in + the database, otherwise false. The default value is true. + + + + Gets or sets a value that indicates whether transactions should be used + to insert logging events in the database. + + + When set a single transaction will be used to insert the buffered events + into the database. Otherwise each event will be inserted without using + an explicit transaction. + + + + + + Gets or sets the used to call the NetSend method. + + + The used to call the NetSend method. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Should this appender try to reconnect to the database on error. + + + true if the appender should try to reconnect to the database after an + error has occurred, otherwise false. The default value is false, + i.e. not to try to reconnect. + + + + The default behaviour is for the appender not to try to reconnect to the + database if an error occurs. Subsequent logging events are discarded. + + + To force the appender to attempt to reconnect to the database set this + property to true. + + + When the appender attempts to connect to the database there may be a + delay of up to the connection timeout specified in the connection string. + This delay will block the calling application's thread. + Until the connection can be reestablished this potential delay may occur multiple times. + + + + + + Gets or sets the underlying . + + + The underlying . + + + creates a to insert + logging events into a database. Classes deriving from + can use this property to get or set this . Use the + underlying returned from if + you require access beyond that which provides. + + + + + Parameter type used by the . + + + + This class provides the basic database parameter properties + as defined by the interface. + + This type can be subclassed to provide database specific + functionality. The two methods that are called externally are + and . + + + + + + Initializes a new instance of the class. + + + Default constructor for the AdoNetAppenderParameter class. + + + + + Prepare the specified database command object. + + The command to prepare. + + + Prepares the database command object by adding + this parameter to its collection of parameters. + + + + + + Renders the logging event and set the parameter value in the command. + + The command containing the parameter. + The event to be rendered. + + + Renders the logging event using this parameters layout + object. Sets the value of the parameter on the command object. + + + + + + The name of this parameter. + + + + + The database type for this parameter. + + + + + Flag to infer type rather than use the DbType + + + + + The precision for this parameter. + + + + + The scale for this parameter. + + + + + The size for this parameter. + + + + + The to use to render the + logging event into an object for this parameter. + + + + + Gets or sets the name of this parameter. + + + The name of this parameter. + + + + The name of this parameter. The parameter name + must match up to a named parameter to the SQL stored procedure + or prepared statement. + + + + + + Gets or sets the database type for this parameter. + + + The database type for this parameter. + + + + The database type for this parameter. This property should + be set to the database type from the + enumeration. See . + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the type from the value. + + + + + + + Gets or sets the precision for this parameter. + + + The precision for this parameter. + + + + The maximum number of digits used to represent the Value. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the precision from the value. + + + + + + + Gets or sets the scale for this parameter. + + + The scale for this parameter. + + + + The number of decimal places to which Value is resolved. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the scale from the value. + + + + + + + Gets or sets the size for this parameter. + + + The size for this parameter. + + + + The maximum size, in bytes, of the data within the column. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the size from the value. + + + For BLOB data types like VARCHAR(max) it may be impossible to infer the value automatically, use -1 as the size in this case. + + + + + + + Gets or sets the to use to + render the logging event into an object for this + parameter. + + + The used to render the + logging event into an object for this parameter. + + + + The that renders the value for this + parameter. + + + The can be used to adapt + any into a + for use in the property. + + + + + + Appends logging events to the terminal using ANSI color escape sequences. + + + + AnsiColorTerminalAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific level of message to be set. + + + This appender expects the terminal to understand the VT100 control set + in order to interpret the color codes. If the terminal or console does not + understand the control codes the behavior is not defined. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes each message to the System.Console.Out or + System.Console.Error that is set at the time the event is appended. + Therefore it is possible to programmatically redirect the output of this appender + (for example NUnit does this to capture program output). While this is the desired + behavior of this appender it may have security implications in your application. + + + When configuring the ANSI colored terminal appender, a mapping should be + specified to map a logging level to a color. For example: + + + + + + + + + + + + + + + The Level is the standard log4net logging level and ForeColor and BackColor can be any + of the following values: + + Blue + Green + Red + White + Yellow + Purple + Cyan + + These color values cannot be combined together to make new colors. + + + The attributes can be any combination of the following: + + Brightforeground is brighter + Dimforeground is dimmer + Underscoremessage is underlined + Blinkforeground is blinking (does not work on all terminals) + Reverseforeground and background are reversed + Hiddenoutput is hidden + Strikethroughmessage has a line through it + + While any of these attributes may be combined together not all combinations + work well together, for example setting both Bright and Dim attributes makes + no sense. + + + Patrick Wagstrom + Nicko Cadell + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Ansi code to reset terminal + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Add a mapping of level to color + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colours + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + Target is the value of the console output stream. + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + The enum of possible display attributes + + + + The following flags can be combined together to + form the ANSI color attributes. + + + + + + + text is bright + + + + + text is dim + + + + + text is underlined + + + + + text is blinking + + + Not all terminals support this attribute + + + + + text and background colors are reversed + + + + + text is hidden + + + + + text is displayed with a strikethrough + + + + + text color is light + + + + + The enum of possible foreground or background color values for + use with the color mapping method + + + + The output can be in one for the following ANSI colors. + + + + + + + color is black + + + + + color is red + + + + + color is green + + + + + color is yellow + + + + + color is blue + + + + + color is magenta + + + + + color is cyan + + + + + color is white + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + An entry in the + + + + This is an abstract base class for types that are stored in the + object. + + + Nicko Cadell + + + + Default protected constructor + + + + Default protected constructor + + + + + + Initialize any options defined on this entry + + + + Should be overridden by any classes that need to initialise based on their options + + + + + + The level that is the key for this mapping + + + The that is the key for this mapping + + + + Get or set the that is the key for this + mapping subclass. + + + + + + Initialize the options for the object + + + + Combine the and together + and append the attributes. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level + + + + + + The color attributes for the specified level + + + + Required property. + The color attributes for the specified level + + + + + + The combined , and + suitable for setting the ansi terminal color. + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Creates a read-only wrapper for a AppenderCollection instance. + + list to create a readonly wrapper arround + + An AppenderCollection wrapper that is read-only. + + + + + An empty readonly static AppenderCollection + + + + + Initializes a new instance of the AppenderCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the AppenderCollection class + that has the specified initial capacity. + + + The number of elements that the new AppenderCollection is initially capable of storing. + + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified AppenderCollection. + + The AppenderCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Allow subclasses to avoid our default constructors + + + + + + + Copies the entire AppenderCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire AppenderCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Adds a to the end of the AppenderCollection. + + The to be added to the end of the AppenderCollection. + The index at which the value has been added. + + + + Removes all elements from the AppenderCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the AppenderCollection. + + The to check for. + true if is found in the AppenderCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the AppenderCollection. + + The to locate in the AppenderCollection. + + The zero-based index of the first occurrence of + in the entire AppenderCollection, if found; otherwise, -1. + + + + + Inserts an element into the AppenderCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the AppenderCollection. + + The to remove from the AppenderCollection. + + The specified was not found in the AppenderCollection. + + + + + Removes the element at the specified index of the AppenderCollection. + + The zero-based index of the element to remove. + + is less than zero + -or- + is equal to or greater than . + + + + + Returns an enumerator that can iterate through the AppenderCollection. + + An for the entire AppenderCollection. + + + + Adds the elements of another AppenderCollection to the current AppenderCollection. + + The AppenderCollection whose elements should be added to the end of the current AppenderCollection. + The new of the AppenderCollection. + + + + Adds the elements of a array to the current AppenderCollection. + + The array whose elements should be added to the end of the AppenderCollection. + The new of the AppenderCollection. + + + + Adds the elements of a collection to the current AppenderCollection. + + The collection whose elements should be added to the end of the AppenderCollection. + The new of the AppenderCollection. + + + + Sets the capacity to the actual number of elements. + + + + + Return the collection elements as an array + + the array + + + + is less than zero + -or- + is equal to or greater than . + + + + + is less than zero + -or- + is equal to or greater than . + + + + + Gets the number of elements actually contained in the AppenderCollection. + + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + The zero-based index of the element to get or set. + + is less than zero + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false + + + + Gets or sets the number of elements the AppenderCollection can contain. + + + + + Supports type-safe iteration over a . + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + + A value + + + + + Supports simple iteration over a . + + + + + + Initializes a new instance of the Enumerator class. + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + + + + + Appends log events to the ASP.NET system. + + + + + Diagnostic information and tracing messages that you specify are appended to the output + of the page that is sent to the requesting browser. Optionally, you can view this information + from a separate trace viewer (Trace.axd) that displays trace information for every page in a + given application. + + + Trace statements are processed and displayed only when tracing is enabled. You can control + whether tracing is displayed to a page, to the trace viewer, or both. + + + The logging event is passed to the or + method depending on the level of the logging event. + The event's logger name is the default value for the category parameter of the Write/Warn method. + + + Nicko Cadell + Gert Driesen + Ron Grabowski + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Write the logging event to the ASP.NET trace + + the event to log + + + Write the logging event to the ASP.NET trace + HttpContext.Current.Trace + (). + + + + + + Defaults to %logger + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + The category parameter sent to the Trace method. + + + + Defaults to %logger which will use the logger name of the current + as the category parameter. + + + + + + + + Buffers events and then forwards them to attached appenders. + + + + The events are buffered in this appender until conditions are + met to allow the appender to deliver the events to the attached + appenders. See for the + conditions that cause the buffer to be sent. + + The forwarding appender can be used to specify different + thresholds and filters for the same appender at different locations + within the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Interface for attaching appenders to objects. + + + + Interface for attaching, removing and retrieving appenders. + + + Nicko Cadell + Gert Driesen + + + + Attaches an appender. + + The appender to add. + + + Add the specified appender. The implementation may + choose to allow or deny duplicate appenders. + + + + + + Gets an attached appender with the specified name. + + The name of the appender to get. + + The appender with the name specified, or null if no appender with the + specified name is found. + + + + Returns an attached appender with the specified. + If no appender with the specified name is found null will be + returned. + + + + + + Removes all attached appenders. + + + + Removes and closes all attached appenders + + + + + + Removes the specified appender from the list of attached appenders. + + The appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Gets all attached appenders. + + + A collection of attached appenders. + + + + Gets a collection of attached appenders. + If there are no attached appenders the + implementation should return an empty + collection rather than null. + + + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Send the events. + + The events that need to be send. + + + Forwards the events to the attached appenders. + + + + + + Adds an to the list of appenders of this + instance. + + The to add to this appender. + + + If the specified is already in the list of + appenders, then it won't be added again. + + + + + + Looks for the appender with the specified name. + + The name of the appender to lookup. + + The appender with the specified name, or null. + + + + Get the named appender attached to this buffering appender. + + + + + + Removes all previously added appenders from this appender. + + + + This is useful when re-reading configuration information. + + + + + + Removes the specified appender from the list of appenders. + + The appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Implementation of the interface + + + + + Gets the appenders contained in this appender as an + . + + + If no appenders can be found, then an + is returned. + + + A collection of the appenders in this appender. + + + + + Appends logging events to the console. + + + + ColoredConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific type of message to be set. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes directly to the application's attached console + not to the System.Console.Out or System.Console.Error TextWriter. + The System.Console.Out and System.Console.Error streams can be + programmatically redirected (for example NUnit does this to capture program output). + This appender will ignore these redirections because it needs to use Win32 + API calls to colorize the output. To respect these redirections the + must be used. + + + When configuring the colored console appender, mapping should be + specified to map a logging level to a color. For example: + + + + + + + + + + + + + + The Level is the standard log4net logging level and ForeColor and BackColor can be any + combination of the following values: + + Blue + Green + Red + White + Yellow + Purple + Cyan + HighIntensity + + + + Rick Hobbs + Nicko Cadell + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + flag set to true to write to the console error stream + + When is set to true, output is written to + the standard error output stream. Otherwise, output is written to the standard + output stream. + + + + + Add a mapping of level to color - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colors + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + The console output stream writer to write to + + + + This writer is not thread safe. + + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + The enum of possible color values for use with the color mapping method + + + + The following flags can be combined together to + form the colors. + + + + + + + color is blue + + + + + color is green + + + + + color is red + + + + + color is white + + + + + color is yellow + + + + + color is purple + + + + + color is cyan + + + + + color is intensified + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + Initialize the options for the object + + + + Combine the and together. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level. + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level. + + + + + + The combined and suitable for + setting the console color. + + + + + Appends logging events to the console. + + + + ConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes each message to the System.Console.Out or + System.Console.Error that is set at the time the event is appended. + Therefore it is possible to programmatically redirect the output of this appender + (for example NUnit does this to capture program output). While this is the desired + behavior of this appender it may have security implications in your application. + + + Nicko Cadell + Gert Driesen + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + flag set to true to write to the console error stream + + When is set to true, output is written to + the standard error output stream. Otherwise, output is written to the standard + output stream. + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Appends log events to the system. + + + + The application configuration file can be used to control what listeners + are actually used. See the MSDN documentation for the + class for details on configuring the + debug system. + + + Events are written using the + method. The event's logger name is passed as the value for the category name to the Write method. + + + Nicko Cadell + + + + Initializes a new instance of the . + + + + Default constructor. + + + + + + Initializes a new instance of the + with a specified layout. + + The layout to use with this appender. + + + Obsolete constructor. + + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Writes the logging event to the system. + + The event to log. + + + Writes the logging event to the system. + If is true then the + is called. + + + + + + Immediate flush means that the underlying writer or output stream + will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logs events are not actually written to persistent media if and + when the application crashes. + + + The default value is true. + + + + + Defaults to a with %logger as the pattern. + + + + + Gets or sets a value that indicates whether the appender will + flush at the end of each write. + + + The default behavior is to flush at the end of each + write. If the option is set tofalse, then the underlying + stream can defer writing to physical medium to a later time. + + + Avoiding the flush operation at the end of each append results + in a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + + Formats the category parameter sent to the Debug method. + + + + Defaults to a with %logger as the pattern which will use the logger name of the current + as the category parameter. + + + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Writes events to the system event log. + + + + The appender will fail if you try to write using an event source that doesn't exist unless it is running with local administrator privileges. + See also http://logging.apache.org/log4net/release/faq.html#trouble-EventLog + + + The EventID of the event log entry can be + set using the EventID property () + on the . + + + The Category of the event log entry can be + set using the Category property () + on the . + + + There is a limit of 32K characters for an event log message + + + When configuring the EventLogAppender a mapping can be + specified to map a logging level to an event log entry type. For example: + + + <mapping> + <level value="ERROR" /> + <eventLogEntryType value="Error" /> + </mapping> + <mapping> + <level value="DEBUG" /> + <eventLogEntryType value="Information" /> + </mapping> + + + The Level is the standard log4net logging level and eventLogEntryType can be any value + from the enum, i.e.: + + Erroran error event + Warninga warning event + Informationan informational event + + + + Aspi Havewala + Douglas de la Torre + Nicko Cadell + Gert Driesen + Thomas Voss + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initializes a new instance of the class + with the specified . + + The to use with this appender. + + + Obsolete constructor. + + + + + + Add a mapping of level to - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the event log entry type for a level. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Create an event log source + + + Uses different API calls under NET_2_0 + + + + + This method is called by the + method. + + the event to log + + Writes the event to the system event log using the + . + + If the event has an EventID property (see ) + set then this integer will be used as the event log event id. + + + There is a limit of 32K characters for an event log message + + + + + + Get the equivalent for a + + the Level to convert to an EventLogEntryType + The equivalent for a + + Because there are fewer applicable + values to use in logging levels than there are in the + this is a one way mapping. There is + a loss of information during the conversion. + + + + + The log name is the section in the event logs where the messages + are stored. + + + + + Name of the application to use when logging. This appears in the + application column of the event log named by . + + + + + The name of the machine which holds the event log. This is + currently only allowed to be '.' i.e. the current machine. + + + + + Mapping from level object to EventLogEntryType + + + + + The security context to use for privileged calls + + + + + The event ID to use unless one is explicitly specified via the LoggingEvent's properties. + + + + + The event category to use unless one is explicitly specified via the LoggingEvent's properties. + + + + + The fully qualified type of the EventLogAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + The maximum size supported by default. + + + http://msdn.microsoft.com/en-us/library/xzwc042w(v=vs.100).aspx + The 32766 documented max size is two bytes shy of 32K (I'm assuming 32766 + may leave space for a two byte null terminator of #0#0). The 32766 max + length is what the .NET 4.0 source code checks for, but this is WRONG! + Strings with a length > 31839 on Windows Vista or higher can CORRUPT + the event log! See: System.Diagnostics.EventLogInternal.InternalWriteEvent() + for the use of the 32766 max size. + + + + + The maximum size supported by a windows operating system that is vista + or newer. + + + See ReportEvent API: + http://msdn.microsoft.com/en-us/library/aa363679(VS.85).aspx + ReportEvent's lpStrings parameter: + "A pointer to a buffer containing an array of + null-terminated strings that are merged into the message before Event Viewer + displays the string to the user. This parameter must be a valid pointer + (or NULL), even if wNumStrings is zero. Each string is limited to 31,839 characters." + + Going beyond the size of 31839 will (at some point) corrupt the event log on Windows + Vista or higher! It may succeed for a while...but you will eventually run into the + error: "System.ComponentModel.Win32Exception : A device attached to the system is + not functioning", and the event log will then be corrupt (I was able to corrupt + an event log using a length of 31877 on Windows 7). + + The max size for Windows Vista or higher is documented here: + http://msdn.microsoft.com/en-us/library/xzwc042w(v=vs.100).aspx. + Going over this size may succeed a few times but the buffer will overrun and + eventually corrupt the log (based on testing). + + The maxEventMsgSize size is based on the max buffer size of the lpStrings parameter of the ReportEvent API. + The documented max size for EventLog.WriteEntry for Windows Vista and higher is 31839, but I'm leaving room for a + terminator of #0#0, as we cannot see the source of ReportEvent (though we could use an API monitor to examine the + buffer, given enough time). + + + + + The maximum size that the operating system supports for + a event log message. + + + Used to determine the maximum string length that can be written + to the operating system event log and eventually truncate a string + that exceeds the limits. + + + + + This method determines the maximum event log message size allowed for + the current environment. + + + + + + The name of the log where messages will be stored. + + + The string name of the log where messages will be stored. + + + This is the name of the log as it appears in the Event Viewer + tree. The default value is to log into the Application + log, this is where most applications write their events. However + if you need a separate log for your application (or applications) + then you should set the appropriately. + This should not be used to distinguish your event log messages + from those of other applications, the + property should be used to distinguish events. This property should be + used to group together events into a single log. + + + + + + Property used to set the Application name. This appears in the + event logs when logging. + + + The string used to distinguish events from different sources. + + + Sets the event log source property. + + + + + This property is used to return the name of the computer to use + when accessing the event logs. Currently, this is the current + computer, denoted by a dot "." + + + The string name of the machine holding the event log that + will be logged into. + + + This property cannot be changed. It is currently set to '.' + i.e. the local machine. This may be changed in future. + + + + + Gets or sets the used to write to the EventLog. + + + The used to write to the EventLog. + + + + The system security context used to write to the EventLog. + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Gets or sets the EventId to use unless one is explicitly specified via the LoggingEvent's properties. + + + + The EventID of the event log entry will normally be + set using the EventID property () + on the . + This property provides the fallback value which defaults to 0. + + + + + + Gets or sets the Category to use unless one is explicitly specified via the LoggingEvent's properties. + + + + The Category of the event log entry will normally be + set using the Category property () + on the . + This property provides the fallback value which defaults to 0. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and its event log entry type. + + + + + + The for this entry + + + + Required property. + The for this entry + + + + + + Appends logging events to a file. + + + + Logging events are sent to the file specified by + the property. + + + The file can be opened in either append or overwrite mode + by specifying the property. + If the file path is relative it is taken as relative from + the application base directory. The file encoding can be + specified by setting the property. + + + The layout's and + values will be written each time the file is opened and closed + respectively. If the property is + then the file may contain multiple copies of the header and footer. + + + This appender will first try to open the file for writing when + is called. This will typically be during configuration. + If the file cannot be opened for writing the appender will attempt + to open the file again each time a message is logged to the appender. + If the file cannot be opened for writing when a message is logged then + the message will be discarded by this appender. + + + The supports pluggable file locking models via + the property. + The default behavior, implemented by + is to obtain an exclusive write lock on the file until this appender is closed. + The alternative models only hold a + write lock while the appender is writing a logging event () + or synchronize by using a named system wide Mutex (). + + + All locking strategies have issues and you should seriously consider using a different strategy that + avoids having multiple processes logging to the same file. + + + Nicko Cadell + Gert Driesen + Rodrigo B. de Oliveira + Douglas de la Torre + Niall Daley + + + + Sends logging events to a . + + + + An Appender that writes to a . + + + This appender may be used stand alone if initialized with an appropriate + writer, however it is typically used as a base class for an appender that + can open a to write to. + + + Nicko Cadell + Gert Driesen + Douglas de la Torre + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initializes a new instance of the class and + sets the output destination to a new initialized + with the specified . + + The layout to use with this appender. + The to output to. + + + Obsolete constructor. + + + + + + Initializes a new instance of the class and sets + the output destination to the specified . + + The layout to use with this appender + The to output to + + The must have been previously opened. + + + + Obsolete constructor. + + + + + + This method determines if there is a sense in attempting to append. + + + + This method checks if an output target has been set and if a + layout has been set. + + + false if any of the preconditions fail. + + + + This method is called by the + method. + + The event to log. + + + Writes a log statement to the output stream if the output stream exists + and is writable. + + + The format of the output will depend on the appender's layout. + + + + + + This method is called by the + method. + + The array of events to log. + + + This method writes all the bulk logged events to the output writer + before flushing the stream. + + + + + + Close this appender instance. The underlying stream or writer is also closed. + + + Closed appenders cannot be reused. + + + + + Writes the footer and closes the underlying . + + + + Writes the footer and closes the underlying . + + + + + + Closes the underlying . + + + + Closes the underlying . + + + + + + Clears internal references to the underlying + and other variables. + + + + Subclasses can override this method for an alternate closing behavior. + + + + + + Writes a footer as produced by the embedded layout's property. + + + + Writes a footer as produced by the embedded layout's property. + + + + + + Writes a header produced by the embedded layout's property. + + + + Writes a header produced by the embedded layout's property. + + + + + + Called to allow a subclass to lazily initialize the writer + + + + This method is called when an event is logged and the or + have not been set. This allows a subclass to + attempt to initialize the writer multiple times. + + + + + + This is the where logging events + will be written to. + + + + + Immediate flush means that the underlying + or output stream will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logging events are not actually persisted if and when the application + crashes. + + + The default value is true. + + + + + + The fully qualified type of the TextWriterAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Gets or set whether the appender will flush at the end + of each append operation. + + + + The default behavior is to flush at the end of each + append operation. + + + If this option is set to false, then the underlying + stream can defer persisting the logging event to a later + time. + + + + Avoiding the flush operation at the end of each append results in + a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + Sets the where the log output will go. + + + + The specified must be open and writable. + + + The will be closed when the appender + instance is closed. + + + Note: Logging to an unopened will fail. + + + + + + Gets or set the and the underlying + , if any, for this appender. + + + The for this appender. + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Gets or sets the where logging events + will be written to. + + + The where logging events are written. + + + + This is the where logging events + will be written to. + + + + + + Default constructor + + + + Default constructor + + + + + + Construct a new appender using the layout, file and append mode. + + the layout to use with this appender + the full path to the file to write to + flag to indicate if the file should be appended to + + + Obsolete constructor. + + + + + + Construct a new appender using the layout and file specified. + The file will be appended to. + + the layout to use with this appender + the full path to the file to write to + + + Obsolete constructor. + + + + + + Activate the options on the file appender. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + This will cause the file to be opened. + + + + + + Closes any previously opened file and calls the parent's . + + + + Resets the filename and the file stream. + + + + + + Close this appender instance. The underlying stream or writer is also closed. + + + + + Called to initialize the file writer + + + + Will be called for each logged message until the file is + successfully opened. + + + + + + This method is called by the + method. + + The event to log. + + + Writes a log statement to the output stream if the output stream exists + and is writable. + + + The format of the output will depend on the appender's layout. + + + + + + This method is called by the + method. + + The array of events to log. + + + Acquires the output file locks once before writing all the events to + the stream. + + + + + + Writes a footer as produced by the embedded layout's property. + + + + Writes a footer as produced by the embedded layout's property. + + + + + + Writes a header produced by the embedded layout's property. + + + + Writes a header produced by the embedded layout's property. + + + + + + Closes the underlying . + + + + Closes the underlying . + + + + + + Closes the previously opened file. + + + + Writes the to the file and then + closes the file. + + + + + + Sets and opens the file where the log output will go. The specified file must be writable. + + The path to the log file. Must be a fully qualified path. + If true will append to fileName. Otherwise will truncate fileName + + + Calls but guarantees not to throw an exception. + Errors are passed to the . + + + + + + Sets and opens the file where the log output will go. The specified file must be writable. + + The path to the log file. Must be a fully qualified path. + If true will append to fileName. Otherwise will truncate fileName + + + If there was already an opened file, then the previous file + is closed first. + + + This method will ensure that the directory structure + for the specified exists. + + + + + + Sets the quiet writer used for file output + + the file stream that has been opened for writing + + + This implementation of creates a + over the and passes it to the + method. + + + This method can be overridden by sub classes that want to wrap the + in some way, for example to encrypt the output + data using a System.Security.Cryptography.CryptoStream. + + + + + + Sets the quiet writer being used. + + the writer over the file stream that has been opened for writing + + + This method can be overridden by sub classes that want to + wrap the in some way. + + + + + + Convert a path into a fully qualified path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + + + + Flag to indicate if we should append to the file + or overwrite the file. The default is to append. + + + + + The name of the log file. + + + + + The encoding to use for the file stream. + + + + + The security context to use for privileged calls + + + + + The stream to log to. Has added locking semantics + + + + + The locking model to use + + + + + The fully qualified type of the FileAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the path to the file that logging will be written to. + + + The path to the file that logging will be written to. + + + + If the path is relative it is taken as relative from + the application base directory. + + + + + + Gets or sets a flag that indicates whether the file should be + appended to or overwritten. + + + Indicates whether the file should be appended to or overwritten. + + + + If the value is set to false then the file will be overwritten, if + it is set to true then the file will be appended to. + + The default value is true. + + + + + Gets or sets used to write to the file. + + + The used to write to the file. + + + + The default encoding set is + which is the encoding for the system's current ANSI code page. + + + + + + Gets or sets the used to write to the file. + + + The used to write to the file. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Gets or sets the used to handle locking of the file. + + + The used to lock the file. + + + + Gets or sets the used to handle locking of the file. + + + There are three built in locking models, , and . + The first locks the file from the start of logging to the end, the + second locks only for the minimal amount of time when logging each message + and the last synchronizes processes using a named system wide Mutex. + + + The default locking model is the . + + + + + + Write only that uses the + to manage access to an underlying resource. + + + + + True asynchronous writes are not supported, the implementation forces a synchronous write. + + + + + Exception base type for log4net. + + + + This type extends . It + does not add any new functionality but does differentiate the + type of exception being thrown. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + A message to include with the exception. + + + Initializes a new instance of the class with + the specified message. + + + + + + Constructor + + A message to include with the exception. + A nested exception to include. + + + Initializes a new instance of the class + with the specified message and inner exception. + + + + + + Serialization constructor + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Locking model base class + + + + Base class for the locking models available to the derived loggers. + + + + + + Open the output file + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Acquire the lock on the file in preparation for writing to it. + Return a stream pointing to the file. + must be called to release the lock on the output file. + + + + + + Release the lock on the file + + + + Release the lock on the file. No further writes will be made to the + stream until is called again. + + + + + + Helper method that creates a FileStream under CurrentAppender's SecurityContext. + + + + Typically called during OpenFile or AcquireLock. + + + If the directory portion of the does not exist, it is created + via Directory.CreateDirecctory. + + + + + + + + + + Helper method to close under CurrentAppender's SecurityContext. + + + Does not set to null. + + + + + + Gets or sets the for this LockingModel + + + The for this LockingModel + + + + The file appender this locking model is attached to and working on + behalf of. + + + The file appender is used to locate the security context and the error handler to use. + + + The value of this property will be set before is + called. + + + + + + Hold an exclusive lock on the output file + + + + Open the file once for writing and hold it open until is called. + Maintains an exclusive lock on the file during this time. + + + + + + Open the file specified and prepare for logging. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Does nothing. The lock is already taken + + + + + + Release the lock on the file + + + + Does nothing. The lock will be released when the file is closed. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Acquires the file lock for each write + + + + Opens the file once for each / cycle, + thus holding the lock for the minimal amount of time. This method of locking + is considerably slower than but allows + other processes to move/delete the log file whilst logging continues. + + + + + + Prepares to open the file when the first message is logged. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Acquire the lock on the file in preparation for writing to it. + Return a stream pointing to the file. + must be called to release the lock on the output file. + + + + + + Release the lock on the file + + + + Release the lock on the file. No further writes will be made to the + stream until is called again. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Provides cross-process file locking. + + Ron Grabowski + Steve Wranovsky + + + + Open the file specified and prepare for logging. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + - and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Does nothing. The lock is already taken + + + + + + Releases the lock and allows others to acquire a lock. + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + This appender forwards logging events to attached appenders. + + + + The forwarding appender can be used to specify different thresholds + and filters for the same appender at different locations within the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Forward the logging event to the attached appenders + + The event to log. + + + Delivers the logging event to all the attached appenders. + + + + + + Forward the logging events to the attached appenders + + The array of events to log. + + + Delivers the logging events to all the attached appenders. + + + + + + Adds an to the list of appenders of this + instance. + + The to add to this appender. + + + If the specified is already in the list of + appenders, then it won't be added again. + + + + + + Looks for the appender with the specified name. + + The name of the appender to lookup. + + The appender with the specified name, or null. + + + + Get the named appender attached to this appender. + + + + + + Removes all previously added appenders from this appender. + + + + This is useful when re-reading configuration information. + + + + + + Removes the specified appender from the list of appenders. + + The appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Implementation of the interface + + + + + Gets the appenders contained in this appender as an + . + + + If no appenders can be found, then an + is returned. + + + A collection of the appenders in this appender. + + + + + Logs events to a local syslog service. + + + + This appender uses the POSIX libc library functions openlog, syslog, and closelog. + If these functions are not available on the local system then this appender will not work! + + + The functions openlog, syslog, and closelog are specified in SUSv2 and + POSIX 1003.1-2001 standards. These are used to log messages to the local syslog service. + + + This appender talks to a local syslog service. If you need to log to a remote syslog + daemon and you cannot configure your local syslog service to do this you may be + able to use the to log via UDP. + + + Syslog messages must have a facility and and a severity. The severity + is derived from the Level of the logging event. + The facility must be chosen from the set of defined syslog + values. The facilities list is predefined + and cannot be extended. + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + Rob Lyon + Nicko Cadell + + + + Initializes a new instance of the class. + + + This instance of the class is set up to write + to a local syslog service. + + + + + Add a mapping of level to severity + + The mapping to add + + + Adds a to this appender. + + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to a remote syslog daemon. + + + The format of the output will depend on the appender's layout. + + + + + + Close the syslog when the appender is closed + + + + Close the syslog when the appender is closed + + + + + + Translates a log4net level to a syslog severity. + + A log4net level. + A syslog severity. + + + Translates a log4net level to a syslog severity. + + + + + + Generate a syslog priority. + + The syslog facility. + The syslog severity. + A syslog priority. + + + + The facility. The default facility is . + + + + + The message identity + + + + + Marshaled handle to the identity string. We have to hold on to the + string as the openlog and syslog APIs just hold the + pointer to the ident and dereference it for each log message. + + + + + Mapping from level object to syslog severity + + + + + Open connection to system logger. + + + + + Generate a log message. + + + + The libc syslog method takes a format string and a variable argument list similar + to the classic printf function. As this type of vararg list is not supported + by C# we need to specify the arguments explicitly. Here we have specified the + format string with a single message argument. The caller must set the format + string to "%s". + + + + + + Close descriptor used to write to system logger. + + + + + Message identity + + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + + + + Syslog facility + + + Set to one of the values. The list of + facilities is predefined and cannot be extended. The default value + is . + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + syslog severities + + + + The log4net Level maps to a syslog severity using the + method and the + class. The severity is set on . + + + + + + system is unusable + + + + + action must be taken immediately + + + + + critical conditions + + + + + error conditions + + + + + warning conditions + + + + + normal but significant condition + + + + + informational + + + + + debug-level messages + + + + + syslog facilities + + + + The syslog facility defines which subsystem the logging comes from. + This is set on the property. + + + + + + kernel messages + + + + + random user-level messages + + + + + mail system + + + + + system daemons + + + + + security/authorization messages + + + + + messages generated internally by syslogd + + + + + line printer subsystem + + + + + network news subsystem + + + + + UUCP subsystem + + + + + clock (cron/at) daemon + + + + + security/authorization messages (private) + + + + + ftp daemon + + + + + NTP subsystem + + + + + log audit + + + + + log alert + + + + + clock daemon + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + + + The mapped syslog severity for the specified level + + + + Required property. + The mapped syslog severity for the specified level + + + + + + Appends colorful logging events to the console, using the .NET 2 + built-in capabilities. + + + + ManagedColoredConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific type of message to be set. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + When configuring the colored console appender, mappings should be + specified to map logging levels to colors. For example: + + + + + + + + + + + + + + + + + + + + + + The Level is the standard log4net logging level while + ForeColor and BackColor are the values of + enumeration. + + + Based on the ColoredConsoleAppender + + + Rick Hobbs + Nicko Cadell + Pavlos Touboulidis + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Add a mapping of level to color - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colors + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level. + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level. + + + + + + Stores logging events in an array. + + + + The memory appender stores all the logging events + that are appended in an in-memory array. + + + Use the method to get + and clear the current list of events that have been appended. + + + Use the method to get the current + list of events that have been appended. Note there is a + race-condition when calling and + in pairs, you better use in that case. + + + Use the method to clear the + current list of events. Note there is a + race-condition when calling and + in pairs, you better use in that case. + + + Julian Biddle + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Gets the events that have been logged. + + The events that have been logged + + + Gets the events that have been logged. + + + + + + This method is called by the method. + + the event to log + + Stores the in the events list. + + + + + Clear the list of events + + + Clear the list of events + + + + + Gets the events that have been logged and clears the list of events. + + The events that have been logged + + + Gets the events that have been logged and clears the list of events. + + + + + + The list of events that have been appended. + + + + + Value indicating which fields in the event should be fixed + + + By default all fields are fixed + + + + + Gets or sets a value indicating whether only part of the logging event + data should be fixed. + + + true if the appender should only fix part of the logging event + data, otherwise false. The default is false. + + + + Setting this property to true will cause only part of the event + data to be fixed and stored in the appender, hereby improving performance. + + + See for more information. + + + + + + Gets or sets the fields that will be fixed in the event + + + + The logging event needs to have certain thread specific values + captured before it can be buffered. See + for details. + + + + + + Logs entries by sending network messages using the + native function. + + + + You can send messages only to names that are active + on the network. If you send the message to a user name, + that user must be logged on and running the Messenger + service to receive the message. + + + The receiver will get a top most window displaying the + messages one at a time, therefore this appender should + not be used to deliver a high volume of messages. + + + The following table lists some possible uses for this appender : + + + + + Action + Property Value(s) + + + Send a message to a user account on the local machine + + + = <name of the local machine> + + + = <user name> + + + + + Send a message to a user account on a remote machine + + + = <name of the remote machine> + + + = <user name> + + + + + Send a message to a domain user account + + + = <name of a domain controller | uninitialized> + + + = <user name> + + + + + Send a message to all the names in a workgroup or domain + + + = <workgroup name | domain name>* + + + + + Send a message from the local machine to a remote machine + + + = <name of the local machine | uninitialized> + + + = <name of the remote machine> + + + + + + + Note : security restrictions apply for sending + network messages, see + for more information. + + + + + An example configuration section to log information + using this appender from the local machine, named + LOCAL_PC, to machine OPERATOR_PC : + + + + + + + + + + Nicko Cadell + Gert Driesen + + + + The DNS or NetBIOS name of the server on which the function is to execute. + + + + + The sender of the network message. + + + + + The message alias to which the message should be sent. + + + + + The security context to use for privileged calls + + + + + Initializes the appender. + + + The default constructor initializes all fields to their default values. + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The appender will be ignored if no was specified. + + + The required property was not specified. + + + + This method is called by the method. + + The event to log. + + + Sends the event using a network message. + + + + + + Sends a buffer of information to a registered message alias. + + The DNS or NetBIOS name of the server on which the function is to execute. + The message alias to which the message buffer should be sent + The originator of the message. + The message text. + The length, in bytes, of the message text. + + + The following restrictions apply for sending network messages: + + + + + Platform + Requirements + + + Windows NT + + + No special group membership is required to send a network message. + + + Admin, Accounts, Print, or Server Operator group membership is required to + successfully send a network message on a remote server. + + + + + Windows 2000 or later + + + If you send a message on a domain controller that is running Active Directory, + access is allowed or denied based on the access control list (ACL) for the securable + object. The default ACL permits only Domain Admins and Account Operators to send a network message. + + + On a member server or workstation, only Administrators and Server Operators can send a network message. + + + + + + + For more information see Security Requirements for the Network Management Functions. + + + + + If the function succeeds, the return value is zero. + + + + + + Gets or sets the sender of the message. + + + The sender of the message. + + + If this property is not specified, the message is sent from the local computer. + + + + + Gets or sets the message alias to which the message should be sent. + + + The recipient of the message. + + + This property should always be specified in order to send a message. + + + + + Gets or sets the DNS or NetBIOS name of the remote server on which the function is to execute. + + + DNS or NetBIOS name of the remote server on which the function is to execute. + + + + For Windows NT 4.0 and earlier, the string should begin with \\. + + + If this property is not specified, the local computer is used. + + + + + + Gets or sets the used to call the NetSend method. + + + The used to call the NetSend method. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Appends log events to the OutputDebugString system. + + + + OutputDebugStringAppender appends log events to the + OutputDebugString system. + + + The string is passed to the native OutputDebugString + function. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Write the logging event to the output debug string API + + the event to log + + + Write the logging event to the output debug string API + + + + + + Stub for OutputDebugString native method + + the string to output + + + Stub for OutputDebugString native method + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Logs events to a remote syslog daemon. + + + + The BSD syslog protocol is used to remotely log to + a syslog daemon. The syslogd listens for for messages + on UDP port 514. + + + The syslog UDP protocol is not authenticated. Most syslog daemons + do not accept remote log messages because of the security implications. + You may be able to use the LocalSyslogAppender to talk to a local + syslog service. + + + There is an RFC 3164 that claims to document the BSD Syslog Protocol. + This RFC can be seen here: http://www.faqs.org/rfcs/rfc3164.html. + This appender generates what the RFC calls an "Original Device Message", + i.e. does not include the TIMESTAMP or HOSTNAME fields. By observation + this format of message will be accepted by all current syslog daemon + implementations. The daemon will attach the current time and the source + hostname or IP address to any messages received. + + + Syslog messages must have a facility and and a severity. The severity + is derived from the Level of the logging event. + The facility must be chosen from the set of defined syslog + values. The facilities list is predefined + and cannot be extended. + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + Rob Lyon + Nicko Cadell + + + + Sends logging events as connectionless UDP datagrams to a remote host or a + multicast group using an . + + + + UDP guarantees neither that messages arrive, nor that they arrive in the correct order. + + + To view the logging results, a custom application can be developed that listens for logging + events. + + + When decoding events send via this appender remember to use the same encoding + to decode the events as was used to send the events. See the + property to specify the encoding to use. + + + + This example shows how to log receive logging events that are sent + on IP address 244.0.0.1 and port 8080 to the console. The event is + encoded in the packet as a unicode string and it is decoded as such. + + IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0); + UdpClient udpClient; + byte[] buffer; + string loggingEvent; + + try + { + udpClient = new UdpClient(8080); + + while(true) + { + buffer = udpClient.Receive(ref remoteEndPoint); + loggingEvent = System.Text.Encoding.Unicode.GetString(buffer); + Console.WriteLine(loggingEvent); + } + } + catch(Exception e) + { + Console.WriteLine(e.ToString()); + } + + + Dim remoteEndPoint as IPEndPoint + Dim udpClient as UdpClient + Dim buffer as Byte() + Dim loggingEvent as String + + Try + remoteEndPoint = new IPEndPoint(IPAddress.Any, 0) + udpClient = new UdpClient(8080) + + While True + buffer = udpClient.Receive(ByRef remoteEndPoint) + loggingEvent = System.Text.Encoding.Unicode.GetString(buffer) + Console.WriteLine(loggingEvent) + Wend + Catch e As Exception + Console.WriteLine(e.ToString()) + End Try + + + An example configuration section to log information using this appender to the + IP 224.0.0.1 on port 8080: + + + + + + + + + + Gert Driesen + Nicko Cadell + + + + Initializes a new instance of the class. + + + The default constructor initializes all fields to their default values. + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The appender will be ignored if no was specified or + an invalid remote or local TCP port number was specified. + + + The required property was not specified. + The TCP port number assigned to or is less than or greater than . + + + + This method is called by the method. + + The event to log. + + + Sends the event using an UDP datagram. + + + Exceptions are passed to the . + + + + + + Closes the UDP connection and releases all resources associated with + this instance. + + + + Disables the underlying and releases all managed + and unmanaged resources associated with the . + + + + + + Initializes the underlying connection. + + + + The underlying is initialized and binds to the + port number from which you intend to communicate. + + + Exceptions are passed to the . + + + + + + The IP address of the remote host or multicast group to which + the logging event will be sent. + + + + + The TCP port number of the remote host or multicast group to + which the logging event will be sent. + + + + + The cached remote endpoint to which the logging events will be sent. + + + + + The TCP port number from which the will communicate. + + + + + The instance that will be used for sending the + logging events. + + + + + The encoding to use for the packet. + + + + + Gets or sets the IP address of the remote host or multicast group to which + the underlying should sent the logging event. + + + The IP address of the remote host or multicast group to which the logging event + will be sent. + + + + Multicast addresses are identified by IP class D addresses (in the range 224.0.0.0 to + 239.255.255.255). Multicast packets can pass across different networks through routers, so + it is possible to use multicasts in an Internet scenario as long as your network provider + supports multicasting. + + + Hosts that want to receive particular multicast messages must register their interest by joining + the multicast group. Multicast messages are not sent to networks where no host has joined + the multicast group. Class D IP addresses are used for multicast groups, to differentiate + them from normal host addresses, allowing nodes to easily detect if a message is of interest. + + + Static multicast addresses that are needed globally are assigned by IANA. A few examples are listed in the table below: + + + + + IP Address + Description + + + 224.0.0.1 + + + Sends a message to all system on the subnet. + + + + + 224.0.0.2 + + + Sends a message to all routers on the subnet. + + + + + 224.0.0.12 + + + The DHCP server answers messages on the IP address 224.0.0.12, but only on a subnet. + + + + + + + A complete list of actually reserved multicast addresses and their owners in the ranges + defined by RFC 3171 can be found at the IANA web site. + + + The address range 239.0.0.0 to 239.255.255.255 is reserved for administrative scope-relative + addresses. These addresses can be reused with other local groups. Routers are typically + configured with filters to prevent multicast traffic in this range from flowing outside + of the local network. + + + + + + Gets or sets the TCP port number of the remote host or multicast group to which + the underlying should sent the logging event. + + + An integer value in the range to + indicating the TCP port number of the remote host or multicast group to which the logging event + will be sent. + + + The underlying will send messages to this TCP port number + on the remote host or multicast group. + + The value specified is less than or greater than . + + + + Gets or sets the TCP port number from which the underlying will communicate. + + + An integer value in the range to + indicating the TCP port number from which the underlying will communicate. + + + + The underlying will bind to this port for sending messages. + + + Setting the value to 0 (the default) will cause the udp client not to bind to + a local port. + + + The value specified is less than or greater than . + + + + Gets or sets used to write the packets. + + + The used to write the packets. + + + + The used to write the packets. + + + + + + Gets or sets the underlying . + + + The underlying . + + + creates a to send logging events + over a network. Classes deriving from can use this + property to get or set this . Use the underlying + returned from if you require access beyond that which + provides. + + + + + Gets or sets the cached remote endpoint to which the logging events should be sent. + + + The cached remote endpoint to which the logging events will be sent. + + + The method will initialize the remote endpoint + with the values of the and + properties. + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Syslog port 514 + + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + Initializes a new instance of the class. + + + This instance of the class is set up to write + to a remote syslog daemon. + + + + + Add a mapping of level to severity + + The mapping to add + + + Add a mapping to this appender. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to a remote syslog daemon. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to syslog severity mappings set on this appender. + + + + + + Translates a log4net level to a syslog severity. + + A log4net level. + A syslog severity. + + + Translates a log4net level to a syslog severity. + + + + + + Generate a syslog priority. + + The syslog facility. + The syslog severity. + A syslog priority. + + + Generate a syslog priority. + + + + + + The facility. The default facility is . + + + + + The message identity + + + + + Mapping from level object to syslog severity + + + + + Message identity + + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + + + + Syslog facility + + + Set to one of the values. The list of + facilities is predefined and cannot be extended. The default value + is . + + + + + syslog severities + + + + The syslog severities. + + + + + + system is unusable + + + + + action must be taken immediately + + + + + critical conditions + + + + + error conditions + + + + + warning conditions + + + + + normal but significant condition + + + + + informational + + + + + debug-level messages + + + + + syslog facilities + + + + The syslog facilities + + + + + + kernel messages + + + + + random user-level messages + + + + + mail system + + + + + system daemons + + + + + security/authorization messages + + + + + messages generated internally by syslogd + + + + + line printer subsystem + + + + + network news subsystem + + + + + UUCP subsystem + + + + + clock (cron/at) daemon + + + + + security/authorization messages (private) + + + + + ftp daemon + + + + + NTP subsystem + + + + + log audit + + + + + log alert + + + + + clock daemon + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + + + The mapped syslog severity for the specified level + + + + Required property. + The mapped syslog severity for the specified level + + + + + + Delivers logging events to a remote logging sink. + + + + This Appender is designed to deliver events to a remote sink. + That is any object that implements the + interface. It delivers the events using .NET remoting. The + object to deliver events to is specified by setting the + appenders property. + + The RemotingAppender buffers events before sending them. This allows it to + make more efficient use of the remoting infrastructure. + + Once the buffer is full the events are still not sent immediately. + They are scheduled to be sent using a pool thread. The effect is that + the send occurs asynchronously. This is very important for a + number of non obvious reasons. The remoting infrastructure will + flow thread local variables (stored in the ), + if they are marked as , across the + remoting boundary. If the server is not contactable then + the remoting infrastructure will clear the + objects from the . To prevent a logging failure from + having side effects on the calling application the remoting call must be made + from a separate thread to the one used by the application. A + thread is used for this. If no thread is available then + the events will block in the thread pool manager until a thread is available. + + Because the events are sent asynchronously using pool threads it is possible to close + this appender before all the queued events have been sent. + When closing the appender attempts to wait until all the queued events have been sent, but + this will timeout after 30 seconds regardless. + + If this appender is being closed because the + event has fired it may not be possible to send all the queued events. During process + exit the runtime limits the time that a + event handler is allowed to run for. If the runtime terminates the threads before + the queued events have been sent then they will be lost. To ensure that all events + are sent the appender must be closed before the application exits. See + for details on how to shutdown + log4net programmatically. + + + Nicko Cadell + Gert Driesen + Daniel Cazzulino + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Send the contents of the buffer to the remote sink. + + + The events are not sent immediately. They are scheduled to be sent + using a pool thread. The effect is that the send occurs asynchronously. + This is very important for a number of non obvious reasons. The remoting + infrastructure will flow thread local variables (stored in the ), + if they are marked as , across the + remoting boundary. If the server is not contactable then + the remoting infrastructure will clear the + objects from the . To prevent a logging failure from + having side effects on the calling application the remoting call must be made + from a separate thread to the one used by the application. A + thread is used for this. If no thread is available then + the events will block in the thread pool manager until a thread is available. + + The events to send. + + + + Override base class close. + + + + This method waits while there are queued work items. The events are + sent asynchronously using work items. These items + will be sent once a thread pool thread is available to send them, therefore + it is possible to close the appender before all the queued events have been + sent. + + This method attempts to wait until all the queued events have been sent, but this + method will timeout after 30 seconds regardless. + + If the appender is being closed because the + event has fired it may not be possible to send all the queued events. During process + exit the runtime limits the time that a + event handler is allowed to run for. + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + A work item is being queued into the thread pool + + + + + A work item from the thread pool has completed + + + + + Send the contents of the buffer to the remote sink. + + + This method is designed to be used with the . + This method expects to be passed an array of + objects in the state param. + + the logging events to send + + + + The URL of the remote sink. + + + + + The local proxy (.NET remoting) for the remote logging sink. + + + + + The number of queued callbacks currently waiting or executing + + + + + Event used to signal when there are no queued work items + + + This event is set when there are no queued work items. In this + state it is safe to close the appender. + + + + + Gets or sets the URL of the well-known object that will accept + the logging events. + + + The well-known URL of the remote sink. + + + + The URL of the remoting sink that will accept logging events. + The sink must implement the + interface. + + + + + + Interface used to deliver objects to a remote sink. + + + This interface must be implemented by a remoting sink + if the is to be used + to deliver logging events to the sink. + + + + + Delivers logging events to the remote sink + + Array of events to log. + + + Delivers logging events to the remote sink + + + + + + Appender that rolls log files based on size or date or both. + + + + RollingFileAppender can roll log files based on size or date or both + depending on the setting of the property. + When set to the log file will be rolled + once its size exceeds the . + When set to the log file will be rolled + once the date boundary specified in the property + is crossed. + When set to the log file will be + rolled once the date boundary specified in the property + is crossed, but within a date boundary the file will also be rolled + once its size exceeds the . + When set to the log file will be rolled when + the appender is configured. This effectively means that the log file can be + rolled once per program execution. + + + A of few additional optional features have been added: + + Attach date pattern for current log file + Backup number increments for newer files + Infinite number of backups by file size + + + + + + For large or infinite numbers of backup files a + greater than zero is highly recommended, otherwise all the backup files need + to be renamed each time a new backup is created. + + + When Date/Time based rolling is used setting + to will reduce the number of file renamings to few or none. + + + + + + Changing or without clearing + the log file directory of backup files will cause unexpected and unwanted side effects. + + + + + If Date/Time based rolling is enabled this appender will attempt to roll existing files + in the directory without a Date/Time tag based on the last write date of the base log file. + The appender only rolls the log file when a message is logged. If Date/Time based rolling + is enabled then the appender will not roll the log file at the Date/Time boundary but + at the point when the next message is logged after the boundary has been crossed. + + + + The extends the and + has the same behavior when opening the log file. + The appender will first try to open the file for writing when + is called. This will typically be during configuration. + If the file cannot be opened for writing the appender will attempt + to open the file again each time a message is logged to the appender. + If the file cannot be opened for writing when a message is logged then + the message will be discarded by this appender. + + + When rolling a backup file necessitates deleting an older backup file the + file to be deleted is moved to a temporary name before being deleted. + + + + + A maximum number of backup files when rolling on date/time boundaries is not supported. + + + + Nicko Cadell + Gert Driesen + Aspi Havewala + Douglas de la Torre + Edward Smit + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Cleans up all resources used by this appender. + + + + + The fully qualified type of the RollingFileAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Sets the quiet writer being used. + + + This method can be overridden by sub classes. + + the writer to set + + + + Write out a logging event. + + the event to write to file. + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Write out an array of logging events. + + the events to write to file. + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Performs any required rolling before outputting the next event + + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Creates and opens the file for logging. If + is false then the fully qualified name is determined and used. + + the name of the file to open + true to append to existing file + + This method will ensure that the directory structure + for the specified exists. + + + + + Get the current output file name + + the base file name + the output file name + + The output file name is based on the base fileName specified. + If is set then the output + file name is the same as the base file passed in. Otherwise + the output file depends on the date pattern, on the count + direction or both. + + + + + Determines curSizeRollBackups (only within the current roll point) + + + + + Generates a wildcard pattern that can be used to find all files + that are similar to the base file name. + + + + + + + Builds a list of filenames for all files matching the base filename plus a file + pattern. + + + + + + + Initiates a roll over if needed for crossing a date boundary since the last run. + + + + + Initializes based on existing conditions at time of . + + + + Initializes based on existing conditions at time of . + The following is done + + determine curSizeRollBackups (only within the current roll point) + initiates a roll over if needed for crossing a date boundary since the last run. + + + + + + + Does the work of bumping the 'current' file counter higher + to the highest count when an incremental file name is seen. + The highest count is either the first file (when count direction + is greater than 0) or the last file (when count direction less than 0). + In either case, we want to know the highest count that is present. + + + + + + + Attempts to extract a number from the end of the file name that indicates + the number of the times the file has been rolled over. + + + Certain date pattern extensions like yyyyMMdd will be parsed as valid backup indexes. + + + + + + + Takes a list of files and a base file name, and looks for + 'incremented' versions of the base file. Bumps the max + count up to the highest count seen. + + + + + + + Calculates the RollPoint for the datePattern supplied. + + the date pattern to calculate the check period for + The RollPoint that is most accurate for the date pattern supplied + + Essentially the date pattern is examined to determine what the + most suitable roll point is. The roll point chosen is the roll point + with the smallest period that can be detected using the date pattern + supplied. i.e. if the date pattern only outputs the year, month, day + and hour then the smallest roll point that can be detected would be + and hourly roll point as minutes could not be detected. + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Sets initial conditions including date/time roll over information, first check, + scheduledFilename, and calls to initialize + the current number of backups. + + + + + + + + + .1, .2, .3, etc. + + + + + Rollover the file(s) to date/time tagged file(s). + + set to true if the file to be rolled is currently open + + + Rollover the file(s) to date/time tagged file(s). + Resets curSizeRollBackups. + If fileIsOpen is set then the new file is opened (through SafeOpenFile). + + + + + + Renames file to file . + + Name of existing file to roll. + New name for file. + + + Renames file to file . It + also checks for existence of target file and deletes if it does. + + + + + + Test if a file exists at a specified path + + the path to the file + true if the file exists + + + Test if a file exists at a specified path + + + + + + Deletes the specified file if it exists. + + The file to delete. + + + Delete a file if is exists. + The file is first moved to a new filename then deleted. + This allows the file to be removed even when it cannot + be deleted, but it still can be moved. + + + + + + Implements file roll base on file size. + + + + If the maximum number of size based backups is reached + (curSizeRollBackups == maxSizeRollBackups) then the oldest + file is deleted -- its index determined by the sign of countDirection. + If countDirection < 0, then files + {File.1, ..., File.curSizeRollBackups -1} + are renamed to {File.2, ..., + File.curSizeRollBackups}. Moreover, File is + renamed File.1 and closed. + + + A new file is created to receive further log output. + + + If maxSizeRollBackups is equal to zero, then the + File is truncated with no backup files created. + + + If maxSizeRollBackups < 0, then File is + renamed if needed and no files are deleted. + + + + + + Implements file roll. + + the base name to rename + + + If the maximum number of size based backups is reached + (curSizeRollBackups == maxSizeRollBackups) then the oldest + file is deleted -- its index determined by the sign of countDirection. + If countDirection < 0, then files + {File.1, ..., File.curSizeRollBackups -1} + are renamed to {File.2, ..., + File.curSizeRollBackups}. + + + If maxSizeRollBackups is equal to zero, then the + File is truncated with no backup files created. + + + If maxSizeRollBackups < 0, then File is + renamed if needed and no files are deleted. + + + This is called by to rename the files. + + + + + + Get the start time of the next window for the current rollpoint + + the current date + the type of roll point we are working with + the start time for the next roll point an interval after the currentDateTime date + + + Returns the date of the next roll point after the currentDateTime date passed to the method. + + + The basic strategy is to subtract the time parts that are less significant + than the rollpoint from the current time. This should roll the time back to + the start of the time window for the current rollpoint. Then we add 1 window + worth of time and get the start time of the next window for the rollpoint. + + + + + + This object supplies the current date/time. Allows test code to plug in + a method to control this class when testing date/time based rolling. The default + implementation uses the underlying value of DateTime.Now. + + + + + The date pattern. By default, the pattern is set to ".yyyy-MM-dd" + meaning daily rollover. + + + + + The actual formatted filename that is currently being written to + or will be the file transferred to on roll over + (based on staticLogFileName). + + + + + The timestamp when we shall next recompute the filename. + + + + + Holds date of last roll over + + + + + The type of rolling done + + + + + The default maximum file size is 10MB + + + + + There is zero backup files by default + + + + + How many sized based backups have been made so far + + + + + The rolling file count direction. + + + + + The rolling mode used in this appender. + + + + + Cache flag set if we are rolling by date. + + + + + Cache flag set if we are rolling by size. + + + + + Value indicating whether to always log to the same file. + + + + + Value indicating whether to preserve the file name extension when rolling. + + + + + FileName provided in configuration. Used for rolling properly + + + + + A mutex that is used to lock rolling of files. + + + + + The 1st of January 1970 in UTC + + + + + Gets or sets the strategy for determining the current date and time. The default + implementation is to use LocalDateTime which internally calls through to DateTime.Now. + DateTime.UtcNow may be used on frameworks newer than .NET 1.0 by specifying + . + + + An implementation of the interface which returns the current date and time. + + + + Gets or sets the used to return the current date and time. + + + There are two built strategies for determining the current date and time, + + and . + + + The default strategy is . + + + + + + Gets or sets the date pattern to be used for generating file names + when rolling over on date. + + + The date pattern to be used for generating file names when rolling + over on date. + + + + Takes a string in the same format as expected by + . + + + This property determines the rollover schedule when rolling over + on date. + + + + + + Gets or sets the maximum number of backup files that are kept before + the oldest is erased. + + + The maximum number of backup files that are kept before the oldest is + erased. + + + + If set to zero, then there will be no backup files and the log file + will be truncated when it reaches . + + + If a negative number is supplied then no deletions will be made. Note + that this could result in very slow performance as a large number of + files are rolled over unless is used. + + + The maximum applies to each time based group of files and + not the total. + + + + + + Gets or sets the maximum size that the output file is allowed to reach + before being rolled over to backup files. + + + The maximum size in bytes that the output file is allowed to reach before being + rolled over to backup files. + + + + This property is equivalent to except + that it is required for differentiating the setter taking a + argument from the setter taking a + argument. + + + The default maximum file size is 10MB (10*1024*1024). + + + + + + Gets or sets the maximum size that the output file is allowed to reach + before being rolled over to backup files. + + + The maximum size that the output file is allowed to reach before being + rolled over to backup files. + + + + This property allows you to specify the maximum size with the + suffixes "KB", "MB" or "GB" so that the size is interpreted being + expressed respectively in kilobytes, megabytes or gigabytes. + + + For example, the value "10KB" will be interpreted as 10240 bytes. + + + The default maximum file size is 10MB. + + + If you have the option to set the maximum file size programmatically + consider using the property instead as this + allows you to set the size in bytes as a . + + + + + + Gets or sets the rolling file count direction. + + + The rolling file count direction. + + + + Indicates if the current file is the lowest numbered file or the + highest numbered file. + + + By default newer files have lower numbers ( < 0), + i.e. log.1 is most recent, log.5 is the 5th backup, etc... + + + >= 0 does the opposite i.e. + log.1 is the first backup made, log.5 is the 5th backup made, etc. + For infinite backups use >= 0 to reduce + rollover costs. + + The default file count direction is -1. + + + + + Gets or sets the rolling style. + + The rolling style. + + + The default rolling style is . + + + When set to this appender's + property is set to false, otherwise + the appender would append to a single file rather than rolling + the file each time it is opened. + + + + + + Gets or sets a value indicating whether to preserve the file name extension when rolling. + + + true if the file name extension should be preserved. + + + + By default file.log is rolled to file.log.yyyy-MM-dd or file.log.curSizeRollBackup. + However, under Windows the new file name will loose any program associations as the + extension is changed. Optionally file.log can be renamed to file.yyyy-MM-dd.log or + file.curSizeRollBackup.log to maintain any program associations. + + + + + + Gets or sets a value indicating whether to always log to + the same file. + + + true if always should be logged to the same file, otherwise false. + + + + By default file.log is always the current file. Optionally + file.log.yyyy-mm-dd for current formatted datePattern can by the currently + logging file (or file.log.curSizeRollBackup or even + file.log.yyyy-mm-dd.curSizeRollBackup). + + + This will make time based rollovers with a large number of backups + much faster as the appender it won't have to rename all the backups! + + + + + + Style of rolling to use + + + + Style of rolling to use + + + + + + Roll files once per program execution + + + + Roll files once per program execution. + Well really once each time this appender is + configured. + + + Setting this option also sets AppendToFile to + false on the RollingFileAppender, otherwise + this appender would just be a normal file appender. + + + + + + Roll files based only on the size of the file + + + + + Roll files based only on the date + + + + + Roll files based on both the size and date of the file + + + + + The code assumes that the following 'time' constants are in a increasing sequence. + + + + The code assumes that the following 'time' constants are in a increasing sequence. + + + + + + Roll the log not based on the date + + + + + Roll the log for each minute + + + + + Roll the log for each hour + + + + + Roll the log twice a day (midday and midnight) + + + + + Roll the log each day (midnight) + + + + + Roll the log each week + + + + + Roll the log each month + + + + + This interface is used to supply Date/Time information to the . + + + This interface is used to supply Date/Time information to the . + Used primarily to allow test classes to plug themselves in so they can + supply test date/times. + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Default implementation of that returns the current time. + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Implementation of that returns the current time as the coordinated universal time (UTC). + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Send an e-mail when a specific logging event occurs, typically on errors + or fatal errors. + + + + The number of logging events delivered in this e-mail depend on + the value of option. The + keeps only the last + logging events in its + cyclic buffer. This keeps memory requirements at a reasonable level while + still delivering useful application context. + + + Authentication and setting the server Port are only available on the MS .NET 1.1 runtime. + For these features to be enabled you need to ensure that you are using a version of + the log4net assembly that is built against the MS .NET 1.1 framework and that you are + running the your application on the MS .NET 1.1 runtime. On all other platforms only sending + unauthenticated messages to a server listening on port 25 (the default) is supported. + + + Authentication is supported by setting the property to + either or . + If using authentication then the + and properties must also be set. + + + To set the SMTP server port use the property. The default port is 25. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Default constructor + + + + + + Sends the contents of the cyclic buffer as an e-mail message. + + The logging events to send. + + + + Send the email message + + the body text to include in the mail + + + + trims leading and trailing commas or semicolons + + + + + Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses (use semicolon on .NET 1.1 and comma for later versions). + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + + Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses + that will be carbon copied (use semicolon on .NET 1.1 and comma for later versions). + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + + Gets or sets a semicolon-delimited list of recipient e-mail addresses + that will be blind carbon copied. + + + A semicolon-delimited list of e-mail addresses. + + + + A semicolon-delimited list of recipient e-mail addresses. + + + + + + Gets or sets the e-mail address of the sender. + + + The e-mail address of the sender. + + + + The e-mail address of the sender. + + + + + + Gets or sets the subject line of the e-mail message. + + + The subject line of the e-mail message. + + + + The subject line of the e-mail message. + + + + + + Gets or sets the name of the SMTP relay mail server to use to send + the e-mail messages. + + + The name of the e-mail relay server. If SmtpServer is not set, the + name of the local SMTP server is used. + + + + The name of the e-mail relay server. If SmtpServer is not set, the + name of the local SMTP server is used. + + + + + + Obsolete + + + Use the BufferingAppenderSkeleton Fix methods instead + + + + Obsolete property. + + + + + + The mode to use to authentication with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + Valid Authentication mode values are: , + , and . + The default value is . When using + you must specify the + and to use to authenticate. + When using the Windows credentials for the current + thread, if impersonating, or the process will be used to authenticate. + + + + + + The username to use to authenticate with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + A and must be specified when + is set to , + otherwise the username will be ignored. + + + + + + The password to use to authenticate with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + A and must be specified when + is set to , + otherwise the password will be ignored. + + + + + + The port on which the SMTP server is listening + + + Server Port is only available on the MS .NET 1.1 runtime. + + The port on which the SMTP server is listening. The default + port is 25. The Port can only be changed when running on + the MS .NET 1.1 runtime. + + + + + + Gets or sets the priority of the e-mail message + + + One of the values. + + + + Sets the priority of the e-mails generated by this + appender. The default priority is . + + + If you are using this appender to report errors then + you may want to set the priority to . + + + + + + Enable or disable use of SSL when sending e-mail message + + + This is available on MS .NET 2.0 runtime and higher + + + + + Gets or sets the reply-to e-mail address. + + + This is available on MS .NET 2.0 runtime and higher + + + + + Gets or sets the subject encoding to be used. + + + The default encoding is the operating system's current ANSI codepage. + + + + + Gets or sets the body encoding to be used. + + + The default encoding is the operating system's current ANSI codepage. + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Values for the property. + + + + SMTP authentication modes. + + + + + + No authentication + + + + + Basic authentication. + + + Requires a username and password to be supplied + + + + + Integrated authentication + + + Uses the Windows credentials from the current thread or process to authenticate. + + + + + Send an email when a specific logging event occurs, typically on errors + or fatal errors. Rather than sending via smtp it writes a file into the + directory specified by . This allows services such + as the IIS SMTP agent to manage sending the messages. + + + + The configuration for this appender is identical to that of the SMTPAppender, + except that instead of specifying the SMTPAppender.SMTPHost you specify + . + + + The number of logging events delivered in this e-mail depend on + the value of option. The + keeps only the last + logging events in its + cyclic buffer. This keeps memory requirements at a reasonable level while + still delivering useful application context. + + + Niall Daley + Nicko Cadell + + + + Default constructor + + + + Default constructor + + + + + + Sends the contents of the cyclic buffer as an e-mail message. + + The logging events to send. + + + Sends the contents of the cyclic buffer as an e-mail message. + + + + + + Activate the options on this appender. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Convert a path into a fully qualified path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + + + + The security context to use for privileged calls + + + + + Gets or sets a semicolon-delimited list of recipient e-mail addresses. + + + A semicolon-delimited list of e-mail addresses. + + + + A semicolon-delimited list of e-mail addresses. + + + + + + Gets or sets the e-mail address of the sender. + + + The e-mail address of the sender. + + + + The e-mail address of the sender. + + + + + + Gets or sets the subject line of the e-mail message. + + + The subject line of the e-mail message. + + + + The subject line of the e-mail message. + + + + + + Gets or sets the path to write the messages to. + + + + Gets or sets the path to write the messages to. This should be the same + as that used by the agent sending the messages. + + + + + + Gets or sets the file extension for the generated files + + + The file extension for the generated files + + + + The file extension for the generated files + + + + + + Gets or sets the used to write to the pickup directory. + + + The used to write to the pickup directory. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Appender that allows clients to connect via Telnet to receive log messages + + + + The TelnetAppender accepts socket connections and streams logging messages + back to the client. + The output is provided in a telnet-friendly way so that a log can be monitored + over a TCP/IP socket. + This allows simple remote monitoring of application logging. + + + The default is 23 (the telnet port). + + + Keith Long + Nicko Cadell + + + + Default constructor + + + + Default constructor + + + + + + The fully qualified type of the TelnetAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Overrides the parent method to close the socket handler + + + + Closes all the outstanding connections. + + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Create the socket handler and wait for connections + + + + + + Writes the logging event to each connected client. + + The event to log. + + + Writes the logging event to each connected client. + + + + + + Gets or sets the TCP port number on which this will listen for connections. + + + An integer value in the range to + indicating the TCP port number on which this will listen for connections. + + + + The default value is 23 (the telnet port). + + + The value specified is less than + or greater than . + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Helper class to manage connected clients + + + + The SocketHandler class is used to accept connections from + clients. It is threaded so that clients can connect/disconnect + asynchronously. + + + + + + Opens a new server port on + + the local port to listen on for connections + + + Creates a socket handler on the specified local server port. + + + + + + Sends a string message to each of the connected clients + + the text to send + + + Sends a string message to each of the connected clients + + + + + + Add a client to the internal clients list + + client to add + + + + Remove a client from the internal clients list + + client to remove + + + + Callback used to accept a connection on the server socket + + The result of the asynchronous operation + + + On connection adds to the list of connections + if there are two many open connections you will be disconnected + + + + + + Close all network connections + + + + Make sure we close all network connections + + + + + + Test if this handler has active connections + + + true if this handler has active connections + + + + This property will be true while this handler has + active connections, that is at least one connection that + the handler will attempt to send a message to. + + + + + + Class that represents a client connected to this handler + + + + Class that represents a client connected to this handler + + + + + + Create this for the specified + + the client's socket + + + Opens a stream writer on the socket. + + + + + + Write a string to the client + + string to send + + + Write a string to the client + + + + + + Cleanup the clients connection + + + + Close the socket connection. + + + + + + Appends log events to the system. + + + + The application configuration file can be used to control what listeners + are actually used. See the MSDN documentation for the + class for details on configuring the + trace system. + + + Events are written using the System.Diagnostics.Trace.Write(string,string) + method. The event's logger name is the default value for the category parameter + of the Write method. + + + Compact Framework
+ The Compact Framework does not support the + class for any operation except Assert. When using the Compact Framework this + appender will write to the system rather than + the Trace system. This appender will therefore behave like the . +
+
+ Douglas de la Torre + Nicko Cadell + Gert Driesen + Ron Grabowski +
+ + + Initializes a new instance of the . + + + + Default constructor. + + + + + + Initializes a new instance of the + with a specified layout. + + The layout to use with this appender. + + + Obsolete constructor. + + + + + + Writes the logging event to the system. + + The event to log. + + + Writes the logging event to the system. + + + + + + Immediate flush means that the underlying writer or output stream + will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logs events are not actually written to persistent media if and + when the application crashes. + + + The default value is true. + + + + + Defaults to %logger + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Gets or sets a value that indicates whether the appender will + flush at the end of each write. + + + The default behavior is to flush at the end of each + write. If the option is set tofalse, then the underlying + stream can defer writing to physical medium to a later time. + + + Avoiding the flush operation at the end of each append results + in a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + + The category parameter sent to the Trace method. + + + + Defaults to %logger which will use the logger name of the current + as the category parameter. + + + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Assembly level attribute that specifies a domain to alias to this assembly's repository. + + + + AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. + + + An assembly's logger repository is defined by its , + however this can be overridden by an assembly loaded before the target assembly. + + + An assembly can alias another assembly's domain to its repository by + specifying this attribute with the name of the target domain. + + + This attribute can only be specified on the assembly and may be used + as many times as necessary to alias all the required domains. + + + Nicko Cadell + Gert Driesen + + + + Assembly level attribute that specifies a repository to alias to this assembly's repository. + + + + An assembly's logger repository is defined by its , + however this can be overridden by an assembly loaded before the target assembly. + + + An assembly can alias another assembly's repository to its repository by + specifying this attribute with the name of the target repository. + + + This attribute can only be specified on the assembly and may be used + as many times as necessary to alias all the required repositories. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class with + the specified repository to alias to this assembly's repository. + + The repository to alias to this assemby's repository. + + + Initializes a new instance of the class with + the specified repository to alias to this assembly's repository. + + + + + + Gets or sets the repository to alias to this assemby's repository. + + + The repository to alias to this assemby's repository. + + + + The name of the repository to alias to this assemby's repository. + + + + + + Initializes a new instance of the class with + the specified domain to alias to this assembly's repository. + + The domain to alias to this assemby's repository. + + + Obsolete. Use instead of . + + + + + + Use this class to quickly configure a . + + + + Allows very simple programmatic configuration of log4net. + + + Only one appender can be configured using this configurator. + The appender is set at the root of the hierarchy and all logging + events will be delivered to that appender. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + The fully qualified type of the BasicConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Initializes the log4net system with a default configuration. + + + + Initializes the log4net logging system using a + that will write to Console.Out. The log messages are + formatted using the layout object + with the + layout style. + + + + + + Initializes the log4net system using the specified appenders. + + The appenders to use to log all logging events. + + + Initializes the log4net system using the specified appenders. + + + + + + Initializes the log4net system using the specified appender. + + The appender to use to log all logging events. + + + Initializes the log4net system using the specified appender. + + + + + + Initializes the with a default configuration. + + The repository to configure. + + + Initializes the specified repository using a + that will write to Console.Out. The log messages are + formatted using the layout object + with the + layout style. + + + + + + Initializes the using the specified appender. + + The repository to configure. + The appender to use to log all logging events. + + + Initializes the using the specified appender. + + + + + + Initializes the using the specified appenders. + + The repository to configure. + The appenders to use to log all logging events. + + + Initializes the using the specified appender. + + + + + + Base class for all log4net configuration attributes. + + + This is an abstract class that must be extended by + specific configurators. This attribute allows the + configurator to be parameterized by an assembly level + attribute. + + Nicko Cadell + Gert Driesen + + + + Constructor used by subclasses. + + the ordering priority for this configurator + + + The is used to order the configurator + attributes before they are invoked. Higher priority configurators are executed + before lower priority ones. + + + + + + Configures the for the specified assembly. + + The assembly that this attribute was defined on. + The repository to configure. + + + Abstract method implemented by a subclass. When this method is called + the subclass should configure the . + + + + + + Compare this instance to another ConfiguratorAttribute + + the object to compare to + see + + + Compares the priorities of the two instances. + Sorts by priority in descending order. Objects with the same priority are + randomly ordered. + + + + + + Assembly level attribute that specifies the logging domain for the assembly. + + + + DomainAttribute is obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + Assemblies are mapped to logging domains. Each domain has its own + logging repository. This attribute specified on the assembly controls + the configuration of the domain. The property specifies the name + of the domain that this assembly is a part of. The + specifies the type of the repository objects to create for the domain. If + this attribute is not specified and a is not specified + then the assembly will be part of the default shared logging domain. + + + This attribute can only be specified on the assembly and may only be used + once per assembly. + + + Nicko Cadell + Gert Driesen + + + + Assembly level attribute that specifies the logging repository for the assembly. + + + + Assemblies are mapped to logging repository. This attribute specified + on the assembly controls + the configuration of the repository. The property specifies the name + of the repository that this assembly is a part of. The + specifies the type of the object + to create for the assembly. If this attribute is not specified or a + is not specified then the assembly will be part of the default shared logging repository. + + + This attribute can only be specified on the assembly and may only be used + once per assembly. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initialize a new instance of the class + with the name of the repository. + + The name of the repository. + + + Initialize the attribute with the name for the assembly's repository. + + + + + + Gets or sets the name of the logging repository. + + + The string name to use as the name of the repository associated with this + assembly. + + + + This value does not have to be unique. Several assemblies can share the + same repository. They will share the logging configuration of the repository. + + + + + + Gets or sets the type of repository to create for this assembly. + + + The type of repository to create for this assembly. + + + + The type of the repository to create for the assembly. + The type must implement the + interface. + + + This will be the type of repository created when + the repository is created. If multiple assemblies reference the + same repository then the repository is only created once using the + of the first assembly to call into the + repository. + + + + + + Initializes a new instance of the class. + + + + Obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + + + + Initialize a new instance of the class + with the name of the domain. + + The name of the domain. + + + Obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + + + + Use this class to initialize the log4net environment using an Xml tree. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + Configures a using an Xml tree. + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + + + Automatically configures the log4net system based on the + application's configuration settings. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + + + Automatically configures the using settings + stored in the application's configuration file. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + The repository to configure. + + + + Configures log4net using a log4net element + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Loads the log4net configuration from the XML element + supplied as . + + The element to parse. + + + + Configures the using the specified XML + element. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Loads the log4net configuration from the XML element + supplied as . + + The repository to configure. + The element to parse. + + + + Configures log4net using the specified configuration file. + + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures log4net using the specified configuration file. + + A stream to load the XML configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The stream to load the XML configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures log4net using the file specified, monitors the file for changes + and reloads the configuration if a change is detected. + + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the using the file specified, + monitors the file for changes and reloads the configuration if a change + is detected. + + The repository to configure. + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Assembly level attribute to configure the . + + + + AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + Nicko Cadell + Gert Driesen + + + + Assembly level attribute to configure the . + + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + If neither of the or + properties are set the configuration is loaded from the application's .config file. + If set the property takes priority over the + property. The property + specifies a path to a file to load the config from. The path is relative to the + application's base directory; . + The property is used as a postfix to the assembly file name. + The config file must be located in the application's base directory; . + For example in a console application setting the to + config has the same effect as not specifying the or + properties. + + + The property can be set to cause the + to watch the configuration file for changes. + + + + Log4net will only look for assembly level configuration attributes once. + When using the log4net assembly level attributes to control the configuration + of log4net you must ensure that the first call to any of the + methods is made from the assembly with the configuration + attributes. + + + If you cannot guarantee the order in which log4net calls will be made from + different assemblies you must use programmatic configuration instead, i.e. + call the method directly. + + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Default constructor + + + + + + Configures the for the specified assembly. + + The assembly that this attribute was defined on. + The repository to configure. + + + Configure the repository using the . + The specified must extend the + class otherwise the will not be able to + configure it. + + + The does not extend . + + + + Attempt to load configuration from the local file system + + The assembly that this attribute was defined on. + The repository to configure. + + + + Configure the specified repository using a + + The repository to configure. + the FileInfo pointing to the config file + + + + Attempt to load configuration from a URI + + The assembly that this attribute was defined on. + The repository to configure. + + + + The fully qualified type of the XmlConfiguratorAttribute class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the filename of the configuration file. + + + The filename of the configuration file. + + + + If specified, this is the name of the configuration file to use with + the . This file path is relative to the + application base directory (). + + + The takes priority over the . + + + + + + Gets or sets the extension of the configuration file. + + + The extension of the configuration file. + + + + If specified this is the extension for the configuration file. + The path to the config file is built by using the application + base directory (), + the assembly file name and the config file extension. + + + If the is set to MyExt then + possible config file names would be: MyConsoleApp.exe.MyExt or + MyClassLibrary.dll.MyExt. + + + The takes priority over the . + + + + + + Gets or sets a value indicating whether to watch the configuration file. + + + true if the configuration should be watched, false otherwise. + + + + If this flag is specified and set to true then the framework + will watch the configuration file and will reload the config each time + the file is modified. + + + The config file can only be watched if it is loaded from local disk. + In a No-Touch (Smart Client) deployment where the application is downloaded + from a web server the config file may not reside on the local disk + and therefore it may not be able to watch it. + + + Watching configuration is not supported on the SSCLI. + + + + + + Class to register for the log4net section of the configuration file + + + The log4net section of the configuration file needs to have a section + handler registered. This is the section handler used. It simply returns + the XML element that is the root of the section. + + + Example of registering the log4net section handler : + + + +
+ + + log4net configuration XML goes here + + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Parses the configuration section. + + The configuration settings in a corresponding parent configuration section. + The configuration context when called from the ASP.NET configuration system. Otherwise, this parameter is reserved and is a null reference. + The for the log4net section. + The for the log4net section. + + + Returns the containing the configuration data, + + + + + + Assembly level attribute that specifies a plugin to attach to + the repository. + + + + Specifies the type of a plugin to create and attach to the + assembly's repository. The plugin type must implement the + interface. + + + Nicko Cadell + Gert Driesen + + + + Interface used to create plugins. + + + + Interface used to create a plugin. + + + Nicko Cadell + Gert Driesen + + + + Creates the plugin object. + + the new plugin instance + + + Create and return a new plugin instance. + + + + + + Initializes a new instance of the class + with the specified type. + + The type name of plugin to create. + + + Create the attribute with the plugin type specified. + + + Where possible use the constructor that takes a . + + + + + + Initializes a new instance of the class + with the specified type. + + The type of plugin to create. + + + Create the attribute with the plugin type specified. + + + + + + Creates the plugin object defined by this attribute. + + + + Creates the instance of the object as + specified by this attribute. + + + The plugin object. + + + + Returns a representation of the properties of this object. + + + + Overrides base class method to + return a representation of the properties of this object. + + + A representation of the properties of this object + + + + Gets or sets the type for the plugin. + + + The type for the plugin. + + + + The type for the plugin. + + + + + + Gets or sets the type name for the plugin. + + + The type name for the plugin. + + + + The type name for the plugin. + + + Where possible use the property instead. + + + + + + Assembly level attribute to configure the . + + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + Nicko Cadell + + + + Construct provider attribute with type specified + + the type of the provider to use + + + The provider specified must subclass the + class. + + + + + + Configures the SecurityContextProvider + + The assembly that this attribute was defined on. + The repository to configure. + + + Creates a provider instance from the specified. + Sets this as the default security context provider . + + + + + + The fully qualified type of the SecurityContextProviderAttribute class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the type of the provider to use. + + + the type of the provider to use. + + + + The provider specified must subclass the + class. + + + + + + Use this class to initialize the log4net environment using an Xml tree. + + + + Configures a using an Xml tree. + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + + + Automatically configures the using settings + stored in the application's configuration file. + + + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + To use this method to configure log4net you must specify + the section + handler for the log4net configuration section. See the + for an example. + + + The repository to configure. + + + + Automatically configures the log4net system based on the + application's configuration settings. + + + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + To use this method to configure log4net you must specify + the section + handler for the log4net configuration section. See the + for an example. + + + + + + + Configures log4net using a log4net element + + + + Loads the log4net configuration from the XML element + supplied as . + + + The element to parse. + + + + Configures log4net using the specified configuration file. + + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The first element matching <configuration> will be read as the + configuration. If this file is also a .NET .config file then you must specify + a configuration section for the log4net element otherwise .NET will + complain. Set the type for the section handler to , for example: + + +
+ + + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures log4net using the specified configuration URI. + + A URI to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The must support the URI scheme specified. + + + + + + Configures log4net using the specified configuration data stream. + + A stream to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures the using the specified XML + element. + + + Loads the log4net configuration from the XML element + supplied as . + + The repository to configure. + The element to parse. + + + + Configures the using the specified configuration + file. + + The repository to configure. + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The first element matching <configuration> will be read as the + configuration. If this file is also a .NET .config file then you must specify + a configuration section for the log4net element otherwise .NET will + complain. Set the type for the section handler to , for example: + + +
+ + + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures the using the specified configuration + URI. + + The repository to configure. + A URI to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The must support the URI scheme specified. + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The stream to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures log4net using the file specified, monitors the file for changes + and reloads the configuration if a change is detected. + + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the using the file specified, + monitors the file for changes and reloads the configuration if a change + is detected. + + The repository to configure. + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the specified repository using a log4net element. + + The hierarchy to configure. + The element to parse. + + + Loads the log4net configuration from the XML element + supplied as . + + + This method is ultimately called by one of the Configure methods + to load the configuration from an . + + + + + + Maps repository names to ConfigAndWatchHandler instances to allow a particular + ConfigAndWatchHandler to dispose of its FileSystemWatcher when a repository is + reconfigured. + + + + + The fully qualified type of the XmlConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Class used to watch config files. + + + + Uses the to monitor + changes to a specified file. Because multiple change notifications + may be raised when the file is modified, a timer is used to + compress the notifications into a single event. The timer + waits for time before delivering + the event notification. If any further + change notifications arrive while the timer is waiting it + is reset and waits again for to + elapse. + + + + + + The default amount of time to wait after receiving notification + before reloading the config file. + + + + + Holds the FileInfo used to configure the XmlConfigurator + + + + + Holds the repository being configured. + + + + + The timer used to compress the notification events. + + + + + Watches file for changes. This object should be disposed when no longer + needed to free system handles on the watched resources. + + + + + Initializes a new instance of the class to + watch a specified config file used to configure a repository. + + The repository to configure. + The configuration file to watch. + + + Initializes a new instance of the class. + + + + + + Event handler used by . + + The firing the event. + The argument indicates the file that caused the event to be fired. + + + This handler reloads the configuration from the file when the event is fired. + + + + + + Event handler used by . + + The firing the event. + The argument indicates the file that caused the event to be fired. + + + This handler reloads the configuration from the file when the event is fired. + + + + + + Called by the timer when the configuration has been updated. + + null + + + + Release the handles held by the watcher and timer. + + + + + The implementation of the interface suitable + for use with the compact framework + + + + This implementation is a simple + mapping between repository name and + object. + + + The .NET Compact Framework 1.0 does not support retrieving assembly + level attributes therefore unlike the DefaultRepositorySelector + this selector does not examine the calling assembly for attributes. + + + Nicko Cadell + + + + Interface used by the to select the . + + + + The uses a + to specify the policy for selecting the correct + to return to the caller. + + + Nicko Cadell + Gert Driesen + + + + Gets the for the specified assembly. + + The assembly to use to lookup to the + The for the assembly. + + + Gets the for the specified assembly. + + + How the association between and + is made is not defined. The implementation may choose any method for + this association. The results of this method must be repeatable, i.e. + when called again with the same arguments the result must be the + save value. + + + + + + Gets the named . + + The name to use to lookup to the . + The named + + Lookup a named . This is the repository created by + calling . + + + + + Creates a new repository for the assembly specified. + + The assembly to use to create the domain to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the domain + specified such that a call to with the + same assembly specified will return the same repository instance. + + + How the association between and + is made is not defined. The implementation may choose any method for + this association. + + + + + + Creates a new repository with the name specified. + + The name to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the name + specified such that a call to with the + same name will return the same repository instance. + + + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets an array of all currently defined repositories. + + + An array of the instances created by + this . + + + Gets an array of all of the repositories created by this selector. + + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + Create a new repository selector + + the type of the repositories to create, must implement + + + Create an new compact repository selector. + The default type for repositories must be specified, + an appropriate value would be . + + + throw if is null + throw if does not implement + + + + Get the for the specified assembly + + not used + The default + + + The argument is not used. This selector does not create a + separate repository for each assembly. + + + As a named repository is not specified the default repository is + returned. The default repository is named log4net-default-repository. + + + + + + Get the named + + the name of the repository to lookup + The named + + + Get the named . The default + repository is log4net-default-repository. Other repositories + must be created using the . + If the named repository does not exist an exception is thrown. + + + throw if is null + throw if the does not exist + + + + Create a new repository for the assembly specified + + not used + the type of repository to create, must implement + the repository created + + + The argument is not used. This selector does not create a + separate repository for each assembly. + + + If the is null then the + default repository type specified to the constructor is used. + + + As a named repository is not specified the default repository is + returned. The default repository is named log4net-default-repository. + + + + + + Create a new repository for the repository specified + + the repository to associate with the + the type of repository to create, must implement . + If this param is null then the default repository type is used. + the repository created + + + The created will be associated with the repository + specified such that a call to with the + same repository specified will return the same repository instance. + + + If the named repository already exists an exception will be thrown. + + + If is null then the default + repository type specified to the constructor is used. + + + throw if is null + throw if the already exists + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets a list of objects + + an array of all known objects + + + Gets an array of all of the repositories created by this selector. + + + + + + The fully qualified type of the CompactRepositorySelector class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Notify the registered listeners that the repository has been created + + The repository that has been created + + + Raises the LoggerRepositoryCreatedEvent + event. + + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + The default implementation of the interface. + + + + Uses attributes defined on the calling assembly to determine how to + configure the hierarchy for the repository. + + + Nicko Cadell + Gert Driesen + + + + Creates a new repository selector. + + The type of the repositories to create, must implement + + + Create an new repository selector. + The default type for repositories must be specified, + an appropriate value would be . + + + is . + does not implement . + + + + Gets the for the specified assembly. + + The assembly use to lookup the . + + + The type of the created and the repository + to create can be overridden by specifying the + attribute on the . + + + The default values are to use the + implementation of the interface and to use the + as the name of the repository. + + + The created will be automatically configured using + any attributes defined on + the . + + + The for the assembly + is . + + + + Gets the for the specified repository. + + The repository to use to lookup the . + The for the specified repository. + + + Returns the named repository. If is null + a is thrown. If the repository + does not exist a is thrown. + + + Use to create a repository. + + + is . + does not exist. + + + + Create a new repository for the assembly specified + + the assembly to use to create the repository to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The type of the created and + the repository to create can be overridden by specifying the + attribute on the + . The default values are to use the + implementation of the + interface and to use the + as the name of the repository. + + + The created will be automatically + configured using any + attributes defined on the . + + + If a repository for the already exists + that repository will be returned. An error will not be raised and that + repository may be of a different type to that specified in . + Also the attribute on the + assembly may be used to override the repository type specified in + . + + + is . + + + + Creates a new repository for the assembly specified. + + the assembly to use to create the repository to associate with the . + The type of repository to create, must implement . + The name to assign to the created repository + Set to true to read and apply the assembly attributes + The repository created. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The type of the created and + the repository to create can be overridden by specifying the + attribute on the + . The default values are to use the + implementation of the + interface and to use the + as the name of the repository. + + + The created will be automatically + configured using any + attributes defined on the . + + + If a repository for the already exists + that repository will be returned. An error will not be raised and that + repository may be of a different type to that specified in . + Also the attribute on the + assembly may be used to override the repository type specified in + . + + + is . + + + + Creates a new repository for the specified repository. + + The repository to associate with the . + The type of repository to create, must implement . + If this param is then the default repository type is used. + The new repository. + + + The created will be associated with the repository + specified such that a call to with the + same repository specified will return the same repository instance. + + + is . + already exists. + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets a list of objects + + an array of all known objects + + + Gets an array of all of the repositories created by this selector. + + + + + + Aliases a repository to an existing repository. + + The repository to alias. + The repository that the repository is aliased to. + + + The repository specified will be aliased to the repository when created. + The repository must not already exist. + + + When the repository is created it must utilize the same repository type as + the repository it is aliased to, otherwise the aliasing will fail. + + + + is . + -or- + is . + + + + + Notifies the registered listeners that the repository has been created. + + The repository that has been created. + + + Raises the event. + + + + + + Gets the repository name and repository type for the specified assembly. + + The assembly that has a . + in/out param to hold the repository name to use for the assembly, caller should set this to the default value before calling. + in/out param to hold the type of the repository to create for the assembly, caller should set this to the default value before calling. + is . + + + + Configures the repository using information from the assembly. + + The assembly containing + attributes which define the configuration for the repository. + The repository to configure. + + is . + -or- + is . + + + + + Loads the attribute defined plugins on the assembly. + + The assembly that contains the attributes. + The repository to add the plugins to. + + is . + -or- + is . + + + + + Loads the attribute defined aliases on the assembly. + + The assembly that contains the attributes. + The repository to alias to. + + is . + -or- + is . + + + + + The fully qualified type of the DefaultRepositorySelector class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + Defined error codes that can be passed to the method. + + + + Values passed to the method. + + + Nicko Cadell + + + + A general error + + + + + Error while writing output + + + + + Failed to flush file + + + + + Failed to close file + + + + + Unable to open output file + + + + + No layout specified + + + + + Failed to parse address + + + + + An evaluator that triggers on an Exception type + + + + This evaluator will trigger if the type of the Exception + passed to + is equal to a Type in . /// + + + Drew Schaeffer + + + + Test if an triggers an action + + + + Implementations of this interface allow certain appenders to decide + when to perform an appender specific action. + + + The action or behavior triggered is defined by the implementation. + + + Nicko Cadell + + + + Test if this event triggers the action + + The event to check + true if this event triggers the action, otherwise false + + + Return true if this event triggers the action + + + + + + The type that causes the trigger to fire. + + + + + Causes subclasses of to cause the trigger to fire. + + + + + Default ctor to allow dynamic creation through a configurator. + + + + + Constructs an evaluator and initializes to trigger on + + the type that triggers this evaluator. + If true, this evaluator will trigger on subclasses of . + + + + Is this the triggering event? + + The event to check + This method returns true, if the logging event Exception + Type is . + Otherwise it returns false + + + This evaluator will trigger if the Exception Type of the event + passed to + is . + + + + + + The type that triggers this evaluator. + + + + + If true, this evaluator will trigger on subclasses of . + + + + + Appenders may delegate their error handling to an . + + + + Error handling is a particularly tedious to get right because by + definition errors are hard to predict and to reproduce. + + + Nicko Cadell + Gert Driesen + + + + Handles the error and information about the error condition is passed as + a parameter. + + The message associated with the error. + The that was thrown when the error occurred. + The error code associated with the error. + + + Handles the error and information about the error condition is passed as + a parameter. + + + + + + Prints the error message passed as a parameter. + + The message associated with the error. + The that was thrown when the error occurred. + + + See . + + + + + + Prints the error message passed as a parameter. + + The message associated with the error. + + + See . + + + + + + Interface for objects that require fixing. + + + + Interface that indicates that the object requires fixing before it + can be taken outside the context of the appender's + method. + + + When objects that implement this interface are stored + in the context properties maps + and + are fixed + (see ) the + method will be called. + + + Nicko Cadell + + + + Get a portable version of this object + + the portable instance of this object + + + Get a portable instance object that represents the current + state of this object. The portable object can be stored + and logged from any thread with identical results. + + + + + + Interface that all loggers implement + + + + This interface supports logging events and testing if a level + is enabled for logging. + + + These methods will not throw exceptions. Note to implementor, ensure + that the implementation of these methods cannot allow an exception + to be thrown to the caller. + + + Nicko Cadell + Gert Driesen + + + + This generic form is intended to be used by wrappers. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + the exception to log, including its stack trace. Pass null to not log an exception. + + + Generates a logging event for the specified using + the and . + + + + + + This is the most generic printing method that is intended to be used + by wrappers. + + The event being logged. + + + Logs the specified logging event through this logger. + + + + + + Checks if this logger is enabled for a given passed as parameter. + + The level to check. + + true if this logger is enabled for level, otherwise false. + + + + Test if this logger is going to log events of the specified . + + + + + + Gets the name of the logger. + + + The name of the logger. + + + + The name of this logger + + + + + + Gets the where this + Logger instance is attached to. + + + The that this logger belongs to. + + + + Gets the where this + Logger instance is attached to. + + + + + + Base interface for all wrappers + + + + Base interface for all wrappers. + + + All wrappers must implement this interface. + + + Nicko Cadell + + + + Get the implementation behind this wrapper object. + + + The object that in implementing this object. + + + + The object that in implementing this + object. The Logger object may not + be the same object as this object because of logger decorators. + This gets the actual underlying objects that is used to process + the log events. + + + + + + Delegate used to handle logger repository creation event notifications + + The which created the repository. + The event args + that holds the instance that has been created. + + + Delegate used to handle logger repository creation event notifications. + + + + + + Provides data for the event. + + + + A + event is raised every time a is created. + + + + + + The created + + + + + Construct instance using specified + + the that has been created + + + Construct instance using specified + + + + + + The that has been created + + + The that has been created + + + + The that has been created + + + + + + Defines the default set of levels recognized by the system. + + + + Each has an associated . + + + Levels have a numeric that defines the relative + ordering between levels. Two Levels with the same + are deemed to be equivalent. + + + The levels that are recognized by log4net are set for each + and each repository can have different levels defined. The levels are stored + in the on the repository. Levels are + looked up by name from the . + + + When logging at level INFO the actual level used is not but + the value of LoggerRepository.LevelMap["INFO"]. The default value for this is + , but this can be changed by reconfiguring the level map. + + + Each level has a in addition to its . The + is the string that is written into the output log. By default + the display name is the same as the level name, but this can be used to alias levels + or to localize the log output. + + + Some of the predefined levels recognized by the system are: + + + + . + + + . + + + . + + + . + + + . + + + . + + + . + + + + Nicko Cadell + Gert Driesen + + + + Constructor + + Integer value for this level, higher values represent more severe levels. + The string name of this level. + The display name for this level. This may be localized or otherwise different from the name + + + Initializes a new instance of the class with + the specified level name and value. + + + + + + Constructor + + Integer value for this level, higher values represent more severe levels. + The string name of this level. + + + Initializes a new instance of the class with + the specified level name and value. + + + + + + Returns the representation of the current + . + + + A representation of the current . + + + + Returns the level . + + + + + + Compares levels. + + The object to compare against. + true if the objects are equal. + + + Compares the levels of instances, and + defers to base class if the target object is not a + instance. + + + + + + Returns a hash code + + A hash code for the current . + + + Returns a hash code suitable for use in hashing algorithms and data + structures like a hash table. + + + Returns the hash code of the level . + + + + + + Compares this instance to a specified object and returns an + indication of their relative values. + + A instance or to compare with this instance. + + A 32-bit signed integer that indicates the relative order of the + values compared. The return value has these meanings: + + + Value + Meaning + + + Less than zero + This instance is less than . + + + Zero + This instance is equal to . + + + Greater than zero + + This instance is greater than . + -or- + is . + + + + + + + must be an instance of + or ; otherwise, an exception is thrown. + + + is not a . + + + + Returns a value indicating whether a specified + is greater than another specified . + + A + A + + true if is greater than + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is less than another specified . + + A + A + + true if is less than + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is greater than or equal to another specified . + + A + A + + true if is greater than or equal to + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is less than or equal to another specified . + + A + A + + true if is less than or equal to + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether two specified + objects have the same value. + + A or . + A or . + + true if the value of is the same as the + value of ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether two specified + objects have different values. + + A or . + A or . + + true if the value of is different from + the value of ; otherwise, false. + + + + Compares two levels. + + + + + + Compares two specified instances. + + The first to compare. + The second to compare. + + A 32-bit signed integer that indicates the relative order of the + two values compared. The return value has these meanings: + + + Value + Meaning + + + Less than zero + is less than . + + + Zero + is equal to . + + + Greater than zero + is greater than . + + + + + + Compares two levels. + + + + + + The level designates a higher level than all the rest. + + + + + The level designates very severe error events. + System unusable, emergencies. + + + + + The level designates very severe error events. + System unusable, emergencies. + + + + + The level designates very severe error events + that will presumably lead the application to abort. + + + + + The level designates very severe error events. + Take immediate action, alerts. + + + + + The level designates very severe error events. + Critical condition, critical. + + + + + The level designates very severe error events. + + + + + The level designates error events that might + still allow the application to continue running. + + + + + The level designates potentially harmful + situations. + + + + + The level designates informational messages + that highlight the progress of the application at the highest level. + + + + + The level designates informational messages that + highlight the progress of the application at coarse-grained level. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates the lowest level possible. + + + + + Gets the name of this level. + + + The name of this level. + + + + Gets the name of this level. + + + + + + Gets the value of this level. + + + The value of this level. + + + + Gets the value of this level. + + + + + + Gets the display name of this level. + + + The display name of this level. + + + + Gets the display name of this level. + + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Creates a read-only wrapper for a LevelCollection instance. + + list to create a readonly wrapper arround + + A LevelCollection wrapper that is read-only. + + + + + Initializes a new instance of the LevelCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the LevelCollection class + that has the specified initial capacity. + + + The number of elements that the new LevelCollection is initially capable of storing. + + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified LevelCollection. + + The LevelCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Allow subclasses to avoid our default constructors + + + + + + Copies the entire LevelCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire LevelCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Adds a to the end of the LevelCollection. + + The to be added to the end of the LevelCollection. + The index at which the value has been added. + + + + Removes all elements from the LevelCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the LevelCollection. + + The to check for. + true if is found in the LevelCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the LevelCollection. + + The to locate in the LevelCollection. + + The zero-based index of the first occurrence of + in the entire LevelCollection, if found; otherwise, -1. + + + + + Inserts an element into the LevelCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the LevelCollection. + + The to remove from the LevelCollection. + + The specified was not found in the LevelCollection. + + + + + Removes the element at the specified index of the LevelCollection. + + The zero-based index of the element to remove. + + is less than zero + -or- + is equal to or greater than . + + + + + Returns an enumerator that can iterate through the LevelCollection. + + An for the entire LevelCollection. + + + + Adds the elements of another LevelCollection to the current LevelCollection. + + The LevelCollection whose elements should be added to the end of the current LevelCollection. + The new of the LevelCollection. + + + + Adds the elements of a array to the current LevelCollection. + + The array whose elements should be added to the end of the LevelCollection. + The new of the LevelCollection. + + + + Adds the elements of a collection to the current LevelCollection. + + The collection whose elements should be added to the end of the LevelCollection. + The new of the LevelCollection. + + + + Sets the capacity to the actual number of elements. + + + + + is less than zero + -or- + is equal to or greater than . + + + + + is less than zero + -or- + is equal to or greater than . + + + + + Gets the number of elements actually contained in the LevelCollection. + + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + The zero-based index of the element to get or set. + + is less than zero + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false + + + + Gets or sets the number of elements the LevelCollection can contain. + + + + + Supports type-safe iteration over a . + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + A value + + + + + Supports simple iteration over a . + + + + + Initializes a new instance of the Enumerator class. + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + An evaluator that triggers at a threshold level + + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + Nicko Cadell + + + + The threshold for triggering + + + + + Create a new evaluator using the threshold. + + + + Create a new evaluator using the threshold. + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Create a new evaluator using the specified threshold. + + the threshold to trigger at + + + Create a new evaluator using the specified threshold. + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Is this the triggering event? + + The event to check + This method returns true, if the event level + is equal or higher than the . + Otherwise it returns false + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + the threshold to trigger at + + + The that will cause this evaluator to trigger + + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Mapping between string name and Level object + + + + Mapping between string name and object. + This mapping is held separately for each . + The level name is case insensitive. + + + Nicko Cadell + + + + Mapping from level name to Level object. The + level name is case insensitive + + + + + Construct the level map + + + + Construct the level map. + + + + + + Clear the internal maps of all levels + + + + Clear the internal maps of all levels + + + + + + Create a new Level and add it to the map + + the string to display for the Level + the level value to give to the Level + + + Create a new Level and add it to the map + + + + + + + Create a new Level and add it to the map + + the string to display for the Level + the level value to give to the Level + the display name to give to the Level + + + Create a new Level and add it to the map + + + + + + Add a Level to the map + + the Level to add + + + Add a Level to the map + + + + + + Lookup a named level from the map + + the name of the level to lookup is taken from this level. + If the level is not set on the map then this level is added + the level in the map with the name specified + + + Lookup a named level from the map. The name of the level to lookup is taken + from the property of the + argument. + + + If no level with the specified name is found then the + argument is added to the level map + and returned. + + + + + + Lookup a by name + + The name of the Level to lookup + a Level from the map with the name specified + + + Returns the from the + map with the name specified. If the no level is + found then null is returned. + + + + + + Return all possible levels as a list of Level objects. + + all possible levels as a list of Level objects + + + Return all possible levels as a list of Level objects. + + + + + + The internal representation of caller location information. + + + + This class uses the System.Diagnostics.StackTrace class to generate + a call stack. The caller's information is then extracted from this stack. + + + The System.Diagnostics.StackTrace class is not supported on the + .NET Compact Framework 1.0 therefore caller location information is not + available on that framework. + + + The System.Diagnostics.StackTrace class has this to say about Release builds: + + + "StackTrace information will be most informative with Debug build configurations. + By default, Debug builds include debug symbols, while Release builds do not. The + debug symbols contain most of the file, method name, line number, and column + information used in constructing StackFrame and StackTrace objects. StackTrace + might not report as many method calls as expected, due to code transformations + that occur during optimization." + + + This means that in a Release build the caller information may be incomplete or may + not exist at all! Therefore caller location information cannot be relied upon in a Release build. + + + Nicko Cadell + Gert Driesen + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + Constructor + + The declaring type of the method that is + the stack boundary into the logging system for this call. + + + Initializes a new instance of the + class based on the current thread. + + + + + + Constructor + + The fully qualified class name. + The method name. + The file name. + The line number of the method within the file. + + + Initializes a new instance of the + class with the specified data. + + + + + + The fully qualified type of the LocationInfo class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the fully qualified class name of the caller making the logging + request. + + + The fully qualified class name of the caller making the logging + request. + + + + Gets the fully qualified class name of the caller making the logging + request. + + + + + + Gets the file name of the caller. + + + The file name of the caller. + + + + Gets the file name of the caller. + + + + + + Gets the line number of the caller. + + + The line number of the caller. + + + + Gets the line number of the caller. + + + + + + Gets the method name of the caller. + + + The method name of the caller. + + + + Gets the method name of the caller. + + + + + + Gets all available caller information + + + All available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + Gets all available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + + + Gets the stack frames from the stack trace of the caller making the log request + + + + + Static manager that controls the creation of repositories + + + + Static manager that controls the creation of repositories + + + This class is used by the wrapper managers (e.g. ) + to provide access to the objects. + + + This manager also holds the that is used to + lookup and create repositories. The selector can be set either programmatically using + the property, or by setting the log4net.RepositorySelector + AppSetting in the applications config file to the fully qualified type name of the + selector to use. + + + Nicko Cadell + Gert Driesen + + + + Private constructor to prevent instances. Only static methods should be used. + + + + Private constructor to prevent instances. Only static methods should be used. + + + + + + Hook the shutdown event + + + + On the full .NET runtime, the static constructor hooks up the + AppDomain.ProcessExit and AppDomain.DomainUnload> events. + These are used to shutdown the log4net system as the application exits. + + + + + + Register for ProcessExit and DomainUnload events on the AppDomain + + + + This needs to be in a separate method because the events make + a LinkDemand for the ControlAppDomain SecurityPermission. Because + this is a LinkDemand it is demanded at JIT time. Therefore we cannot + catch the exception in the method itself, we have to catch it in the + caller. + + + + + + Return the default instance. + + the repository to lookup in + Return the default instance + + + Gets the for the repository specified + by the argument. + + + + + + Returns the default instance. + + The assembly to use to lookup the repository. + The default instance. + + + + Return the default instance. + + the repository to lookup in + Return the default instance + + + Gets the for the repository specified + by the argument. + + + + + + Returns the default instance. + + The assembly to use to lookup the repository. + The default instance. + + + Returns the default instance. + + + + + + Returns the named logger if it exists. + + The repository to lookup in. + The fully qualified logger name to look for. + + The logger found, or null if the named logger does not exist in the + specified repository. + + + + If the named logger exists (in the specified repository) then it + returns a reference to the logger, otherwise it returns + null. + + + + + + Returns the named logger if it exists. + + The assembly to use to lookup the repository. + The fully qualified logger name to look for. + + The logger found, or null if the named logger does not exist in the + specified assembly's repository. + + + + If the named logger exists (in the specified assembly's repository) then it + returns a reference to the logger, otherwise it returns + null. + + + + + + Returns all the currently defined loggers in the specified repository. + + The repository to lookup in. + All the defined loggers. + + + The root logger is not included in the returned array. + + + + + + Returns all the currently defined loggers in the specified assembly's repository. + + The assembly to use to lookup the repository. + All the defined loggers. + + + The root logger is not included in the returned array. + + + + + + Retrieves or creates a named logger. + + The repository to lookup in. + The name of the logger to retrieve. + The logger with the name specified. + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + + + + Retrieves or creates a named logger. + + The assembly to use to lookup the repository. + The name of the logger to retrieve. + The logger with the name specified. + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + + + + Shorthand for . + + The repository to lookup in. + The of which the fullname will be used as the name of the logger to retrieve. + The logger with the name specified. + + + Gets the logger for the fully qualified name of the type specified. + + + + + + Shorthand for . + + the assembly to use to lookup the repository + The of which the fullname will be used as the name of the logger to retrieve. + The logger with the name specified. + + + Gets the logger for the fully qualified name of the type specified. + + + + + + Shuts down the log4net system. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in all the + default repositories. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + The repository to shutdown. + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository for the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + The assembly to use to lookup the repository. + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository for the repository. The repository is looked up using + the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Resets all values contained in this repository instance to their defaults. + + The repository to reset. + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + + + + Resets all values contained in this repository instance to their defaults. + + The assembly to use to lookup the repository to reset. + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + + + + Creates a repository with the specified name. + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name. + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The name must be unique. Repositories cannot be redefined. + An Exception will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The name must be unique. Repositories cannot be redefined. + An Exception will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository for the specified assembly and repository type. + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + + + + Creates a repository for the specified assembly and repository type. + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + + + + Gets an array of all currently defined repositories. + + An array of all the known objects. + + + Gets an array of all currently defined repositories. + + + + + + Internal method to get pertinent version info. + + A string of version info. + + + + Called when the event fires + + the that is exiting + null + + + Called when the event fires. + + + When the event is triggered the log4net system is . + + + + + + Called when the event fires + + the that is exiting + null + + + Called when the event fires. + + + When the event is triggered the log4net system is . + + + + + + The fully qualified type of the LoggerManager class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Initialize the default repository selector + + + + + Gets or sets the repository selector used by the . + + + The repository selector used by the . + + + + The repository selector () is used by + the to create and select repositories + (). + + + The caller to supplies either a string name + or an assembly (if not supplied the assembly is inferred using + ). + + + This context is used by the selector to lookup a specific repository. + + + For the full .NET Framework, the default repository is DefaultRepositorySelector; + for the .NET Compact Framework CompactRepositorySelector is the default + repository. + + + + + + Implementation of the interface. + + + + This class should be used as the base for all wrapper implementations. + + + Nicko Cadell + Gert Driesen + + + + Constructs a new wrapper for the specified logger. + + The logger to wrap. + + + Constructs a new wrapper for the specified logger. + + + + + + The logger that this object is wrapping + + + + + Gets the implementation behind this wrapper object. + + + The object that this object is implementing. + + + + The Logger object may not be the same object as this object + because of logger decorators. + + + This gets the actual underlying objects that is used to process + the log events. + + + + + + Portable data structure used by + + + + Portable data structure used by + + + Nicko Cadell + + + + The logger name. + + + + The logger name. + + + + + + Level of logging event. + + + + Level of logging event. Level cannot be Serializable + because it is a flyweight. Due to its special serialization it + cannot be declared final either. + + + + + + The application supplied message. + + + + The application supplied message of logging event. + + + + + + The name of thread + + + + The name of thread in which this logging event was generated + + + + + + Gets or sets the local time the event was logged + + + + Prefer using the setter, since local time can be ambiguous. + + + + + + Location information for the caller. + + + + Location information for the caller. + + + + + + String representation of the user + + + + String representation of the user's windows name, + like DOMAIN\username + + + + + + String representation of the identity. + + + + String representation of the current thread's principal identity. + + + + + + The string representation of the exception + + + + The string representation of the exception + + + + + + String representation of the AppDomain. + + + + String representation of the AppDomain. + + + + + + Additional event specific properties + + + + A logger or an appender may attach additional + properties to specific events. These properties + have a string key and an object value. + + + + + + Gets or sets the UTC time the event was logged + + + + The TimeStamp is stored in the UTC time zone. + + + + + + Flags passed to the property + + + + Flags passed to the property + + + Nicko Cadell + + + + Fix the MDC + + + + + Fix the NDC + + + + + Fix the rendered message + + + + + Fix the thread name + + + + + Fix the callers location information + + + CAUTION: Very slow to generate + + + + + Fix the callers windows user name + + + CAUTION: Slow to generate + + + + + Fix the domain friendly name + + + + + Fix the callers principal name + + + CAUTION: May be slow to generate + + + + + Fix the exception text + + + + + Fix the event properties. Active properties must implement in order to be eligible for fixing. + + + + + No fields fixed + + + + + All fields fixed + + + + + Partial fields fixed + + + + This set of partial fields gives good performance. The following fields are fixed: + + + + + + + + + + + + + The internal representation of logging events. + + + + When an affirmative decision is made to log then a + instance is created. This instance + is passed around to the different log4net components. + + + This class is of concern to those wishing to extend log4net. + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + for incurred by calling but it + is essential to maintaining data consistency. + + + Nicko Cadell + Gert Driesen + Douglas de la Torre + Daniel Cazzulino + + + + The key into the Properties map for the host name value. + + + + + The key into the Properties map for the thread identity value. + + + + + The key into the Properties map for the user name value. + + + + + Initializes a new instance of the class + from the supplied parameters. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + The name of the logger of this event. + The level of this event. + The message of this event. + The exception for this event. + + + Except , and , + all fields of LoggingEvent are filled when actually needed. Call + to cache all data locally + to prevent inconsistencies. + + This method is called by the log4net framework + to create a logging event. + + + + + + Initializes a new instance of the class + using specific data. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + Data used to initialize the logging event. + The fields in the struct that have already been fixed. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + The parameter should be used to specify which fields in the + struct have been preset. Fields not specified in the + will be captured from the environment if requested or fixed. + + + + + + Initializes a new instance of the class + using specific data. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + Data used to initialize the logging event. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + This constructor sets this objects flags to , + this assumes that all the data relating to this event is passed in via the + parameter and no other data should be captured from the environment. + + + + + + Initializes a new instance of the class + using specific data. + + Data used to initialize the logging event. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + This constructor sets this objects flags to , + this assumes that all the data relating to this event is passed in via the + parameter and no other data should be captured from the environment. + + + + + + Serialization constructor + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Ensure that the repository is set. + + the value for the repository + + + + Write the rendered message to a TextWriter + + the writer to write the message to + + + Unlike the property this method + does store the message data in the internal cache. Therefore + if called only once this method should be faster than the + property, however if the message is + to be accessed multiple times then the property will be more efficient. + + + + + + Serializes this object into the provided. + + The to populate with data. + The destination for this serialization. + + + The data in this event must be fixed before it can be serialized. + + + The method must be called during the + method call if this event + is to be used outside that method. + + + + + + Gets the portable data for this . + + The for this event. + + + A new can be constructed using a + instance. + + + Does a fix of the data + in the logging event before returning the event data. + + + + + + Gets the portable data for this . + + The set of data to ensure is fixed in the LoggingEventData + The for this event. + + + A new can be constructed using a + instance. + + + + + + Returns this event's exception's rendered using the + . + + + This event's exception's rendered using the . + + + + Obsolete. Use instead. + + + + + + Returns this event's exception's rendered using the + . + + + This event's exception's rendered using the . + + + + Returns this event's exception's rendered using the + . + + + + + + Fix instance fields that hold volatile data. + + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + incurred by calling but it + is essential to maintaining data consistency. + + + Calling is equivalent to + calling passing the parameter + false. + + + See for more + information. + + + + + + Fixes instance fields that hold volatile data. + + Set to true to not fix data that takes a long time to fix. + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + for incurred by calling but it + is essential to maintaining data consistency. + + + The param controls the data that + is fixed. Some of the data that can be fixed takes a long time to + generate, therefore if you do not require those settings to be fixed + they can be ignored by setting the param + to true. This setting will ignore the + and settings. + + + Set to false to ensure that all + settings are fixed. + + + + + + Fix the fields specified by the parameter + + the fields to fix + + + Only fields specified in the will be fixed. + Fields will not be fixed if they have previously been fixed. + It is not possible to 'unfix' a field. + + + + + + Lookup a composite property in this event + + the key for the property to lookup + the value for the property + + + This event has composite properties that combine together properties from + several different contexts in the following order: + + + this events properties + + This event has that can be set. These + properties are specific to this event only. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + + + Get all the composite properties in this event + + the containing all the properties + + + See for details of the composite properties + stored by the event. + + + This method returns a single containing all the + properties defined for this event. + + + + + + The internal logging event data. + + + + + The internal logging event data. + + + + + The internal logging event data. + + + + + The fully qualified Type of the calling + logger class in the stack frame (i.e. the declaring type of the method). + + + + + The application supplied message of logging event. + + + + + The exception that was thrown. + + + This is not serialized. The string representation + is serialized instead. + + + + + The repository that generated the logging event + + + This is not serialized. + + + + + The fix state for this event + + + These flags indicate which fields have been fixed. + Not serialized. + + + + + Indicated that the internal cache is updateable (ie not fixed) + + + This is a seperate flag to m_fixFlags as it allows incrementel fixing and simpler + changes in the caching strategy. + + + + + Gets the time when the current process started. + + + This is the time when this process started. + + + + The TimeStamp is stored internally in UTC and converted to the local time zone for this computer. + + + Tries to get the start time for the current process. + Failing that it returns the time of the first call to + this property. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating and therefore + without the process start time being reset. + + + + + + Gets the UTC time when the current process started. + + + This is the UTC time when this process started. + + + + Tries to get the start time for the current process. + Failing that it returns the time of the first call to + this property. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating and therefore + without the process start time being reset. + + + + + + Gets the of the logging event. + + + The of the logging event. + + + + Gets the of the logging event. + + + + + + Gets the time of the logging event. + + + The time of the logging event. + + + + The TimeStamp is stored in UTC and converted to the local time zone for this computer. + + + + + + Gets UTC the time of the logging event. + + + The UTC time of the logging event. + + + + + Gets the name of the logger that logged the event. + + + The name of the logger that logged the event. + + + + Gets the name of the logger that logged the event. + + + + + + Gets the location information for this logging event. + + + The location information for this logging event. + + + + The collected information is cached for future use. + + + See the class for more information on + supported frameworks and the different behavior in Debug and + Release builds. + + + + + + Gets the message object used to initialize this event. + + + The message object used to initialize this event. + + + + Gets the message object used to initialize this event. + Note that this event may not have a valid message object. + If the event is serialized the message object will not + be transferred. To get the text of the message the + property must be used + not this property. + + + If there is no defined message object for this event then + null will be returned. + + + + + + Gets the exception object used to initialize this event. + + + The exception object used to initialize this event. + + + + Gets the exception object used to initialize this event. + Note that this event may not have a valid exception object. + If the event is serialized the exception object will not + be transferred. To get the text of the exception the + method must be used + not this property. + + + If there is no defined exception object for this event then + null will be returned. + + + + + + The that this event was created in. + + + + The that this event was created in. + + + + + + Gets the message, rendered through the . + + + The message rendered through the . + + + + The collected information is cached for future use. + + + + + + Gets the name of the current thread. + + + The name of the current thread, or the thread ID when + the name is not available. + + + + The collected information is cached for future use. + + + + + + Gets the name of the current user. + + + The name of the current user, or NOT AVAILABLE when the + underlying runtime has no support for retrieving the name of the + current user. + + + + Calls WindowsIdentity.GetCurrent().Name to get the name of + the current windows user. + + + To improve performance, we could cache the string representation of + the name, and reuse that as long as the identity stayed constant. + Once the identity changed, we would need to re-assign and re-render + the string. + + + However, the WindowsIdentity.GetCurrent() call seems to + return different objects every time, so the current implementation + doesn't do this type of caching. + + + Timing for these operations: + + + + Method + Results + + + WindowsIdentity.GetCurrent() + 10000 loops, 00:00:00.2031250 seconds + + + WindowsIdentity.GetCurrent().Name + 10000 loops, 00:00:08.0468750 seconds + + + + This means we could speed things up almost 40 times by caching the + value of the WindowsIdentity.GetCurrent().Name property, since + this takes (8.04-0.20) = 7.84375 seconds. + + + + + + Gets the identity of the current thread principal. + + + The string name of the identity of the current thread principal. + + + + Calls System.Threading.Thread.CurrentPrincipal.Identity.Name to get + the name of the current thread principal. + + + + + + Gets the AppDomain friendly name. + + + The AppDomain friendly name. + + + + Gets the AppDomain friendly name. + + + + + + Additional event specific properties. + + + Additional event specific properties. + + + + A logger or an appender may attach additional + properties to specific events. These properties + have a string key and an object value. + + + This property is for events that have been added directly to + this event. The aggregate properties (which include these + event properties) can be retrieved using + and . + + + Once the properties have been fixed this property + returns the combined cached properties. This ensures that updates to + this property are always reflected in the underlying storage. When + returning the combined properties there may be more keys in the + Dictionary than expected. + + + + + + The fixed fields in this event + + + The set of fields that are fixed in this event + + + + Fields will not be fixed if they have previously been fixed. + It is not possible to 'unfix' a field. + + + + + + Implementation of wrapper interface. + + + + This implementation of the interface + forwards to the held by the base class. + + + This logger has methods to allow the caller to log at the following + levels: + + + + DEBUG + + The and methods log messages + at the DEBUG level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + INFO + + The and methods log messages + at the INFO level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + WARN + + The and methods log messages + at the WARN level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + ERROR + + The and methods log messages + at the ERROR level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + FATAL + + The and methods log messages + at the FATAL level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + + The values for these levels and their semantic meanings can be changed by + configuring the for the repository. + + + Nicko Cadell + Gert Driesen + + + + The ILog interface is use by application to log messages into + the log4net framework. + + + + Use the to obtain logger instances + that implement this interface. The + static method is used to get logger instances. + + + This class contains methods for logging at different levels and also + has properties for determining if those logging levels are + enabled in the current configuration. + + + This interface can be implemented in different ways. This documentation + specifies reasonable behavior that a caller can expect from the actual + implementation, however different implementations reserve the right to + do things differently. + + + Simple example of logging messages + + ILog log = LogManager.GetLogger("application-log"); + + log.Info("Application Start"); + log.Debug("This is a debug message"); + + if (log.IsDebugEnabled) + { + log.Debug("This is another debug message"); + } + + + + + Nicko Cadell + Gert Driesen + + + Log a message object with the level. + + Log a message object with the level. + + The message object to log. + + + This method first checks if this logger is DEBUG + enabled by comparing the level of this logger with the + level. If this logger is + DEBUG enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Logs a message object with the level. + + + + This method first checks if this logger is INFO + enabled by comparing the level of this logger with the + level. If this logger is + INFO enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Logs a message object with the INFO level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Log a message object with the level. + + + + This method first checks if this logger is WARN + enabled by comparing the level of this logger with the + level. If this logger is + WARN enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Logs a message object with the level. + + The message object to log. + + + This method first checks if this logger is ERROR + enabled by comparing the level of this logger with the + level. If this logger is + ERROR enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Log a message object with the level. + + + + This method first checks if this logger is FATAL + enabled by comparing the level of this logger with the + level. If this logger is + FATAL enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + + This function is intended to lessen the computational cost of + disabled log debug statements. + + For some ILog interface log, when you write: + + log.Debug("This is entry number: " + i ); + + + You incur the cost constructing the message, string construction and concatenation in + this case, regardless of whether the message is logged or not. + + + If you are worried about speed (who isn't), then you should write: + + + if (log.IsDebugEnabled) + { + log.Debug("This is entry number: " + i ); + } + + + This way you will not incur the cost of parameter + construction if debugging is disabled for log. On + the other hand, if the log is debug enabled, you + will incur the cost of evaluating whether the logger is debug + enabled twice. Once in and once in + the . This is an insignificant overhead + since evaluating a logger takes about 1% of the time it + takes to actually log. This is the preferred style of logging. + + Alternatively if your logger is available statically then the is debug + enabled state can be stored in a static variable like this: + + + private static readonly bool isDebugEnabled = log.IsDebugEnabled; + + + Then when you come to log you can write: + + + if (isDebugEnabled) + { + log.Debug("This is entry number: " + i ); + } + + + This way the debug enabled state is only queried once + when the class is loaded. Using a private static readonly + variable is the most efficient because it is a run time constant + and can be heavily optimized by the JIT compiler. + + + Of course if you use a static readonly variable to + hold the enabled state of the logger then you cannot + change the enabled state at runtime to vary the logging + that is produced. You have to decide if you need absolute + speed or runtime flexibility. + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Construct a new wrapper for the specified logger. + + The logger to wrap. + + + Construct a new wrapper for the specified logger. + + + + + + Virtual method called when the configuration of the repository changes + + the repository holding the levels + + + Virtual method called when the configuration of the repository changes + + + + + + Logs a message object with the DEBUG level. + + The message object to log. + + + This method first checks if this logger is DEBUG + enabled by comparing the level of this logger with the + DEBUG level. If this logger is + DEBUG enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the DEBUG level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the DEBUG level including + the stack trace of the passed + as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the INFO level. + + The message object to log. + + + This method first checks if this logger is INFO + enabled by comparing the level of this logger with the + INFO level. If this logger is + INFO enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the INFO level. + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the INFO level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the WARN level. + + the message object to log + + + This method first checks if this logger is WARN + enabled by comparing the level of this logger with the + WARN level. If this logger is + WARN enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the WARN level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the WARN level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the ERROR level. + + The message object to log. + + + This method first checks if this logger is ERROR + enabled by comparing the level of this logger with the + ERROR level. If this logger is + ERROR enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the ERROR level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the ERROR level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the FATAL level. + + The message object to log. + + + This method first checks if this logger is FATAL + enabled by comparing the level of this logger with the + FATAL level. If this logger is + FATAL enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the FATAL level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the FATAL level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Event handler for the event + + the repository + Empty + + + + The fully qualified name of this declaring type not the type of any subclass. + + + + + Checks if this logger is enabled for the DEBUG + level. + + + true if this logger is enabled for DEBUG events, + false otherwise. + + + + This function is intended to lessen the computational cost of + disabled log debug statements. + + + For some log Logger object, when you write: + + + log.Debug("This is entry number: " + i ); + + + You incur the cost constructing the message, concatenation in + this case, regardless of whether the message is logged or not. + + + If you are worried about speed, then you should write: + + + if (log.IsDebugEnabled()) + { + log.Debug("This is entry number: " + i ); + } + + + This way you will not incur the cost of parameter + construction if debugging is disabled for log. On + the other hand, if the log is debug enabled, you + will incur the cost of evaluating whether the logger is debug + enabled twice. Once in IsDebugEnabled and once in + the Debug. This is an insignificant overhead + since evaluating a logger takes about 1% of the time it + takes to actually log. + + + + + + Checks if this logger is enabled for the INFO level. + + + true if this logger is enabled for INFO events, + false otherwise. + + + + See for more information and examples + of using this method. + + + + + + + Checks if this logger is enabled for the WARN level. + + + true if this logger is enabled for WARN events, + false otherwise. + + + + See for more information and examples + of using this method. + + + + + + + Checks if this logger is enabled for the ERROR level. + + + true if this logger is enabled for ERROR events, + false otherwise. + + + + See for more information and examples of using this method. + + + + + + + Checks if this logger is enabled for the FATAL level. + + + true if this logger is enabled for FATAL events, + false otherwise. + + + + See for more information and examples of using this method. + + + + + + + provides method information without actually referencing a System.Reflection.MethodBase + as that would require that the containing assembly is loaded. + + + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + constructs a method item for an unknown method. + + + + + constructs a method item from the name of the method. + + + + + + constructs a method item from the name of the method and its parameters. + + + + + + + constructs a method item from a method base by determining the method name and its parameters. + + + + + + The fully qualified type of the StackFrameItem class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the method name of the caller making the logging + request. + + + The method name of the caller making the logging + request. + + + + Gets the method name of the caller making the logging + request. + + + + + + Gets the method parameters of the caller making + the logging request. + + + The method parameters of the caller making + the logging request + + + + Gets the method parameters of the caller making + the logging request. + + + + + + A SecurityContext used by log4net when interacting with protected resources + + + + A SecurityContext used by log4net when interacting with protected resources + for example with operating system services. This can be used to impersonate + a principal that has been granted privileges on the system resources. + + + Nicko Cadell + + + + Impersonate this SecurityContext + + State supplied by the caller + An instance that will + revoke the impersonation of this SecurityContext, or null + + + Impersonate this security context. Further calls on the current + thread should now be made in the security context provided + by this object. When the result + method is called the security + context of the thread should be reverted to the state it was in + before was called. + + + + + + The providers default instances. + + + + A configured component that interacts with potentially protected system + resources uses a to provide the elevated + privileges required. If the object has + been not been explicitly provided to the component then the component + will request one from this . + + + By default the is + an instance of which returns only + objects. This is a reasonable default + where the privileges required are not know by the system. + + + This default behavior can be overridden by subclassing the + and overriding the method to return + the desired objects. The default provider + can be replaced by programmatically setting the value of the + property. + + + An alternative is to use the log4net.Config.SecurityContextProviderAttribute + This attribute can be applied to an assembly in the same way as the + log4net.Config.XmlConfiguratorAttribute". The attribute takes + the type to use as the as an argument. + + + Nicko Cadell + + + + The default provider + + + + + Protected default constructor to allow subclassing + + + + Protected default constructor to allow subclassing + + + + + + Create a SecurityContext for a consumer + + The consumer requesting the SecurityContext + An impersonation context + + + The default implementation is to return a . + + + Subclasses should override this method to provide their own + behavior. + + + + + + Gets or sets the default SecurityContextProvider + + + The default SecurityContextProvider + + + + The default provider is used by configured components that + require a and have not had one + given to them. + + + By default this is an instance of + that returns objects. + + + The default provider can be set programmatically by setting + the value of this property to a sub class of + that has the desired behavior. + + + + + + provides stack frame information without actually referencing a System.Diagnostics.StackFrame + as that would require that the containing assembly is loaded. + + + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + returns a stack frame item from a stack frame. This + + + + + + + The fully qualified type of the StackFrameItem class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the fully qualified class name of the caller making the logging + request. + + + The fully qualified class name of the caller making the logging + request. + + + + Gets the fully qualified class name of the caller making the logging + request. + + + + + + Gets the file name of the caller. + + + The file name of the caller. + + + + Gets the file name of the caller. + + + + + + Gets the line number of the caller. + + + The line number of the caller. + + + + Gets the line number of the caller. + + + + + + Gets the method name of the caller. + + + The method name of the caller. + + + + Gets the method name of the caller. + + + + + + Gets all available caller information + + + All available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + Gets all available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + + + An evaluator that triggers after specified number of seconds. + + + + This evaluator will trigger if the specified time period + has passed since last check. + + + Robert Sevcik + + + + The default time threshold for triggering in seconds. Zero means it won't trigger at all. + + + + + The time threshold for triggering in seconds. Zero means it won't trigger at all. + + + + + The UTC time of last check. This gets updated when the object is created and when the evaluator triggers. + + + + + Create a new evaluator using the time threshold in seconds. + + + + Create a new evaluator using the time threshold in seconds. + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Create a new evaluator using the specified time threshold in seconds. + + + The time threshold in seconds to trigger after. + Zero means it won't trigger at all. + + + + Create a new evaluator using the specified time threshold in seconds. + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Is this the triggering event? + + The event to check + This method returns true, if the specified time period + has passed since last check.. + Otherwise it returns false + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + The time threshold in seconds to trigger after + + + The time threshold in seconds to trigger after. + Zero means it won't trigger at all. + + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Delegate used to handle creation of new wrappers. + + The logger to wrap in a wrapper. + + + Delegate used to handle creation of new wrappers. This delegate + is called from the + method to construct the wrapper for the specified logger. + + + The delegate to use is supplied to the + constructor. + + + + + + Maps between logger objects and wrapper objects. + + + + This class maintains a mapping between objects and + objects. Use the method to + lookup the for the specified . + + + New wrapper instances are created by the + method. The default behavior is for this method to delegate construction + of the wrapper to the delegate supplied + to the constructor. This allows specialization of the behavior without + requiring subclassing of this type. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the + + The handler to use to create the wrapper objects. + + + Initializes a new instance of the class with + the specified handler to create the wrapper objects. + + + + + + Gets the wrapper object for the specified logger. + + The wrapper object for the specified logger + + + If the logger is null then the corresponding wrapper is null. + + + Looks up the wrapper it it has previously been requested and + returns it. If the wrapper has never been requested before then + the virtual method is + called. + + + + + + Creates the wrapper object for the specified logger. + + The logger to wrap in a wrapper. + The wrapper object for the logger. + + + This implementation uses the + passed to the constructor to create the wrapper. This method + can be overridden in a subclass. + + + + + + Called when a monitored repository shutdown event is received. + + The that is shutting down + + + This method is called when a that this + is holding loggers for has signaled its shutdown + event . The default + behavior of this method is to release the references to the loggers + and their wrappers generated for this repository. + + + + + + Event handler for repository shutdown event. + + The sender of the event. + The event args. + + + + Map of logger repositories to hashtables of ILogger to ILoggerWrapper mappings + + + + + The handler to use to create the extension wrapper objects. + + + + + Internal reference to the delegate used to register for repository shutdown events. + + + + + Gets the map of logger repositories. + + + Map of logger repositories. + + + + Gets the hashtable that is keyed on . The + values are hashtables keyed on with the + value being the corresponding . + + + + + + Formats a as "HH:mm:ss,fff". + + + + Formats a in the format "HH:mm:ss,fff" for example, "15:49:37,459". + + + Nicko Cadell + Gert Driesen + + + + Render a as a string. + + + + Interface to abstract the rendering of a + instance into a string. + + + The method is used to render the + date to a text writer. + + + Nicko Cadell + Gert Driesen + + + + Formats the specified date as a string. + + The date to format. + The writer to write to. + + + Format the as a string and write it + to the provided. + + + + + + String constant used to specify AbsoluteTimeDateFormat in layouts. Current value is ABSOLUTE. + + + + + String constant used to specify DateTimeDateFormat in layouts. Current value is DATE. + + + + + String constant used to specify ISO8601DateFormat in layouts. Current value is ISO8601. + + + + + Renders the date into a string. Format is "HH:mm:ss". + + The date to render into a string. + The string builder to write to. + + + Subclasses should override this method to render the date + into a string using a precision up to the second. This method + will be called at most once per second and the result will be + reused if it is needed again during the same second. + + + + + + Renders the date into a string. Format is "HH:mm:ss,fff". + + The date to render into a string. + The writer to write to. + + + Uses the method to generate the + time string up to the seconds and then appends the current + milliseconds. The results from are + cached and is called at most once + per second. + + + Sub classes should override + rather than . + + + + + + Last stored time with precision up to the second. + + + + + Last stored time with precision up to the second, formatted + as a string. + + + + + Last stored time with precision up to the second, formatted + as a string. + + + + + Formats a as "dd MMM yyyy HH:mm:ss,fff" + + + + Formats a in the format + "dd MMM yyyy HH:mm:ss,fff" for example, + "06 Nov 1994 15:49:37,459". + + + Nicko Cadell + Gert Driesen + Angelika Schnagl + + + + Default constructor. + + + + Initializes a new instance of the class. + + + + + + Formats the date without the milliseconds part + + The date to format. + The string builder to write to. + + + Formats a DateTime in the format "dd MMM yyyy HH:mm:ss" + for example, "06 Nov 1994 15:49:37". + + + The base class will append the ",fff" milliseconds section. + This method will only be called at most once per second. + + + + + + The format info for the invariant culture. + + + + + Formats the as "yyyy-MM-dd HH:mm:ss,fff". + + + + Formats the specified as a string: "yyyy-MM-dd HH:mm:ss,fff". + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Formats the date without the milliseconds part + + The date to format. + The string builder to write to. + + + Formats the date specified as a string: "yyyy-MM-dd HH:mm:ss". + + + The base class will append the ",fff" milliseconds section. + This method will only be called at most once per second. + + + + + + Formats the using the method. + + + + Formats the using the method. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The format string. + + + Initializes a new instance of the class + with the specified format string. + + + The format string must be compatible with the options + that can be supplied to . + + + + + + Formats the date using . + + The date to convert to a string. + The writer to write to. + + + Uses the date format string supplied to the constructor to call + the method to format the date. + + + + + + The format string used to format the . + + + + The format string must be compatible with the options + that can be supplied to . + + + + + + This filter drops all . + + + + You can add this filter to the end of a filter chain to + switch from the default "accept all unless instructed otherwise" + filtering behavior to a "deny all unless instructed otherwise" + behavior. + + + Nicko Cadell + Gert Driesen + + + + Subclass this type to implement customized logging event filtering + + + + Users should extend this class to implement customized logging + event filtering. Note that and + , the parent class of all standard + appenders, have built-in filtering rules. It is suggested that you + first use and understand the built-in rules before rushing to write + your own custom filters. + + + This abstract class assumes and also imposes that filters be + organized in a linear chain. The + method of each filter is called sequentially, in the order of their + addition to the chain. + + + The method must return one + of the integer constants , + or . + + + If the value is returned, then the log event is dropped + immediately without consulting with the remaining filters. + + + If the value is returned, then the next filter + in the chain is consulted. If there are no more filters in the + chain, then the log event is logged. Thus, in the presence of no + filters, the default behavior is to log all logging events. + + + If the value is returned, then the log + event is logged without consulting the remaining filters. + + + The philosophy of log4net filters is largely inspired from the + Linux ipchains. + + + Nicko Cadell + Gert Driesen + + + + Implement this interface to provide customized logging event filtering + + + + Users should implement this interface to implement customized logging + event filtering. Note that and + , the parent class of all standard + appenders, have built-in filtering rules. It is suggested that you + first use and understand the built-in rules before rushing to write + your own custom filters. + + + This abstract class assumes and also imposes that filters be + organized in a linear chain. The + method of each filter is called sequentially, in the order of their + addition to the chain. + + + The method must return one + of the integer constants , + or . + + + If the value is returned, then the log event is dropped + immediately without consulting with the remaining filters. + + + If the value is returned, then the next filter + in the chain is consulted. If there are no more filters in the + chain, then the log event is logged. Thus, in the presence of no + filters, the default behavior is to log all logging events. + + + If the value is returned, then the log + event is logged without consulting the remaining filters. + + + The philosophy of log4net filters is largely inspired from the + Linux ipchains. + + + Nicko Cadell + Gert Driesen + + + + Decide if the logging event should be logged through an appender. + + The LoggingEvent to decide upon + The decision of the filter + + + If the decision is , then the event will be + dropped. If the decision is , then the next + filter, if any, will be invoked. If the decision is then + the event will be logged without consulting with other filters in + the chain. + + + + + + Property to get and set the next filter + + + The next filter in the chain + + + + Filters are typically composed into chains. This property allows the next filter in + the chain to be accessed. + + + + + + Points to the next filter in the filter chain. + + + + See for more information. + + + + + + Initialize the filter with the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Typically filter's options become active immediately on set, + however this method must still be called. + + + + + + Decide if the should be logged through an appender. + + The to decide upon + The decision of the filter + + + If the decision is , then the event will be + dropped. If the decision is , then the next + filter, if any, will be invoked. If the decision is then + the event will be logged without consulting with other filters in + the chain. + + + This method is marked abstract and must be implemented + in a subclass. + + + + + + Property to get and set the next filter + + + The next filter in the chain + + + + Filters are typically composed into chains. This property allows the next filter in + the chain to be accessed. + + + + + + Default constructor + + + + + Always returns the integer constant + + the LoggingEvent to filter + Always returns + + + Ignores the event being logged and just returns + . This can be used to change the default filter + chain behavior from to . This filter + should only be used as the last filter in the chain + as any further filters will be ignored! + + + + + + The return result from + + + + The return result from + + + + + + The log event must be dropped immediately without + consulting with the remaining filters, if any, in the chain. + + + + + This filter is neutral with respect to the log event. + The remaining filters, if any, should be consulted for a final decision. + + + + + The log event must be logged immediately without + consulting with the remaining filters, if any, in the chain. + + + + + This is a very simple filter based on matching. + + + + The filter admits two options and + . If there is an exact match between the value + of the option and the of the + , then the method returns in + case the option value is set + to true, if it is false then + is returned. If the does not match then + the result will be . + + + Nicko Cadell + Gert Driesen + + + + flag to indicate if the filter should on a match + + + + + the to match against + + + + + Default constructor + + + + + Tests if the of the logging event matches that of the filter + + the event to filter + see remarks + + + If the of the event matches the level of the + filter then the result of the function depends on the + value of . If it is true then + the function will return , it it is false then it + will return . If the does not match then + the result will be . + + + + + + when matching + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + The that the filter will match + + + + The level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + This is a simple filter based on matching. + + + + The filter admits three options and + that determine the range of priorities that are matched, and + . If there is a match between the range + of priorities and the of the , then the + method returns in case the + option value is set to true, if it is false + then is returned. If there is no match, is returned. + + + Nicko Cadell + Gert Driesen + + + + Flag to indicate the behavior when matching a + + + + + the minimum value to match + + + + + the maximum value to match + + + + + Default constructor + + + + + Check if the event should be logged. + + the logging event to check + see remarks + + + If the of the logging event is outside the range + matched by this filter then + is returned. If the is matched then the value of + is checked. If it is true then + is returned, otherwise + is returned. + + + + + + when matching and + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + Set the minimum matched + + + + The minimum level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + Sets the maximum matched + + + + The maximum level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + Simple filter to match a string in the event's logger name. + + + + The works very similar to the . It admits two + options and . If the + of the starts + with the value of the option, then the + method returns in + case the option value is set to true, + if it is false then is returned. + + + Daniel Cazzulino + + + + Flag to indicate the behavior when we have a match + + + + + The logger name string to substring match against the event + + + + + Default constructor + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The rendered message is matched against the . + If the equals the beginning of + the incoming () + then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + when matching + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + The that the filter will match + + + + This filter will attempt to match this value against logger name in + the following way. The match will be done against the beginning of the + logger name (using ). The match is + case sensitive. If a match is found then + the result depends on the value of . + + + + + + Simple filter to match a keyed string in the + + + + Simple filter to match a keyed string in the + + + As the MDC has been replaced with layered properties the + should be used instead. + + + Nicko Cadell + Gert Driesen + + + + Simple filter to match a string an event property + + + + Simple filter to match a string in the value for a + specific event property + + + Nicko Cadell + + + + Simple filter to match a string in the rendered message + + + + Simple filter to match a string in the rendered message + + + Nicko Cadell + Gert Driesen + + + + Flag to indicate the behavior when we have a match + + + + + The string to substring match against the message + + + + + A string regex to match + + + + + A regex object to match (generated from m_stringRegexToMatch) + + + + + Default constructor + + + + + Initialize and precompile the Regex if required + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The rendered message is matched against the . + If the occurs as a substring within + the message then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + when matching or + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + Sets the static string to match + + + + The string that will be substring matched against + the rendered message. If the message contains this + string then the filter will match. If a match is found then + the result depends on the value of . + + + One of or + must be specified. + + + + + + Sets the regular expression to match + + + + The regular expression pattern that will be matched against + the rendered message. If the message matches this + pattern then the filter will match. If a match is found then + the result depends on the value of . + + + One of or + must be specified. + + + + + + The key to use to lookup the string from the event properties + + + + + Default constructor + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The event property for the is matched against + the . + If the occurs as a substring within + the property value then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + The key to lookup in the event properties and then match against. + + + + The key name to use to lookup in the properties map of the + . The match will be performed against + the value of this property if it exists. + + + + + + Simple filter to match a string in the + + + + Simple filter to match a string in the + + + As the MDC has been replaced with named stacks stored in the + properties collections the should + be used instead. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Sets the to "NDC". + + + + + + Write the event appdomain name to the output + + + + Writes the to the output writer. + + + Daniel Cazzulino + Nicko Cadell + + + + Abstract class that provides the formatting functionality that + derived classes need. + + + Conversion specifiers in a conversion patterns are parsed to + individual PatternConverters. Each of which is responsible for + converting a logging event in a converter specific manner. + + Nicko Cadell + + + + Abstract class that provides the formatting functionality that + derived classes need. + + + + Conversion specifiers in a conversion patterns are parsed to + individual PatternConverters. Each of which is responsible for + converting a logging event in a converter specific manner. + + + Nicko Cadell + Gert Driesen + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + Protected constructor + + + + Initializes a new instance of the class. + + + + + + Evaluate this pattern converter and write the output to a writer. + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the appropriate way. + + + + + + Set the next pattern converter in the chains + + the pattern converter that should follow this converter in the chain + the next converter + + + The PatternConverter can merge with its neighbor during this method (or a sub class). + Therefore the return value may or may not be the value of the argument passed in. + + + + + + Write the pattern converter to the writer with appropriate formatting + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + This method calls to allow the subclass to perform + appropriate conversion of the pattern converter. If formatting options have + been specified via the then this method will + apply those formattings before writing the output. + + + + + + Fast space padding method. + + to which the spaces will be appended. + The number of spaces to be padded. + + + Fast space padding method. + + + + + + The option string to the converter + + + + + Write an dictionary to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the to a writer in the form: + + + {key1=value1, key2=value2, key3=value3} + + + If the specified + is not null then it is used to render the key and value to text, otherwise + the object's ToString method is called. + + + + + + Write an dictionary to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the to a writer in the form: + + + {key1=value1, key2=value2, key3=value3} + + + If the specified + is not null then it is used to render the key and value to text, otherwise + the object's ToString method is called. + + + + + + Write an object to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the Object to a writer. If the specified + is not null then it is used to render the object to text, otherwise + the object's ToString method is called. + + + + + + Get the next pattern converter in the chain + + + the next pattern converter in the chain + + + + Get the next pattern converter in the chain + + + + + + Gets or sets the formatting info for this converter + + + The formatting info for this converter + + + + Gets or sets the formatting info for this converter + + + + + + Gets or sets the option value for this converter + + + The option for this converter + + + + Gets or sets the option value for this converter + + + + + + + + + + + Initializes a new instance of the class. + + + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the correct way. + + that will receive the formatted result. + The on which the pattern converter should be executed. + + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the correct way. + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + + Flag indicating if this converter handles exceptions + + + false if this converter handles exceptions + + + + + Flag indicating if this converter handles the logging event exception + + false if this converter handles the logging event exception + + + If this converter handles the exception object contained within + , then this property should be set to + false. Otherwise, if the layout ignores the exception + object, then the property should be set to true. + + + Set this value to override a this default setting. The default + value is true, this converter does not handle the exception. + + + + + + Write the event appdomain name to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output . + + + + + + Converter for items in the ASP.Net Cache. + + + + Outputs an item from the . + + + Ron Grabowski + + + + Abstract class that provides access to the current HttpContext () that + derived classes need. + + + This class handles the case when HttpContext.Current is null by writing + to the writer. + + Ron Grabowski + + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the correct way. + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + + Write the ASP.Net Cache item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. If no property has been set, all key value pairs from the Cache will + be written to the output. + + + + + + Converter for items in the . + + + + Outputs an item from the . + + + Ron Grabowski + + + + Write the ASP.Net HttpContext item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. + + + + + + Converter for items in the ASP.Net Cache. + + + + Outputs an item from the . + + + Ron Grabowski + + + + Write the ASP.Net Cache item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. + + + + + + Converter for items in the ASP.Net Cache. + + + + Outputs an item from the . + + + Ron Grabowski + + + + Write the ASP.Net Cache item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. If no property has been set, all key value pairs from the Session will + be written to the output. + + + + + + Date pattern converter, uses a to format + the date of a . + + + + Render the to the writer as a string. + + + The value of the determines + the formatting of the date. The following values are allowed: + + + Option value + Output + + + ISO8601 + + Uses the formatter. + Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. + + + + DATE + + Uses the formatter. + Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". + + + + ABSOLUTE + + Uses the formatter. + Formats using the "HH:mm:ss,yyyy" for example, "15:49:37,459". + + + + other + + Any other pattern string uses the formatter. + This formatter passes the pattern string to the + method. + For details on valid patterns see + DateTimeFormatInfo Class. + + + + + + The is in the local time zone and is rendered in that zone. + To output the time in Universal time see . + + + Nicko Cadell + + + + The used to render the date to a string + + + + The used to render the date to a string + + + + + + Initialize the converter pattern based on the property. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Convert the pattern into the rendered message + + that will receive the formatted result. + the event being logged + + + Pass the to the + for it to render it to the writer. + + + The passed is in the local time zone. + + + + + + The fully qualified type of the DatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the exception text to the output + + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + + + If there is no exception then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + Nicko Cadell + + + + Default constructor + + + + + Write the exception text to the output + + that will receive the formatted result. + the event being logged + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + + + If there is no exception or the exception property specified + by the Option value does not exist then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + Recognized values for the Option parameter are: + + + + Message + + + Source + + + StackTrace + + + TargetSite + + + HelpLink + + + + + + + Writes the caller location file name to the output + + + + Writes the value of the for + the event to the output writer. + + + Nicko Cadell + + + + Write the caller location file name to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the for + the to the output . + + + + + + Write the caller location info to the output + + + + Writes the to the output writer. + + + Nicko Cadell + + + + Write the caller location info to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output writer. + + + + + + Writes the event identity to the output + + + + Writes the value of the to + the output writer. + + + Daniel Cazzulino + Nicko Cadell + + + + Writes the event identity to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the + to + the output . + + + + + + Write the event level to the output + + + + Writes the display name of the event + to the writer. + + + Nicko Cadell + + + + Write the event level to the output + + that will receive the formatted result. + the event being logged + + + Writes the of the + to the . + + + + + + Write the caller location line number to the output + + + + Writes the value of the for + the event to the output writer. + + + Nicko Cadell + + + + Write the caller location line number to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the for + the to the output . + + + + + + Converter for logger name + + + + Outputs the of the event. + + + Nicko Cadell + + + + Converter to output and truncate '.' separated strings + + + + This abstract class supports truncating a '.' separated string + to show a specified number of elements from the right hand side. + This is used to truncate class names that are fully qualified. + + + Subclasses should override the method to + return the fully qualified string. + + + Nicko Cadell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Get the fully qualified string data + + the event being logged + the fully qualified name + + + Overridden by subclasses to get the fully qualified name before the + precision is applied to it. + + + Return the fully qualified '.' (dot/period) separated string. + + + + + + Convert the pattern to the rendered message + + that will receive the formatted result. + the event being logged + + Render the to the precision + specified by the property. + + + + + The fully qualified type of the NamedPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the fully qualified name of the logger + + the event being logged + The fully qualified logger name + + + Returns the of the . + + + + + + Writes the event message to the output + + + + Uses the method + to write out the event message. + + + Nicko Cadell + + + + Writes the event message to the output + + that will receive the formatted result. + the event being logged + + + Uses the method + to write out the event message. + + + + + + Write the method name to the output + + + + Writes the caller location to + the output. + + + Nicko Cadell + + + + Write the method name to the output + + that will receive the formatted result. + the event being logged + + + Writes the caller location to + the output. + + + + + + Converter to include event NDC + + + + Outputs the value of the event property named NDC. + + + The should be used instead. + + + Nicko Cadell + + + + Write the event NDC to the output + + that will receive the formatted result. + the event being logged + + + As the thread context stacks are now stored in named event properties + this converter simply looks up the value of the NDC property. + + + The should be used instead. + + + + + + Property pattern converter + + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + Nicko Cadell + + + + Write the property value to the output + + that will receive the formatted result. + the event being logged + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + Converter to output the relative time of the event + + + + Converter to output the time of the event relative to the start of the program. + + + Nicko Cadell + + + + Write the relative time to the output + + that will receive the formatted result. + the event being logged + + + Writes out the relative time of the event in milliseconds. + That is the number of milliseconds between the event + and the . + + + + + + Helper method to get the time difference between two DateTime objects + + start time (in the current local time zone) + end time (in the current local time zone) + the time difference in milliseconds + + + + Write the caller stack frames to the output + + + + Writes the to the output writer, using format: + type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) + + + Adam Davies + + + + Write the caller stack frames to the output + + + + Writes the to the output writer, using format: + type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 + + + Michael Cromwell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the strack frames to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output writer. + + + + + + Returns the Name of the method + + + This method was created, so this class could be used as a base class for StackTraceDetailPatternConverter + string + + + + The fully qualified type of the StackTracePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + The fully qualified type of the StackTraceDetailPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Converter to include event thread name + + + + Writes the to the output. + + + Nicko Cadell + + + + Write the ThreadName to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the . + + + + + + Pattern converter for the class name + + + + Outputs the of the event. + + + Nicko Cadell + + + + Gets the fully qualified name of the class + + the event being logged + The fully qualified type name for the caller location + + + Returns the of the . + + + + + + Converter to include event user name + + Douglas de la Torre + Nicko Cadell + + + + Convert the pattern to the rendered message + + that will receive the formatted result. + the event being logged + + + + Write the TimeStamp to the output + + + + Date pattern converter, uses a to format + the date of a . + + + Uses a to format the + in Universal time. + + + See the for details on the date pattern syntax. + + + + Nicko Cadell + + + + Write the TimeStamp to the output + + that will receive the formatted result. + the event being logged + + + Pass the to the + for it to render it to the writer. + + + The passed is in the local time zone, this is converted + to Universal time before it is rendered. + + + + + + + The fully qualified type of the UtcDatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + A flexible layout configurable with pattern string that re-evaluates on each call. + + + This class is built on and provides all the + features and capabilities of PatternLayout. PatternLayout is a 'static' class + in that its layout is done once at configuration time. This class will recreate + the layout on each reference. + One important difference between PatternLayout and DynamicPatternLayout is the + treatment of the Header and Footer parameters in the configuration. The Header and Footer + parameters for DynamicPatternLayout must be syntactically in the form of a PatternString, + but should not be marked as type log4net.Util.PatternString. Doing so causes the + pattern to be statically converted at configuration time and causes DynamicPatternLayout + to perform the same as PatternLayout. + Please see for complete documentation. + + <layout type="log4net.Layout.DynamicPatternLayout"> + <param name="Header" value="%newline**** Trace Opened Local: %date{yyyy-MM-dd HH:mm:ss.fff} UTC: %utcdate{yyyy-MM-dd HH:mm:ss.fff} ****%newline" /> + <param name="Footer" value="**** Trace Closed %date{yyyy-MM-dd HH:mm:ss.fff} ****%newline" /> + </layout> + + + + + + A flexible layout configurable with pattern string. + + + + The goal of this class is to a + as a string. The results + depend on the conversion pattern. + + + The conversion pattern is closely related to the conversion + pattern of the printf function in C. A conversion pattern is + composed of literal text and format control expressions called + conversion specifiers. + + + You are free to insert any literal text within the conversion + pattern. + + + Each conversion specifier starts with a percent sign (%) and is + followed by optional format modifiers and a conversion + pattern name. The conversion pattern name specifies the type of + data, e.g. logger, level, date, thread name. The format + modifiers control such things as field width, padding, left and + right justification. The following is a simple example. + + + Let the conversion pattern be "%-5level [%thread]: %message%newline" and assume + that the log4net environment was set to use a PatternLayout. Then the + statements + + + ILog log = LogManager.GetLogger(typeof(TestApp)); + log.Debug("Message 1"); + log.Warn("Message 2"); + + would yield the output + + DEBUG [main]: Message 1 + WARN [main]: Message 2 + + + Note that there is no explicit separator between text and + conversion specifiers. The pattern parser knows when it has reached + the end of a conversion specifier when it reads a conversion + character. In the example above the conversion specifier + %-5level means the level of the logging event should be left + justified to a width of five characters. + + + The recognized conversion pattern names are: + + + + Conversion Pattern Name + Effect + + + a + Equivalent to appdomain + + + appdomain + + Used to output the friendly name of the AppDomain where the + logging event was generated. + + + + aspnet-cache + + + Used to output all cache items in the case of %aspnet-cache or just one named item if used as %aspnet-cache{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-context + + + Used to output all context items in the case of %aspnet-context or just one named item if used as %aspnet-context{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-request + + + Used to output all request parameters in the case of %aspnet-request or just one named param if used as %aspnet-request{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-session + + + Used to output all session items in the case of %aspnet-session or just one named item if used as %aspnet-session{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + c + Equivalent to logger + + + C + Equivalent to type + + + class + Equivalent to type + + + d + Equivalent to date + + + date + + + Used to output the date of the logging event in the local time zone. + To output the date in universal time use the %utcdate pattern. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %date{HH:mm:ss,fff} or + %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %date{ISO8601} or %date{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + exception + + + Used to output the exception passed in with the log message. + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + If there is no exception then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + + + F + Equivalent to file + + + file + + + Used to output the file name where the logging request was + issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + identity + + + Used to output the user name for the currently active user + (Principal.Identity.Name). + + + WARNING Generating caller information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + + + l + Equivalent to location + + + L + Equivalent to line + + + location + + + Used to output location information of the caller which generated + the logging event. + + + The location information depends on the CLI implementation but + usually consists of the fully qualified name of the calling + method followed by the callers source the file name and line + number between parentheses. + + + The location information can be very useful. However, its + generation is extremely slow. Its use should be avoided + unless execution speed is not an issue. + + + See the note below on the availability of caller location information. + + + + + level + + + Used to output the level of the logging event. + + + + + line + + + Used to output the line number from where the logging request + was issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + logger + + + Used to output the logger of the logging event. The + logger conversion specifier can be optionally followed by + precision specifier, that is a decimal constant in + brackets. + + + If a precision specifier is given, then only the corresponding + number of right most components of the logger name will be + printed. By default the logger name is printed in full. + + + For example, for the logger name "a.b.c" the pattern + %logger{2} will output "b.c". + + + + + m + Equivalent to message + + + M + Equivalent to method + + + message + + + Used to output the application supplied message associated with + the logging event. + + + + + mdc + + + The MDC (old name for the ThreadContext.Properties) is now part of the + combined event properties. This pattern is supported for compatibility + but is equivalent to property. + + + + + method + + + Used to output the method name where the logging request was + issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + n + Equivalent to newline + + + newline + + + Outputs the platform dependent line separator character or + characters. + + + This conversion pattern offers the same performance as using + non-portable line separator strings such as "\n", or "\r\n". + Thus, it is the preferred way of specifying a line separator. + + + + + ndc + + + Used to output the NDC (nested diagnostic context) associated + with the thread that generated the logging event. + + + + + p + Equivalent to level + + + P + Equivalent to property + + + properties + Equivalent to property + + + property + + + Used to output the an event specific property. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %property{user} would include the value + from the property that is keyed by the string 'user'. Each property value + that is to be included in the log must be specified separately. + Properties are added to events by loggers or appenders. By default + the log4net:HostName property is set to the name of machine on + which the event was originally logged. + + + If no key is specified, e.g. %property then all the keys and their + values are printed in a comma separated list. + + + The properties of an event are combined from a number of different + contexts. These are listed below in the order in which they are searched. + + + + the event properties + + The event has that can be set. These + properties are specific to this event only. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + + r + Equivalent to timestamp + + + stacktrace + + + Used to output the stack trace of the logging event + The stack trace level specifier may be enclosed + between braces. For example, %stacktrace{level}. + If no stack trace level specifier is given then 1 is assumed + + + Output uses the format: + type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 + + + This pattern is not available for Compact Framework assemblies. + + + + + stacktracedetail + + + Used to output the stack trace of the logging event + The stack trace level specifier may be enclosed + between braces. For example, %stacktracedetail{level}. + If no stack trace level specifier is given then 1 is assumed + + + Output uses the format: + type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) + + + This pattern is not available for Compact Framework assemblies. + + + + + t + Equivalent to thread + + + timestamp + + + Used to output the number of milliseconds elapsed since the start + of the application until the creation of the logging event. + + + + + thread + + + Used to output the name of the thread that generated the + logging event. Uses the thread number if no name is available. + + + + + type + + + Used to output the fully qualified type name of the caller + issuing the logging request. This conversion specifier + can be optionally followed by precision specifier, that + is a decimal constant in brackets. + + + If a precision specifier is given, then only the corresponding + number of right most components of the class name will be + printed. By default the class name is output in fully qualified form. + + + For example, for the class name "log4net.Layout.PatternLayout", the + pattern %type{1} will output "PatternLayout". + + + WARNING Generating the caller class information is + slow. Thus, its use should be avoided unless execution speed is + not an issue. + + + See the note below on the availability of caller location information. + + + + + u + Equivalent to identity + + + username + + + Used to output the WindowsIdentity for the currently + active user. + + + WARNING Generating caller WindowsIdentity information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + + + utcdate + + + Used to output the date of the logging event in universal time. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %utcdate{HH:mm:ss,fff} or + %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %utcdate{ISO8601} or %utcdate{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + w + Equivalent to username + + + x + Equivalent to ndc + + + X + Equivalent to mdc + + + % + + + The sequence %% outputs a single percent sign. + + + + + + The single letter patterns are deprecated in favor of the + longer more descriptive pattern names. + + + By default the relevant information is output as is. However, + with the aid of format modifiers it is possible to change the + minimum field width, the maximum field width and justification. + + + The optional format modifier is placed between the percent sign + and the conversion pattern name. + + + The first optional format modifier is the left justification + flag which is just the minus (-) character. Then comes the + optional minimum field width modifier. This is a decimal + constant that represents the minimum number of characters to + output. If the data item requires fewer characters, it is padded on + either the left or the right until the minimum width is + reached. The default is to pad on the left (right justify) but you + can specify right padding with the left justification flag. The + padding character is space. If the data item is larger than the + minimum field width, the field is expanded to accommodate the + data. The value is never truncated. + + + This behavior can be changed using the maximum field + width modifier which is designated by a period followed by a + decimal constant. If the data item is longer than the maximum + field, then the extra characters are removed from the + beginning of the data item and not from the end. For + example, it the maximum field width is eight and the data item is + ten characters long, then the first two characters of the data item + are dropped. This behavior deviates from the printf function in C + where truncation is done from the end. + + + Below are various format modifier examples for the logger + conversion specifier. + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Format modifierleft justifyminimum widthmaximum widthcomment
%20loggerfalse20none + + Left pad with spaces if the logger name is less than 20 + characters long. + +
%-20loggertrue20none + + Right pad with spaces if the logger + name is less than 20 characters long. + +
%.30loggerNAnone30 + + Truncate from the beginning if the logger + name is longer than 30 characters. + +
%20.30loggerfalse2030 + + Left pad with spaces if the logger name is shorter than 20 + characters. However, if logger name is longer than 30 characters, + then truncate from the beginning. + +
%-20.30loggertrue2030 + + Right pad with spaces if the logger name is shorter than 20 + characters. However, if logger name is longer than 30 characters, + then truncate from the beginning. + +
+
+ + Note about caller location information.
+ The following patterns %type %file %line %method %location %class %C %F %L %l %M + all generate caller location information. + Location information uses the System.Diagnostics.StackTrace class to generate + a call stack. The caller's information is then extracted from this stack. +
+ + + The System.Diagnostics.StackTrace class is not supported on the + .NET Compact Framework 1.0 therefore caller location information is not + available on that framework. + + + + + The System.Diagnostics.StackTrace class has this to say about Release builds: + + + "StackTrace information will be most informative with Debug build configurations. + By default, Debug builds include debug symbols, while Release builds do not. The + debug symbols contain most of the file, method name, line number, and column + information used in constructing StackFrame and StackTrace objects. StackTrace + might not report as many method calls as expected, due to code transformations + that occur during optimization." + + + This means that in a Release build the caller information may be incomplete or may + not exist at all! Therefore caller location information cannot be relied upon in a Release build. + + + + Additional pattern converters may be registered with a specific + instance using the method. + +
+ + This is a more detailed pattern. + %timestamp [%thread] %level %logger %ndc - %message%newline + + + A similar pattern except that the relative time is + right padded if less than 6 digits, thread name is right padded if + less than 15 characters and truncated if longer and the logger + name is left padded if shorter than 30 characters and truncated if + longer. + %-6timestamp [%15.15thread] %-5level %30.30logger %ndc - %message%newline + + Nicko Cadell + Gert Driesen + Douglas de la Torre + Daniel Cazzulino +
+ + + Extend this abstract class to create your own log layout format. + + + + This is the base implementation of the + interface. Most layout objects should extend this class. + + + + + + Subclasses must implement the + method. + + + Subclasses should set the in their default + constructor. + + + + Nicko Cadell + Gert Driesen + + + + Interface implemented by layout objects + + + + An object is used to format a + as text. The method is called by an + appender to transform the into a string. + + + The layout can also supply and + text that is appender before any events and after all the events respectively. + + + Nicko Cadell + Gert Driesen + + + + Implement this method to create your own layout format. + + The TextWriter to write the formatted event to + The event to format + + + This method is called by an appender to format + the as text and output to a writer. + + + If the caller does not have a and prefers the + event to be formatted as a then the following + code can be used to format the event into a . + + + StringWriter writer = new StringWriter(); + Layout.Format(writer, loggingEvent); + string formattedEvent = writer.ToString(); + + + + + + The content type output by this layout. + + The content type + + + The content type output by this layout. + + + This is a MIME type e.g. "text/plain". + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + + + + + Flag indicating if this layout handle exceptions + + false if this layout handles exceptions + + + If this layout handles the exception object contained within + , then the layout should return + false. Otherwise, if the layout ignores the exception + object, then the layout should return true. + + + + + + The header text + + + + See for more information. + + + + + + The footer text + + + + See for more information. + + + + + + Flag indicating if this layout handles exceptions + + + + false if this layout handles exceptions + + + + + + Empty default constructor + + + + Empty default constructor + + + + + + Activate component options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + This method must be implemented by the subclass. + + + + + + Implement this method to create your own layout format. + + The TextWriter to write the formatted event to + The event to format + + + This method is called by an appender to format + the as text. + + + + + + Convenience method for easily formatting the logging event into a string variable. + + + + Creates a new StringWriter instance to store the formatted logging event. + + + + + The content type output by this layout. + + The content type is "text/plain" + + + The content type output by this layout. + + + This base class uses the value "text/plain". + To change this value a subclass must override this + property. + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + + + + + Flag indicating if this layout handles exceptions + + false if this layout handles exceptions + + + If this layout handles the exception object contained within + , then the layout should return + false. Otherwise, if the layout ignores the exception + object, then the layout should return true. + + + Set this value to override a this default setting. The default + value is true, this layout does not handle the exception. + + + + + + Default pattern string for log output. + + + + Default pattern string for log output. + Currently set to the string "%message%newline" + which just prints the application supplied message. + + + + + + A detailed conversion pattern + + + + A conversion pattern which includes Time, Thread, Logger, and Nested Context. + Current value is %timestamp [%thread] %level %logger %ndc - %message%newline. + + + + + + Internal map of converter identifiers to converter types. + + + + This static map is overridden by the m_converterRegistry instance map + + + + + + the pattern + + + + + the head of the pattern converter chain + + + + + patterns defined on this PatternLayout only + + + + + Initialize the global registry + + + + Defines the builtin global rules. + + + + + + Constructs a PatternLayout using the DefaultConversionPattern + + + + The default pattern just produces the application supplied message. + + + Note to Inheritors: This constructor calls the virtual method + . If you override this method be + aware that it will be called before your is called constructor. + + + As per the contract the + method must be called after the properties on this object have been + configured. + + + + + + Constructs a PatternLayout using the supplied conversion pattern + + the pattern to use + + + Note to Inheritors: This constructor calls the virtual method + . If you override this method be + aware that it will be called before your is called constructor. + + + When using this constructor the method + need not be called. This may not be the case when using a subclass. + + + + + + Create the pattern parser instance + + the pattern to parse + The that will format the event + + + Creates the used to parse the conversion string. Sets the + global and instance rules on the . + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a formatted string as specified by the conversion pattern. + + the event being logged + The TextWriter to write the formatted event to + + + Parse the using the patter format + specified in the property. + + + + + + Add a converter to this PatternLayout + + the converter info + + + This version of the method is used by the configurator. + Programmatic users should use the alternative method. + + + + + + Add a converter to this PatternLayout + + the name of the conversion pattern for this converter + the type of the converter + + + Add a named pattern converter to this instance. This + converter will be used in the formatting of the event. + This method must be called before . + + + The specified must extend the + type. + + + + + + The pattern formatting string + + + + The ConversionPattern option. This is the string which + controls formatting and consists of a mix of literal content and + conversion specifiers. + + + + + + The header PatternString + + + + + The footer PatternString + + + + + Constructs a DynamicPatternLayout using the DefaultConversionPattern + + + + The default pattern just produces the application supplied message. + + + + + + Constructs a DynamicPatternLayout using the supplied conversion pattern + + the pattern to use + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + The pattern will be formatted on each get operation. + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + The pattern will be formatted on each get operation. + + + + + A Layout that renders only the Exception text from the logging event + + + + A Layout that renders only the Exception text from the logging event. + + + This Layout should only be used with appenders that utilize multiple + layouts (e.g. ). + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Constructs a ExceptionLayout + + + + + + Activate component options + + + + Part of the component activation + framework. + + + This method does nothing as options become effective immediately. + + + + + + Gets the exception text from the logging event + + The TextWriter to write the formatted event to + the event being logged + + + Write the exception string to the . + The exception string is retrieved from . + + + + + + Interface for raw layout objects + + + + Interface used to format a + to an object. + + + This interface should not be confused with the + interface. This interface is used in + only certain specialized situations where a raw object is + required rather than a formatted string. The + is not generally useful than this interface. + + + Nicko Cadell + Gert Driesen + + + + Implement this method to create your own layout format. + + The event to format + returns the formatted event + + + Implement this method to create your own layout format. + + + + + + Adapts any to a + + + + Where an is required this adapter + allows a to be specified. + + + Nicko Cadell + Gert Driesen + + + + The layout to adapt + + + + + Construct a new adapter + + the layout to adapt + + + Create the adapter for the specified . + + + + + + Format the logging event as an object. + + The event to format + returns the formatted event + + + Format the logging event as an object. + + + Uses the object supplied to + the constructor to perform the formatting. + + + + + + Type converter for the interface + + + + Used to convert objects to the interface. + Supports converting from the interface to + the interface using the . + + + Nicko Cadell + Gert Driesen + + + + Interface supported by type converters + + + + This interface supports conversion from arbitrary types + to a single target type. See . + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Test if the can be converted to the + type supported by this converter. + + + + + + Convert the source object to the type supported by this object + + the object to convert + the converted object + + + Converts the to the type supported + by this converter. + + + + + + Can the sourceType be converted to an + + the source to be to be converted + true if the source type can be converted to + + + Test if the can be converted to a + . Only is supported + as the . + + + + + + Convert the value to a object + + the value to convert + the object + + + Convert the object to a + object. If the object + is a then the + is used to adapt between the two interfaces, otherwise an + exception is thrown. + + + + + + Extract the value of a property from the + + + + Extract the value of a property from the + + + Nicko Cadell + + + + Constructs a RawPropertyLayout + + + + + Lookup the property for + + The event to format + returns property value + + + Looks up and returns the object value of the property + named . If there is no property defined + with than name then null will be returned. + + + + + + The name of the value to lookup in the LoggingEvent Properties collection. + + + Value to lookup in the LoggingEvent Properties collection + + + + String name of the property to lookup in the . + + + + + + Extract the date from the + + + + Extract the date from the + + + Nicko Cadell + Gert Driesen + + + + Constructs a RawTimeStampLayout + + + + + Gets the as a . + + The event to format + returns the time stamp + + + Gets the as a . + + + The time stamp is in local time. To format the time stamp + in universal time use . + + + + + + Extract the date from the + + + + Extract the date from the + + + Nicko Cadell + Gert Driesen + + + + Constructs a RawUtcTimeStampLayout + + + + + Gets the as a . + + The event to format + returns the time stamp + + + Gets the as a . + + + The time stamp is in universal time. To format the time stamp + in local time use . + + + + + + A very simple layout + + + + SimpleLayout consists of the level of the log statement, + followed by " - " and then the log message itself. For example, + + DEBUG - Hello world + + + + Nicko Cadell + Gert Driesen + + + + Constructs a SimpleLayout + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a simple formatted output. + + the event being logged + The TextWriter to write the formatted event to + + + Formats the event as the level of the even, + followed by " - " and then the log message itself. The + output is terminated by a newline. + + + + + + Layout that formats the log events as XML elements. + + + + The output of the consists of a series of + log4net:event elements. It does not output a complete well-formed XML + file. The output is designed to be included as an external entity + in a separate file to form a correct XML file. + + + For example, if abc is the name of the file where + the output goes, then a well-formed XML file would + be: + + + <?xml version="1.0" ?> + + <!DOCTYPE log4net:events SYSTEM "log4net-events.dtd" [<!ENTITY data SYSTEM "abc">]> + + <log4net:events version="1.2" xmlns:log4net="http://logging.apache.org/log4net/schemas/log4net-events-1.2> + &data; + </log4net:events> + + + This approach enforces the independence of the + and the appender where it is embedded. + + + The version attribute helps components to correctly + interpret output generated by . The value of + this attribute should be "1.2" for release 1.2 and later. + + + Alternatively the Header and Footer properties can be + configured to output the correct XML header, open tag and close tag. + When setting the Header and Footer properties it is essential + that the underlying data store not be appendable otherwise the data + will become invalid XML. + + + Nicko Cadell + Gert Driesen + + + + Layout that formats the log events as XML elements. + + + + This is an abstract class that must be subclassed by an implementation + to conform to a specific schema. + + + Deriving classes must implement the method. + + + Nicko Cadell + Gert Driesen + + + + Protected constructor to support subclasses + + + + Initializes a new instance of the class + with no location info. + + + + + + Protected constructor to support subclasses + + + + The parameter determines whether + location information will be output by the layout. If + is set to true, then the + file name and line number of the statement at the origin of the log + statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a formatted string. + + The event being logged. + The TextWriter to write the formatted event to + + + Format the and write it to the . + + + This method creates an that writes to the + . The is passed + to the method. Subclasses should override the + method rather than this method. + + + + + + Does the actual writing of the XML. + + The writer to use to output the event to. + The event to write. + + + Subclasses should override this method to format + the as XML. + + + + + + Flag to indicate if location information should be included in + the XML events. + + + + + The string to replace invalid chars with + + + + + Gets a value indicating whether to include location information in + the XML events. + + + true if location information should be included in the XML + events; otherwise, false. + + + + If is set to true, then the file + name and line number of the statement at the origin of the log + statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + The string to replace characters that can not be expressed in XML with. + + + Not all characters may be expressed in XML. This property contains the + string to replace those that can not with. This defaults to a ?. Set it + to the empty string to simply remove offending characters. For more + details on the allowed character ranges see http://www.w3.org/TR/REC-xml/#charsets + Character replacement will occur in the log message, the property names + and the property values. + + + + + + + Gets the content type output by this layout. + + + As this is the XML layout, the value is always "text/xml". + + + + As this is the XML layout, the value is always "text/xml". + + + + + + Constructs an XmlLayout + + + + + Constructs an XmlLayout. + + + + The LocationInfo option takes a boolean value. By + default, it is set to false which means there will be no location + information output by this layout. If the the option is set to + true, then the file name and line number of the statement + at the origin of the log statement will be output. + + + If you are embedding this layout within an SmtpAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Builds a cache of the element names + + + + + + Does the actual writing of the XML. + + The writer to use to output the event to. + The event to write. + + + Override the base class method + to write the to the . + + + + + + The prefix to use for all generated element names + + + + + The prefix to use for all element names + + + + The default prefix is log4net. Set this property + to change the prefix. If the prefix is set to an empty string + then no prefix will be written. + + + + + + Set whether or not to base64 encode the message. + + + + By default the log message will be written as text to the xml + output. This can cause problems when the message contains binary + data. By setting this to true the contents of the message will be + base64 encoded. If this is set then invalid character replacement + (see ) will not be performed + on the log message. + + + + + + Set whether or not to base64 encode the property values. + + + + By default the properties will be written as text to the xml + output. This can cause problems when one or more properties contain + binary data. By setting this to true the values of the properties + will be base64 encoded. If this is set then invalid character replacement + (see ) will not be performed + on the property values. + + + + + + Layout that formats the log events as XML elements compatible with the log4j schema + + + + Formats the log events according to the http://logging.apache.org/log4j schema. + + + Nicko Cadell + + + + The 1st of January 1970 in UTC + + + + + Constructs an XMLLayoutSchemaLog4j + + + + + Constructs an XMLLayoutSchemaLog4j. + + + + The LocationInfo option takes a boolean value. By + default, it is set to false which means there will be no location + information output by this layout. If the the option is set to + true, then the file name and line number of the statement + at the origin of the log statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + Actually do the writing of the xml + + the writer to use + the event to write + + + Generate XML that is compatible with the log4j schema. + + + + + + The version of the log4j schema to use. + + + + Only version 1.2 of the log4j schema is supported. + + + + + + The default object Renderer. + + + + The default renderer supports rendering objects and collections to strings. + + + See the method for details of the output. + + + Nicko Cadell + Gert Driesen + + + + Implement this interface in order to render objects as strings + + + + Certain types require special case conversion to + string form. This conversion is done by an object renderer. + Object renderers implement the + interface. + + + Nicko Cadell + Gert Driesen + + + + Render the object to a string + + The map used to lookup renderers + The object to render + The writer to render to + + + Render the object to a + string. + + + The parameter is + provided to lookup and render other objects. This is + very useful where contains + nested objects of unknown type. The + method can be used to render these objects. + + + + + + Default constructor + + + + Default constructor + + + + + + Render the object to a string + + The map used to lookup renderers + The object to render + The writer to render to + + + Render the object to a string. + + + The parameter is + provided to lookup and render other objects. This is + very useful where contains + nested objects of unknown type. The + method can be used to render these objects. + + + The default renderer supports rendering objects to strings as follows: + + + + Value + Rendered String + + + null + + "(null)" + + + + + + + For a one dimensional array this is the + array type name, an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. + + + For example: int[] {1, 2, 3}. + + + If the array is not one dimensional the + Array.ToString() is returned. + + + + + , & + + + Rendered as an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. + + + For example: {a, b, c}. + + + All collection classes that implement its subclasses, + or generic equivalents all implement the interface. + + + + + + + + Rendered as the key, an equals sign ('='), and the value (using the appropriate + renderer). + + + For example: key=value. + + + + + other + + Object.ToString() + + + + + + + + Render the array argument into a string + + The map used to lookup renderers + the array to render + The writer to render to + + + For a one dimensional array this is the + array type name, an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. For example: + int[] {1, 2, 3}. + + + If the array is not one dimensional the + Array.ToString() is returned. + + + + + + Render the enumerator argument into a string + + The map used to lookup renderers + the enumerator to render + The writer to render to + + + Rendered as an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. For example: + {a, b, c}. + + + + + + Render the DictionaryEntry argument into a string + + The map used to lookup renderers + the DictionaryEntry to render + The writer to render to + + + Render the key, an equals sign ('='), and the value (using the appropriate + renderer). For example: key=value. + + + + + + Map class objects to an . + + + + Maintains a mapping between types that require special + rendering and the that + is used to render them. + + + The method is used to render an + object using the appropriate renderers defined in this map. + + + Nicko Cadell + Gert Driesen + + + + Default Constructor + + + + Default constructor. + + + + + + Render using the appropriate renderer. + + the object to render to a string + the object rendered as a string + + + This is a convenience method used to render an object to a string. + The alternative method + should be used when streaming output to a . + + + + + + Render using the appropriate renderer. + + the object to render to a string + The writer to render to + + + Find the appropriate renderer for the type of the + parameter. This is accomplished by calling the + method. Once a renderer is found, it is + applied on the object and the result is returned + as a . + + + + + + Gets the renderer for the specified object type + + the object to lookup the renderer for + the renderer for + + + Gets the renderer for the specified object type. + + + Syntactic sugar method that calls + with the type of the object parameter. + + + + + + Gets the renderer for the specified type + + the type to lookup the renderer for + the renderer for the specified type + + + Returns the renderer for the specified type. + If no specific renderer has been defined the + will be returned. + + + + + + Internal function to recursively search interfaces + + the type to lookup the renderer for + the renderer for the specified type + + + + Clear the map of renderers + + + + Clear the custom renderers defined by using + . The + cannot be removed. + + + + + + Register an for . + + the type that will be rendered by + the renderer for + + + Register an object renderer for a specific source type. + This renderer will be returned from a call to + specifying the same as an argument. + + + + + + Get the default renderer instance + + the default renderer + + + Get the default renderer + + + + + + Interface implemented by logger repository plugins. + + + + Plugins define additional behavior that can be associated + with a . + The held by the + property is used to store the plugins for a repository. + + + The log4net.Config.PluginAttribute can be used to + attach plugins to repositories created using configuration + attributes. + + + Nicko Cadell + Gert Driesen + + + + Attaches the plugin to the specified . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + This method is called to notify the plugin that + it should stop operating and should detach from + the repository. + + + + + + Gets the name of the plugin. + + + The name of the plugin. + + + + Plugins are stored in the + keyed by name. Each plugin instance attached to a + repository must be a unique name. + + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Creates a read-only wrapper for a PluginCollection instance. + + list to create a readonly wrapper arround + + A PluginCollection wrapper that is read-only. + + + + + Initializes a new instance of the PluginCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the PluginCollection class + that has the specified initial capacity. + + + The number of elements that the new PluginCollection is initially capable of storing. + + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified PluginCollection. + + The PluginCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Allow subclasses to avoid our default constructors + + + + + + + Copies the entire PluginCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire PluginCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Adds a to the end of the PluginCollection. + + The to be added to the end of the PluginCollection. + The index at which the value has been added. + + + + Removes all elements from the PluginCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the PluginCollection. + + The to check for. + true if is found in the PluginCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the PluginCollection. + + The to locate in the PluginCollection. + + The zero-based index of the first occurrence of + in the entire PluginCollection, if found; otherwise, -1. + + + + + Inserts an element into the PluginCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the PluginCollection. + + The to remove from the PluginCollection. + + The specified was not found in the PluginCollection. + + + + + Removes the element at the specified index of the PluginCollection. + + The zero-based index of the element to remove. + + is less than zero. + -or- + is equal to or greater than . + + + + + Returns an enumerator that can iterate through the PluginCollection. + + An for the entire PluginCollection. + + + + Adds the elements of another PluginCollection to the current PluginCollection. + + The PluginCollection whose elements should be added to the end of the current PluginCollection. + The new of the PluginCollection. + + + + Adds the elements of a array to the current PluginCollection. + + The array whose elements should be added to the end of the PluginCollection. + The new of the PluginCollection. + + + + Adds the elements of a collection to the current PluginCollection. + + The collection whose elements should be added to the end of the PluginCollection. + The new of the PluginCollection. + + + + Sets the capacity to the actual number of elements. + + + + + is less than zero. + -or- + is equal to or greater than . + + + + + is less than zero. + -or- + is equal to or greater than . + + + + + Gets the number of elements actually contained in the PluginCollection. + + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + An object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + + The at the specified index. + + The zero-based index of the element to get or set. + + is less than zero. + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false. + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false. + + + + Gets or sets the number of elements the PluginCollection can contain. + + + The number of elements the PluginCollection can contain. + + + + + Supports type-safe iteration over a . + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + + A value + + + + + Supports simple iteration over a . + + + + + + Initializes a new instance of the Enumerator class. + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + The current element in the collection. + + + + + + + + Map of repository plugins. + + + + This class is a name keyed map of the plugins that are + attached to a repository. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The repository that the plugins should be attached to. + + + Initialize a new instance of the class with a + repository that the plugins should be attached to. + + + + + + Adds a to the map. + + The to add to the map. + + + The will be attached to the repository when added. + + + If there already exists a plugin with the same name + attached to the repository then the old plugin will + be and replaced with + the new plugin. + + + + + + Removes a from the map. + + The to remove from the map. + + + Remove a specific plugin from this map. + + + + + + Gets a by name. + + The name of the to lookup. + + The from the map with the name specified, or + null if no plugin is found. + + + + Lookup a plugin by name. If the plugin is not found null + will be returned. + + + + + + Gets all possible plugins as a list of objects. + + All possible plugins as a list of objects. + + + Get a collection of all the plugins defined in this map. + + + + + + Base implementation of + + + + Default abstract implementation of the + interface. This base class can be used by implementors + of the interface. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + the name of the plugin + + Initializes a new Plugin with the specified name. + + + + + Attaches this plugin to a . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + This method is called to notify the plugin that + it should stop operating and should detach from + the repository. + + + + + + The name of this plugin. + + + + + The repository this plugin is attached to. + + + + + Gets or sets the name of the plugin. + + + The name of the plugin. + + + + Plugins are stored in the + keyed by name. Each plugin instance attached to a + repository must be a unique name. + + + The name of the plugin must not change one the + plugin has been attached to a repository. + + + + + + The repository for this plugin + + + The that this plugin is attached to. + + + + Gets or sets the that this plugin is + attached to. + + + + + + Plugin that listens for events from the + + + + This plugin publishes an instance of + on a specified . This listens for logging events delivered from + a remote . + + + When an event is received it is relogged within the attached repository + as if it had been raised locally. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Initializes a new instance of the class. + + + The property must be set. + + + + + + Construct with sink Uri. + + The name to publish the sink under in the remoting infrastructure. + See for more details. + + + Initializes a new instance of the class + with specified name. + + + + + + Attaches this plugin to a . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + When the plugin is shutdown the remote logging + sink is disconnected. + + + + + + The fully qualified type of the RemoteLoggingServerPlugin class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the URI of this sink. + + + The URI of this sink. + + + + This is the name under which the object is marshaled. + + + + + + + Delivers objects to a remote sink. + + + + Internal class used to listen for logging events + and deliver them to the local repository. + + + + + + Constructor + + The repository to log to. + + + Initializes a new instance of the for the + specified . + + + + + + Logs the events to the repository. + + The events to log. + + + The events passed are logged to the + + + + + + Obtains a lifetime service object to control the lifetime + policy for this instance. + + null to indicate that this instance should live forever. + + + Obtains a lifetime service object to control the lifetime + policy for this instance. This object should live forever + therefore this implementation returns null. + + + + + + The underlying that events should + be logged to. + + + + + Default implementation of + + + + This default implementation of the + interface is used to create the default subclass + of the object. + + + Nicko Cadell + Gert Driesen + + + + Interface abstracts creation of instances + + + + This interface is used by the to + create new objects. + + + The method is called + to create a named . + + + Implement this interface to create new subclasses of . + + + Nicko Cadell + Gert Driesen + + + + Create a new instance + + The that will own the . + The name of the . + The instance for the specified name. + + + Create a new instance with the + specified name. + + + Called by the to create + new named instances. + + + If the is null then the root logger + must be returned. + + + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Create a new instance + + The that will own the . + The name of the . + The instance for the specified name. + + + Create a new instance with the + specified name. + + + Called by the to create + new named instances. + + + If the is null then the root logger + must be returned. + + + + + + Default internal subclass of + + + + This subclass has no additional behavior over the + class but does allow instances + to be created. + + + + + + Implementation of used by + + + + Internal class used to provide implementation of + interface. Applications should use to get + logger instances. + + + This is one of the central classes in the log4net implementation. One of the + distinctive features of log4net are hierarchical loggers and their + evaluation. The organizes the + instances into a rooted tree hierarchy. + + + The class is abstract. Only concrete subclasses of + can be created. The + is used to create instances of this type for the . + + + Nicko Cadell + Gert Driesen + Aspi Havewala + Douglas de la Torre + + + + This constructor created a new instance and + sets its name. + + The name of the . + + + This constructor is protected and designed to be used by + a subclass that is not abstract. + + + Loggers are constructed by + objects. See for the default + logger creator. + + + + + + Add to the list of appenders of this + Logger instance. + + An appender to add to this logger + + + Add to the list of appenders of this + Logger instance. + + + If is already in the list of + appenders, then it won't be added again. + + + + + + Look for the appender named as name + + The name of the appender to lookup + The appender with the name specified, or null. + + + Returns the named appender, or null if the appender is not found. + + + + + + Remove all previously added appenders from this Logger instance. + + + + Remove all previously added appenders from this Logger instance. + + + This is useful when re-reading configuration information. + + + + + + Remove the appender passed as parameter form the list of appenders. + + The appender to remove + The appender removed from the list + + + Remove the appender passed as parameter form the list of appenders. + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Remove the appender passed as parameter form the list of appenders. + + The name of the appender to remove + The appender removed from the list + + + Remove the named appender passed as parameter form the list of appenders. + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + This generic form is intended to be used by wrappers. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generate a logging event for the specified using + the and . + + + This method must not throw any exception to the caller. + + + + + + This is the most generic printing method that is intended to be used + by wrappers. + + The event being logged. + + + Logs the specified logging event through this logger. + + + This method must not throw any exception to the caller. + + + + + + Checks if this logger is enabled for a given passed as parameter. + + The level to check. + + true if this logger is enabled for level, otherwise false. + + + + Test if this logger is going to log events of the specified . + + + This method must not throw any exception to the caller. + + + + + + Deliver the to the attached appenders. + + The event to log. + + + Call the appenders in the hierarchy starting at + this. If no appenders could be found, emit a + warning. + + + This method calls all the appenders inherited from the + hierarchy circumventing any evaluation of whether to log or not + to log the particular log request. + + + + + + Closes all attached appenders implementing the interface. + + + + Used to ensure that the appenders are correctly shutdown. + + + + + + This is the most generic printing method. This generic form is intended to be used by wrappers + + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generate a logging event for the specified using + the . + + + + + + Creates a new logging event and logs the event without further checks. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generates a logging event and delivers it to the attached + appenders. + + + + + + Creates a new logging event and logs the event without further checks. + + The event being logged. + + + Delivers the logging event to the attached appenders. + + + + + + The fully qualified type of the Logger class. + + + + + The name of this logger. + + + + + The assigned level of this logger. + + + + The level variable need not be + assigned a value in which case it is inherited + form the hierarchy. + + + + + + The parent of this logger. + + + + The parent of this logger. + All loggers have at least one ancestor which is the root logger. + + + + + + Loggers need to know what Hierarchy they are in. + + + + Loggers need to know what Hierarchy they are in. + The hierarchy that this logger is a member of is stored + here. + + + + + + Helper implementation of the interface + + + + + Flag indicating if child loggers inherit their parents appenders + + + + Additivity is set to true by default, that is children inherit + the appenders of their ancestors by default. If this variable is + set to false then the appenders found in the + ancestors of this logger are not used. However, the children + of this logger will inherit its appenders, unless the children + have their additivity flag set to false too. See + the user manual for more details. + + + + + + Lock to protect AppenderAttachedImpl variable m_appenderAttachedImpl + + + + + Gets or sets the parent logger in the hierarchy. + + + The parent logger in the hierarchy. + + + + Part of the Composite pattern that makes the hierarchy. + The hierarchy is parent linked rather than child linked. + + + + + + Gets or sets a value indicating if child loggers inherit their parent's appenders. + + + true if child loggers inherit their parent's appenders. + + + + Additivity is set to true by default, that is children inherit + the appenders of their ancestors by default. If this variable is + set to false then the appenders found in the + ancestors of this logger are not used. However, the children + of this logger will inherit its appenders, unless the children + have their additivity flag set to false too. See + the user manual for more details. + + + + + + Gets the effective level for this logger. + + The nearest level in the logger hierarchy. + + + Starting from this logger, searches the logger hierarchy for a + non-null level and returns it. Otherwise, returns the level of the + root logger. + + The Logger class is designed so that this method executes as + quickly as possible. + + + + + Gets or sets the where this + Logger instance is attached to. + + The hierarchy that this logger belongs to. + + + This logger must be attached to a single . + + + + + + Gets or sets the assigned , if any, for this Logger. + + + The of this logger. + + + + The assigned can be null. + + + + + + Get the appenders contained in this logger as an + . + + A collection of the appenders in this logger + + + Get the appenders contained in this logger as an + . If no appenders + can be found, then a is returned. + + + + + + Gets the logger name. + + + The name of the logger. + + + + The name of this logger + + + + + + Gets the where this + Logger instance is attached to. + + + The that this logger belongs to. + + + + Gets the where this + Logger instance is attached to. + + + + + + Construct a new Logger + + the name of the logger + + + Initializes a new instance of the class + with the specified name. + + + + + + Delegate used to handle logger creation event notifications. + + The in which the has been created. + The event args that hold the instance that has been created. + + + Delegate used to handle logger creation event notifications. + + + + + + Provides data for the event. + + + + A event is raised every time a + is created. + + + + + + The created + + + + + Constructor + + The that has been created. + + + Initializes a new instance of the event argument + class,with the specified . + + + + + + Gets the that has been created. + + + The that has been created. + + + + The that has been created. + + + + + + Hierarchical organization of loggers + + + + The casual user should not have to deal with this class + directly. + + + This class is specialized in retrieving loggers by name and + also maintaining the logger hierarchy. Implements the + interface. + + + The structure of the logger hierarchy is maintained by the + method. The hierarchy is such that children + link to their parent but parents do not have any references to their + children. Moreover, loggers can be instantiated in any order, in + particular descendant before ancestor. + + + In case a descendant is created before a particular ancestor, + then it creates a provision node for the ancestor and adds itself + to the provision node. Other descendants of the same ancestor add + themselves to the previously created provision node. + + + Nicko Cadell + Gert Driesen + + + + Base implementation of + + + + Default abstract implementation of the interface. + + + Skeleton implementation of the interface. + All types can extend this type. + + + Nicko Cadell + Gert Driesen + + + + Interface implemented by logger repositories. + + + + This interface is implemented by logger repositories. e.g. + . + + + This interface is used by the + to obtain interfaces. + + + Nicko Cadell + Gert Driesen + + + + Check if the named logger exists in the repository. If so return + its reference, otherwise returns null. + + The name of the logger to lookup + The Logger object with the name specified + + + If the names logger exists it is returned, otherwise + null is returned. + + + + + + Returns all the currently defined loggers as an Array. + + All the defined loggers + + + Returns all the currently defined loggers as an Array. + + + + + + Returns a named logger instance + + The name of the logger to retrieve + The logger object with the name specified + + + Returns a named logger instance. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + + + Shutdown the repository + + + Shutting down a repository will safely close and remove + all appenders in all loggers including the root logger. + + + Some appenders need to be closed before the + application exists. Otherwise, pending logging events might be + lost. + + + The method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Reset the repositories configuration to a default state + + + + Reset all values contained in this instance to their + default state. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the through this repository. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Returns all the Appenders that are configured as an Array. + + All the Appenders + + + Returns all the Appenders that are configured as an Array. + + + + + + The name of the repository + + + The name of the repository + + + + The name of the repository. + + + + + + RendererMap accesses the object renderer map for this repository. + + + RendererMap accesses the object renderer map for this repository. + + + + RendererMap accesses the object renderer map for this repository. + + + The RendererMap holds a mapping between types and + objects. + + + + + + The plugin map for this repository. + + + The plugin map for this repository. + + + + The plugin map holds the instances + that have been attached to this repository. + + + + + + Get the level map for the Repository. + + + + Get the level map for the Repository. + + + The level map defines the mappings between + level names and objects in + this repository. + + + + + + The threshold for all events in this repository + + + The threshold for all events in this repository + + + + The threshold for all events in this repository. + + + + + + Flag indicates if this repository has been configured. + + + Flag indicates if this repository has been configured. + + + + Flag indicates if this repository has been configured. + + + + + + Collection of internal messages captured during the most + recent configuration process. + + + + + Event to notify that the repository has been shutdown. + + + Event to notify that the repository has been shutdown. + + + + Event raised when the repository has been shutdown. + + + + + + Event to notify that the repository has had its configuration reset. + + + Event to notify that the repository has had its configuration reset. + + + + Event raised when the repository's configuration has been + reset to default. + + + + + + Event to notify that the repository has had its configuration changed. + + + Event to notify that the repository has had its configuration changed. + + + + Event raised when the repository's configuration has been changed. + + + + + + Repository specific properties + + + Repository specific properties + + + + These properties can be specified on a repository specific basis. + + + + + + Default Constructor + + + + Initializes the repository with default (empty) properties. + + + + + + Construct the repository using specific properties + + the properties to set for this repository + + + Initializes the repository with specified properties. + + + + + + Test if logger exists + + The name of the logger to lookup + The Logger object with the name specified + + + Check if the named logger exists in the repository. If so return + its reference, otherwise returns null. + + + + + + Returns all the currently defined loggers in the repository + + All the defined loggers + + + Returns all the currently defined loggers in the repository as an Array. + + + + + + Return a new logger instance + + The name of the logger to retrieve + The logger object with the name specified + + + Return a new logger instance. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + + + + Shutdown the repository + + + + Shutdown the repository. Can be overridden in a subclass. + This base class implementation notifies the + listeners and all attached plugins of the shutdown event. + + + + + + Reset the repositories configuration to a default state + + + + Reset all values contained in this instance to their + default state. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the logEvent through this repository. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Returns all the Appenders that are configured as an Array. + + All the Appenders + + + Returns all the Appenders that are configured as an Array. + + + + + + The fully qualified type of the LoggerRepositorySkeleton class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Adds an object renderer for a specific class. + + The type that will be rendered by the renderer supplied. + The object renderer used to render the object. + + + Adds an object renderer for a specific class. + + + + + + Notify the registered listeners that the repository is shutting down + + Empty EventArgs + + + Notify any listeners that this repository is shutting down. + + + + + + Notify the registered listeners that the repository has had its configuration reset + + Empty EventArgs + + + Notify any listeners that this repository's configuration has been reset. + + + + + + Notify the registered listeners that the repository has had its configuration changed + + Empty EventArgs + + + Notify any listeners that this repository's configuration has changed. + + + + + + Raise a configuration changed event on this repository + + EventArgs.Empty + + + Applications that programmatically change the configuration of the repository should + raise this event notification to notify listeners. + + + + + + Flushes all configured Appenders that implement . + + The maximum time in milliseconds to wait for logging events from asycnhronous appenders to be flushed, + or to wait indefinitely. + True if all logging events were flushed successfully, else false. + + + + The name of the repository + + + The string name of the repository + + + + The name of this repository. The name is + used to store and lookup the repositories + stored by the . + + + + + + The threshold for all events in this repository + + + The threshold for all events in this repository + + + + The threshold for all events in this repository + + + + + + RendererMap accesses the object renderer map for this repository. + + + RendererMap accesses the object renderer map for this repository. + + + + RendererMap accesses the object renderer map for this repository. + + + The RendererMap holds a mapping between types and + objects. + + + + + + The plugin map for this repository. + + + The plugin map for this repository. + + + + The plugin map holds the instances + that have been attached to this repository. + + + + + + Get the level map for the Repository. + + + + Get the level map for the Repository. + + + The level map defines the mappings between + level names and objects in + this repository. + + + + + + Flag indicates if this repository has been configured. + + + Flag indicates if this repository has been configured. + + + + Flag indicates if this repository has been configured. + + + + + + Contains a list of internal messages captures during the + last configuration. + + + + + Event to notify that the repository has been shutdown. + + + Event to notify that the repository has been shutdown. + + + + Event raised when the repository has been shutdown. + + + + + + Event to notify that the repository has had its configuration reset. + + + Event to notify that the repository has had its configuration reset. + + + + Event raised when the repository's configuration has been + reset to default. + + + + + + Event to notify that the repository has had its configuration changed. + + + Event to notify that the repository has had its configuration changed. + + + + Event raised when the repository's configuration has been changed. + + + + + + Repository specific properties + + + Repository specific properties + + + These properties can be specified on a repository specific basis + + + + + Basic Configurator interface for repositories + + + + Interface used by basic configurator to configure a + with a default . + + + A should implement this interface to support + configuration by the . + + + Nicko Cadell + Gert Driesen + + + + Initialize the repository using the specified appender + + the appender to use to log all logging events + + + Configure the repository to route all logging events to the + specified appender. + + + + + + Initialize the repository using the specified appenders + + the appenders to use to log all logging events + + + Configure the repository to route all logging events to the + specified appenders. + + + + + + Configure repository using XML + + + + Interface used by Xml configurator to configure a . + + + A should implement this interface to support + configuration by the . + + + Nicko Cadell + Gert Driesen + + + + Initialize the repository using the specified config + + the element containing the root of the config + + + The schema for the XML configuration data is defined by + the implementation. + + + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Construct with properties + + The properties to pass to this repository. + + + Initializes a new instance of the class. + + + + + + Construct with a logger factory + + The factory to use to create new logger instances. + + + Initializes a new instance of the class with + the specified . + + + + + + Construct with properties and a logger factory + + The properties to pass to this repository. + The factory to use to create new logger instances. + + + Initializes a new instance of the class with + the specified . + + + + + + Test if a logger exists + + The name of the logger to lookup + The Logger object with the name specified + + + Check if the named logger exists in the hierarchy. If so return + its reference, otherwise returns null. + + + + + + Returns all the currently defined loggers in the hierarchy as an Array + + All the defined loggers + + + Returns all the currently defined loggers in the hierarchy as an Array. + The root logger is not included in the returned + enumeration. + + + + + + Return a new logger instance named as the first parameter using + the default factory. + + + + Return a new logger instance named as the first parameter using + the default factory. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + The name of the logger to retrieve + The logger object with the name specified + + + + Shutting down a hierarchy will safely close and remove + all appenders in all loggers including the root logger. + + + + Shutting down a hierarchy will safely close and remove + all appenders in all loggers including the root logger. + + + Some appenders need to be closed before the + application exists. Otherwise, pending logging events might be + lost. + + + The Shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Reset all values contained in this hierarchy instance to their default. + + + + Reset all values contained in this hierarchy instance to their + default. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the logEvent through this hierarchy. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Returns all the Appenders that are currently configured + + An array containing all the currently configured appenders + + + Returns all the instances that are currently configured. + All the loggers are searched for appenders. The appenders may also be containers + for appenders and these are also searched for additional loggers. + + + The list returned is unordered but does not contain duplicates. + + + + + + Collect the appenders from an . + The appender may also be a container. + + + + + + + Collect the appenders from an container + + + + + + + Initialize the log4net system using the specified appender + + the appender to use to log all logging events + + + + Initialize the log4net system using the specified appenders + + the appenders to use to log all logging events + + + + Initialize the log4net system using the specified appenders + + the appenders to use to log all logging events + + + This method provides the same functionality as the + method implemented + on this object, but it is protected and therefore can be called by subclasses. + + + + + + Initialize the log4net system using the specified config + + the element containing the root of the config + + + + Initialize the log4net system using the specified config + + the element containing the root of the config + + + This method provides the same functionality as the + method implemented + on this object, but it is protected and therefore can be called by subclasses. + + + + + + Test if this hierarchy is disabled for the specified . + + The level to check against. + + true if the repository is disabled for the level argument, false otherwise. + + + + If this hierarchy has not been configured then this method will + always return true. + + + This method will return true if this repository is + disabled for level object passed as parameter and + false otherwise. + + + See also the property. + + + + + + Clear all logger definitions from the internal hashtable + + + + This call will clear all logger definitions from the internal + hashtable. Invoking this method will irrevocably mess up the + logger hierarchy. + + + You should really know what you are doing before + invoking this method. + + + + + + Return a new logger instance named as the first parameter using + . + + The name of the logger to retrieve + The factory that will make the new logger instance + The logger object with the name specified + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated by the + parameter and linked with its existing + ancestors as well as children. + + + + + + Sends a logger creation event to all registered listeners + + The newly created logger + + Raises the logger creation event. + + + + + Updates all the parents of the specified logger + + The logger to update the parents for + + + This method loops through all the potential parents of + . There 3 possible cases: + + + + No entry for the potential parent of exists + + We create a ProvisionNode for this potential + parent and insert in that provision node. + + + + The entry is of type Logger for the potential parent. + + The entry is 's nearest existing parent. We + update 's parent field with this entry. We also break from + he loop because updating our parent's parent is our parent's + responsibility. + + + + The entry is of type ProvisionNode for this potential parent. + + We add to the list of children for this + potential parent. + + + + + + + + Replace a with a in the hierarchy. + + + + + + We update the links for all the children that placed themselves + in the provision node 'pn'. The second argument 'log' is a + reference for the newly created Logger, parent of all the + children in 'pn'. + + + We loop on all the children 'c' in 'pn'. + + + If the child 'c' has been already linked to a child of + 'log' then there is no need to update 'c'. + + + Otherwise, we set log's parent field to c's parent and set + c's parent field to log. + + + + + + Define or redefine a Level using the values in the argument + + the level values + + + Define or redefine a Level using the values in the argument + + + Supports setting levels via the configuration file. + + + + + + Set a Property using the values in the argument + + the property value + + + Set a Property using the values in the argument. + + + Supports setting property values via the configuration file. + + + + + + The fully qualified type of the Hierarchy class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Event used to notify that a logger has been created. + + + + Event raised when a logger is created. + + + + + + Has no appender warning been emitted + + + + Flag to indicate if we have already issued a warning + about not having an appender warning. + + + + + + Get the root of this hierarchy + + + + Get the root of this hierarchy. + + + + + + Gets or sets the default instance. + + The default + + + The logger factory is used to create logger instances. + + + + + + A class to hold the value, name and display name for a level + + + + A class to hold the value, name and display name for a level + + + + + + Override Object.ToString to return sensible debug info + + string info about this object + + + + Value of the level + + + + If the value is not set (defaults to -1) the value will be looked + up for the current level with the same name. + + + + + + Name of the level + + + The name of the level + + + + The name of the level. + + + + + + Display name for the level + + + The display name of the level + + + + The display name of the level. + + + + + + Used internally to accelerate hash table searches. + + + + Internal class used to improve performance of + string keyed hashtables. + + + The hashcode of the string is cached for reuse. + The string is stored as an interned value. + When comparing two objects for equality + the reference equality of the interned strings is compared. + + + Nicko Cadell + Gert Driesen + + + + Construct key with string name + + + + Initializes a new instance of the class + with the specified name. + + + Stores the hashcode of the string and interns + the string key to optimize comparisons. + + + The Compact Framework 1.0 the + method does not work. On the Compact Framework + the string keys are not interned nor are they + compared by reference. + + + The name of the logger. + + + + Returns a hash code for the current instance. + + A hash code for the current instance. + + + Returns the cached hashcode. + + + + + + Determines whether two instances + are equal. + + The to compare with the current . + + true if the specified is equal to the current ; otherwise, false. + + + + Compares the references of the interned strings. + + + + + + Provision nodes are used where no logger instance has been specified + + + + instances are used in the + when there is no specified + for that node. + + + A provision node holds a list of child loggers on behalf of + a logger that does not exist. + + + Nicko Cadell + Gert Driesen + + + + Create a new provision node with child node + + A child logger to add to this node. + + + Initializes a new instance of the class + with the specified child logger. + + + + + + The sits at the root of the logger hierarchy tree. + + + + The is a regular except + that it provides several guarantees. + + + First, it cannot be assigned a null + level. Second, since the root logger cannot have a parent, the + property always returns the value of the + level field without walking the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Construct a + + The level to assign to the root logger. + + + Initializes a new instance of the class with + the specified logging level. + + + The root logger names itself as "root". However, the root + logger cannot be retrieved by name. + + + + + + The fully qualified type of the RootLogger class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the assigned level value without walking the logger hierarchy. + + The assigned level value without walking the logger hierarchy. + + + Because the root logger cannot have a parent and its level + must not be null this property just returns the + value of . + + + + + + Gets or sets the assigned for the root logger. + + + The of the root logger. + + + + Setting the level of the root logger to a null reference + may have catastrophic results. We prevent this here. + + + + + + Initializes the log4net environment using an XML DOM. + + + + Configures a using an XML DOM. + + + Nicko Cadell + Gert Driesen + + + + Construct the configurator for a hierarchy + + The hierarchy to build. + + + Initializes a new instance of the class + with the specified . + + + + + + Configure the hierarchy by parsing a DOM tree of XML elements. + + The root element to parse. + + + Configure the hierarchy by parsing a DOM tree of XML elements. + + + + + + Parse appenders by IDREF. + + The appender ref element. + The instance of the appender that the ref refers to. + + + Parse an XML element that represents an appender and return + the appender. + + + + + + Parses an appender element. + + The appender element. + The appender instance or null when parsing failed. + + + Parse an XML element that represents an appender and return + the appender instance. + + + + + + Parses a logger element. + + The logger element. + + + Parse an XML element that represents a logger. + + + + + + Parses the root logger element. + + The root element. + + + Parse an XML element that represents the root logger. + + + + + + Parses the children of a logger element. + + The category element. + The logger instance. + Flag to indicate if the logger is the root logger. + + + Parse the child elements of a <logger> element. + + + + + + Parses an object renderer. + + The renderer element. + + + Parse an XML element that represents a renderer. + + + + + + Parses a level element. + + The level element. + The logger object to set the level on. + Flag to indicate if the logger is the root logger. + + + Parse an XML element that represents a level. + + + + + + Sets a parameter on an object. + + The parameter element. + The object to set the parameter on. + + The parameter name must correspond to a writable property + on the object. The value of the parameter is a string, + therefore this function will attempt to set a string + property first. If unable to set a string property it + will inspect the property and its argument type. It will + attempt to call a static method called Parse on the + type of the property. This method will take a single + string argument and return a value that can be used to + set the property. + + + + + Test if an element has no attributes or child elements + + the element to inspect + true if the element has any attributes or child elements, false otherwise + + + + Test if a is constructible with Activator.CreateInstance. + + the type to inspect + true if the type is creatable using a default constructor, false otherwise + + + + Look for a method on the that matches the supplied + + the type that has the method + the name of the method + the method info found + + + The method must be a public instance method on the . + The method must be named or "Add" followed by . + The method must take a single parameter. + + + + + + Converts a string value to a target type. + + The type of object to convert the string to. + The string value to use as the value of the object. + + + An object of type with value or + null when the conversion could not be performed. + + + + + + Creates an object as specified in XML. + + The XML element that contains the definition of the object. + The object type to use if not explicitly specified. + The type that the returned object must be or must inherit from. + The object or null + + + Parse an XML element and create an object instance based on the configuration + data. + + + The type of the instance may be specified in the XML. If not + specified then the is used + as the type. However the type is specified it must support the + type. + + + + + + key: appenderName, value: appender. + + + + + The Hierarchy being configured. + + + + + The fully qualified type of the XmlHierarchyConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + + + + + + + + + + + + + + + + + Delegate used to handle logger repository shutdown event notifications + + The that is shutting down. + Empty event args + + + Delegate used to handle logger repository shutdown event notifications. + + + + + + Delegate used to handle logger repository configuration reset event notifications + + The that has had its configuration reset. + Empty event args + + + Delegate used to handle logger repository configuration reset event notifications. + + + + + + Delegate used to handle event notifications for logger repository configuration changes. + + The that has had its configuration changed. + Empty event arguments. + + + Delegate used to handle event notifications for logger repository configuration changes. + + + + + + Write the name of the current AppDomain to the output + + + + Write the name of the current AppDomain to the output writer + + + Nicko Cadell + + + + Write the name of the current AppDomain to the output + + the writer to write to + null, state is not set + + + Writes name of the current AppDomain to the output . + + + + + + AppSetting pattern converter + + + + This pattern converter reads appSettings from the application configuration file. + + + If the is specified then that will be used to + lookup a single appSettings value. If no is specified + then all appSettings will be dumped as a list of key value pairs. + + + A typical use is to specify a base directory for log files, e.g. + + + + + ... + + + ]]> + + + + + + + Write the property value to the output + + that will receive the formatted result. + null, state is not set + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + Write the current date to the output + + + + Date pattern converter, uses a to format + the current date and time to the writer as a string. + + + The value of the determines + the formatting of the date. The following values are allowed: + + + Option value + Output + + + ISO8601 + + Uses the formatter. + Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. + + + + DATE + + Uses the formatter. + Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". + + + + ABSOLUTE + + Uses the formatter. + Formats using the "HH:mm:ss,fff" for example, "15:49:37,459". + + + + other + + Any other pattern string uses the formatter. + This formatter passes the pattern string to the + method. + For details on valid patterns see + DateTimeFormatInfo Class. + + + + + + The date and time is in the local time zone and is rendered in that zone. + To output the time in Universal time see . + + + Nicko Cadell + + + + The used to render the date to a string + + + + The used to render the date to a string + + + + + + Initialize the converter options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the current date to the output + + that will receive the formatted result. + null, state is not set + + + Pass the current date and time to the + for it to render it to the writer. + + + The date and time passed is in the local time zone. + + + + + + The fully qualified type of the DatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write an folder path to the output + + + + Write an special path environment folder path to the output writer. + The value of the determines + the name of the variable to output. + should be a value in the enumeration. + + + Ron Grabowski + + + + Write an special path environment folder path to the output + + the writer to write to + null, state is not set + + + Writes the special path environment folder path to the output . + The name of the special path environment folder path to output must be set + using the + property. + + + + + + The fully qualified type of the EnvironmentFolderPathPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write an environment variable to the output + + + + Write an environment variable to the output writer. + The value of the determines + the name of the variable to output. + + + Nicko Cadell + + + + Write an environment variable to the output + + the writer to write to + null, state is not set + + + Writes the environment variable to the output . + The name of the environment variable to output must be set + using the + property. + + + + + + The fully qualified type of the EnvironmentPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the current thread identity to the output + + + + Write the current thread identity to the output writer + + + Nicko Cadell + + + + Write the current thread identity to the output + + the writer to write to + null, state is not set + + + Writes the current thread identity to the output . + + + + + + The fully qualified type of the IdentityPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Pattern converter for literal string instances in the pattern + + + + Writes the literal string value specified in the + property to + the output. + + + Nicko Cadell + + + + Set the next converter in the chain + + The next pattern converter in the chain + The next pattern converter + + + Special case the building of the pattern converter chain + for instances. Two adjacent + literals in the pattern can be represented by a single combined + pattern converter. This implementation detects when a + is added to the chain + after this converter and combines its value with this converter's + literal value. + + + + + + Write the literal to the output + + the writer to write to + null, not set + + + Override the formatting behavior to ignore the FormattingInfo + because we have a literal instead. + + + Writes the value of + to the output . + + + + + + Convert this pattern into the rendered message + + that will receive the formatted result. + null, not set + + + This method is not used. + + + + + + Writes a newline to the output + + + + Writes the system dependent line terminator to the output. + This behavior can be overridden by setting the : + + + + Option Value + Output + + + DOS + DOS or Windows line terminator "\r\n" + + + UNIX + UNIX line terminator "\n" + + + + Nicko Cadell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the current process ID to the output + + + + Write the current process ID to the output writer + + + Nicko Cadell + + + + Write the current process ID to the output + + the writer to write to + null, state is not set + + + Write the current process ID to the output . + + + + + + The fully qualified type of the ProcessIdPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Property pattern converter + + + + This pattern converter reads the thread and global properties. + The thread properties take priority over global properties. + See for details of the + thread properties. See for + details of the global properties. + + + If the is specified then that will be used to + lookup a single property. If no is specified + then all properties will be dumped as a list of key value pairs. + + + Nicko Cadell + + + + Write the property value to the output + + that will receive the formatted result. + null, state is not set + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + A Pattern converter that generates a string of random characters + + + + The converter generates a string of random characters. By default + the string is length 4. This can be changed by setting the + to the string value of the length required. + + + The random characters in the string are limited to uppercase letters + and numbers only. + + + The random number generator used by this class is not cryptographically secure. + + + Nicko Cadell + + + + Shared random number generator + + + + + Length of random string to generate. Default length 4. + + + + + Initialize the converter options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write a randoim string to the output + + the writer to write to + null, state is not set + + + Write a randoim string to the output . + + + + + + The fully qualified type of the RandomStringPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the current threads username to the output + + + + Write the current threads username to the output writer + + + Nicko Cadell + + + + Write the current threads username to the output + + the writer to write to + null, state is not set + + + Write the current threads username to the output . + + + + + + The fully qualified type of the UserNamePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the UTC date time to the output + + + + Date pattern converter, uses a to format + the current date and time in Universal time. + + + See the for details on the date pattern syntax. + + + + Nicko Cadell + + + + Write the current date and time to the output + + that will receive the formatted result. + null, state is not set + + + Pass the current date and time to the + for it to render it to the writer. + + + The date is in Universal time when it is rendered. + + + + + + + The fully qualified type of the UtcDatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Type converter for Boolean. + + + + Supports conversion from string to bool type. + + + + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Convert the source object to the type supported by this object + + the object to convert + the converted object + + + Uses the method to convert the + argument to a . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Exception base type for conversion errors. + + + + This type extends . It + does not add any new functionality but does differentiate the + type of exception being thrown. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + A message to include with the exception. + + + Initializes a new instance of the class + with the specified message. + + + + + + Constructor + + A message to include with the exception. + A nested exception to include. + + + Initializes a new instance of the class + with the specified message and inner exception. + + + + + + Serialization constructor + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Creates a new instance of the class. + + The conversion destination type. + The value to convert. + An instance of the . + + + Creates a new instance of the class. + + + + + + Creates a new instance of the class. + + The conversion destination type. + The value to convert. + A nested exception to include. + An instance of the . + + + Creates a new instance of the class. + + + + + + Register of type converters for specific types. + + + + Maintains a registry of type converters used to convert between + types. + + + Use the and + methods to register new converters. + The and methods + lookup appropriate converters to use. + + + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + Initializes a new instance of the class. + + + + + Static constructor. + + + + This constructor defines the intrinsic type converters. + + + + + + Adds a converter for a specific type. + + The type being converted to. + The type converter to use to convert to the destination type. + + + Adds a converter instance for a specific type. + + + + + + Adds a converter for a specific type. + + The type being converted to. + The type of the type converter to use to convert to the destination type. + + + Adds a converter for a specific type. + + + + + + Gets the type converter to use to convert values to the destination type. + + The type being converted from. + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + Gets the type converter to use to convert values to the destination type. + + + + + + Gets the type converter to use to convert values to the destination type. + + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + Gets the type converter to use to convert values to the destination type. + + + + + + Lookups the type converter to use as specified by the attributes on the + destination type. + + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + + Creates the instance of the type converter. + + The type of the type converter. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + The type specified for the type converter must implement + the or interfaces + and must have a public default (no argument) constructor. + + + + + + The fully qualified type of the ConverterRegistry class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Mapping from to type converter. + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to an encoding + the encoding + + + Uses the method to + convert the argument to an . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Interface supported by type converters + + + + This interface supports conversion from a single type to arbitrary types. + See . + + + Nicko Cadell + + + + Returns whether this converter can convert the object to the specified type + + A Type that represents the type you want to convert to + true if the conversion is possible + + + Test if the type supported by this converter can be converted to the + . + + + + + + Converts the given value object to the specified type, using the arguments + + the object to convert + The Type to convert the value parameter to + the converted object + + + Converts the (which must be of the type supported + by this converter) to the specified.. + + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to an IPAddress + the IPAddress + + + Uses the method to convert the + argument to an . + If that fails then the string is resolved as a DNS hostname. + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Valid characters in an IPv4 or IPv6 address string. (Does not support subnets) + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + The string is used as the + of the . + + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a PatternLayout + the PatternLayout + + + Creates and returns a new using + the as the + . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Convert between string and + + + + Supports conversion from string to type, + and from a type to a string. + + + The string is used as the + of the . + + + + + + Nicko Cadell + + + + Can the target type be converted to the type supported by this object + + A that represents the type you want to convert to + true if the conversion is possible + + + Returns true if the is + assignable from a type. + + + + + + Converts the given value object to the specified type, using the arguments + + the object to convert + The Type to convert the value parameter to + the converted object + + + Uses the method to convert the + argument to a . + + + + The object cannot be converted to the + . To check for this condition use the + method. + + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a PatternString + the PatternString + + + Creates and returns a new using + the as the + . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a Type + the Type + + + Uses the method to convert the + argument to a . + Additional effort is made to locate partially specified types + by searching the loaded assemblies. + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Attribute used to associate a type converter + + + + Class and Interface level attribute that specifies a type converter + to use with the associated type. + + + To associate a type converter with a target type apply a + TypeConverterAttribute to the target type. Specify the + type of the type converter on the attribute. + + + Nicko Cadell + Gert Driesen + + + + The string type name of the type converter + + + + + Default constructor + + + + Default constructor + + + + + + Create a new type converter attribute for the specified type name + + The string type name of the type converter + + + The type specified must implement the + or the interfaces. + + + + + + Create a new type converter attribute for the specified type + + The type of the type converter + + + The type specified must implement the + or the interfaces. + + + + + + The string type name of the type converter + + + The string type name of the type converter + + + + The type specified must implement the + or the interfaces. + + + + + + A straightforward implementation of the interface. + + + + This is the default implementation of the + interface. Implementors of the interface + should aggregate an instance of this type. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Append on on all attached appenders. + + The event being logged. + The number of appenders called. + + + Calls the method on all + attached appenders. + + + + + + Append on on all attached appenders. + + The array of events being logged. + The number of appenders called. + + + Calls the method on all + attached appenders. + + + + + + Calls the DoAppende method on the with + the objects supplied. + + The appender + The events + + + If the supports the + interface then the will be passed + through using that interface. Otherwise the + objects in the array will be passed one at a time. + + + + + + Attaches an appender. + + The appender to add. + + + If the appender is already in the list it won't be added again. + + + + + + Gets an attached appender with the specified name. + + The name of the appender to get. + + The appender with the name specified, or null if no appender with the + specified name is found. + + + + Lookup an attached appender by name. + + + + + + Removes all attached appenders. + + + + Removes and closes all attached appenders + + + + + + Removes the specified appender from the list of attached appenders. + + The appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + List of appenders + + + + + Array of appenders, used to cache the m_appenderList + + + + + The fully qualified type of the AppenderAttachedImpl class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets all attached appenders. + + + A collection of attached appenders, or null if there + are no attached appenders. + + + + The read only collection of all currently attached appenders. + + + + + + This class aggregates several PropertiesDictionary collections together. + + + + Provides a dictionary style lookup over an ordered list of + collections. + + + Nicko Cadell + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Add a Properties Dictionary to this composite collection + + the properties to add + + + Properties dictionaries added first take precedence over dictionaries added + later. + + + + + + Flatten this composite collection into a single properties dictionary + + the flattened dictionary + + + Reduces the collection of ordered dictionaries to a single dictionary + containing the resultant values for the keys. + + + + + + Gets the value of a property + + + The value for the property with the specified key + + + + Looks up the value for the specified. + The collections are searched + in the order in which they were added to this collection. The value + returned is the value held by the first collection that contains + the specified key. + + + If none of the collections contain the specified key then + null is returned. + + + + + + Base class for Context Properties implementations + + + + This class defines a basic property get set accessor + + + Nicko Cadell + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Gets or sets the value of a property + + + + + + Wrapper class used to map converter names to converter types + + + + Pattern converter info class used during configuration by custom + PatternString and PatternLayer converters. + + + + + + default constructor + + + + + + + + + + + Gets or sets the name of the conversion pattern + + + + The name of the pattern in the format string + + + + + + Gets or sets the type of the converter + + + + The value specified must extend the + type. + + + + + + + + + + + Subclass of that maintains a count of + the number of bytes written. + + + + This writer counts the number of bytes written. + + + Nicko Cadell + Gert Driesen + + + + that does not leak exceptions + + + + does not throw exceptions when things go wrong. + Instead, it delegates error handling to its . + + + Nicko Cadell + Gert Driesen + + + + Adapter that extends and forwards all + messages to an instance of . + + + + Adapter that extends and forwards all + messages to an instance of . + + + Nicko Cadell + + + + The writer to forward messages to + + + + + Create an instance of that forwards all + messages to a . + + The to forward to + + + Create an instance of that forwards all + messages to a . + + + + + + Closes the writer and releases any system resources associated with the writer + + + + + + + + + Dispose this writer + + flag indicating if we are being disposed + + + Dispose this writer + + + + + + Flushes any buffered output + + + + Clears all buffers for the writer and causes any buffered data to be written + to the underlying device + + + + + + Writes a character to the wrapped TextWriter + + the value to write to the TextWriter + + + Writes a character to the wrapped TextWriter + + + + + + Writes a character buffer to the wrapped TextWriter + + the data buffer + the start index + the number of characters to write + + + Writes a character buffer to the wrapped TextWriter + + + + + + Writes a string to the wrapped TextWriter + + the value to write to the TextWriter + + + Writes a string to the wrapped TextWriter + + + + + + Gets or sets the underlying . + + + The underlying . + + + + Gets or sets the underlying . + + + + + + The Encoding in which the output is written + + + The + + + + The Encoding in which the output is written + + + + + + Gets an object that controls formatting + + + The format provider + + + + Gets an object that controls formatting + + + + + + Gets or sets the line terminator string used by the TextWriter + + + The line terminator to use + + + + Gets or sets the line terminator string used by the TextWriter + + + + + + Constructor + + the writer to actually write to + the error handler to report error to + + + Create a new QuietTextWriter using a writer and error handler + + + + + + Writes a character to the underlying writer + + the char to write + + + Writes a character to the underlying writer + + + + + + Writes a buffer to the underlying writer + + the buffer to write + the start index to write from + the number of characters to write + + + Writes a buffer to the underlying writer + + + + + + Writes a string to the output. + + The string data to write to the output. + + + Writes a string to the output. + + + + + + Closes the underlying output writer. + + + + Closes the underlying output writer. + + + + + + The error handler instance to pass all errors to + + + + + Flag to indicate if this writer is closed + + + + + Gets or sets the error handler that all errors are passed to. + + + The error handler that all errors are passed to. + + + + Gets or sets the error handler that all errors are passed to. + + + + + + Gets a value indicating whether this writer is closed. + + + true if this writer is closed, otherwise false. + + + + Gets a value indicating whether this writer is closed. + + + + + + Constructor + + The to actually write to. + The to report errors to. + + + Creates a new instance of the class + with the specified and . + + + + + + Writes a character to the underlying writer and counts the number of bytes written. + + the char to write + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Writes a buffer to the underlying writer and counts the number of bytes written. + + the buffer to write + the start index to write from + the number of characters to write + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Writes a string to the output and counts the number of bytes written. + + The string data to write to the output. + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Total number of bytes written. + + + + + Gets or sets the total number of bytes written. + + + The total number of bytes written. + + + + Gets or sets the total number of bytes written. + + + + + + A fixed size rolling buffer of logging events. + + + + An array backed fixed size leaky bucket. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The maximum number of logging events in the buffer. + + + Initializes a new instance of the class with + the specified maximum number of buffered logging events. + + + The argument is not a positive integer. + + + + Appends a to the buffer. + + The event to append to the buffer. + The event discarded from the buffer, if the buffer is full, otherwise null. + + + Append an event to the buffer. If the buffer still contains free space then + null is returned. If the buffer is full then an event will be dropped + to make space for the new event, the event dropped is returned. + + + + + + Get and remove the oldest event in the buffer. + + The oldest logging event in the buffer + + + Gets the oldest (first) logging event in the buffer and removes it + from the buffer. + + + + + + Pops all the logging events from the buffer into an array. + + An array of all the logging events in the buffer. + + + Get all the events in the buffer and clear the buffer. + + + + + + Clear the buffer + + + + Clear the buffer of all events. The events in the buffer are lost. + + + + + + Gets the th oldest event currently in the buffer. + + The th oldest event currently in the buffer. + + + If is outside the range 0 to the number of events + currently in the buffer, then null is returned. + + + + + + Gets the maximum size of the buffer. + + The maximum size of the buffer. + + + Gets the maximum size of the buffer + + + + + + Gets the number of logging events in the buffer. + + The number of logging events in the buffer. + + + This number is guaranteed to be in the range 0 to + (inclusive). + + + + + + An always empty . + + + + A singleton implementation of the + interface that always represents an empty collection. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Copies the elements of the to an + , starting at a particular Array index. + + The one-dimensional + that is the destination of the elements copied from + . The Array must have zero-based + indexing. + The zero-based index in array at which + copying begins. + + + As the collection is empty no values are copied into the array. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + The singleton instance of the empty collection. + + + + + Gets the singleton instance of the empty collection. + + The singleton instance of the empty collection. + + + Gets the singleton instance of the empty collection. + + + + + + Gets a value indicating if access to the is synchronized (thread-safe). + + + true if access to the is synchronized (thread-safe); otherwise, false. + + + + For the this property is always true. + + + + + + Gets the number of elements contained in the . + + + The number of elements contained in the . + + + + As the collection is empty the is always 0. + + + + + + Gets an object that can be used to synchronize access to the . + + + An object that can be used to synchronize access to the . + + + + As the collection is empty and thread safe and synchronized this instance is also + the object. + + + + + + An always empty . + + + + A singleton implementation of the + interface that always represents an empty collection. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Copies the elements of the to an + , starting at a particular Array index. + + The one-dimensional + that is the destination of the elements copied from + . The Array must have zero-based + indexing. + The zero-based index in array at which + copying begins. + + + As the collection is empty no values are copied into the array. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + Adds an element with the provided key and value to the + . + + The to use as the key of the element to add. + The to use as the value of the element to add. + + + As the collection is empty no new values can be added. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + Removes all elements from the . + + + + As the collection is empty no values can be removed. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + Determines whether the contains an element + with the specified key. + + The key to locate in the . + false + + + As the collection is empty the method always returns false. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + Removes the element with the specified key from the . + + The key of the element to remove. + + + As the collection is empty no values can be removed. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + The singleton instance of the empty dictionary. + + + + + Gets the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets a value indicating if access to the is synchronized (thread-safe). + + + true if access to the is synchronized (thread-safe); otherwise, false. + + + + For the this property is always true. + + + + + + Gets the number of elements contained in the + + + The number of elements contained in the . + + + + As the collection is empty the is always 0. + + + + + + Gets an object that can be used to synchronize access to the . + + + An object that can be used to synchronize access to the . + + + + As the collection is empty and thread safe and synchronized this instance is also + the object. + + + + + + Gets a value indicating whether the has a fixed size. + + true + + + As the collection is empty always returns true. + + + + + + Gets a value indicating whether the is read-only. + + true + + + As the collection is empty always returns true. + + + + + + Gets an containing the keys of the . + + An containing the keys of the . + + + As the collection is empty a is returned. + + + + + + Gets an containing the values of the . + + An containing the values of the . + + + As the collection is empty a is returned. + + + + + + Gets or sets the element with the specified key. + + The key of the element to get or set. + null + + + As the collection is empty no values can be looked up or stored. + If the index getter is called then null is returned. + A is thrown if the setter is called. + + + This dictionary is always empty and cannot be modified. + + + + Contain the information obtained when parsing formatting modifiers + in conversion modifiers. + + + + Holds the formatting information extracted from the format string by + the . This is used by the + objects when rendering the output. + + + Nicko Cadell + Gert Driesen + + + + Defaut Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + + + Initializes a new instance of the class + with the specified parameters. + + + + + + Gets or sets the minimum value. + + + The minimum value. + + + + Gets or sets the minimum value. + + + + + + Gets or sets the maximum value. + + + The maximum value. + + + + Gets or sets the maximum value. + + + + + + Gets or sets a flag indicating whether left align is enabled + or not. + + + A flag indicating whether left align is enabled or not. + + + + Gets or sets a flag indicating whether left align is enabled or not. + + + + + + Implementation of Properties collection for the + + + + This class implements a properties collection that is thread safe and supports both + storing properties and capturing a read only copy of the current propertied. + + + This class is optimized to the scenario where the properties are read frequently + and are modified infrequently. + + + Nicko Cadell + + + + The read only copy of the properties. + + + + This variable is declared volatile to prevent the compiler and JIT from + reordering reads and writes of this thread performed on different threads. + + + + + + Lock object used to synchronize updates within this instance + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Remove a property from the global context + + the key for the entry to remove + + + Removing an entry from the global context properties is relatively expensive compared + with reading a value. + + + + + + Clear the global context properties + + + + + Get a readonly immutable copy of the properties + + the current global context properties + + + This implementation is fast because the GlobalContextProperties class + stores a readonly copy of the properties. + + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Reading the value for a key is faster than setting the value. + When the value is written a new read only copy of + the properties is created. + + + + + + The static class ILogExtensions contains a set of widely used + methods that ease the interaction with the ILog interface implementations. + + + + This class contains methods for logging at different levels and checks the + properties for determining if those logging levels are enabled in the current + configuration. + + + Simple example of logging messages + + using log4net.Util; + + ILog log = LogManager.GetLogger("application-log"); + + log.InfoExt("Application Start"); + log.DebugExt("This is a debug message"); + + + + + + The fully qualified type of the Logger class. + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is WARN + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is WARN enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is WARN + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is WARN enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is ERROR + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is ERROR enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is ERROR + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is ERROR enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is FATAL + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is FATAL enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is FATAL + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is FATAL enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Manages a mapping from levels to + + + + Manages an ordered mapping from instances + to subclasses. + + + Nicko Cadell + + + + Default constructor + + + + Initialise a new instance of . + + + + + + Add a to this mapping + + the entry to add + + + If a has previously been added + for the same then that entry will be + overwritten. + + + + + + Lookup the mapping for the specified level + + the level to lookup + the for the level or null if no mapping found + + + Lookup the value for the specified level. Finds the nearest + mapping value for the level that is equal to or less than the + specified. + + + If no mapping could be found then null is returned. + + + + + + Initialize options + + + + Caches the sorted list of in an array + + + + + + Implementation of Properties collection for the + + + + Class implements a collection of properties that is specific to each thread. + The class is not synchronized as each thread has its own . + + + This class stores its properties in a slot on the named + log4net.Util.LogicalThreadContextProperties. + + + For .NET Standard 1.3 this class uses + System.Threading.AsyncLocal rather than . + + + The requires a link time + for the + . + If the calling code does not have this permission then this context will be disabled. + It will not store any property values set on it. + + + Nicko Cadell + + + + Flag used to disable this context if we don't have permission to access the CallContext. + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Remove a property + + the key for the entry to remove + + + Remove the value for the specified from the context. + + + + + + Clear all the context properties + + + + Clear all the context properties + + + + + + Get the PropertiesDictionary stored in the LocalDataStoreSlot for this thread. + + create the dictionary if it does not exist, otherwise return null if is does not exist + the properties for this thread + + + The collection returned is only to be used on the calling thread. If the + caller needs to share the collection between different threads then the + caller must clone the collection before doings so. + + + + + + Gets the call context get data. + + The peroperties dictionary stored in the call context + + The method has a + security link demand, therfore we must put the method call in a seperate method + that we can wrap in an exception handler. + + + + + Sets the call context data. + + The properties. + + The method has a + security link demand, therfore we must put the method call in a seperate method + that we can wrap in an exception handler. + + + + + The fully qualified type of the LogicalThreadContextProperties class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Get or set the property value for the specified. + + + + + + Delegate type used for LogicalThreadContextStack's callbacks. + + + + + Implementation of Stack for the + + + + Implementation of Stack for the + + + Nicko Cadell + + + + The stack store. + + + + + The name of this within the + . + + + + + The callback used to let the register a + new instance of a . + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Clears all the contextual information held in this stack. + + + + Clears all the contextual information held in this stack. + Only call this if you think that this thread is being reused after + a previous call execution which may not have completed correctly. + You do not need to use this method if you always guarantee to call + the method of the + returned from even in exceptional circumstances, + for example by using the using(log4net.LogicalThreadContext.Stacks["NDC"].Push("Stack_Message")) + syntax. + + + + + + Removes the top context from this stack. + + The message in the context that was removed from the top of this stack. + + + Remove the top context from this stack, and return + it to the caller. If this stack is empty then an + empty string (not ) is returned. + + + + + + Pushes a new context message into this stack. + + The new context message. + + An that can be used to clean up the context stack. + + + + Pushes a new context onto this stack. An + is returned that can be used to clean up this stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.LogicalThreadContext.Stacks["NDC"].Push("Stack_Message")) + { + log.Warn("This should have an ThreadContext Stack message"); + } + + + + + + Gets the current context information for this stack. + + The current context information. + + + + Gets the current context information for this stack. + + Gets the current context information + + + Gets the current context information for this stack. + + + + + + Get a portable version of this object + + the portable instance of this object + + + Get a cross thread portable version of this object + + + + + + The number of messages in the stack + + + The current number of messages in the stack + + + + The current number of messages in the stack. That is + the number of times has been called + minus the number of times has been called. + + + + + + Gets and sets the internal stack used by this + + The internal storage stack + + + This property is provided only to support backward compatability + of the . Tytpically the internal stack should not + be modified. + + + + + + Inner class used to represent a single context frame in the stack. + + + + Inner class used to represent a single context frame in the stack. + + + + + + Constructor + + The message for this context. + The parent context in the chain. + + + Initializes a new instance of the class + with the specified message and parent context. + + + + + + Get the message. + + The message. + + + Get the message. + + + + + + Gets the full text of the context down to the root level. + + + The full text of the context down to the root level. + + + + Gets the full text of the context down to the root level. + + + + + + Struct returned from the method. + + + + This struct implements the and is designed to be used + with the pattern to remove the stack frame at the end of the scope. + + + + + + The depth to trim the stack to when this instance is disposed + + + + + The outer LogicalThreadContextStack. + + + + + Constructor + + The internal stack used by the ThreadContextStack. + The depth to return the stack to when this object is disposed. + + + Initializes a new instance of the class with + the specified stack and return depth. + + + + + + Returns the stack to the correct depth. + + + + Returns the stack to the correct depth. + + + + + + Implementation of Stacks collection for the + + + + Implementation of Stacks collection for the + + + Nicko Cadell + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + The fully qualified type of the ThreadContextStacks class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the named thread context stack + + + The named stack + + + + Gets the named thread context stack + + + + + + + + + + + + + Outputs log statements from within the log4net assembly. + + + + Log4net components cannot make log4net logging calls. However, it is + sometimes useful for the user to learn about what log4net is + doing. + + + All log4net internal debug calls go to the standard output stream + whereas internal error messages are sent to the standard error output + stream. + + + Nicko Cadell + Gert Driesen + + + + Formats Prefix, Source, and Message in the same format as the value + sent to Console.Out and Trace.Write. + + + + + + Initializes a new instance of the class. + + + + + + + + + Static constructor that initializes logging by reading + settings from the application configuration file. + + + + The log4net.Internal.Debug application setting + controls internal debugging. This setting should be set + to true to enable debugging. + + + The log4net.Internal.Quiet application setting + suppresses all internal logging including error messages. + This setting should be set to true to enable message + suppression. + + + + + + Raises the LogReceived event when an internal messages is received. + + + + + + + + + Writes log4net internal debug messages to the + standard output stream. + + + The message to log. + + + All internal debug messages are prepended with + the string "log4net: ". + + + + + + Writes log4net internal debug messages to the + standard output stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal debug messages are prepended with + the string "log4net: ". + + + + + + Writes log4net internal warning messages to the + standard error stream. + + The Type that generated this message. + The message to log. + + + All internal warning messages are prepended with + the string "log4net:WARN ". + + + + + + Writes log4net internal warning messages to the + standard error stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal warning messages are prepended with + the string "log4net:WARN ". + + + + + + Writes log4net internal error messages to the + standard error stream. + + The Type that generated this message. + The message to log. + + + All internal error messages are prepended with + the string "log4net:ERROR ". + + + + + + Writes log4net internal error messages to the + standard error stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal debug messages are prepended with + the string "log4net:ERROR ". + + + + + + Writes output to the standard output stream. + + The message to log. + + + Writes to both Console.Out and System.Diagnostics.Trace. + Note that the System.Diagnostics.Trace is not supported + on the Compact Framework. + + + If the AppDomain is not configured with a config file then + the call to System.Diagnostics.Trace may fail. This is only + an issue if you are programmatically creating your own AppDomains. + + + + + + Writes output to the standard error stream. + + The message to log. + + + Writes to both Console.Error and System.Diagnostics.Trace. + Note that the System.Diagnostics.Trace is not supported + on the Compact Framework. + + + If the AppDomain is not configured with a config file then + the call to System.Diagnostics.Trace may fail. This is only + an issue if you are programmatically creating your own AppDomains. + + + + + + Default debug level + + + + + In quietMode not even errors generate any output. + + + + + The event raised when an internal message has been received. + + + + + The Type that generated the internal message. + + + + + The DateTime stamp of when the internal message was received. + + + + + The UTC DateTime stamp of when the internal message was received. + + + + + A string indicating the severity of the internal message. + + + "log4net: ", + "log4net:ERROR ", + "log4net:WARN " + + + + + The internal log message. + + + + + The Exception related to the message. + + + Optional. Will be null if no Exception was passed. + + + + + Gets or sets a value indicating whether log4net internal logging + is enabled or disabled. + + + true if log4net internal logging is enabled, otherwise + false. + + + + When set to true, internal debug level logging will be + displayed. + + + This value can be set by setting the application setting + log4net.Internal.Debug in the application configuration + file. + + + The default value is false, i.e. debugging is + disabled. + + + + + The following example enables internal debugging using the + application configuration file : + + + + + + + + + + + + + Gets or sets a value indicating whether log4net should generate no output + from internal logging, not even for errors. + + + true if log4net should generate no output at all from internal + logging, otherwise false. + + + + When set to true will cause internal logging at all levels to be + suppressed. This means that no warning or error reports will be logged. + This option overrides the setting and + disables all debug also. + + This value can be set by setting the application setting + log4net.Internal.Quiet in the application configuration file. + + + The default value is false, i.e. internal logging is not + disabled. + + + + The following example disables internal logging using the + application configuration file : + + + + + + + + + + + + + + + + + Test if LogLog.Debug is enabled for output. + + + true if Debug is enabled + + + + Test if LogLog.Debug is enabled for output. + + + + + + Test if LogLog.Warn is enabled for output. + + + true if Warn is enabled + + + + Test if LogLog.Warn is enabled for output. + + + + + + Test if LogLog.Error is enabled for output. + + + true if Error is enabled + + + + Test if LogLog.Error is enabled for output. + + + + + + Subscribes to the LogLog.LogReceived event and stores messages + to the supplied IList instance. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a native error code and message. + + + + Represents a Win32 platform native error. + + + Nicko Cadell + Gert Driesen + + + + Create an instance of the class with the specified + error number and message. + + The number of the native error. + The message of the native error. + + + Create an instance of the class with the specified + error number and message. + + + + + + Create a new instance of the class for the last Windows error. + + + An instance of the class for the last windows error. + + + + The message for the error number is lookup up using the + native Win32 FormatMessage function. + + + + + + Create a new instance of the class. + + the error number for the native error + + An instance of the class for the specified + error number. + + + + The message for the specified error number is lookup up using the + native Win32 FormatMessage function. + + + + + + Retrieves the message corresponding with a Win32 message identifier. + + Message identifier for the requested message. + + The message corresponding with the specified message identifier. + + + + The message will be searched for in system message-table resource(s) + using the native FormatMessage function. + + + + + + Return error information string + + error information string + + + Return error information string + + + + + + Formats a message string. + + Formatting options, and how to interpret the parameter. + Location of the message definition. + Message identifier for the requested message. + Language identifier for the requested message. + If includes FORMAT_MESSAGE_ALLOCATE_BUFFER, the function allocates a buffer using the LocalAlloc function, and places the pointer to the buffer at the address specified in . + If the FORMAT_MESSAGE_ALLOCATE_BUFFER flag is not set, this parameter specifies the maximum number of TCHARs that can be stored in the output buffer. If FORMAT_MESSAGE_ALLOCATE_BUFFER is set, this parameter specifies the minimum number of TCHARs to allocate for an output buffer. + Pointer to an array of values that are used as insert values in the formatted message. + + + The function requires a message definition as input. The message definition can come from a + buffer passed into the function. It can come from a message table resource in an + already-loaded module. Or the caller can ask the function to search the system's message + table resource(s) for the message definition. The function finds the message definition + in a message table resource based on a message identifier and a language identifier. + The function copies the formatted message text to an output buffer, processing any embedded + insert sequences if requested. + + + To prevent the usage of unsafe code, this stub does not support inserting values in the formatted message. + + + + + If the function succeeds, the return value is the number of TCHARs stored in the output + buffer, excluding the terminating null character. + + + If the function fails, the return value is zero. To get extended error information, + call . + + + + + + Gets the number of the native error. + + + The number of the native error. + + + + Gets the number of the native error. + + + + + + Gets the message of the native error. + + + The message of the native error. + + + + + Gets the message of the native error. + + + + + An always empty . + + + + A singleton implementation of the over a collection + that is empty and not modifiable. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Test if the enumerator can advance, if so advance. + + false as the cannot advance. + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will always return false. + + + + + + Resets the enumerator back to the start. + + + + As the enumerator is over an empty collection does nothing. + + + + + + The singleton instance of the . + + + + + Gets the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets the current object from the enumerator. + + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current key from the enumerator. + + + Throws an exception because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current value from the enumerator. + + The current value from the enumerator. + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current entry from the enumerator. + + + Throws an because the + never has a current entry. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + An always empty . + + + + A singleton implementation of the over a collection + that is empty and not modifiable. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Test if the enumerator can advance, if so advance + + false as the cannot advance. + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will always return false. + + + + + + Resets the enumerator back to the start. + + + + As the enumerator is over an empty collection does nothing. + + + + + + The singleton instance of the . + + + + + Get the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets the current object from the enumerator. + + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + A SecurityContext used when a SecurityContext is not required + + + + The is a no-op implementation of the + base class. It is used where a + is required but one has not been provided. + + + Nicko Cadell + + + + Singleton instance of + + + + Singleton instance of + + + + + + Private constructor + + + + Private constructor for singleton pattern. + + + + + + Impersonate this SecurityContext + + State supplied by the caller + null + + + No impersonation is done and null is always returned. + + + + + + Implements log4net's default error handling policy which consists + of emitting a message for the first error in an appender and + ignoring all subsequent errors. + + + + The error message is processed using the LogLog sub-system by default. + + + This policy aims at protecting an otherwise working application + from being flooded with error messages when logging fails. + + + Nicko Cadell + Gert Driesen + Ron Grabowski + + + + Default Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + The prefix to use for each message. + + + Initializes a new instance of the class + with the specified prefix. + + + + + + Reset the error handler back to its initial disabled state. + + + + + Log an Error + + The error message. + The exception. + The internal error code. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + Log the very first error + + The error message. + The exception. + The internal error code. + + + Sends the error information to 's Error method. + + + + + + Log an Error + + The error message. + The exception. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + Log an error + + The error message. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + The UTC date the error was recorded. + + + + + Flag to indicate if it is the first error + + + + + The message recorded during the first error. + + + + + The exception recorded during the first error. + + + + + The error code recorded during the first error. + + + + + String to prefix each message with + + + + + The fully qualified type of the OnlyOnceErrorHandler class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Is error logging enabled + + + + Is error logging enabled. Logging is only enabled for the + first error delivered to the . + + + + + + The date the first error that trigged this error handler occurred, or if it has not been triggered. + + + + + The UTC date the first error that trigged this error handler occured, or if it has not been triggered. + + + + + The message from the first error that trigged this error handler. + + + + + The exception from the first error that trigged this error handler. + + + May be . + + + + + The error code from the first error that trigged this error handler. + + + Defaults to + + + + + A convenience class to convert property values to specific types. + + + + Utility functions for converting types and parsing values. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Converts a string to a value. + + String to convert. + The default value. + The value of . + + + If is "true", then true is returned. + If is "false", then false is returned. + Otherwise, is returned. + + + + + + Parses a file size into a number. + + String to parse. + The default value. + The value of . + + + Parses a file size of the form: number[KB|MB|GB] into a + long value. It is scaled with the appropriate multiplier. + + + is returned when + cannot be converted to a value. + + + + + + Converts a string to an object. + + The target type to convert to. + The string to convert to an object. + + The object converted from a string or null when the + conversion failed. + + + + Converts a string to an object. Uses the converter registry to try + to convert the string value into the specified target type. + + + + + + Checks if there is an appropriate type conversion from the source type to the target type. + + The type to convert from. + The type to convert to. + true if there is a conversion from the source type to the target type. + + Checks if there is an appropriate type conversion from the source type to the target type. + + + + + + + Converts an object to the target type. + + The object to convert to the target type. + The type to convert to. + The converted object. + + + Converts an object to the target type. + + + + + + Instantiates an object given a class name. + + The fully qualified class name of the object to instantiate. + The class to which the new object should belong. + The object to return in case of non-fulfillment. + + An instance of the or + if the object could not be instantiated. + + + + Checks that the is a subclass of + . If that test fails or the object could + not be instantiated, then is returned. + + + + + + Performs variable substitution in string from the + values of keys found in . + + The string on which variable substitution is performed. + The dictionary to use to lookup variables. + The result of the substitutions. + + + The variable substitution delimiters are ${ and }. + + + For example, if props contains key=value, then the call + + + + string s = OptionConverter.SubstituteVariables("Value of key is ${key}."); + + + + will set the variable s to "Value of key is value.". + + + If no value could be found for the specified key, then substitution + defaults to an empty string. + + + For example, if system properties contains no value for the key + "nonExistentKey", then the call + + + + string s = OptionConverter.SubstituteVariables("Value of nonExistentKey is [${nonExistentKey}]"); + + + + will set s to "Value of nonExistentKey is []". + + + An Exception is thrown if contains a start + delimiter "${" which is not balanced by a stop delimiter "}". + + + + + + Converts the string representation of the name or numeric value of one or + more enumerated constants to an equivalent enumerated object. + + The type to convert to. + The enum string value. + If true, ignore case; otherwise, regard case. + An object of type whose value is represented by . + + + + The fully qualified type of the OptionConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Most of the work of the class + is delegated to the PatternParser class. + + + + The PatternParser processes a pattern string and + returns a chain of objects. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The pattern to parse. + + + Initializes a new instance of the class + with the specified pattern string. + + + + + + Parses the pattern into a chain of pattern converters. + + The head of a chain of pattern converters. + + + Parses the pattern into a chain of pattern converters. + + + + + + Build the unified cache of converters from the static and instance maps + + the list of all the converter names + + + Build the unified cache of converters from the static and instance maps + + + + + + Internal method to parse the specified pattern to find specified matches + + the pattern to parse + the converter names to match in the pattern + + + The matches param must be sorted such that longer strings come before shorter ones. + + + + + + Process a parsed literal + + the literal text + + + + Process a parsed converter pattern + + the name of the converter + the optional option for the converter + the formatting info for the converter + + + + Resets the internal state of the parser and adds the specified pattern converter + to the chain. + + The pattern converter to add. + + + + The first pattern converter in the chain + + + + + the last pattern converter in the chain + + + + + The pattern + + + + + Internal map of converter identifiers to converter types + + + + This map overrides the static s_globalRulesRegistry map. + + + + + + The fully qualified type of the PatternParser class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Get the converter registry used by this parser + + + The converter registry used by this parser + + + + Get the converter registry used by this parser + + + + + + Sort strings by length + + + + that orders strings by string length. + The longest strings are placed first + + + + + + This class implements a patterned string. + + + + This string has embedded patterns that are resolved and expanded + when the string is formatted. + + + This class functions similarly to the + in that it accepts a pattern and renders it to a string. Unlike the + however the PatternString + does not render the properties of a specific but + of the process in general. + + + The recognized conversion pattern names are: + + + + Conversion Pattern Name + Effect + + + appdomain + + + Used to output the friendly name of the current AppDomain. + + + + + appsetting + + + Used to output the value of a specific appSetting key in the application + configuration file. + + + + + date + + + Used to output the current date and time in the local time zone. + To output the date in universal time use the %utcdate pattern. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %date{HH:mm:ss,fff} or + %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %date{ISO8601} or %date{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + env + + + Used to output the a specific environment variable. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %env{COMPUTERNAME} would include the value + of the COMPUTERNAME environment variable. + + + The env pattern is not supported on the .NET Compact Framework. + + + + + identity + + + Used to output the user name for the currently active user + (Principal.Identity.Name). + + + + + newline + + + Outputs the platform dependent line separator character or + characters. + + + This conversion pattern name offers the same performance as using + non-portable line separator strings such as "\n", or "\r\n". + Thus, it is the preferred way of specifying a line separator. + + + + + processid + + + Used to output the system process ID for the current process. + + + + + property + + + Used to output a specific context property. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %property{user} would include the value + from the property that is keyed by the string 'user'. Each property value + that is to be included in the log must be specified separately. + Properties are stored in logging contexts. By default + the log4net:HostName property is set to the name of machine on + which the event was originally logged. + + + If no key is specified, e.g. %property then all the keys and their + values are printed in a comma separated list. + + + The properties of an event are combined from a number of different + contexts. These are listed below in the order in which they are searched. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + random + + + Used to output a random string of characters. The string is made up of + uppercase letters and numbers. By default the string is 4 characters long. + The length of the string can be specified within braces directly following the + pattern specifier, e.g. %random{8} would output an 8 character string. + + + + + username + + + Used to output the WindowsIdentity for the currently + active user. + + + + + utcdate + + + Used to output the date of the logging event in universal time. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %utcdate{HH:mm:ss,fff} or + %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %utcdate{ISO8601} or %utcdate{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + % + + + The sequence %% outputs a single percent sign. + + + + + + Additional pattern converters may be registered with a specific + instance using or + . + + + See the for details on the + format modifiers supported by the patterns. + + + Nicko Cadell + + + + Internal map of converter identifiers to converter types. + + + + + the pattern + + + + + the head of the pattern converter chain + + + + + patterns defined on this PatternString only + + + + + Initialize the global registry + + + + + Default constructor + + + + Initialize a new instance of + + + + + + Constructs a PatternString + + The pattern to use with this PatternString + + + Initialize a new instance of with the pattern specified. + + + + + + Initialize object options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Create the used to parse the pattern + + the pattern to parse + The + + + Returns PatternParser used to parse the conversion string. Subclasses + may override this to return a subclass of PatternParser which recognize + custom conversion pattern name. + + + + + + Produces a formatted string as specified by the conversion pattern. + + The TextWriter to write the formatted event to + + + Format the pattern to the . + + + + + + Format the pattern as a string + + the pattern formatted as a string + + + Format the pattern to a string. + + + + + + Add a converter to this PatternString + + the converter info + + + This version of the method is used by the configurator. + Programmatic users should use the alternative method. + + + + + + Add a converter to this PatternString + + the name of the conversion pattern for this converter + the type of the converter + + + Add a converter to this PatternString + + + + + + Gets or sets the pattern formatting string + + + The pattern formatting string + + + + The ConversionPattern option. This is the string which + controls formatting and consists of a mix of literal content and + conversion specifiers. + + + + + + String keyed object map. + + + + While this collection is serializable only member + objects that are serializable will + be serialized along with this collection. + + + Nicko Cadell + Gert Driesen + + + + String keyed object map that is read only. + + + + This collection is readonly and cannot be modified. + + + While this collection is serializable only member + objects that are serializable will + be serialized along with this collection. + + + Nicko Cadell + Gert Driesen + + + + The Hashtable used to store the properties data + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Copy Constructor + + properties to copy + + + Initializes a new instance of the class. + + + + + + Deserialization constructor + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Gets the key names. + + An array of all the keys. + + + Gets the key names. + + + + + + Test if the dictionary contains a specified key + + the key to look for + true if the dictionary contains the specified key + + + Test if the dictionary contains a specified key + + + + + + Serializes this object into the provided. + + The to populate with data. + The destination for this serialization. + + + Serializes this object into the provided. + + + + + + See + + + + + See + + + + + + See + + + + + + + Remove all properties from the properties collection + + + + + See + + + + + + + See + + + + + + + See + + + + + Gets or sets the value of the property with the specified key. + + + The value of the property with the specified key. + + The key of the property to get or set. + + + The property value will only be serialized if it is serializable. + If it cannot be serialized it will be silently ignored if + a serialization operation is performed. + + + + + + The hashtable used to store the properties + + + The internal collection used to store the properties + + + + The hashtable used to store the properties + + + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + The number of properties in this collection + + + + + See + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + properties to copy + + + Initializes a new instance of the class. + + + + + + Initializes a new instance of the class + with serialized data. + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Because this class is sealed the serialization constructor is private. + + + + + + Remove the entry with the specified key from this dictionary + + the key for the entry to remove + + + Remove the entry with the specified key from this dictionary + + + + + + See + + an enumerator + + + Returns a over the contest of this collection. + + + + + + See + + the key to remove + + + Remove the entry with the specified key from this dictionary + + + + + + See + + the key to lookup in the collection + true if the collection contains the specified key + + + Test if this collection contains a specified key. + + + + + + Remove all properties from the properties collection + + + + Remove all properties from the properties collection + + + + + + See + + the key + the value to store for the key + + + Store a value for the specified . + + + Thrown if the is not a string + + + + See + + + + + + + See + + + + + Gets or sets the value of the property with the specified key. + + + The value of the property with the specified key. + + The key of the property to get or set. + + + The property value will only be serialized if it is serializable. + If it cannot be serialized it will be silently ignored if + a serialization operation is performed. + + + + + + See + + + false + + + + This collection is modifiable. This property always + returns false. + + + + + + See + + + The value for the key specified. + + + + Get or set a value for the specified . + + + Thrown if the is not a string + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + A class to hold the key and data for a property set in the config file + + + + A class to hold the key and data for a property set in the config file + + + + + + Override Object.ToString to return sensible debug info + + string info about this object + + + + Property Key + + + Property Key + + + + Property Key. + + + + + + Property Value + + + Property Value + + + + Property Value. + + + + + + A that ignores the message + + + + This writer is used in special cases where it is necessary + to protect a writer from being closed by a client. + + + Nicko Cadell + + + + Constructor + + the writer to actually write to + + + Create a new ProtectCloseTextWriter using a writer + + + + + + Attach this instance to a different underlying + + the writer to attach to + + + Attach this instance to a different underlying + + + + + + Does not close the underlying output writer. + + + + Does not close the underlying output writer. + This method does nothing. + + + + + + Defines a lock that supports single writers and multiple readers + + + + ReaderWriterLock is used to synchronize access to a resource. + At any given time, it allows either concurrent read access for + multiple threads, or write access for a single thread. In a + situation where a resource is changed infrequently, a + ReaderWriterLock provides better throughput than a simple + one-at-a-time lock, such as . + + + If a platform does not support a System.Threading.ReaderWriterLock + implementation then all readers and writers are serialized. Therefore + the caller must not rely on multiple simultaneous readers. + + + Nicko Cadell + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Acquires a reader lock + + + + blocks if a different thread has the writer + lock, or if at least one thread is waiting for the writer lock. + + + + + + Decrements the lock count + + + + decrements the lock count. When the count + reaches zero, the lock is released. + + + + + + Acquires the writer lock + + + + This method blocks if another thread has a reader lock or writer lock. + + + + + + Decrements the lock count on the writer lock + + + + ReleaseWriterLock decrements the writer lock count. + When the count reaches zero, the writer lock is released. + + + + + + A that can be and reused + + + + A that can be and reused. + This uses a single buffer for string operations. + + + Nicko Cadell + + + + Create an instance of + + the format provider to use + + + Create an instance of + + + + + + Override Dispose to prevent closing of writer + + flag + + + Override Dispose to prevent closing of writer + + + + + + Reset this string writer so that it can be reused. + + the maximum buffer capacity before it is trimmed + the default size to make the buffer + + + Reset this string writer so that it can be reused. + The internal buffers are cleared and reset. + + + + + + Utility class for system specific information. + + + + Utility class of static methods for system specific information. + + + Nicko Cadell + Gert Driesen + Alexey Solofnenko + + + + Private constructor to prevent instances. + + + + Only static methods are exposed from this type. + + + + + + Initialize default values for private static fields. + + + + Only static methods are exposed from this type. + + + + + + Gets the assembly location path for the specified assembly. + + The assembly to get the location for. + The location of the assembly. + + + This method does not guarantee to return the correct path + to the assembly. If only tries to give an indication as to + where the assembly was loaded from. + + + + + + Gets the fully qualified name of the , including + the name of the assembly from which the was + loaded. + + The to get the fully qualified name for. + The fully qualified name for the . + + + This is equivalent to the Type.AssemblyQualifiedName property, + but this method works on the .NET Compact Framework 1.0 as well as + the full .NET runtime. + + + + + + Gets the short name of the . + + The to get the name for. + The short name of the . + + + The short name of the assembly is the + without the version, culture, or public key. i.e. it is just the + assembly's file name without the extension. + + + Use this rather than Assembly.GetName().Name because that + is not available on the Compact Framework. + + + Because of a FileIOPermission security demand we cannot do + the obvious Assembly.GetName().Name. We are allowed to get + the of the assembly so we + start from there and strip out just the assembly name. + + + + + + Gets the file name portion of the , including the extension. + + The to get the file name for. + The file name of the assembly. + + + Gets the file name portion of the , including the extension. + + + + + + Loads the type specified in the type string. + + A sibling type to use to load the type. + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified, it will be loaded from the assembly + containing the specified relative type. If the type is not found in the assembly + then all the loaded assemblies will be searched for the type. + + + + + + Loads the type specified in the type string. + + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified it will be loaded from the + assembly that is directly calling this method. If the type is not found + in the assembly then all the loaded assemblies will be searched for the type. + + + + + + Loads the type specified in the type string. + + An assembly to load the type from. + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified it will be loaded from the specified + assembly. If the type is not found in the assembly then all the loaded assemblies + will be searched for the type. + + + + + + Generate a new guid + + A new Guid + + + Generate a new guid + + + + + + Create an + + The name of the parameter that caused the exception + The value of the argument that causes this exception + The message that describes the error + the ArgumentOutOfRangeException object + + + Create a new instance of the class + with a specified error message, the parameter name, and the value + of the argument. + + + The Compact Framework does not support the 3 parameter constructor for the + type. This method provides an + implementation that works for all platforms. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Lookup an application setting + + the application settings key to lookup + the value for the key, or null + + + Configuration APIs are not supported under the Compact Framework + + + + + + Convert a path into a fully qualified local file path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + The path specified must be a local file path, a URI is not supported. + + + + + + Creates a new case-insensitive instance of the class with the default initial capacity. + + A new case-insensitive instance of the class with the default initial capacity + + + The new Hashtable instance uses the default load factor, the CaseInsensitiveHashCodeProvider, and the CaseInsensitiveComparer. + + + + + + Tests two strings for equality, the ignoring case. + + + If the platform permits, culture information is ignored completely (ordinal comparison). + The aim of this method is to provide a fast comparison that deals with null and ignores different casing. + It is not supposed to deal with various, culture-specific habits. + Use it to compare against pure ASCII constants, like keywords etc. + + The one string. + The other string. + true if the strings are equal, false otherwise. + + + + Gets an empty array of types. + + + + The Type.EmptyTypes field is not available on + the .NET Compact Framework 1.0. + + + + + + The fully qualified type of the SystemInfo class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Cache the host name for the current machine + + + + + Cache the application friendly name + + + + + Text to output when a null is encountered. + + + + + Text to output when an unsupported feature is requested. + + + + + Start time for the current process. + + + + + Gets the system dependent line terminator. + + + The system dependent line terminator. + + + + Gets the system dependent line terminator. + + + + + + Gets the base directory for this . + + The base directory path for the current . + + + Gets the base directory for this . + + + The value returned may be either a local file path or a URI. + + + + + + Gets the path to the configuration file for the current . + + The path to the configuration file for the current . + + + The .NET Compact Framework 1.0 does not have a concept of a configuration + file. For this runtime, we use the entry assembly location as the root for + the configuration file name. + + + The value returned may be either a local file path or a URI. + + + + + + Gets the path to the file that first executed in the current . + + The path to the entry assembly. + + + Gets the path to the file that first executed in the current . + + + + + + Gets the ID of the current thread. + + The ID of the current thread. + + + On the .NET framework, the AppDomain.GetCurrentThreadId method + is used to obtain the thread ID for the current thread. This is the + operating system ID for the thread. + + + On the .NET Compact Framework 1.0 it is not possible to get the + operating system thread ID for the current thread. The native method + GetCurrentThreadId is implemented inline in a header file + and cannot be called. + + + On the .NET Framework 2.0 the Thread.ManagedThreadId is used as this + gives a stable id unrelated to the operating system thread ID which may + change if the runtime is using fibers. + + + + + + Get the host name or machine name for the current machine + + + The hostname or machine name + + + + Get the host name or machine name for the current machine + + + The host name () or + the machine name (Environment.MachineName) for + the current machine, or if neither of these are available + then NOT AVAILABLE is returned. + + + + + + Get this application's friendly name + + + The friendly name of this application as a string + + + + If available the name of the application is retrieved from + the AppDomain using AppDomain.CurrentDomain.FriendlyName. + + + Otherwise the file name of the entry assembly is used. + + + + + + Get the start time for the current process. + + + + This is the time at which the log4net library was loaded into the + AppDomain. Due to reports of a hang in the call to System.Diagnostics.Process.StartTime + this is not the start time for the current process. + + + The log4net library should be loaded by an application early during its + startup, therefore this start time should be a good approximation for + the actual start time. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating, however this start time + will be set per AppDomain. + + + + + + Get the UTC start time for the current process. + + + + This is the UTC time at which the log4net library was loaded into the + AppDomain. Due to reports of a hang in the call to System.Diagnostics.Process.StartTime + this is not the start time for the current process. + + + The log4net library should be loaded by an application early during its + startup, therefore this start time should be a good approximation for + the actual start time. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating, however this start time + will be set per AppDomain. + + + + + + Text to output when a null is encountered. + + + + Use this value to indicate a null has been encountered while + outputting a string representation of an item. + + + The default value is (null). This value can be overridden by specifying + a value for the log4net.NullText appSetting in the application's + .config file. + + + + + + Text to output when an unsupported feature is requested. + + + + Use this value when an unsupported feature is requested. + + + The default value is NOT AVAILABLE. This value can be overridden by specifying + a value for the log4net.NotAvailableText appSetting in the application's + .config file. + + + + + + Utility class that represents a format string. + + + + Utility class that represents a format string. + + + Nicko Cadell + + + + Initialise the + + An that supplies culture-specific formatting information. + A containing zero or more format items. + An array containing zero or more objects to format. + + + + Format the string and arguments + + the formatted string + + + + Replaces the format item in a specified with the text equivalent + of the value of a corresponding instance in a specified array. + A specified parameter supplies culture-specific formatting information. + + An that supplies culture-specific formatting information. + A containing zero or more format items. + An array containing zero or more objects to format. + + A copy of format in which the format items have been replaced by the + equivalent of the corresponding instances of in args. + + + + This method does not throw exceptions. If an exception thrown while formatting the result the + exception and arguments are returned in the result string. + + + + + + Process an error during StringFormat + + + + + Dump the contents of an array into a string builder + + + + + Dump an object to a string + + + + + The fully qualified type of the SystemStringFormat class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Implementation of Properties collection for the + + + + Class implements a collection of properties that is specific to each thread. + The class is not synchronized as each thread has its own . + + + Nicko Cadell + + + + Each thread will automatically have its instance. + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Remove a property + + the key for the entry to remove + + + Remove a property + + + + + + Get the keys stored in the properties. + + + Gets the keys stored in the properties. + + a set of the defined keys + + + + Clear all properties + + + + Clear all properties + + + + + + Get the PropertiesDictionary for this thread. + + create the dictionary if it does not exist, otherwise return null if does not exist + the properties for this thread + + + The collection returned is only to be used on the calling thread. If the + caller needs to share the collection between different threads then the + caller must clone the collection before doing so. + + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Gets or sets the value of a property + + + + + + Implementation of Stack for the + + + + Implementation of Stack for the + + + Nicko Cadell + + + + The stack store. + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Clears all the contextual information held in this stack. + + + + Clears all the contextual information held in this stack. + Only call this if you think that this tread is being reused after + a previous call execution which may not have completed correctly. + You do not need to use this method if you always guarantee to call + the method of the + returned from even in exceptional circumstances, + for example by using the using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) + syntax. + + + + + + Removes the top context from this stack. + + The message in the context that was removed from the top of this stack. + + + Remove the top context from this stack, and return + it to the caller. If this stack is empty then an + empty string (not ) is returned. + + + + + + Pushes a new context message into this stack. + + The new context message. + + An that can be used to clean up the context stack. + + + + Pushes a new context onto this stack. An + is returned that can be used to clean up this stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) + { + log.Warn("This should have an ThreadContext Stack message"); + } + + + + + + Gets the current context information for this stack. + + The current context information. + + + + Gets the current context information for this stack. + + Gets the current context information + + + Gets the current context information for this stack. + + + + + + Get a portable version of this object + + the portable instance of this object + + + Get a cross thread portable version of this object + + + + + + The number of messages in the stack + + + The current number of messages in the stack + + + + The current number of messages in the stack. That is + the number of times has been called + minus the number of times has been called. + + + + + + Gets and sets the internal stack used by this + + The internal storage stack + + + This property is provided only to support backward compatability + of the . Tytpically the internal stack should not + be modified. + + + + + + Inner class used to represent a single context frame in the stack. + + + + Inner class used to represent a single context frame in the stack. + + + + + + Constructor + + The message for this context. + The parent context in the chain. + + + Initializes a new instance of the class + with the specified message and parent context. + + + + + + Get the message. + + The message. + + + Get the message. + + + + + + Gets the full text of the context down to the root level. + + + The full text of the context down to the root level. + + + + Gets the full text of the context down to the root level. + + + + + + Struct returned from the method. + + + + This struct implements the and is designed to be used + with the pattern to remove the stack frame at the end of the scope. + + + + + + The ThreadContextStack internal stack + + + + + The depth to trim the stack to when this instance is disposed + + + + + Constructor + + The internal stack used by the ThreadContextStack. + The depth to return the stack to when this object is disposed. + + + Initializes a new instance of the class with + the specified stack and return depth. + + + + + + Returns the stack to the correct depth. + + + + Returns the stack to the correct depth. + + + + + + Implementation of Stacks collection for the + + + + Implementation of Stacks collection for the + + + Nicko Cadell + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + The fully qualified type of the ThreadContextStacks class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the named thread context stack + + + The named stack + + + + Gets the named thread context stack + + + + + + Utility class for transforming strings. + + + + Utility class for transforming strings. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Write a string to an + + the writer to write to + the string to write + The string to replace non XML compliant chars with + + + The test is escaped either using XML escape entities + or using CDATA sections. + + + + + + Replace invalid XML characters in text string + + the XML text input string + the string to use in place of invalid characters + A string that does not contain invalid XML characters. + + + Certain Unicode code points are not allowed in the XML InfoSet, for + details see: http://www.w3.org/TR/REC-xml/#charsets. + + + This method replaces any illegal characters in the input string + with the mask string specified. + + + + + + Count the number of times that the substring occurs in the text + + the text to search + the substring to find + the number of times the substring occurs in the text + + + The substring is assumed to be non repeating within itself. + + + + + + Characters illegal in XML 1.0 + + + + + Impersonate a Windows Account + + + + This impersonates a Windows account. + + + How the impersonation is done depends on the value of . + This allows the context to either impersonate a set of user credentials specified + using username, domain name and password or to revert to the process credentials. + + + + + + Default constructor + + + + Default constructor + + + + + + Initialize the SecurityContext based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The security context will try to Logon the specified user account and + capture a primary token for impersonation. + + + The required , + or properties were not specified. + + + + Impersonate the Windows account specified by the and properties. + + caller provided state + + An instance that will revoke the impersonation of this SecurityContext + + + + Depending on the property either + impersonate a user using credentials supplied or revert + to the process credentials. + + + + + + Create a given the userName, domainName and password. + + the user name + the domain name + the password + the for the account specified + + + Uses the Windows API call LogonUser to get a principal token for the account. This + token is used to initialize the WindowsIdentity. + + + + + + Gets or sets the impersonation mode for this security context + + + The impersonation mode for this security context + + + + Impersonate either a user with user credentials or + revert this thread to the credentials of the process. + The value is one of the + enum. + + + The default value is + + + When the mode is set to + the user's credentials are established using the + , and + values. + + + When the mode is set to + no other properties need to be set. If the calling thread is + impersonating then it will be reverted back to the process credentials. + + + + + + Gets or sets the Windows username for this security context + + + The Windows username for this security context + + + + This property must be set if + is set to (the default setting). + + + + + + Gets or sets the Windows domain name for this security context + + + The Windows domain name for this security context + + + + The default value for is the local machine name + taken from the property. + + + This property must be set if + is set to (the default setting). + + + + + + Sets the password for the Windows account specified by the and properties. + + + The password for the Windows account specified by the and properties. + + + + This property must be set if + is set to (the default setting). + + + + + + The impersonation modes for the + + + + See the property for + details. + + + + + + Impersonate a user using the credentials supplied + + + + + Revert this the thread to the credentials of the process + + + + + Adds to + + + + Helper class to expose the + through the interface. + + + + + + Constructor + + the impersonation context being wrapped + + + Constructor + + + + + + Revert the impersonation + + + + Revert the impersonation + + + + + + The log4net Global Context. + + + + The GlobalContext provides a location for global debugging + information to be stored. + + + The global context has a properties map and these properties can + be included in the output of log messages. The + supports selecting and outputing these properties. + + + By default the log4net:HostName property is set to the name of + the current machine. + + + + + GlobalContext.Properties["hostname"] = Environment.MachineName; + + + + Nicko Cadell + + + + Private Constructor. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + The global context properties instance + + + + + The global properties map. + + + The global properties map. + + + + The global properties map. + + + + + + Provides information about the environment the assembly has + been built for. + + + + Version of the assembly + + + Version of the framework targeted + + + Type of framework targeted + + + Does it target a client profile? + + + + Identifies the version and target for this assembly. + + + + + The log4net Logical Thread Context. + + + + The LogicalThreadContext provides a location for specific debugging + information to be stored. + The LogicalThreadContext properties override any or + properties with the same name. + + + For .NET Standard 1.3 this class uses + System.Threading.AsyncLocal rather than . + + + The Logical Thread Context has a properties map and a stack. + The properties and stack can + be included in the output of log messages. The + supports selecting and outputting these properties. + + + The Logical Thread Context provides a diagnostic context for the current call context. + This is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The Logical Thread Context is managed on a per basis. + + + The requires a link time + for the + . + If the calling code does not have this permission then this context will be disabled. + It will not store any property values set on it. + + + Example of using the thread context properties to store a username. + + LogicalThreadContext.Properties["user"] = userName; + log.Info("This log message has a LogicalThreadContext Property called 'user'"); + + + Example of how to push a message into the context stack + + using(LogicalThreadContext.Stacks["LDC"].Push("my context message")) + { + log.Info("This log message has a LogicalThreadContext Stack message that includes 'my context message'"); + + } // at the end of the using block the message is automatically popped + + + + Nicko Cadell + + + + Private Constructor. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + The thread context properties instance + + + + + The thread context stacks instance + + + + + The thread properties map + + + The thread properties map + + + + The LogicalThreadContext properties override any + or properties with the same name. + + + + + + The thread stacks + + + stack map + + + + The logical thread stacks. + + + + + + This class is used by client applications to request logger instances. + + + + This class has static methods that are used by a client to request + a logger instance. The method is + used to retrieve a logger. + + + See the interface for more details. + + + Simple example of logging messages + + ILog log = LogManager.GetLogger("application-log"); + + log.Info("Application Start"); + log.Debug("This is a debug message"); + + if (log.IsDebugEnabled) + { + log.Debug("This is another debug message"); + } + + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + Returns the named logger if it exists. + + Returns the named logger if it exists. + + + + If the named logger exists (in the default repository) then it + returns a reference to the logger, otherwise it returns null. + + + The fully qualified logger name to look for. + The logger found, or null if no logger could be found. + + + Get the currently defined loggers. + + Returns all the currently defined loggers in the default repository. + + + The root logger is not included in the returned array. + + All the defined loggers. + + + Get or create a logger. + + Retrieves or creates a named logger. + + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The name of the logger to retrieve. + The logger with the name specified. + + + + Returns the named logger if it exists. + + + + If the named logger exists (in the specified repository) then it + returns a reference to the logger, otherwise it returns + null. + + + The repository to lookup in. + The fully qualified logger name to look for. + + The logger found, or null if the logger doesn't exist in the specified + repository. + + + + + Returns the named logger if it exists. + + + + If the named logger exists (in the repository for the specified assembly) then it + returns a reference to the logger, otherwise it returns + null. + + + The assembly to use to lookup the repository. + The fully qualified logger name to look for. + + The logger, or null if the logger doesn't exist in the specified + assembly's repository. + + + + + Returns all the currently defined loggers in the specified repository. + + The repository to lookup in. + + The root logger is not included in the returned array. + + All the defined loggers. + + + + Returns all the currently defined loggers in the specified assembly's repository. + + The assembly to use to lookup the repository. + + The root logger is not included in the returned array. + + All the defined loggers. + + + + Retrieves or creates a named logger. + + + + Retrieve a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The repository to lookup in. + The name of the logger to retrieve. + The logger with the name specified. + + + + Retrieves or creates a named logger. + + + + Retrieve a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The assembly to use to lookup the repository. + The name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Get the logger for the fully qualified name of the type specified. + + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Gets the logger for the fully qualified name of the type specified. + + The repository to lookup in. + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Gets the logger for the fully qualified name of the type specified. + + The assembly to use to lookup the repository. + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shuts down the log4net system. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in all the + default repositories. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + Shutdown a logger repository. + + Shuts down the default repository. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + default repository. + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + The repository to shutdown. + + + + Shuts down the repository specified. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository. The repository is looked up using + the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + The assembly to use to lookup the repository. + + + Reset the configuration of a repository + + Resets all values contained in this repository instance to their defaults. + + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + + + + Resets all values contained in this repository instance to their defaults. + + + + Reset all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + The repository to reset. + + + + Resets all values contained in this repository instance to their defaults. + + + + Reset all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + The assembly to use to lookup the repository to reset. + + + Get the logger repository. + + Returns the default instance. + + + + Gets the for the repository specified + by the callers assembly (). + + + The instance for the default repository. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The repository to lookup in. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The assembly to use to lookup the repository. + + + Get a logger repository. + + Returns the default instance. + + + + Gets the for the repository specified + by the callers assembly (). + + + The instance for the default repository. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The repository to lookup in. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The assembly to use to lookup the repository. + + + Create a domain + + Creates a repository with the specified repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to will return + the same repository instance. + + + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + Create a logger repository. + + Creates a repository with the specified repository type. + + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The created will be associated with the repository + specified such that a call to will return + the same repository instance. + + + + + + Creates a repository with the specified name. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name. + + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + The specified repository already exists. + + + + Creates a repository for the specified assembly and repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + + Creates a repository for the specified assembly and repository type. + + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + + Gets the list of currently defined repositories. + + + + Get an array of all the objects that have been created. + + + An array of all the known objects. + + + + Flushes logging events buffered in all configured appenders in the default repository. + + The maximum time in milliseconds to wait for logging events from asycnhronous appenders to be flushed. + True if all logging events were flushed successfully, else false. + + + + Looks up the wrapper object for the logger specified. + + The logger to get the wrapper for. + The wrapper for the logger specified. + + + + Looks up the wrapper objects for the loggers specified. + + The loggers to get the wrappers for. + The wrapper objects for the loggers specified. + + + + Create the objects used by + this manager. + + The logger to wrap. + The wrapper for the logger specified. + + + + The wrapper map to use to hold the objects. + + + + + Implementation of Mapped Diagnostic Contexts. + + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + The MDC class is similar to the class except that it is + based on a map instead of a stack. It provides mapped + diagnostic contexts. A Mapped Diagnostic Context, or + MDC in short, is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The MDC is managed on a per thread basis. + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + Gets the context value identified by the parameter. + + The key to lookup in the MDC. + The string value held for the key, or a null reference if no corresponding value is found. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + If the parameter does not look up to a + previously defined context then null will be returned. + + + + + + Add an entry to the MDC + + The key to store the value under. + The value to store. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Puts a context value (the parameter) as identified + with the parameter into the current thread's + context map. + + + If a value is already defined for the + specified then the value will be replaced. If the + is specified as null then the key value mapping will be removed. + + + + + + Removes the key value mapping for the key specified. + + The key to remove. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Remove the specified entry from this thread's MDC + + + + + + Clear all entries in the MDC + + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Remove all the entries from this thread's MDC + + + + + + Implementation of Nested Diagnostic Contexts. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + A Nested Diagnostic Context, or NDC in short, is an instrument + to distinguish interleaved log output from different sources. Log + output is typically interleaved when a server handles multiple + clients near-simultaneously. + + + Interleaved log output can still be meaningful if each log entry + from different contexts had a distinctive stamp. This is where NDCs + come into play. + + + Note that NDCs are managed on a per thread basis. The NDC class + is made up of static methods that operate on the context of the + calling thread. + + + How to push a message into the context + + using(NDC.Push("my context message")) + { + ... all log calls will have 'my context message' included ... + + } // at the end of the using block the message is automatically removed + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + Clears all the contextual information held on the current thread. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Clears the stack of NDC data held on the current thread. + + + + + + Creates a clone of the stack of context information. + + A clone of the context info for this thread. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + The results of this method can be passed to the + method to allow child threads to inherit the context of their + parent thread. + + + + + + Inherits the contextual information from another thread. + + The context stack to inherit. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + This thread will use the context information from the stack + supplied. This can be used to initialize child threads with + the same contextual information as their parent threads. These + contexts will NOT be shared. Any further contexts that + are pushed onto the stack will not be visible to the other. + Call to obtain a stack to pass to + this method. + + + + + + Removes the top context from the stack. + + + The message in the context that was removed from the top + of the stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Remove the top context from the stack, and return + it to the caller. If the stack is empty then an + empty string (not null) is returned. + + + + + + Pushes a new context message. + + The new context message. + + An that can be used to clean up + the context stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Pushes a new context onto the context stack. An + is returned that can be used to clean up the context stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.NDC.Push("NDC_Message")) + { + log.Warn("This should have an NDC message"); + } + + + + + + Pushes a new context message. + + The new context message string format. + Arguments to be passed into messageFormat. + + An that can be used to clean up + the context stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Pushes a new context onto the context stack. An + is returned that can be used to clean up the context stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + var someValue = "ExampleContext" + using(log4net.NDC.PushFormat("NDC_Message {0}", someValue)) + { + log.Warn("This should have an NDC message"); + } + + + + + + Removes the context information for this thread. It is + not required to call this method. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + This method is not implemented. + + + + + + Forces the stack depth to be at most . + + The maximum depth of the stack + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Forces the stack depth to be at most . + This may truncate the head of the stack. This only affects the + stack in the current thread. Also it does not prevent it from + growing, it only sets the maximum depth at the time of the + call. This can be used to return to a known context depth. + + + + + + Gets the current context depth. + + The current context depth. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + The number of context values pushed onto the context stack. + + + Used to record the current depth of the context. This can then + be restored using the method. + + + + + + + The log4net Thread Context. + + + + The ThreadContext provides a location for thread specific debugging + information to be stored. + The ThreadContext properties override any + properties with the same name. + + + The thread context has a properties map and a stack. + The properties and stack can + be included in the output of log messages. The + supports selecting and outputting these properties. + + + The Thread Context provides a diagnostic context for the current thread. + This is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The Thread Context is managed on a per thread basis. + + + Example of using the thread context properties to store a username. + + ThreadContext.Properties["user"] = userName; + log.Info("This log message has a ThreadContext Property called 'user'"); + + + Example of how to push a message into the context stack + + using(ThreadContext.Stacks["NDC"].Push("my context message")) + { + log.Info("This log message has a ThreadContext Stack message that includes 'my context message'"); + + } // at the end of the using block the message is automatically popped + + + + Nicko Cadell + + + + Private Constructor. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + The thread context properties instance + + + + + The thread context stacks instance + + + + + The thread properties map + + + The thread properties map + + + + The ThreadContext properties override any + properties with the same name. + + + + + + The thread stacks + + + stack map + + + + The thread local stacks. + + + + + diff --git a/packages/log4net.2.0.8/lib/net40-client/log4net.dll b/packages/log4net.2.0.8/lib/net40-client/log4net.dll new file mode 100644 index 0000000..8deb7dd Binary files /dev/null and b/packages/log4net.2.0.8/lib/net40-client/log4net.dll differ diff --git a/packages/log4net.2.0.8/lib/net40-client/log4net.xml b/packages/log4net.2.0.8/lib/net40-client/log4net.xml new file mode 100644 index 0000000..4a92205 --- /dev/null +++ b/packages/log4net.2.0.8/lib/net40-client/log4net.xml @@ -0,0 +1,32259 @@ + + + + log4net + + + + + Appender that logs to a database. + + + + appends logging events to a table within a + database. The appender can be configured to specify the connection + string by setting the property. + The connection type (provider) can be specified by setting the + property. For more information on database connection strings for + your specific database see http://www.connectionstrings.com/. + + + Records are written into the database either using a prepared + statement or a stored procedure. The property + is set to (System.Data.CommandType.Text) to specify a prepared statement + or to (System.Data.CommandType.StoredProcedure) to specify a stored + procedure. + + + The prepared statement text or the name of the stored procedure + must be set in the property. + + + The prepared statement or stored procedure can take a number + of parameters. Parameters are added using the + method. This adds a single to the + ordered list of parameters. The + type may be subclassed if required to provide database specific + functionality. The specifies + the parameter name, database type, size, and how the value should + be generated using a . + + + + An example of a SQL Server table that could be logged to: + + CREATE TABLE [dbo].[Log] ( + [ID] [int] IDENTITY (1, 1) NOT NULL , + [Date] [datetime] NOT NULL , + [Thread] [varchar] (255) NOT NULL , + [Level] [varchar] (20) NOT NULL , + [Logger] [varchar] (255) NOT NULL , + [Message] [varchar] (4000) NOT NULL + ) ON [PRIMARY] + + + + An example configuration to log to the above table: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Julian Biddle + Nicko Cadell + Gert Driesen + Lance Nehring + + + + Abstract base class implementation of that + buffers events in a fixed size buffer. + + + + This base class should be used by appenders that need to buffer a + number of events before logging them. For example the + buffers events and then submits the entire contents of the buffer to + the underlying database in one go. + + + Subclasses should override the + method to deliver the buffered events. + + The BufferingAppenderSkeleton maintains a fixed size cyclic + buffer of events. The size of the buffer is set using + the property. + + A is used to inspect + each event as it arrives in the appender. If the + triggers, then the current buffer is sent immediately + (see ). Otherwise the event + is stored in the buffer. For example, an evaluator can be used to + deliver the events immediately when an ERROR event arrives. + + + The buffering appender can be configured in a mode. + By default the appender is NOT lossy. When the buffer is full all + the buffered events are sent with . + If the property is set to true then the + buffer will not be sent when it is full, and new events arriving + in the appender will overwrite the oldest event in the buffer. + In lossy mode the buffer will only be sent when the + triggers. This can be useful behavior when you need to know about + ERROR events but not about events with a lower level, configure an + evaluator that will trigger when an ERROR event arrives, the whole + buffer will be sent which gives a history of events leading up to + the ERROR event. + + + Nicko Cadell + Gert Driesen + + + + Abstract base class implementation of . + + + + This class provides the code for common functionality, such + as support for threshold filtering and support for general filters. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + Implement this interface for your own strategies for printing log statements. + + + + Implementors should consider extending the + class which provides a default implementation of this interface. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Log the logging event in Appender specific way. + + The event to log + + + This method is called to log a message into this appender. + + + + + + Gets or sets the name of this appender. + + The name of the appender. + + The name uniquely identifies the appender. + + + + + Interface for appenders that support bulk logging. + + + + This interface extends the interface to + support bulk logging of objects. Appenders + should only implement this interface if they can bulk log efficiently. + + + Nicko Cadell + + + + Log the array of logging events in Appender specific way. + + The events to log + + + This method is called to log an array of events into this appender. + + + + + + Interface used to delay activate a configured object. + + + + This allows an object to defer activation of its options until all + options have been set. This is required for components which have + related options that remain ambiguous until all are set. + + + If a component implements this interface then the method + must be called by the container after its all the configured properties have been set + and before the component can be used. + + + Nicko Cadell + + + + Activate the options that were previously set with calls to properties. + + + + This allows an object to defer activation of its options until all + options have been set. This is required for components which have + related options that remain ambiguous until all are set. + + + If a component implements this interface then this method must be called + after its properties have been set before the component can be used. + + + + + + Interface that can be implemented by Appenders that buffer logging data and expose a method. + + + + + Flushes any buffered log data. + + + Appenders that implement the method must do so in a thread-safe manner: it can be called concurrently with + the method. + + Typically this is done by locking on the Appender instance, e.g.: + + + + + + The parameter is only relevant for appenders that process logging events asynchronously, + such as . + + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + Default constructor + + + Empty default constructor + + + + + Finalizes this appender by calling the implementation's + method. + + + + If this appender has not been closed then the Finalize method + will call . + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Closes the appender and release resources. + + + + Release any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + This method cannot be overridden by subclasses. This method + delegates the closing of the appender to the + method which must be overridden in the subclass. + + + + + + Performs threshold checks and invokes filters before + delegating actual logging to the subclasses specific + method. + + The event to log. + + + This method cannot be overridden by derived classes. A + derived class should override the method + which is called by this method. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + Calls and checks that + it returns true. + + + + + If all of the above steps succeed then the + will be passed to the abstract method. + + + + + + Performs threshold checks and invokes filters before + delegating actual logging to the subclasses specific + method. + + The array of events to log. + + + This method cannot be overridden by derived classes. A + derived class should override the method + which is called by this method. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + Calls and checks that + it returns true. + + + + + If all of the above steps succeed then the + will be passed to the method. + + + + + + Test if the logging event should we output by this appender + + the event to test + true if the event should be output, false if the event should be ignored + + + This method checks the logging event against the threshold level set + on this appender and also against the filters specified on this + appender. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + + + + + Adds a filter to the end of the filter chain. + + the filter to add to this appender + + + The Filters are organized in a linked list. + + + Setting this property causes the new filter to be pushed onto the + back of the filter chain. + + + + + + Clears the filter list for this appender. + + + + Clears the filter list for this appender. + + + + + + Checks if the message level is below this appender's threshold. + + to test against. + + + If there is no threshold set, then the return value is always true. + + + + true if the meets the + requirements of this appender. + + + + + Is called when the appender is closed. Derived classes should override + this method if resources need to be released. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Subclasses of should implement this method + to perform actual logging. + + The event to append. + + + A subclass must implement this method to perform + logging of the . + + This method will be called by + if all the conditions listed for that method are met. + + + To restrict the logging of events in the appender + override the method. + + + + + + Append a bulk array of logging events. + + the array of logging events + + + This base class implementation calls the + method for each element in the bulk array. + + + A sub class that can better process a bulk array of events should + override this method in addition to . + + + + + + Called before as a precondition. + + + + This method is called by + before the call to the abstract method. + + + This method can be overridden in a subclass to extend the checks + made before the event is passed to the method. + + + A subclass should ensure that they delegate this call to + this base class if it is overridden. + + + true if the call to should proceed. + + + + Renders the to a string. + + The event to render. + The event rendered as a string. + + + Helper method to render a to + a string. This appender must have a + set to render the to + a string. + + If there is exception data in the logging event and + the layout does not process the exception, this method + will append the exception text to the rendered string. + + + Where possible use the alternative version of this method + . + That method streams the rendering onto an existing Writer + which can give better performance if the caller already has + a open and ready for writing. + + + + + + Renders the to a string. + + The event to render. + The TextWriter to write the formatted event to + + + Helper method to render a to + a string. This appender must have a + set to render the to + a string. + + If there is exception data in the logging event and + the layout does not process the exception, this method + will append the exception text to the rendered string. + + + Use this method in preference to + where possible. If, however, the caller needs to render the event + to a string then does + provide an efficient mechanism for doing so. + + + + + + Flushes any buffered log data. + + + This implementation doesn't flush anything and always returns true + + True if all logging events were flushed successfully, else false. + + + + The layout of this appender. + + + See for more information. + + + + + The name of this appender. + + + See for more information. + + + + + The level threshold of this appender. + + + + There is no level threshold filtering by default. + + + See for more information. + + + + + + It is assumed and enforced that errorHandler is never null. + + + + It is assumed and enforced that errorHandler is never null. + + + See for more information. + + + + + + The first filter in the filter chain. + + + + Set to null initially. + + + See for more information. + + + + + + The last filter in the filter chain. + + + See for more information. + + + + + Flag indicating if this appender is closed. + + + See for more information. + + + + + The guard prevents an appender from repeatedly calling its own DoAppend method + + + + + StringWriter used to render events + + + + + The fully qualified type of the AppenderSkeleton class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the threshold of this appender. + + + The threshold of the appender. + + + + All log events with lower level than the threshold level are ignored + by the appender. + + + In configuration files this option is specified by setting the + value of the option to a level + string, such as "DEBUG", "INFO" and so on. + + + + + + Gets or sets the for this appender. + + The of the appender + + + The provides a default + implementation for the property. + + + + + + The filter chain. + + The head of the filter chain filter chain. + + + Returns the head Filter. The Filters are organized in a linked list + and so all Filters on this Appender are available through the result. + + + + + + Gets or sets the for this appender. + + The layout of the appender. + + + See for more information. + + + + + + + Gets or sets the name of this appender. + + The name of the appender. + + + The name uniquely identifies the appender. + + + + + + Tests if this appender requires a to be set. + + + + In the rather exceptional case, where the appender + implementation admits a layout but can also work without it, + then the appender should return true. + + + This default implementation always returns false. + + + + true if the appender requires a layout object, otherwise false. + + + + + The default buffer size. + + + The default size of the cyclic buffer used to store events. + This is set to 512 by default. + + + + + Initializes a new instance of the class. + + + + Protected default constructor to allow subclassing. + + + + + + Initializes a new instance of the class. + + the events passed through this appender must be + fixed by the time that they arrive in the derived class' SendBuffer method. + + + Protected constructor to allow subclassing. + + + The should be set if the subclass + expects the events delivered to be fixed even if the + is set to zero, i.e. when no buffering occurs. + + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Flush the currently buffered events + + + + Flushes any events that have been buffered. + + + If the appender is buffering in mode then the contents + of the buffer will NOT be flushed to the appender. + + + + + + Flush the currently buffered events + + set to true to flush the buffer of lossy events + + + Flushes events that have been buffered. If is + false then events will only be flushed if this buffer is non-lossy mode. + + + If the appender is buffering in mode then the contents + of the buffer will only be flushed if is true. + In this case the contents of the buffer will be tested against the + and if triggering will be output. All other buffered + events will be discarded. + + + If is true then the buffer will always + be emptied by calling this method. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Close this appender instance. + + + + Close this appender instance. If this appender is marked + as not then the remaining events in + the buffer must be sent when the appender is closed. + + + + + + This method is called by the method. + + the event to log + + + Stores the in the cyclic buffer. + + + The buffer will be sent (i.e. passed to the + method) if one of the following conditions is met: + + + + The cyclic buffer is full and this appender is + marked as not lossy (see ) + + + An is set and + it is triggered for the + specified. + + + + Before the event is stored in the buffer it is fixed + (see ) to ensure that + any data referenced by the event will be valid when the buffer + is processed. + + + + + + Sends the contents of the buffer. + + The first logging event. + The buffer containing the events that need to be send. + + + The subclass must override . + + + + + + Sends the events. + + The events that need to be send. + + + The subclass must override this method to process the buffered events. + + + + + + The size of the cyclic buffer used to hold the logging events. + + + Set to by default. + + + + + The cyclic buffer used to store the logging events. + + + + + The triggering event evaluator that causes the buffer to be sent immediately. + + + The object that is used to determine if an event causes the entire + buffer to be sent immediately. This field can be null, which + indicates that event triggering is not to be done. The evaluator + can be set using the property. If this appender + has the ( property) set to + true then an must be set. + + + + + Indicates if the appender should overwrite events in the cyclic buffer + when it becomes full, or if the buffer should be flushed when the + buffer is full. + + + If this field is set to true then an must + be set. + + + + + The triggering event evaluator filters discarded events. + + + The object that is used to determine if an event that is discarded should + really be discarded or if it should be sent to the appenders. + This field can be null, which indicates that all discarded events will + be discarded. + + + + + Value indicating which fields in the event should be fixed + + + By default all fields are fixed + + + + + The events delivered to the subclass must be fixed. + + + + + Gets or sets a value that indicates whether the appender is lossy. + + + true if the appender is lossy, otherwise false. The default is false. + + + + This appender uses a buffer to store logging events before + delivering them. A triggering event causes the whole buffer + to be send to the remote sink. If the buffer overruns before + a triggering event then logging events could be lost. Set + to false to prevent logging events + from being lost. + + If is set to true then an + must be specified. + + + + + Gets or sets the size of the cyclic buffer used to hold the + logging events. + + + The size of the cyclic buffer used to hold the logging events. + + + + The option takes a positive integer + representing the maximum number of logging events to collect in + a cyclic buffer. When the is reached, + oldest events are deleted as new events are added to the + buffer. By default the size of the cyclic buffer is 512 events. + + + If the is set to a value less than + or equal to 1 then no buffering will occur. The logging event + will be delivered synchronously (depending on the + and properties). Otherwise the event will + be buffered. + + + + + + Gets or sets the that causes the + buffer to be sent immediately. + + + The that causes the buffer to be + sent immediately. + + + + The evaluator will be called for each event that is appended to this + appender. If the evaluator triggers then the current buffer will + immediately be sent (see ). + + If is set to true then an + must be specified. + + + + + Gets or sets the value of the to use. + + + The value of the to use. + + + + The evaluator will be called for each event that is discarded from this + appender. If the evaluator triggers then the current buffer will immediately + be sent (see ). + + + + + + Gets or sets a value indicating if only part of the logging event data + should be fixed. + + + true if the appender should only fix part of the logging event + data, otherwise false. The default is false. + + + + Setting this property to true will cause only part of the + event data to be fixed and serialized. This will improve performance. + + + See for more information. + + + + + + Gets or sets a the fields that will be fixed in the event + + + The event fields that will be fixed before the event is buffered + + + + The logging event needs to have certain thread specific values + captured before it can be buffered. See + for details. + + + + + + + Initializes a new instance of the class. + + + Public default constructor to initialize a new instance of this class. + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Override the parent method to close the database + + + + Closes the database command and database connection. + + + + + + Inserts the events into the database. + + The events to insert into the database. + + + Insert all the events specified in the + array into the database. + + + + + + Adds a parameter to the command. + + The parameter to add to the command. + + + Adds a parameter to the ordered list of command parameters. + + + + + + Writes the events to the database using the transaction specified. + + The transaction that the events will be executed under. + The array of events to insert into the database. + + + The transaction argument can be null if the appender has been + configured not to use transactions. See + property for more information. + + + + + + Formats the log message into database statement text. + + The event being logged. + + This method can be overridden by subclasses to provide + more control over the format of the database statement. + + + Text that can be passed to a . + + + + + Creates an instance used to connect to the database. + + + This method is called whenever a new IDbConnection is needed (i.e. when a reconnect is necessary). + + The of the object. + The connectionString output from the ResolveConnectionString method. + An instance with a valid connection string. + + + + Resolves the connection string from the ConnectionString, ConnectionStringName, or AppSettingsKey + property. + + + ConnectiongStringName is only supported on .NET 2.0 and higher. + + Additional information describing the connection string. + A connection string used to connect to the database. + + + + Retrieves the class type of the ADO.NET provider. + + + + Gets the Type of the ADO.NET provider to use to connect to the + database. This method resolves the type specified in the + property. + + + Subclasses can override this method to return a different type + if necessary. + + + The of the ADO.NET provider + + + + Connects to the database. + + + + + Cleanup the existing connection. + + + Calls the IDbConnection's method. + + + + + The list of objects. + + + + The list of objects. + + + + + + The security context to use for privileged calls + + + + + The that will be used + to insert logging events into a database. + + + + + Database connection string. + + + + + The appSettings key from App.Config that contains the connection string. + + + + + The connectionStrings key from App.Config that contains the connection string. + + + + + String type name of the type name. + + + + + The text of the command. + + + + + The command type. + + + + + Indicates whether to use transactions when writing to the database. + + + + + Indicates whether to reconnect when a connection is lost. + + + + + The fully qualified type of the AdoNetAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the database connection string that is used to connect to + the database. + + + The database connection string used to connect to the database. + + + + The connections string is specific to the connection type. + See for more information. + + + Connection string for MS Access via ODBC: + "DSN=MS Access Database;UID=admin;PWD=;SystemDB=C:\data\System.mdw;SafeTransactions = 0;FIL=MS Access;DriverID = 25;DBQ=C:\data\train33.mdb" + + Another connection string for MS Access via ODBC: + "Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\Work\cvs_root\log4net-1.2\access.mdb;UID=;PWD=;" + + Connection string for MS Access via OLE DB: + "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Work\cvs_root\log4net-1.2\access.mdb;User Id=;Password=;" + + + + + The appSettings key from App.Config that contains the connection string. + + + + + The connectionStrings key from App.Config that contains the connection string. + + + This property requires at least .NET 2.0. + + + + + Gets or sets the type name of the connection + that should be created. + + + The type name of the connection. + + + + The type name of the ADO.NET provider to use. + + + The default is to use the OLE DB provider. + + + Use the OLE DB Provider. This is the default value. + System.Data.OleDb.OleDbConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Use the MS SQL Server Provider. + System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Use the ODBC Provider. + Microsoft.Data.Odbc.OdbcConnection,Microsoft.Data.Odbc,version=1.0.3300.0,publicKeyToken=b77a5c561934e089,culture=neutral + This is an optional package that you can download from + http://msdn.microsoft.com/downloads + search for ODBC .NET Data Provider. + + Use the Oracle Provider. + System.Data.OracleClient.OracleConnection, System.Data.OracleClient, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + This is an optional package that you can download from + http://msdn.microsoft.com/downloads + search for .NET Managed Provider for Oracle. + + + + + Gets or sets the command text that is used to insert logging events + into the database. + + + The command text used to insert logging events into the database. + + + + Either the text of the prepared statement or the + name of the stored procedure to execute to write into + the database. + + + The property determines if + this text is a prepared statement or a stored procedure. + + + If this property is not set, the command text is retrieved by invoking + . + + + + + + Gets or sets the command type to execute. + + + The command type to execute. + + + + This value may be either (System.Data.CommandType.Text) to specify + that the is a prepared statement to execute, + or (System.Data.CommandType.StoredProcedure) to specify that the + property is the name of a stored procedure + to execute. + + + The default value is (System.Data.CommandType.Text). + + + + + + Should transactions be used to insert logging events in the database. + + + true if transactions should be used to insert logging events in + the database, otherwise false. The default value is true. + + + + Gets or sets a value that indicates whether transactions should be used + to insert logging events in the database. + + + When set a single transaction will be used to insert the buffered events + into the database. Otherwise each event will be inserted without using + an explicit transaction. + + + + + + Gets or sets the used to call the NetSend method. + + + The used to call the NetSend method. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Should this appender try to reconnect to the database on error. + + + true if the appender should try to reconnect to the database after an + error has occurred, otherwise false. The default value is false, + i.e. not to try to reconnect. + + + + The default behaviour is for the appender not to try to reconnect to the + database if an error occurs. Subsequent logging events are discarded. + + + To force the appender to attempt to reconnect to the database set this + property to true. + + + When the appender attempts to connect to the database there may be a + delay of up to the connection timeout specified in the connection string. + This delay will block the calling application's thread. + Until the connection can be reestablished this potential delay may occur multiple times. + + + + + + Gets or sets the underlying . + + + The underlying . + + + creates a to insert + logging events into a database. Classes deriving from + can use this property to get or set this . Use the + underlying returned from if + you require access beyond that which provides. + + + + + Parameter type used by the . + + + + This class provides the basic database parameter properties + as defined by the interface. + + This type can be subclassed to provide database specific + functionality. The two methods that are called externally are + and . + + + + + + Initializes a new instance of the class. + + + Default constructor for the AdoNetAppenderParameter class. + + + + + Prepare the specified database command object. + + The command to prepare. + + + Prepares the database command object by adding + this parameter to its collection of parameters. + + + + + + Renders the logging event and set the parameter value in the command. + + The command containing the parameter. + The event to be rendered. + + + Renders the logging event using this parameters layout + object. Sets the value of the parameter on the command object. + + + + + + The name of this parameter. + + + + + The database type for this parameter. + + + + + Flag to infer type rather than use the DbType + + + + + The precision for this parameter. + + + + + The scale for this parameter. + + + + + The size for this parameter. + + + + + The to use to render the + logging event into an object for this parameter. + + + + + Gets or sets the name of this parameter. + + + The name of this parameter. + + + + The name of this parameter. The parameter name + must match up to a named parameter to the SQL stored procedure + or prepared statement. + + + + + + Gets or sets the database type for this parameter. + + + The database type for this parameter. + + + + The database type for this parameter. This property should + be set to the database type from the + enumeration. See . + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the type from the value. + + + + + + + Gets or sets the precision for this parameter. + + + The precision for this parameter. + + + + The maximum number of digits used to represent the Value. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the precision from the value. + + + + + + + Gets or sets the scale for this parameter. + + + The scale for this parameter. + + + + The number of decimal places to which Value is resolved. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the scale from the value. + + + + + + + Gets or sets the size for this parameter. + + + The size for this parameter. + + + + The maximum size, in bytes, of the data within the column. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the size from the value. + + + For BLOB data types like VARCHAR(max) it may be impossible to infer the value automatically, use -1 as the size in this case. + + + + + + + Gets or sets the to use to + render the logging event into an object for this + parameter. + + + The used to render the + logging event into an object for this parameter. + + + + The that renders the value for this + parameter. + + + The can be used to adapt + any into a + for use in the property. + + + + + + Appends logging events to the terminal using ANSI color escape sequences. + + + + AnsiColorTerminalAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific level of message to be set. + + + This appender expects the terminal to understand the VT100 control set + in order to interpret the color codes. If the terminal or console does not + understand the control codes the behavior is not defined. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes each message to the System.Console.Out or + System.Console.Error that is set at the time the event is appended. + Therefore it is possible to programmatically redirect the output of this appender + (for example NUnit does this to capture program output). While this is the desired + behavior of this appender it may have security implications in your application. + + + When configuring the ANSI colored terminal appender, a mapping should be + specified to map a logging level to a color. For example: + + + + + + + + + + + + + + + The Level is the standard log4net logging level and ForeColor and BackColor can be any + of the following values: + + Blue + Green + Red + White + Yellow + Purple + Cyan + + These color values cannot be combined together to make new colors. + + + The attributes can be any combination of the following: + + Brightforeground is brighter + Dimforeground is dimmer + Underscoremessage is underlined + Blinkforeground is blinking (does not work on all terminals) + Reverseforeground and background are reversed + Hiddenoutput is hidden + Strikethroughmessage has a line through it + + While any of these attributes may be combined together not all combinations + work well together, for example setting both Bright and Dim attributes makes + no sense. + + + Patrick Wagstrom + Nicko Cadell + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Ansi code to reset terminal + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Add a mapping of level to color + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colours + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + Target is the value of the console output stream. + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + The enum of possible display attributes + + + + The following flags can be combined together to + form the ANSI color attributes. + + + + + + + text is bright + + + + + text is dim + + + + + text is underlined + + + + + text is blinking + + + Not all terminals support this attribute + + + + + text and background colors are reversed + + + + + text is hidden + + + + + text is displayed with a strikethrough + + + + + text color is light + + + + + The enum of possible foreground or background color values for + use with the color mapping method + + + + The output can be in one for the following ANSI colors. + + + + + + + color is black + + + + + color is red + + + + + color is green + + + + + color is yellow + + + + + color is blue + + + + + color is magenta + + + + + color is cyan + + + + + color is white + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + An entry in the + + + + This is an abstract base class for types that are stored in the + object. + + + Nicko Cadell + + + + Default protected constructor + + + + Default protected constructor + + + + + + Initialize any options defined on this entry + + + + Should be overridden by any classes that need to initialise based on their options + + + + + + The level that is the key for this mapping + + + The that is the key for this mapping + + + + Get or set the that is the key for this + mapping subclass. + + + + + + Initialize the options for the object + + + + Combine the and together + and append the attributes. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level + + + + + + The color attributes for the specified level + + + + Required property. + The color attributes for the specified level + + + + + + The combined , and + suitable for setting the ansi terminal color. + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Creates a read-only wrapper for a AppenderCollection instance. + + list to create a readonly wrapper arround + + An AppenderCollection wrapper that is read-only. + + + + + An empty readonly static AppenderCollection + + + + + Initializes a new instance of the AppenderCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the AppenderCollection class + that has the specified initial capacity. + + + The number of elements that the new AppenderCollection is initially capable of storing. + + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified AppenderCollection. + + The AppenderCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Allow subclasses to avoid our default constructors + + + + + + + Copies the entire AppenderCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire AppenderCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Adds a to the end of the AppenderCollection. + + The to be added to the end of the AppenderCollection. + The index at which the value has been added. + + + + Removes all elements from the AppenderCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the AppenderCollection. + + The to check for. + true if is found in the AppenderCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the AppenderCollection. + + The to locate in the AppenderCollection. + + The zero-based index of the first occurrence of + in the entire AppenderCollection, if found; otherwise, -1. + + + + + Inserts an element into the AppenderCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the AppenderCollection. + + The to remove from the AppenderCollection. + + The specified was not found in the AppenderCollection. + + + + + Removes the element at the specified index of the AppenderCollection. + + The zero-based index of the element to remove. + + is less than zero + -or- + is equal to or greater than . + + + + + Returns an enumerator that can iterate through the AppenderCollection. + + An for the entire AppenderCollection. + + + + Adds the elements of another AppenderCollection to the current AppenderCollection. + + The AppenderCollection whose elements should be added to the end of the current AppenderCollection. + The new of the AppenderCollection. + + + + Adds the elements of a array to the current AppenderCollection. + + The array whose elements should be added to the end of the AppenderCollection. + The new of the AppenderCollection. + + + + Adds the elements of a collection to the current AppenderCollection. + + The collection whose elements should be added to the end of the AppenderCollection. + The new of the AppenderCollection. + + + + Sets the capacity to the actual number of elements. + + + + + Return the collection elements as an array + + the array + + + + is less than zero + -or- + is equal to or greater than . + + + + + is less than zero + -or- + is equal to or greater than . + + + + + Gets the number of elements actually contained in the AppenderCollection. + + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + The zero-based index of the element to get or set. + + is less than zero + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false + + + + Gets or sets the number of elements the AppenderCollection can contain. + + + + + Supports type-safe iteration over a . + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + + A value + + + + + Supports simple iteration over a . + + + + + + Initializes a new instance of the Enumerator class. + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + + + + Buffers events and then forwards them to attached appenders. + + + + The events are buffered in this appender until conditions are + met to allow the appender to deliver the events to the attached + appenders. See for the + conditions that cause the buffer to be sent. + + The forwarding appender can be used to specify different + thresholds and filters for the same appender at different locations + within the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Interface for attaching appenders to objects. + + + + Interface for attaching, removing and retrieving appenders. + + + Nicko Cadell + Gert Driesen + + + + Attaches an appender. + + The appender to add. + + + Add the specified appender. The implementation may + choose to allow or deny duplicate appenders. + + + + + + Gets an attached appender with the specified name. + + The name of the appender to get. + + The appender with the name specified, or null if no appender with the + specified name is found. + + + + Returns an attached appender with the specified. + If no appender with the specified name is found null will be + returned. + + + + + + Removes all attached appenders. + + + + Removes and closes all attached appenders + + + + + + Removes the specified appender from the list of attached appenders. + + The appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Gets all attached appenders. + + + A collection of attached appenders. + + + + Gets a collection of attached appenders. + If there are no attached appenders the + implementation should return an empty + collection rather than null. + + + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Send the events. + + The events that need to be send. + + + Forwards the events to the attached appenders. + + + + + + Adds an to the list of appenders of this + instance. + + The to add to this appender. + + + If the specified is already in the list of + appenders, then it won't be added again. + + + + + + Looks for the appender with the specified name. + + The name of the appender to lookup. + + The appender with the specified name, or null. + + + + Get the named appender attached to this buffering appender. + + + + + + Removes all previously added appenders from this appender. + + + + This is useful when re-reading configuration information. + + + + + + Removes the specified appender from the list of appenders. + + The appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Implementation of the interface + + + + + Gets the appenders contained in this appender as an + . + + + If no appenders can be found, then an + is returned. + + + A collection of the appenders in this appender. + + + + + Appends logging events to the console. + + + + ColoredConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific type of message to be set. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes directly to the application's attached console + not to the System.Console.Out or System.Console.Error TextWriter. + The System.Console.Out and System.Console.Error streams can be + programmatically redirected (for example NUnit does this to capture program output). + This appender will ignore these redirections because it needs to use Win32 + API calls to colorize the output. To respect these redirections the + must be used. + + + When configuring the colored console appender, mapping should be + specified to map a logging level to a color. For example: + + + + + + + + + + + + + + The Level is the standard log4net logging level and ForeColor and BackColor can be any + combination of the following values: + + Blue + Green + Red + White + Yellow + Purple + Cyan + HighIntensity + + + + Rick Hobbs + Nicko Cadell + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + flag set to true to write to the console error stream + + When is set to true, output is written to + the standard error output stream. Otherwise, output is written to the standard + output stream. + + + + + Add a mapping of level to color - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colors + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + The console output stream writer to write to + + + + This writer is not thread safe. + + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + The enum of possible color values for use with the color mapping method + + + + The following flags can be combined together to + form the colors. + + + + + + + color is blue + + + + + color is green + + + + + color is red + + + + + color is white + + + + + color is yellow + + + + + color is purple + + + + + color is cyan + + + + + color is intensified + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + Initialize the options for the object + + + + Combine the and together. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level. + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level. + + + + + + The combined and suitable for + setting the console color. + + + + + Appends logging events to the console. + + + + ConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes each message to the System.Console.Out or + System.Console.Error that is set at the time the event is appended. + Therefore it is possible to programmatically redirect the output of this appender + (for example NUnit does this to capture program output). While this is the desired + behavior of this appender it may have security implications in your application. + + + Nicko Cadell + Gert Driesen + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + flag set to true to write to the console error stream + + When is set to true, output is written to + the standard error output stream. Otherwise, output is written to the standard + output stream. + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Appends log events to the system. + + + + The application configuration file can be used to control what listeners + are actually used. See the MSDN documentation for the + class for details on configuring the + debug system. + + + Events are written using the + method. The event's logger name is passed as the value for the category name to the Write method. + + + Nicko Cadell + + + + Initializes a new instance of the . + + + + Default constructor. + + + + + + Initializes a new instance of the + with a specified layout. + + The layout to use with this appender. + + + Obsolete constructor. + + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Writes the logging event to the system. + + The event to log. + + + Writes the logging event to the system. + If is true then the + is called. + + + + + + Immediate flush means that the underlying writer or output stream + will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logs events are not actually written to persistent media if and + when the application crashes. + + + The default value is true. + + + + + Defaults to a with %logger as the pattern. + + + + + Gets or sets a value that indicates whether the appender will + flush at the end of each write. + + + The default behavior is to flush at the end of each + write. If the option is set tofalse, then the underlying + stream can defer writing to physical medium to a later time. + + + Avoiding the flush operation at the end of each append results + in a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + + Formats the category parameter sent to the Debug method. + + + + Defaults to a with %logger as the pattern which will use the logger name of the current + as the category parameter. + + + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Writes events to the system event log. + + + + The appender will fail if you try to write using an event source that doesn't exist unless it is running with local administrator privileges. + See also http://logging.apache.org/log4net/release/faq.html#trouble-EventLog + + + The EventID of the event log entry can be + set using the EventID property () + on the . + + + The Category of the event log entry can be + set using the Category property () + on the . + + + There is a limit of 32K characters for an event log message + + + When configuring the EventLogAppender a mapping can be + specified to map a logging level to an event log entry type. For example: + + + <mapping> + <level value="ERROR" /> + <eventLogEntryType value="Error" /> + </mapping> + <mapping> + <level value="DEBUG" /> + <eventLogEntryType value="Information" /> + </mapping> + + + The Level is the standard log4net logging level and eventLogEntryType can be any value + from the enum, i.e.: + + Erroran error event + Warninga warning event + Informationan informational event + + + + Aspi Havewala + Douglas de la Torre + Nicko Cadell + Gert Driesen + Thomas Voss + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initializes a new instance of the class + with the specified . + + The to use with this appender. + + + Obsolete constructor. + + + + + + Add a mapping of level to - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the event log entry type for a level. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Create an event log source + + + Uses different API calls under NET_2_0 + + + + + This method is called by the + method. + + the event to log + + Writes the event to the system event log using the + . + + If the event has an EventID property (see ) + set then this integer will be used as the event log event id. + + + There is a limit of 32K characters for an event log message + + + + + + Get the equivalent for a + + the Level to convert to an EventLogEntryType + The equivalent for a + + Because there are fewer applicable + values to use in logging levels than there are in the + this is a one way mapping. There is + a loss of information during the conversion. + + + + + The log name is the section in the event logs where the messages + are stored. + + + + + Name of the application to use when logging. This appears in the + application column of the event log named by . + + + + + The name of the machine which holds the event log. This is + currently only allowed to be '.' i.e. the current machine. + + + + + Mapping from level object to EventLogEntryType + + + + + The security context to use for privileged calls + + + + + The event ID to use unless one is explicitly specified via the LoggingEvent's properties. + + + + + The event category to use unless one is explicitly specified via the LoggingEvent's properties. + + + + + The fully qualified type of the EventLogAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + The maximum size supported by default. + + + http://msdn.microsoft.com/en-us/library/xzwc042w(v=vs.100).aspx + The 32766 documented max size is two bytes shy of 32K (I'm assuming 32766 + may leave space for a two byte null terminator of #0#0). The 32766 max + length is what the .NET 4.0 source code checks for, but this is WRONG! + Strings with a length > 31839 on Windows Vista or higher can CORRUPT + the event log! See: System.Diagnostics.EventLogInternal.InternalWriteEvent() + for the use of the 32766 max size. + + + + + The maximum size supported by a windows operating system that is vista + or newer. + + + See ReportEvent API: + http://msdn.microsoft.com/en-us/library/aa363679(VS.85).aspx + ReportEvent's lpStrings parameter: + "A pointer to a buffer containing an array of + null-terminated strings that are merged into the message before Event Viewer + displays the string to the user. This parameter must be a valid pointer + (or NULL), even if wNumStrings is zero. Each string is limited to 31,839 characters." + + Going beyond the size of 31839 will (at some point) corrupt the event log on Windows + Vista or higher! It may succeed for a while...but you will eventually run into the + error: "System.ComponentModel.Win32Exception : A device attached to the system is + not functioning", and the event log will then be corrupt (I was able to corrupt + an event log using a length of 31877 on Windows 7). + + The max size for Windows Vista or higher is documented here: + http://msdn.microsoft.com/en-us/library/xzwc042w(v=vs.100).aspx. + Going over this size may succeed a few times but the buffer will overrun and + eventually corrupt the log (based on testing). + + The maxEventMsgSize size is based on the max buffer size of the lpStrings parameter of the ReportEvent API. + The documented max size for EventLog.WriteEntry for Windows Vista and higher is 31839, but I'm leaving room for a + terminator of #0#0, as we cannot see the source of ReportEvent (though we could use an API monitor to examine the + buffer, given enough time). + + + + + The maximum size that the operating system supports for + a event log message. + + + Used to determine the maximum string length that can be written + to the operating system event log and eventually truncate a string + that exceeds the limits. + + + + + This method determines the maximum event log message size allowed for + the current environment. + + + + + + The name of the log where messages will be stored. + + + The string name of the log where messages will be stored. + + + This is the name of the log as it appears in the Event Viewer + tree. The default value is to log into the Application + log, this is where most applications write their events. However + if you need a separate log for your application (or applications) + then you should set the appropriately. + This should not be used to distinguish your event log messages + from those of other applications, the + property should be used to distinguish events. This property should be + used to group together events into a single log. + + + + + + Property used to set the Application name. This appears in the + event logs when logging. + + + The string used to distinguish events from different sources. + + + Sets the event log source property. + + + + + This property is used to return the name of the computer to use + when accessing the event logs. Currently, this is the current + computer, denoted by a dot "." + + + The string name of the machine holding the event log that + will be logged into. + + + This property cannot be changed. It is currently set to '.' + i.e. the local machine. This may be changed in future. + + + + + Gets or sets the used to write to the EventLog. + + + The used to write to the EventLog. + + + + The system security context used to write to the EventLog. + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Gets or sets the EventId to use unless one is explicitly specified via the LoggingEvent's properties. + + + + The EventID of the event log entry will normally be + set using the EventID property () + on the . + This property provides the fallback value which defaults to 0. + + + + + + Gets or sets the Category to use unless one is explicitly specified via the LoggingEvent's properties. + + + + The Category of the event log entry will normally be + set using the Category property () + on the . + This property provides the fallback value which defaults to 0. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and its event log entry type. + + + + + + The for this entry + + + + Required property. + The for this entry + + + + + + Appends logging events to a file. + + + + Logging events are sent to the file specified by + the property. + + + The file can be opened in either append or overwrite mode + by specifying the property. + If the file path is relative it is taken as relative from + the application base directory. The file encoding can be + specified by setting the property. + + + The layout's and + values will be written each time the file is opened and closed + respectively. If the property is + then the file may contain multiple copies of the header and footer. + + + This appender will first try to open the file for writing when + is called. This will typically be during configuration. + If the file cannot be opened for writing the appender will attempt + to open the file again each time a message is logged to the appender. + If the file cannot be opened for writing when a message is logged then + the message will be discarded by this appender. + + + The supports pluggable file locking models via + the property. + The default behavior, implemented by + is to obtain an exclusive write lock on the file until this appender is closed. + The alternative models only hold a + write lock while the appender is writing a logging event () + or synchronize by using a named system wide Mutex (). + + + All locking strategies have issues and you should seriously consider using a different strategy that + avoids having multiple processes logging to the same file. + + + Nicko Cadell + Gert Driesen + Rodrigo B. de Oliveira + Douglas de la Torre + Niall Daley + + + + Sends logging events to a . + + + + An Appender that writes to a . + + + This appender may be used stand alone if initialized with an appropriate + writer, however it is typically used as a base class for an appender that + can open a to write to. + + + Nicko Cadell + Gert Driesen + Douglas de la Torre + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initializes a new instance of the class and + sets the output destination to a new initialized + with the specified . + + The layout to use with this appender. + The to output to. + + + Obsolete constructor. + + + + + + Initializes a new instance of the class and sets + the output destination to the specified . + + The layout to use with this appender + The to output to + + The must have been previously opened. + + + + Obsolete constructor. + + + + + + This method determines if there is a sense in attempting to append. + + + + This method checks if an output target has been set and if a + layout has been set. + + + false if any of the preconditions fail. + + + + This method is called by the + method. + + The event to log. + + + Writes a log statement to the output stream if the output stream exists + and is writable. + + + The format of the output will depend on the appender's layout. + + + + + + This method is called by the + method. + + The array of events to log. + + + This method writes all the bulk logged events to the output writer + before flushing the stream. + + + + + + Close this appender instance. The underlying stream or writer is also closed. + + + Closed appenders cannot be reused. + + + + + Writes the footer and closes the underlying . + + + + Writes the footer and closes the underlying . + + + + + + Closes the underlying . + + + + Closes the underlying . + + + + + + Clears internal references to the underlying + and other variables. + + + + Subclasses can override this method for an alternate closing behavior. + + + + + + Writes a footer as produced by the embedded layout's property. + + + + Writes a footer as produced by the embedded layout's property. + + + + + + Writes a header produced by the embedded layout's property. + + + + Writes a header produced by the embedded layout's property. + + + + + + Called to allow a subclass to lazily initialize the writer + + + + This method is called when an event is logged and the or + have not been set. This allows a subclass to + attempt to initialize the writer multiple times. + + + + + + This is the where logging events + will be written to. + + + + + Immediate flush means that the underlying + or output stream will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logging events are not actually persisted if and when the application + crashes. + + + The default value is true. + + + + + + The fully qualified type of the TextWriterAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Gets or set whether the appender will flush at the end + of each append operation. + + + + The default behavior is to flush at the end of each + append operation. + + + If this option is set to false, then the underlying + stream can defer persisting the logging event to a later + time. + + + + Avoiding the flush operation at the end of each append results in + a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + Sets the where the log output will go. + + + + The specified must be open and writable. + + + The will be closed when the appender + instance is closed. + + + Note: Logging to an unopened will fail. + + + + + + Gets or set the and the underlying + , if any, for this appender. + + + The for this appender. + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Gets or sets the where logging events + will be written to. + + + The where logging events are written. + + + + This is the where logging events + will be written to. + + + + + + Default constructor + + + + Default constructor + + + + + + Construct a new appender using the layout, file and append mode. + + the layout to use with this appender + the full path to the file to write to + flag to indicate if the file should be appended to + + + Obsolete constructor. + + + + + + Construct a new appender using the layout and file specified. + The file will be appended to. + + the layout to use with this appender + the full path to the file to write to + + + Obsolete constructor. + + + + + + Activate the options on the file appender. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + This will cause the file to be opened. + + + + + + Closes any previously opened file and calls the parent's . + + + + Resets the filename and the file stream. + + + + + + Close this appender instance. The underlying stream or writer is also closed. + + + + + Called to initialize the file writer + + + + Will be called for each logged message until the file is + successfully opened. + + + + + + This method is called by the + method. + + The event to log. + + + Writes a log statement to the output stream if the output stream exists + and is writable. + + + The format of the output will depend on the appender's layout. + + + + + + This method is called by the + method. + + The array of events to log. + + + Acquires the output file locks once before writing all the events to + the stream. + + + + + + Writes a footer as produced by the embedded layout's property. + + + + Writes a footer as produced by the embedded layout's property. + + + + + + Writes a header produced by the embedded layout's property. + + + + Writes a header produced by the embedded layout's property. + + + + + + Closes the underlying . + + + + Closes the underlying . + + + + + + Closes the previously opened file. + + + + Writes the to the file and then + closes the file. + + + + + + Sets and opens the file where the log output will go. The specified file must be writable. + + The path to the log file. Must be a fully qualified path. + If true will append to fileName. Otherwise will truncate fileName + + + Calls but guarantees not to throw an exception. + Errors are passed to the . + + + + + + Sets and opens the file where the log output will go. The specified file must be writable. + + The path to the log file. Must be a fully qualified path. + If true will append to fileName. Otherwise will truncate fileName + + + If there was already an opened file, then the previous file + is closed first. + + + This method will ensure that the directory structure + for the specified exists. + + + + + + Sets the quiet writer used for file output + + the file stream that has been opened for writing + + + This implementation of creates a + over the and passes it to the + method. + + + This method can be overridden by sub classes that want to wrap the + in some way, for example to encrypt the output + data using a System.Security.Cryptography.CryptoStream. + + + + + + Sets the quiet writer being used. + + the writer over the file stream that has been opened for writing + + + This method can be overridden by sub classes that want to + wrap the in some way. + + + + + + Convert a path into a fully qualified path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + + + + Flag to indicate if we should append to the file + or overwrite the file. The default is to append. + + + + + The name of the log file. + + + + + The encoding to use for the file stream. + + + + + The security context to use for privileged calls + + + + + The stream to log to. Has added locking semantics + + + + + The locking model to use + + + + + The fully qualified type of the FileAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the path to the file that logging will be written to. + + + The path to the file that logging will be written to. + + + + If the path is relative it is taken as relative from + the application base directory. + + + + + + Gets or sets a flag that indicates whether the file should be + appended to or overwritten. + + + Indicates whether the file should be appended to or overwritten. + + + + If the value is set to false then the file will be overwritten, if + it is set to true then the file will be appended to. + + The default value is true. + + + + + Gets or sets used to write to the file. + + + The used to write to the file. + + + + The default encoding set is + which is the encoding for the system's current ANSI code page. + + + + + + Gets or sets the used to write to the file. + + + The used to write to the file. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Gets or sets the used to handle locking of the file. + + + The used to lock the file. + + + + Gets or sets the used to handle locking of the file. + + + There are three built in locking models, , and . + The first locks the file from the start of logging to the end, the + second locks only for the minimal amount of time when logging each message + and the last synchronizes processes using a named system wide Mutex. + + + The default locking model is the . + + + + + + Write only that uses the + to manage access to an underlying resource. + + + + + True asynchronous writes are not supported, the implementation forces a synchronous write. + + + + + Exception base type for log4net. + + + + This type extends . It + does not add any new functionality but does differentiate the + type of exception being thrown. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + A message to include with the exception. + + + Initializes a new instance of the class with + the specified message. + + + + + + Constructor + + A message to include with the exception. + A nested exception to include. + + + Initializes a new instance of the class + with the specified message and inner exception. + + + + + + Serialization constructor + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Locking model base class + + + + Base class for the locking models available to the derived loggers. + + + + + + Open the output file + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Acquire the lock on the file in preparation for writing to it. + Return a stream pointing to the file. + must be called to release the lock on the output file. + + + + + + Release the lock on the file + + + + Release the lock on the file. No further writes will be made to the + stream until is called again. + + + + + + Helper method that creates a FileStream under CurrentAppender's SecurityContext. + + + + Typically called during OpenFile or AcquireLock. + + + If the directory portion of the does not exist, it is created + via Directory.CreateDirecctory. + + + + + + + + + + Helper method to close under CurrentAppender's SecurityContext. + + + Does not set to null. + + + + + + Gets or sets the for this LockingModel + + + The for this LockingModel + + + + The file appender this locking model is attached to and working on + behalf of. + + + The file appender is used to locate the security context and the error handler to use. + + + The value of this property will be set before is + called. + + + + + + Hold an exclusive lock on the output file + + + + Open the file once for writing and hold it open until is called. + Maintains an exclusive lock on the file during this time. + + + + + + Open the file specified and prepare for logging. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Does nothing. The lock is already taken + + + + + + Release the lock on the file + + + + Does nothing. The lock will be released when the file is closed. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Acquires the file lock for each write + + + + Opens the file once for each / cycle, + thus holding the lock for the minimal amount of time. This method of locking + is considerably slower than but allows + other processes to move/delete the log file whilst logging continues. + + + + + + Prepares to open the file when the first message is logged. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Acquire the lock on the file in preparation for writing to it. + Return a stream pointing to the file. + must be called to release the lock on the output file. + + + + + + Release the lock on the file + + + + Release the lock on the file. No further writes will be made to the + stream until is called again. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Provides cross-process file locking. + + Ron Grabowski + Steve Wranovsky + + + + Open the file specified and prepare for logging. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + - and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Does nothing. The lock is already taken + + + + + + Releases the lock and allows others to acquire a lock. + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + This appender forwards logging events to attached appenders. + + + + The forwarding appender can be used to specify different thresholds + and filters for the same appender at different locations within the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Forward the logging event to the attached appenders + + The event to log. + + + Delivers the logging event to all the attached appenders. + + + + + + Forward the logging events to the attached appenders + + The array of events to log. + + + Delivers the logging events to all the attached appenders. + + + + + + Adds an to the list of appenders of this + instance. + + The to add to this appender. + + + If the specified is already in the list of + appenders, then it won't be added again. + + + + + + Looks for the appender with the specified name. + + The name of the appender to lookup. + + The appender with the specified name, or null. + + + + Get the named appender attached to this appender. + + + + + + Removes all previously added appenders from this appender. + + + + This is useful when re-reading configuration information. + + + + + + Removes the specified appender from the list of appenders. + + The appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Implementation of the interface + + + + + Gets the appenders contained in this appender as an + . + + + If no appenders can be found, then an + is returned. + + + A collection of the appenders in this appender. + + + + + Logs events to a local syslog service. + + + + This appender uses the POSIX libc library functions openlog, syslog, and closelog. + If these functions are not available on the local system then this appender will not work! + + + The functions openlog, syslog, and closelog are specified in SUSv2 and + POSIX 1003.1-2001 standards. These are used to log messages to the local syslog service. + + + This appender talks to a local syslog service. If you need to log to a remote syslog + daemon and you cannot configure your local syslog service to do this you may be + able to use the to log via UDP. + + + Syslog messages must have a facility and and a severity. The severity + is derived from the Level of the logging event. + The facility must be chosen from the set of defined syslog + values. The facilities list is predefined + and cannot be extended. + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + Rob Lyon + Nicko Cadell + + + + Initializes a new instance of the class. + + + This instance of the class is set up to write + to a local syslog service. + + + + + Add a mapping of level to severity + + The mapping to add + + + Adds a to this appender. + + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to a remote syslog daemon. + + + The format of the output will depend on the appender's layout. + + + + + + Close the syslog when the appender is closed + + + + Close the syslog when the appender is closed + + + + + + Translates a log4net level to a syslog severity. + + A log4net level. + A syslog severity. + + + Translates a log4net level to a syslog severity. + + + + + + Generate a syslog priority. + + The syslog facility. + The syslog severity. + A syslog priority. + + + + The facility. The default facility is . + + + + + The message identity + + + + + Marshaled handle to the identity string. We have to hold on to the + string as the openlog and syslog APIs just hold the + pointer to the ident and dereference it for each log message. + + + + + Mapping from level object to syslog severity + + + + + Open connection to system logger. + + + + + Generate a log message. + + + + The libc syslog method takes a format string and a variable argument list similar + to the classic printf function. As this type of vararg list is not supported + by C# we need to specify the arguments explicitly. Here we have specified the + format string with a single message argument. The caller must set the format + string to "%s". + + + + + + Close descriptor used to write to system logger. + + + + + Message identity + + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + + + + Syslog facility + + + Set to one of the values. The list of + facilities is predefined and cannot be extended. The default value + is . + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + syslog severities + + + + The log4net Level maps to a syslog severity using the + method and the + class. The severity is set on . + + + + + + system is unusable + + + + + action must be taken immediately + + + + + critical conditions + + + + + error conditions + + + + + warning conditions + + + + + normal but significant condition + + + + + informational + + + + + debug-level messages + + + + + syslog facilities + + + + The syslog facility defines which subsystem the logging comes from. + This is set on the property. + + + + + + kernel messages + + + + + random user-level messages + + + + + mail system + + + + + system daemons + + + + + security/authorization messages + + + + + messages generated internally by syslogd + + + + + line printer subsystem + + + + + network news subsystem + + + + + UUCP subsystem + + + + + clock (cron/at) daemon + + + + + security/authorization messages (private) + + + + + ftp daemon + + + + + NTP subsystem + + + + + log audit + + + + + log alert + + + + + clock daemon + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + + + The mapped syslog severity for the specified level + + + + Required property. + The mapped syslog severity for the specified level + + + + + + Appends colorful logging events to the console, using the .NET 2 + built-in capabilities. + + + + ManagedColoredConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific type of message to be set. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + When configuring the colored console appender, mappings should be + specified to map logging levels to colors. For example: + + + + + + + + + + + + + + + + + + + + + + The Level is the standard log4net logging level while + ForeColor and BackColor are the values of + enumeration. + + + Based on the ColoredConsoleAppender + + + Rick Hobbs + Nicko Cadell + Pavlos Touboulidis + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Add a mapping of level to color - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colors + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level. + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level. + + + + + + Stores logging events in an array. + + + + The memory appender stores all the logging events + that are appended in an in-memory array. + + + Use the method to get + and clear the current list of events that have been appended. + + + Use the method to get the current + list of events that have been appended. Note there is a + race-condition when calling and + in pairs, you better use in that case. + + + Use the method to clear the + current list of events. Note there is a + race-condition when calling and + in pairs, you better use in that case. + + + Julian Biddle + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Gets the events that have been logged. + + The events that have been logged + + + Gets the events that have been logged. + + + + + + This method is called by the method. + + the event to log + + Stores the in the events list. + + + + + Clear the list of events + + + Clear the list of events + + + + + Gets the events that have been logged and clears the list of events. + + The events that have been logged + + + Gets the events that have been logged and clears the list of events. + + + + + + The list of events that have been appended. + + + + + Value indicating which fields in the event should be fixed + + + By default all fields are fixed + + + + + Gets or sets a value indicating whether only part of the logging event + data should be fixed. + + + true if the appender should only fix part of the logging event + data, otherwise false. The default is false. + + + + Setting this property to true will cause only part of the event + data to be fixed and stored in the appender, hereby improving performance. + + + See for more information. + + + + + + Gets or sets the fields that will be fixed in the event + + + + The logging event needs to have certain thread specific values + captured before it can be buffered. See + for details. + + + + + + Logs entries by sending network messages using the + native function. + + + + You can send messages only to names that are active + on the network. If you send the message to a user name, + that user must be logged on and running the Messenger + service to receive the message. + + + The receiver will get a top most window displaying the + messages one at a time, therefore this appender should + not be used to deliver a high volume of messages. + + + The following table lists some possible uses for this appender : + + + + + Action + Property Value(s) + + + Send a message to a user account on the local machine + + + = <name of the local machine> + + + = <user name> + + + + + Send a message to a user account on a remote machine + + + = <name of the remote machine> + + + = <user name> + + + + + Send a message to a domain user account + + + = <name of a domain controller | uninitialized> + + + = <user name> + + + + + Send a message to all the names in a workgroup or domain + + + = <workgroup name | domain name>* + + + + + Send a message from the local machine to a remote machine + + + = <name of the local machine | uninitialized> + + + = <name of the remote machine> + + + + + + + Note : security restrictions apply for sending + network messages, see + for more information. + + + + + An example configuration section to log information + using this appender from the local machine, named + LOCAL_PC, to machine OPERATOR_PC : + + + + + + + + + + Nicko Cadell + Gert Driesen + + + + The DNS or NetBIOS name of the server on which the function is to execute. + + + + + The sender of the network message. + + + + + The message alias to which the message should be sent. + + + + + The security context to use for privileged calls + + + + + Initializes the appender. + + + The default constructor initializes all fields to their default values. + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The appender will be ignored if no was specified. + + + The required property was not specified. + + + + This method is called by the method. + + The event to log. + + + Sends the event using a network message. + + + + + + Sends a buffer of information to a registered message alias. + + The DNS or NetBIOS name of the server on which the function is to execute. + The message alias to which the message buffer should be sent + The originator of the message. + The message text. + The length, in bytes, of the message text. + + + The following restrictions apply for sending network messages: + + + + + Platform + Requirements + + + Windows NT + + + No special group membership is required to send a network message. + + + Admin, Accounts, Print, or Server Operator group membership is required to + successfully send a network message on a remote server. + + + + + Windows 2000 or later + + + If you send a message on a domain controller that is running Active Directory, + access is allowed or denied based on the access control list (ACL) for the securable + object. The default ACL permits only Domain Admins and Account Operators to send a network message. + + + On a member server or workstation, only Administrators and Server Operators can send a network message. + + + + + + + For more information see Security Requirements for the Network Management Functions. + + + + + If the function succeeds, the return value is zero. + + + + + + Gets or sets the sender of the message. + + + The sender of the message. + + + If this property is not specified, the message is sent from the local computer. + + + + + Gets or sets the message alias to which the message should be sent. + + + The recipient of the message. + + + This property should always be specified in order to send a message. + + + + + Gets or sets the DNS or NetBIOS name of the remote server on which the function is to execute. + + + DNS or NetBIOS name of the remote server on which the function is to execute. + + + + For Windows NT 4.0 and earlier, the string should begin with \\. + + + If this property is not specified, the local computer is used. + + + + + + Gets or sets the used to call the NetSend method. + + + The used to call the NetSend method. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Appends log events to the OutputDebugString system. + + + + OutputDebugStringAppender appends log events to the + OutputDebugString system. + + + The string is passed to the native OutputDebugString + function. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Write the logging event to the output debug string API + + the event to log + + + Write the logging event to the output debug string API + + + + + + Stub for OutputDebugString native method + + the string to output + + + Stub for OutputDebugString native method + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Logs events to a remote syslog daemon. + + + + The BSD syslog protocol is used to remotely log to + a syslog daemon. The syslogd listens for for messages + on UDP port 514. + + + The syslog UDP protocol is not authenticated. Most syslog daemons + do not accept remote log messages because of the security implications. + You may be able to use the LocalSyslogAppender to talk to a local + syslog service. + + + There is an RFC 3164 that claims to document the BSD Syslog Protocol. + This RFC can be seen here: http://www.faqs.org/rfcs/rfc3164.html. + This appender generates what the RFC calls an "Original Device Message", + i.e. does not include the TIMESTAMP or HOSTNAME fields. By observation + this format of message will be accepted by all current syslog daemon + implementations. The daemon will attach the current time and the source + hostname or IP address to any messages received. + + + Syslog messages must have a facility and and a severity. The severity + is derived from the Level of the logging event. + The facility must be chosen from the set of defined syslog + values. The facilities list is predefined + and cannot be extended. + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + Rob Lyon + Nicko Cadell + + + + Sends logging events as connectionless UDP datagrams to a remote host or a + multicast group using an . + + + + UDP guarantees neither that messages arrive, nor that they arrive in the correct order. + + + To view the logging results, a custom application can be developed that listens for logging + events. + + + When decoding events send via this appender remember to use the same encoding + to decode the events as was used to send the events. See the + property to specify the encoding to use. + + + + This example shows how to log receive logging events that are sent + on IP address 244.0.0.1 and port 8080 to the console. The event is + encoded in the packet as a unicode string and it is decoded as such. + + IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0); + UdpClient udpClient; + byte[] buffer; + string loggingEvent; + + try + { + udpClient = new UdpClient(8080); + + while(true) + { + buffer = udpClient.Receive(ref remoteEndPoint); + loggingEvent = System.Text.Encoding.Unicode.GetString(buffer); + Console.WriteLine(loggingEvent); + } + } + catch(Exception e) + { + Console.WriteLine(e.ToString()); + } + + + Dim remoteEndPoint as IPEndPoint + Dim udpClient as UdpClient + Dim buffer as Byte() + Dim loggingEvent as String + + Try + remoteEndPoint = new IPEndPoint(IPAddress.Any, 0) + udpClient = new UdpClient(8080) + + While True + buffer = udpClient.Receive(ByRef remoteEndPoint) + loggingEvent = System.Text.Encoding.Unicode.GetString(buffer) + Console.WriteLine(loggingEvent) + Wend + Catch e As Exception + Console.WriteLine(e.ToString()) + End Try + + + An example configuration section to log information using this appender to the + IP 224.0.0.1 on port 8080: + + + + + + + + + + Gert Driesen + Nicko Cadell + + + + Initializes a new instance of the class. + + + The default constructor initializes all fields to their default values. + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The appender will be ignored if no was specified or + an invalid remote or local TCP port number was specified. + + + The required property was not specified. + The TCP port number assigned to or is less than or greater than . + + + + This method is called by the method. + + The event to log. + + + Sends the event using an UDP datagram. + + + Exceptions are passed to the . + + + + + + Closes the UDP connection and releases all resources associated with + this instance. + + + + Disables the underlying and releases all managed + and unmanaged resources associated with the . + + + + + + Initializes the underlying connection. + + + + The underlying is initialized and binds to the + port number from which you intend to communicate. + + + Exceptions are passed to the . + + + + + + The IP address of the remote host or multicast group to which + the logging event will be sent. + + + + + The TCP port number of the remote host or multicast group to + which the logging event will be sent. + + + + + The cached remote endpoint to which the logging events will be sent. + + + + + The TCP port number from which the will communicate. + + + + + The instance that will be used for sending the + logging events. + + + + + The encoding to use for the packet. + + + + + Gets or sets the IP address of the remote host or multicast group to which + the underlying should sent the logging event. + + + The IP address of the remote host or multicast group to which the logging event + will be sent. + + + + Multicast addresses are identified by IP class D addresses (in the range 224.0.0.0 to + 239.255.255.255). Multicast packets can pass across different networks through routers, so + it is possible to use multicasts in an Internet scenario as long as your network provider + supports multicasting. + + + Hosts that want to receive particular multicast messages must register their interest by joining + the multicast group. Multicast messages are not sent to networks where no host has joined + the multicast group. Class D IP addresses are used for multicast groups, to differentiate + them from normal host addresses, allowing nodes to easily detect if a message is of interest. + + + Static multicast addresses that are needed globally are assigned by IANA. A few examples are listed in the table below: + + + + + IP Address + Description + + + 224.0.0.1 + + + Sends a message to all system on the subnet. + + + + + 224.0.0.2 + + + Sends a message to all routers on the subnet. + + + + + 224.0.0.12 + + + The DHCP server answers messages on the IP address 224.0.0.12, but only on a subnet. + + + + + + + A complete list of actually reserved multicast addresses and their owners in the ranges + defined by RFC 3171 can be found at the IANA web site. + + + The address range 239.0.0.0 to 239.255.255.255 is reserved for administrative scope-relative + addresses. These addresses can be reused with other local groups. Routers are typically + configured with filters to prevent multicast traffic in this range from flowing outside + of the local network. + + + + + + Gets or sets the TCP port number of the remote host or multicast group to which + the underlying should sent the logging event. + + + An integer value in the range to + indicating the TCP port number of the remote host or multicast group to which the logging event + will be sent. + + + The underlying will send messages to this TCP port number + on the remote host or multicast group. + + The value specified is less than or greater than . + + + + Gets or sets the TCP port number from which the underlying will communicate. + + + An integer value in the range to + indicating the TCP port number from which the underlying will communicate. + + + + The underlying will bind to this port for sending messages. + + + Setting the value to 0 (the default) will cause the udp client not to bind to + a local port. + + + The value specified is less than or greater than . + + + + Gets or sets used to write the packets. + + + The used to write the packets. + + + + The used to write the packets. + + + + + + Gets or sets the underlying . + + + The underlying . + + + creates a to send logging events + over a network. Classes deriving from can use this + property to get or set this . Use the underlying + returned from if you require access beyond that which + provides. + + + + + Gets or sets the cached remote endpoint to which the logging events should be sent. + + + The cached remote endpoint to which the logging events will be sent. + + + The method will initialize the remote endpoint + with the values of the and + properties. + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Syslog port 514 + + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + Initializes a new instance of the class. + + + This instance of the class is set up to write + to a remote syslog daemon. + + + + + Add a mapping of level to severity + + The mapping to add + + + Add a mapping to this appender. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to a remote syslog daemon. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to syslog severity mappings set on this appender. + + + + + + Translates a log4net level to a syslog severity. + + A log4net level. + A syslog severity. + + + Translates a log4net level to a syslog severity. + + + + + + Generate a syslog priority. + + The syslog facility. + The syslog severity. + A syslog priority. + + + Generate a syslog priority. + + + + + + The facility. The default facility is . + + + + + The message identity + + + + + Mapping from level object to syslog severity + + + + + Message identity + + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + + + + Syslog facility + + + Set to one of the values. The list of + facilities is predefined and cannot be extended. The default value + is . + + + + + syslog severities + + + + The syslog severities. + + + + + + system is unusable + + + + + action must be taken immediately + + + + + critical conditions + + + + + error conditions + + + + + warning conditions + + + + + normal but significant condition + + + + + informational + + + + + debug-level messages + + + + + syslog facilities + + + + The syslog facilities + + + + + + kernel messages + + + + + random user-level messages + + + + + mail system + + + + + system daemons + + + + + security/authorization messages + + + + + messages generated internally by syslogd + + + + + line printer subsystem + + + + + network news subsystem + + + + + UUCP subsystem + + + + + clock (cron/at) daemon + + + + + security/authorization messages (private) + + + + + ftp daemon + + + + + NTP subsystem + + + + + log audit + + + + + log alert + + + + + clock daemon + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + + + The mapped syslog severity for the specified level + + + + Required property. + The mapped syslog severity for the specified level + + + + + + Delivers logging events to a remote logging sink. + + + + This Appender is designed to deliver events to a remote sink. + That is any object that implements the + interface. It delivers the events using .NET remoting. The + object to deliver events to is specified by setting the + appenders property. + + The RemotingAppender buffers events before sending them. This allows it to + make more efficient use of the remoting infrastructure. + + Once the buffer is full the events are still not sent immediately. + They are scheduled to be sent using a pool thread. The effect is that + the send occurs asynchronously. This is very important for a + number of non obvious reasons. The remoting infrastructure will + flow thread local variables (stored in the ), + if they are marked as , across the + remoting boundary. If the server is not contactable then + the remoting infrastructure will clear the + objects from the . To prevent a logging failure from + having side effects on the calling application the remoting call must be made + from a separate thread to the one used by the application. A + thread is used for this. If no thread is available then + the events will block in the thread pool manager until a thread is available. + + Because the events are sent asynchronously using pool threads it is possible to close + this appender before all the queued events have been sent. + When closing the appender attempts to wait until all the queued events have been sent, but + this will timeout after 30 seconds regardless. + + If this appender is being closed because the + event has fired it may not be possible to send all the queued events. During process + exit the runtime limits the time that a + event handler is allowed to run for. If the runtime terminates the threads before + the queued events have been sent then they will be lost. To ensure that all events + are sent the appender must be closed before the application exits. See + for details on how to shutdown + log4net programmatically. + + + Nicko Cadell + Gert Driesen + Daniel Cazzulino + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Send the contents of the buffer to the remote sink. + + + The events are not sent immediately. They are scheduled to be sent + using a pool thread. The effect is that the send occurs asynchronously. + This is very important for a number of non obvious reasons. The remoting + infrastructure will flow thread local variables (stored in the ), + if they are marked as , across the + remoting boundary. If the server is not contactable then + the remoting infrastructure will clear the + objects from the . To prevent a logging failure from + having side effects on the calling application the remoting call must be made + from a separate thread to the one used by the application. A + thread is used for this. If no thread is available then + the events will block in the thread pool manager until a thread is available. + + The events to send. + + + + Override base class close. + + + + This method waits while there are queued work items. The events are + sent asynchronously using work items. These items + will be sent once a thread pool thread is available to send them, therefore + it is possible to close the appender before all the queued events have been + sent. + + This method attempts to wait until all the queued events have been sent, but this + method will timeout after 30 seconds regardless. + + If the appender is being closed because the + event has fired it may not be possible to send all the queued events. During process + exit the runtime limits the time that a + event handler is allowed to run for. + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + A work item is being queued into the thread pool + + + + + A work item from the thread pool has completed + + + + + Send the contents of the buffer to the remote sink. + + + This method is designed to be used with the . + This method expects to be passed an array of + objects in the state param. + + the logging events to send + + + + The URL of the remote sink. + + + + + The local proxy (.NET remoting) for the remote logging sink. + + + + + The number of queued callbacks currently waiting or executing + + + + + Event used to signal when there are no queued work items + + + This event is set when there are no queued work items. In this + state it is safe to close the appender. + + + + + Gets or sets the URL of the well-known object that will accept + the logging events. + + + The well-known URL of the remote sink. + + + + The URL of the remoting sink that will accept logging events. + The sink must implement the + interface. + + + + + + Interface used to deliver objects to a remote sink. + + + This interface must be implemented by a remoting sink + if the is to be used + to deliver logging events to the sink. + + + + + Delivers logging events to the remote sink + + Array of events to log. + + + Delivers logging events to the remote sink + + + + + + Appender that rolls log files based on size or date or both. + + + + RollingFileAppender can roll log files based on size or date or both + depending on the setting of the property. + When set to the log file will be rolled + once its size exceeds the . + When set to the log file will be rolled + once the date boundary specified in the property + is crossed. + When set to the log file will be + rolled once the date boundary specified in the property + is crossed, but within a date boundary the file will also be rolled + once its size exceeds the . + When set to the log file will be rolled when + the appender is configured. This effectively means that the log file can be + rolled once per program execution. + + + A of few additional optional features have been added: + + Attach date pattern for current log file + Backup number increments for newer files + Infinite number of backups by file size + + + + + + For large or infinite numbers of backup files a + greater than zero is highly recommended, otherwise all the backup files need + to be renamed each time a new backup is created. + + + When Date/Time based rolling is used setting + to will reduce the number of file renamings to few or none. + + + + + + Changing or without clearing + the log file directory of backup files will cause unexpected and unwanted side effects. + + + + + If Date/Time based rolling is enabled this appender will attempt to roll existing files + in the directory without a Date/Time tag based on the last write date of the base log file. + The appender only rolls the log file when a message is logged. If Date/Time based rolling + is enabled then the appender will not roll the log file at the Date/Time boundary but + at the point when the next message is logged after the boundary has been crossed. + + + + The extends the and + has the same behavior when opening the log file. + The appender will first try to open the file for writing when + is called. This will typically be during configuration. + If the file cannot be opened for writing the appender will attempt + to open the file again each time a message is logged to the appender. + If the file cannot be opened for writing when a message is logged then + the message will be discarded by this appender. + + + When rolling a backup file necessitates deleting an older backup file the + file to be deleted is moved to a temporary name before being deleted. + + + + + A maximum number of backup files when rolling on date/time boundaries is not supported. + + + + Nicko Cadell + Gert Driesen + Aspi Havewala + Douglas de la Torre + Edward Smit + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Cleans up all resources used by this appender. + + + + + The fully qualified type of the RollingFileAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Sets the quiet writer being used. + + + This method can be overridden by sub classes. + + the writer to set + + + + Write out a logging event. + + the event to write to file. + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Write out an array of logging events. + + the events to write to file. + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Performs any required rolling before outputting the next event + + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Creates and opens the file for logging. If + is false then the fully qualified name is determined and used. + + the name of the file to open + true to append to existing file + + This method will ensure that the directory structure + for the specified exists. + + + + + Get the current output file name + + the base file name + the output file name + + The output file name is based on the base fileName specified. + If is set then the output + file name is the same as the base file passed in. Otherwise + the output file depends on the date pattern, on the count + direction or both. + + + + + Determines curSizeRollBackups (only within the current roll point) + + + + + Generates a wildcard pattern that can be used to find all files + that are similar to the base file name. + + + + + + + Builds a list of filenames for all files matching the base filename plus a file + pattern. + + + + + + + Initiates a roll over if needed for crossing a date boundary since the last run. + + + + + Initializes based on existing conditions at time of . + + + + Initializes based on existing conditions at time of . + The following is done + + determine curSizeRollBackups (only within the current roll point) + initiates a roll over if needed for crossing a date boundary since the last run. + + + + + + + Does the work of bumping the 'current' file counter higher + to the highest count when an incremental file name is seen. + The highest count is either the first file (when count direction + is greater than 0) or the last file (when count direction less than 0). + In either case, we want to know the highest count that is present. + + + + + + + Attempts to extract a number from the end of the file name that indicates + the number of the times the file has been rolled over. + + + Certain date pattern extensions like yyyyMMdd will be parsed as valid backup indexes. + + + + + + + Takes a list of files and a base file name, and looks for + 'incremented' versions of the base file. Bumps the max + count up to the highest count seen. + + + + + + + Calculates the RollPoint for the datePattern supplied. + + the date pattern to calculate the check period for + The RollPoint that is most accurate for the date pattern supplied + + Essentially the date pattern is examined to determine what the + most suitable roll point is. The roll point chosen is the roll point + with the smallest period that can be detected using the date pattern + supplied. i.e. if the date pattern only outputs the year, month, day + and hour then the smallest roll point that can be detected would be + and hourly roll point as minutes could not be detected. + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Sets initial conditions including date/time roll over information, first check, + scheduledFilename, and calls to initialize + the current number of backups. + + + + + + + + + .1, .2, .3, etc. + + + + + Rollover the file(s) to date/time tagged file(s). + + set to true if the file to be rolled is currently open + + + Rollover the file(s) to date/time tagged file(s). + Resets curSizeRollBackups. + If fileIsOpen is set then the new file is opened (through SafeOpenFile). + + + + + + Renames file to file . + + Name of existing file to roll. + New name for file. + + + Renames file to file . It + also checks for existence of target file and deletes if it does. + + + + + + Test if a file exists at a specified path + + the path to the file + true if the file exists + + + Test if a file exists at a specified path + + + + + + Deletes the specified file if it exists. + + The file to delete. + + + Delete a file if is exists. + The file is first moved to a new filename then deleted. + This allows the file to be removed even when it cannot + be deleted, but it still can be moved. + + + + + + Implements file roll base on file size. + + + + If the maximum number of size based backups is reached + (curSizeRollBackups == maxSizeRollBackups) then the oldest + file is deleted -- its index determined by the sign of countDirection. + If countDirection < 0, then files + {File.1, ..., File.curSizeRollBackups -1} + are renamed to {File.2, ..., + File.curSizeRollBackups}. Moreover, File is + renamed File.1 and closed. + + + A new file is created to receive further log output. + + + If maxSizeRollBackups is equal to zero, then the + File is truncated with no backup files created. + + + If maxSizeRollBackups < 0, then File is + renamed if needed and no files are deleted. + + + + + + Implements file roll. + + the base name to rename + + + If the maximum number of size based backups is reached + (curSizeRollBackups == maxSizeRollBackups) then the oldest + file is deleted -- its index determined by the sign of countDirection. + If countDirection < 0, then files + {File.1, ..., File.curSizeRollBackups -1} + are renamed to {File.2, ..., + File.curSizeRollBackups}. + + + If maxSizeRollBackups is equal to zero, then the + File is truncated with no backup files created. + + + If maxSizeRollBackups < 0, then File is + renamed if needed and no files are deleted. + + + This is called by to rename the files. + + + + + + Get the start time of the next window for the current rollpoint + + the current date + the type of roll point we are working with + the start time for the next roll point an interval after the currentDateTime date + + + Returns the date of the next roll point after the currentDateTime date passed to the method. + + + The basic strategy is to subtract the time parts that are less significant + than the rollpoint from the current time. This should roll the time back to + the start of the time window for the current rollpoint. Then we add 1 window + worth of time and get the start time of the next window for the rollpoint. + + + + + + This object supplies the current date/time. Allows test code to plug in + a method to control this class when testing date/time based rolling. The default + implementation uses the underlying value of DateTime.Now. + + + + + The date pattern. By default, the pattern is set to ".yyyy-MM-dd" + meaning daily rollover. + + + + + The actual formatted filename that is currently being written to + or will be the file transferred to on roll over + (based on staticLogFileName). + + + + + The timestamp when we shall next recompute the filename. + + + + + Holds date of last roll over + + + + + The type of rolling done + + + + + The default maximum file size is 10MB + + + + + There is zero backup files by default + + + + + How many sized based backups have been made so far + + + + + The rolling file count direction. + + + + + The rolling mode used in this appender. + + + + + Cache flag set if we are rolling by date. + + + + + Cache flag set if we are rolling by size. + + + + + Value indicating whether to always log to the same file. + + + + + Value indicating whether to preserve the file name extension when rolling. + + + + + FileName provided in configuration. Used for rolling properly + + + + + A mutex that is used to lock rolling of files. + + + + + The 1st of January 1970 in UTC + + + + + Gets or sets the strategy for determining the current date and time. The default + implementation is to use LocalDateTime which internally calls through to DateTime.Now. + DateTime.UtcNow may be used on frameworks newer than .NET 1.0 by specifying + . + + + An implementation of the interface which returns the current date and time. + + + + Gets or sets the used to return the current date and time. + + + There are two built strategies for determining the current date and time, + + and . + + + The default strategy is . + + + + + + Gets or sets the date pattern to be used for generating file names + when rolling over on date. + + + The date pattern to be used for generating file names when rolling + over on date. + + + + Takes a string in the same format as expected by + . + + + This property determines the rollover schedule when rolling over + on date. + + + + + + Gets or sets the maximum number of backup files that are kept before + the oldest is erased. + + + The maximum number of backup files that are kept before the oldest is + erased. + + + + If set to zero, then there will be no backup files and the log file + will be truncated when it reaches . + + + If a negative number is supplied then no deletions will be made. Note + that this could result in very slow performance as a large number of + files are rolled over unless is used. + + + The maximum applies to each time based group of files and + not the total. + + + + + + Gets or sets the maximum size that the output file is allowed to reach + before being rolled over to backup files. + + + The maximum size in bytes that the output file is allowed to reach before being + rolled over to backup files. + + + + This property is equivalent to except + that it is required for differentiating the setter taking a + argument from the setter taking a + argument. + + + The default maximum file size is 10MB (10*1024*1024). + + + + + + Gets or sets the maximum size that the output file is allowed to reach + before being rolled over to backup files. + + + The maximum size that the output file is allowed to reach before being + rolled over to backup files. + + + + This property allows you to specify the maximum size with the + suffixes "KB", "MB" or "GB" so that the size is interpreted being + expressed respectively in kilobytes, megabytes or gigabytes. + + + For example, the value "10KB" will be interpreted as 10240 bytes. + + + The default maximum file size is 10MB. + + + If you have the option to set the maximum file size programmatically + consider using the property instead as this + allows you to set the size in bytes as a . + + + + + + Gets or sets the rolling file count direction. + + + The rolling file count direction. + + + + Indicates if the current file is the lowest numbered file or the + highest numbered file. + + + By default newer files have lower numbers ( < 0), + i.e. log.1 is most recent, log.5 is the 5th backup, etc... + + + >= 0 does the opposite i.e. + log.1 is the first backup made, log.5 is the 5th backup made, etc. + For infinite backups use >= 0 to reduce + rollover costs. + + The default file count direction is -1. + + + + + Gets or sets the rolling style. + + The rolling style. + + + The default rolling style is . + + + When set to this appender's + property is set to false, otherwise + the appender would append to a single file rather than rolling + the file each time it is opened. + + + + + + Gets or sets a value indicating whether to preserve the file name extension when rolling. + + + true if the file name extension should be preserved. + + + + By default file.log is rolled to file.log.yyyy-MM-dd or file.log.curSizeRollBackup. + However, under Windows the new file name will loose any program associations as the + extension is changed. Optionally file.log can be renamed to file.yyyy-MM-dd.log or + file.curSizeRollBackup.log to maintain any program associations. + + + + + + Gets or sets a value indicating whether to always log to + the same file. + + + true if always should be logged to the same file, otherwise false. + + + + By default file.log is always the current file. Optionally + file.log.yyyy-mm-dd for current formatted datePattern can by the currently + logging file (or file.log.curSizeRollBackup or even + file.log.yyyy-mm-dd.curSizeRollBackup). + + + This will make time based rollovers with a large number of backups + much faster as the appender it won't have to rename all the backups! + + + + + + Style of rolling to use + + + + Style of rolling to use + + + + + + Roll files once per program execution + + + + Roll files once per program execution. + Well really once each time this appender is + configured. + + + Setting this option also sets AppendToFile to + false on the RollingFileAppender, otherwise + this appender would just be a normal file appender. + + + + + + Roll files based only on the size of the file + + + + + Roll files based only on the date + + + + + Roll files based on both the size and date of the file + + + + + The code assumes that the following 'time' constants are in a increasing sequence. + + + + The code assumes that the following 'time' constants are in a increasing sequence. + + + + + + Roll the log not based on the date + + + + + Roll the log for each minute + + + + + Roll the log for each hour + + + + + Roll the log twice a day (midday and midnight) + + + + + Roll the log each day (midnight) + + + + + Roll the log each week + + + + + Roll the log each month + + + + + This interface is used to supply Date/Time information to the . + + + This interface is used to supply Date/Time information to the . + Used primarily to allow test classes to plug themselves in so they can + supply test date/times. + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Default implementation of that returns the current time. + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Implementation of that returns the current time as the coordinated universal time (UTC). + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Send an e-mail when a specific logging event occurs, typically on errors + or fatal errors. + + + + The number of logging events delivered in this e-mail depend on + the value of option. The + keeps only the last + logging events in its + cyclic buffer. This keeps memory requirements at a reasonable level while + still delivering useful application context. + + + Authentication and setting the server Port are only available on the MS .NET 1.1 runtime. + For these features to be enabled you need to ensure that you are using a version of + the log4net assembly that is built against the MS .NET 1.1 framework and that you are + running the your application on the MS .NET 1.1 runtime. On all other platforms only sending + unauthenticated messages to a server listening on port 25 (the default) is supported. + + + Authentication is supported by setting the property to + either or . + If using authentication then the + and properties must also be set. + + + To set the SMTP server port use the property. The default port is 25. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Default constructor + + + + + + Sends the contents of the cyclic buffer as an e-mail message. + + The logging events to send. + + + + Send the email message + + the body text to include in the mail + + + + trims leading and trailing commas or semicolons + + + + + Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses (use semicolon on .NET 1.1 and comma for later versions). + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + + Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses + that will be carbon copied (use semicolon on .NET 1.1 and comma for later versions). + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + + Gets or sets a semicolon-delimited list of recipient e-mail addresses + that will be blind carbon copied. + + + A semicolon-delimited list of e-mail addresses. + + + + A semicolon-delimited list of recipient e-mail addresses. + + + + + + Gets or sets the e-mail address of the sender. + + + The e-mail address of the sender. + + + + The e-mail address of the sender. + + + + + + Gets or sets the subject line of the e-mail message. + + + The subject line of the e-mail message. + + + + The subject line of the e-mail message. + + + + + + Gets or sets the name of the SMTP relay mail server to use to send + the e-mail messages. + + + The name of the e-mail relay server. If SmtpServer is not set, the + name of the local SMTP server is used. + + + + The name of the e-mail relay server. If SmtpServer is not set, the + name of the local SMTP server is used. + + + + + + Obsolete + + + Use the BufferingAppenderSkeleton Fix methods instead + + + + Obsolete property. + + + + + + The mode to use to authentication with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + Valid Authentication mode values are: , + , and . + The default value is . When using + you must specify the + and to use to authenticate. + When using the Windows credentials for the current + thread, if impersonating, or the process will be used to authenticate. + + + + + + The username to use to authenticate with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + A and must be specified when + is set to , + otherwise the username will be ignored. + + + + + + The password to use to authenticate with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + A and must be specified when + is set to , + otherwise the password will be ignored. + + + + + + The port on which the SMTP server is listening + + + Server Port is only available on the MS .NET 1.1 runtime. + + The port on which the SMTP server is listening. The default + port is 25. The Port can only be changed when running on + the MS .NET 1.1 runtime. + + + + + + Gets or sets the priority of the e-mail message + + + One of the values. + + + + Sets the priority of the e-mails generated by this + appender. The default priority is . + + + If you are using this appender to report errors then + you may want to set the priority to . + + + + + + Enable or disable use of SSL when sending e-mail message + + + This is available on MS .NET 2.0 runtime and higher + + + + + Gets or sets the reply-to e-mail address. + + + This is available on MS .NET 2.0 runtime and higher + + + + + Gets or sets the subject encoding to be used. + + + The default encoding is the operating system's current ANSI codepage. + + + + + Gets or sets the body encoding to be used. + + + The default encoding is the operating system's current ANSI codepage. + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Values for the property. + + + + SMTP authentication modes. + + + + + + No authentication + + + + + Basic authentication. + + + Requires a username and password to be supplied + + + + + Integrated authentication + + + Uses the Windows credentials from the current thread or process to authenticate. + + + + + Send an email when a specific logging event occurs, typically on errors + or fatal errors. Rather than sending via smtp it writes a file into the + directory specified by . This allows services such + as the IIS SMTP agent to manage sending the messages. + + + + The configuration for this appender is identical to that of the SMTPAppender, + except that instead of specifying the SMTPAppender.SMTPHost you specify + . + + + The number of logging events delivered in this e-mail depend on + the value of option. The + keeps only the last + logging events in its + cyclic buffer. This keeps memory requirements at a reasonable level while + still delivering useful application context. + + + Niall Daley + Nicko Cadell + + + + Default constructor + + + + Default constructor + + + + + + Sends the contents of the cyclic buffer as an e-mail message. + + The logging events to send. + + + Sends the contents of the cyclic buffer as an e-mail message. + + + + + + Activate the options on this appender. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Convert a path into a fully qualified path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + + + + The security context to use for privileged calls + + + + + Gets or sets a semicolon-delimited list of recipient e-mail addresses. + + + A semicolon-delimited list of e-mail addresses. + + + + A semicolon-delimited list of e-mail addresses. + + + + + + Gets or sets the e-mail address of the sender. + + + The e-mail address of the sender. + + + + The e-mail address of the sender. + + + + + + Gets or sets the subject line of the e-mail message. + + + The subject line of the e-mail message. + + + + The subject line of the e-mail message. + + + + + + Gets or sets the path to write the messages to. + + + + Gets or sets the path to write the messages to. This should be the same + as that used by the agent sending the messages. + + + + + + Gets or sets the file extension for the generated files + + + The file extension for the generated files + + + + The file extension for the generated files + + + + + + Gets or sets the used to write to the pickup directory. + + + The used to write to the pickup directory. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Appender that allows clients to connect via Telnet to receive log messages + + + + The TelnetAppender accepts socket connections and streams logging messages + back to the client. + The output is provided in a telnet-friendly way so that a log can be monitored + over a TCP/IP socket. + This allows simple remote monitoring of application logging. + + + The default is 23 (the telnet port). + + + Keith Long + Nicko Cadell + + + + Default constructor + + + + Default constructor + + + + + + The fully qualified type of the TelnetAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Overrides the parent method to close the socket handler + + + + Closes all the outstanding connections. + + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Create the socket handler and wait for connections + + + + + + Writes the logging event to each connected client. + + The event to log. + + + Writes the logging event to each connected client. + + + + + + Gets or sets the TCP port number on which this will listen for connections. + + + An integer value in the range to + indicating the TCP port number on which this will listen for connections. + + + + The default value is 23 (the telnet port). + + + The value specified is less than + or greater than . + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Helper class to manage connected clients + + + + The SocketHandler class is used to accept connections from + clients. It is threaded so that clients can connect/disconnect + asynchronously. + + + + + + Opens a new server port on + + the local port to listen on for connections + + + Creates a socket handler on the specified local server port. + + + + + + Sends a string message to each of the connected clients + + the text to send + + + Sends a string message to each of the connected clients + + + + + + Add a client to the internal clients list + + client to add + + + + Remove a client from the internal clients list + + client to remove + + + + Callback used to accept a connection on the server socket + + The result of the asynchronous operation + + + On connection adds to the list of connections + if there are two many open connections you will be disconnected + + + + + + Close all network connections + + + + Make sure we close all network connections + + + + + + Test if this handler has active connections + + + true if this handler has active connections + + + + This property will be true while this handler has + active connections, that is at least one connection that + the handler will attempt to send a message to. + + + + + + Class that represents a client connected to this handler + + + + Class that represents a client connected to this handler + + + + + + Create this for the specified + + the client's socket + + + Opens a stream writer on the socket. + + + + + + Write a string to the client + + string to send + + + Write a string to the client + + + + + + Cleanup the clients connection + + + + Close the socket connection. + + + + + + Appends log events to the system. + + + + The application configuration file can be used to control what listeners + are actually used. See the MSDN documentation for the + class for details on configuring the + trace system. + + + Events are written using the System.Diagnostics.Trace.Write(string,string) + method. The event's logger name is the default value for the category parameter + of the Write method. + + + Compact Framework
+ The Compact Framework does not support the + class for any operation except Assert. When using the Compact Framework this + appender will write to the system rather than + the Trace system. This appender will therefore behave like the . +
+
+ Douglas de la Torre + Nicko Cadell + Gert Driesen + Ron Grabowski +
+ + + Initializes a new instance of the . + + + + Default constructor. + + + + + + Initializes a new instance of the + with a specified layout. + + The layout to use with this appender. + + + Obsolete constructor. + + + + + + Writes the logging event to the system. + + The event to log. + + + Writes the logging event to the system. + + + + + + Immediate flush means that the underlying writer or output stream + will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logs events are not actually written to persistent media if and + when the application crashes. + + + The default value is true. + + + + + Defaults to %logger + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Gets or sets a value that indicates whether the appender will + flush at the end of each write. + + + The default behavior is to flush at the end of each + write. If the option is set tofalse, then the underlying + stream can defer writing to physical medium to a later time. + + + Avoiding the flush operation at the end of each append results + in a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + + The category parameter sent to the Trace method. + + + + Defaults to %logger which will use the logger name of the current + as the category parameter. + + + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Assembly level attribute that specifies a domain to alias to this assembly's repository. + + + + AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. + + + An assembly's logger repository is defined by its , + however this can be overridden by an assembly loaded before the target assembly. + + + An assembly can alias another assembly's domain to its repository by + specifying this attribute with the name of the target domain. + + + This attribute can only be specified on the assembly and may be used + as many times as necessary to alias all the required domains. + + + Nicko Cadell + Gert Driesen + + + + Assembly level attribute that specifies a repository to alias to this assembly's repository. + + + + An assembly's logger repository is defined by its , + however this can be overridden by an assembly loaded before the target assembly. + + + An assembly can alias another assembly's repository to its repository by + specifying this attribute with the name of the target repository. + + + This attribute can only be specified on the assembly and may be used + as many times as necessary to alias all the required repositories. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class with + the specified repository to alias to this assembly's repository. + + The repository to alias to this assemby's repository. + + + Initializes a new instance of the class with + the specified repository to alias to this assembly's repository. + + + + + + Gets or sets the repository to alias to this assemby's repository. + + + The repository to alias to this assemby's repository. + + + + The name of the repository to alias to this assemby's repository. + + + + + + Initializes a new instance of the class with + the specified domain to alias to this assembly's repository. + + The domain to alias to this assemby's repository. + + + Obsolete. Use instead of . + + + + + + Use this class to quickly configure a . + + + + Allows very simple programmatic configuration of log4net. + + + Only one appender can be configured using this configurator. + The appender is set at the root of the hierarchy and all logging + events will be delivered to that appender. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + The fully qualified type of the BasicConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Initializes the log4net system with a default configuration. + + + + Initializes the log4net logging system using a + that will write to Console.Out. The log messages are + formatted using the layout object + with the + layout style. + + + + + + Initializes the log4net system using the specified appenders. + + The appenders to use to log all logging events. + + + Initializes the log4net system using the specified appenders. + + + + + + Initializes the log4net system using the specified appender. + + The appender to use to log all logging events. + + + Initializes the log4net system using the specified appender. + + + + + + Initializes the with a default configuration. + + The repository to configure. + + + Initializes the specified repository using a + that will write to Console.Out. The log messages are + formatted using the layout object + with the + layout style. + + + + + + Initializes the using the specified appender. + + The repository to configure. + The appender to use to log all logging events. + + + Initializes the using the specified appender. + + + + + + Initializes the using the specified appenders. + + The repository to configure. + The appenders to use to log all logging events. + + + Initializes the using the specified appender. + + + + + + Base class for all log4net configuration attributes. + + + This is an abstract class that must be extended by + specific configurators. This attribute allows the + configurator to be parameterized by an assembly level + attribute. + + Nicko Cadell + Gert Driesen + + + + Constructor used by subclasses. + + the ordering priority for this configurator + + + The is used to order the configurator + attributes before they are invoked. Higher priority configurators are executed + before lower priority ones. + + + + + + Configures the for the specified assembly. + + The assembly that this attribute was defined on. + The repository to configure. + + + Abstract method implemented by a subclass. When this method is called + the subclass should configure the . + + + + + + Compare this instance to another ConfiguratorAttribute + + the object to compare to + see + + + Compares the priorities of the two instances. + Sorts by priority in descending order. Objects with the same priority are + randomly ordered. + + + + + + Assembly level attribute that specifies the logging domain for the assembly. + + + + DomainAttribute is obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + Assemblies are mapped to logging domains. Each domain has its own + logging repository. This attribute specified on the assembly controls + the configuration of the domain. The property specifies the name + of the domain that this assembly is a part of. The + specifies the type of the repository objects to create for the domain. If + this attribute is not specified and a is not specified + then the assembly will be part of the default shared logging domain. + + + This attribute can only be specified on the assembly and may only be used + once per assembly. + + + Nicko Cadell + Gert Driesen + + + + Assembly level attribute that specifies the logging repository for the assembly. + + + + Assemblies are mapped to logging repository. This attribute specified + on the assembly controls + the configuration of the repository. The property specifies the name + of the repository that this assembly is a part of. The + specifies the type of the object + to create for the assembly. If this attribute is not specified or a + is not specified then the assembly will be part of the default shared logging repository. + + + This attribute can only be specified on the assembly and may only be used + once per assembly. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initialize a new instance of the class + with the name of the repository. + + The name of the repository. + + + Initialize the attribute with the name for the assembly's repository. + + + + + + Gets or sets the name of the logging repository. + + + The string name to use as the name of the repository associated with this + assembly. + + + + This value does not have to be unique. Several assemblies can share the + same repository. They will share the logging configuration of the repository. + + + + + + Gets or sets the type of repository to create for this assembly. + + + The type of repository to create for this assembly. + + + + The type of the repository to create for the assembly. + The type must implement the + interface. + + + This will be the type of repository created when + the repository is created. If multiple assemblies reference the + same repository then the repository is only created once using the + of the first assembly to call into the + repository. + + + + + + Initializes a new instance of the class. + + + + Obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + + + + Initialize a new instance of the class + with the name of the domain. + + The name of the domain. + + + Obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + + + + Use this class to initialize the log4net environment using an Xml tree. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + Configures a using an Xml tree. + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + + + Automatically configures the log4net system based on the + application's configuration settings. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + + + Automatically configures the using settings + stored in the application's configuration file. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + The repository to configure. + + + + Configures log4net using a log4net element + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Loads the log4net configuration from the XML element + supplied as . + + The element to parse. + + + + Configures the using the specified XML + element. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Loads the log4net configuration from the XML element + supplied as . + + The repository to configure. + The element to parse. + + + + Configures log4net using the specified configuration file. + + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures log4net using the specified configuration file. + + A stream to load the XML configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The stream to load the XML configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures log4net using the file specified, monitors the file for changes + and reloads the configuration if a change is detected. + + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the using the file specified, + monitors the file for changes and reloads the configuration if a change + is detected. + + The repository to configure. + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Assembly level attribute to configure the . + + + + AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + Nicko Cadell + Gert Driesen + + + + Assembly level attribute to configure the . + + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + If neither of the or + properties are set the configuration is loaded from the application's .config file. + If set the property takes priority over the + property. The property + specifies a path to a file to load the config from. The path is relative to the + application's base directory; . + The property is used as a postfix to the assembly file name. + The config file must be located in the application's base directory; . + For example in a console application setting the to + config has the same effect as not specifying the or + properties. + + + The property can be set to cause the + to watch the configuration file for changes. + + + + Log4net will only look for assembly level configuration attributes once. + When using the log4net assembly level attributes to control the configuration + of log4net you must ensure that the first call to any of the + methods is made from the assembly with the configuration + attributes. + + + If you cannot guarantee the order in which log4net calls will be made from + different assemblies you must use programmatic configuration instead, i.e. + call the method directly. + + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Default constructor + + + + + + Configures the for the specified assembly. + + The assembly that this attribute was defined on. + The repository to configure. + + + Configure the repository using the . + The specified must extend the + class otherwise the will not be able to + configure it. + + + The does not extend . + + + + Attempt to load configuration from the local file system + + The assembly that this attribute was defined on. + The repository to configure. + + + + Configure the specified repository using a + + The repository to configure. + the FileInfo pointing to the config file + + + + Attempt to load configuration from a URI + + The assembly that this attribute was defined on. + The repository to configure. + + + + The fully qualified type of the XmlConfiguratorAttribute class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the filename of the configuration file. + + + The filename of the configuration file. + + + + If specified, this is the name of the configuration file to use with + the . This file path is relative to the + application base directory (). + + + The takes priority over the . + + + + + + Gets or sets the extension of the configuration file. + + + The extension of the configuration file. + + + + If specified this is the extension for the configuration file. + The path to the config file is built by using the application + base directory (), + the assembly file name and the config file extension. + + + If the is set to MyExt then + possible config file names would be: MyConsoleApp.exe.MyExt or + MyClassLibrary.dll.MyExt. + + + The takes priority over the . + + + + + + Gets or sets a value indicating whether to watch the configuration file. + + + true if the configuration should be watched, false otherwise. + + + + If this flag is specified and set to true then the framework + will watch the configuration file and will reload the config each time + the file is modified. + + + The config file can only be watched if it is loaded from local disk. + In a No-Touch (Smart Client) deployment where the application is downloaded + from a web server the config file may not reside on the local disk + and therefore it may not be able to watch it. + + + Watching configuration is not supported on the SSCLI. + + + + + + Class to register for the log4net section of the configuration file + + + The log4net section of the configuration file needs to have a section + handler registered. This is the section handler used. It simply returns + the XML element that is the root of the section. + + + Example of registering the log4net section handler : + + + +
+ + + log4net configuration XML goes here + + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Parses the configuration section. + + The configuration settings in a corresponding parent configuration section. + The configuration context when called from the ASP.NET configuration system. Otherwise, this parameter is reserved and is a null reference. + The for the log4net section. + The for the log4net section. + + + Returns the containing the configuration data, + + + + + + Assembly level attribute that specifies a plugin to attach to + the repository. + + + + Specifies the type of a plugin to create and attach to the + assembly's repository. The plugin type must implement the + interface. + + + Nicko Cadell + Gert Driesen + + + + Interface used to create plugins. + + + + Interface used to create a plugin. + + + Nicko Cadell + Gert Driesen + + + + Creates the plugin object. + + the new plugin instance + + + Create and return a new plugin instance. + + + + + + Initializes a new instance of the class + with the specified type. + + The type name of plugin to create. + + + Create the attribute with the plugin type specified. + + + Where possible use the constructor that takes a . + + + + + + Initializes a new instance of the class + with the specified type. + + The type of plugin to create. + + + Create the attribute with the plugin type specified. + + + + + + Creates the plugin object defined by this attribute. + + + + Creates the instance of the object as + specified by this attribute. + + + The plugin object. + + + + Returns a representation of the properties of this object. + + + + Overrides base class method to + return a representation of the properties of this object. + + + A representation of the properties of this object + + + + Gets or sets the type for the plugin. + + + The type for the plugin. + + + + The type for the plugin. + + + + + + Gets or sets the type name for the plugin. + + + The type name for the plugin. + + + + The type name for the plugin. + + + Where possible use the property instead. + + + + + + Assembly level attribute to configure the . + + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + Nicko Cadell + + + + Construct provider attribute with type specified + + the type of the provider to use + + + The provider specified must subclass the + class. + + + + + + Configures the SecurityContextProvider + + The assembly that this attribute was defined on. + The repository to configure. + + + Creates a provider instance from the specified. + Sets this as the default security context provider . + + + + + + The fully qualified type of the SecurityContextProviderAttribute class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the type of the provider to use. + + + the type of the provider to use. + + + + The provider specified must subclass the + class. + + + + + + Use this class to initialize the log4net environment using an Xml tree. + + + + Configures a using an Xml tree. + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + + + Automatically configures the using settings + stored in the application's configuration file. + + + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + To use this method to configure log4net you must specify + the section + handler for the log4net configuration section. See the + for an example. + + + The repository to configure. + + + + Automatically configures the log4net system based on the + application's configuration settings. + + + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + To use this method to configure log4net you must specify + the section + handler for the log4net configuration section. See the + for an example. + + + + + + + Configures log4net using a log4net element + + + + Loads the log4net configuration from the XML element + supplied as . + + + The element to parse. + + + + Configures log4net using the specified configuration file. + + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The first element matching <configuration> will be read as the + configuration. If this file is also a .NET .config file then you must specify + a configuration section for the log4net element otherwise .NET will + complain. Set the type for the section handler to , for example: + + +
+ + + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures log4net using the specified configuration URI. + + A URI to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The must support the URI scheme specified. + + + + + + Configures log4net using the specified configuration data stream. + + A stream to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures the using the specified XML + element. + + + Loads the log4net configuration from the XML element + supplied as . + + The repository to configure. + The element to parse. + + + + Configures the using the specified configuration + file. + + The repository to configure. + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The first element matching <configuration> will be read as the + configuration. If this file is also a .NET .config file then you must specify + a configuration section for the log4net element otherwise .NET will + complain. Set the type for the section handler to , for example: + + +
+ + + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures the using the specified configuration + URI. + + The repository to configure. + A URI to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The must support the URI scheme specified. + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The stream to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures log4net using the file specified, monitors the file for changes + and reloads the configuration if a change is detected. + + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the using the file specified, + monitors the file for changes and reloads the configuration if a change + is detected. + + The repository to configure. + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the specified repository using a log4net element. + + The hierarchy to configure. + The element to parse. + + + Loads the log4net configuration from the XML element + supplied as . + + + This method is ultimately called by one of the Configure methods + to load the configuration from an . + + + + + + Maps repository names to ConfigAndWatchHandler instances to allow a particular + ConfigAndWatchHandler to dispose of its FileSystemWatcher when a repository is + reconfigured. + + + + + The fully qualified type of the XmlConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Class used to watch config files. + + + + Uses the to monitor + changes to a specified file. Because multiple change notifications + may be raised when the file is modified, a timer is used to + compress the notifications into a single event. The timer + waits for time before delivering + the event notification. If any further + change notifications arrive while the timer is waiting it + is reset and waits again for to + elapse. + + + + + + The default amount of time to wait after receiving notification + before reloading the config file. + + + + + Holds the FileInfo used to configure the XmlConfigurator + + + + + Holds the repository being configured. + + + + + The timer used to compress the notification events. + + + + + Watches file for changes. This object should be disposed when no longer + needed to free system handles on the watched resources. + + + + + Initializes a new instance of the class to + watch a specified config file used to configure a repository. + + The repository to configure. + The configuration file to watch. + + + Initializes a new instance of the class. + + + + + + Event handler used by . + + The firing the event. + The argument indicates the file that caused the event to be fired. + + + This handler reloads the configuration from the file when the event is fired. + + + + + + Event handler used by . + + The firing the event. + The argument indicates the file that caused the event to be fired. + + + This handler reloads the configuration from the file when the event is fired. + + + + + + Called by the timer when the configuration has been updated. + + null + + + + Release the handles held by the watcher and timer. + + + + + The implementation of the interface suitable + for use with the compact framework + + + + This implementation is a simple + mapping between repository name and + object. + + + The .NET Compact Framework 1.0 does not support retrieving assembly + level attributes therefore unlike the DefaultRepositorySelector + this selector does not examine the calling assembly for attributes. + + + Nicko Cadell + + + + Interface used by the to select the . + + + + The uses a + to specify the policy for selecting the correct + to return to the caller. + + + Nicko Cadell + Gert Driesen + + + + Gets the for the specified assembly. + + The assembly to use to lookup to the + The for the assembly. + + + Gets the for the specified assembly. + + + How the association between and + is made is not defined. The implementation may choose any method for + this association. The results of this method must be repeatable, i.e. + when called again with the same arguments the result must be the + save value. + + + + + + Gets the named . + + The name to use to lookup to the . + The named + + Lookup a named . This is the repository created by + calling . + + + + + Creates a new repository for the assembly specified. + + The assembly to use to create the domain to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the domain + specified such that a call to with the + same assembly specified will return the same repository instance. + + + How the association between and + is made is not defined. The implementation may choose any method for + this association. + + + + + + Creates a new repository with the name specified. + + The name to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the name + specified such that a call to with the + same name will return the same repository instance. + + + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets an array of all currently defined repositories. + + + An array of the instances created by + this . + + + Gets an array of all of the repositories created by this selector. + + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + Create a new repository selector + + the type of the repositories to create, must implement + + + Create an new compact repository selector. + The default type for repositories must be specified, + an appropriate value would be . + + + throw if is null + throw if does not implement + + + + Get the for the specified assembly + + not used + The default + + + The argument is not used. This selector does not create a + separate repository for each assembly. + + + As a named repository is not specified the default repository is + returned. The default repository is named log4net-default-repository. + + + + + + Get the named + + the name of the repository to lookup + The named + + + Get the named . The default + repository is log4net-default-repository. Other repositories + must be created using the . + If the named repository does not exist an exception is thrown. + + + throw if is null + throw if the does not exist + + + + Create a new repository for the assembly specified + + not used + the type of repository to create, must implement + the repository created + + + The argument is not used. This selector does not create a + separate repository for each assembly. + + + If the is null then the + default repository type specified to the constructor is used. + + + As a named repository is not specified the default repository is + returned. The default repository is named log4net-default-repository. + + + + + + Create a new repository for the repository specified + + the repository to associate with the + the type of repository to create, must implement . + If this param is null then the default repository type is used. + the repository created + + + The created will be associated with the repository + specified such that a call to with the + same repository specified will return the same repository instance. + + + If the named repository already exists an exception will be thrown. + + + If is null then the default + repository type specified to the constructor is used. + + + throw if is null + throw if the already exists + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets a list of objects + + an array of all known objects + + + Gets an array of all of the repositories created by this selector. + + + + + + The fully qualified type of the CompactRepositorySelector class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Notify the registered listeners that the repository has been created + + The repository that has been created + + + Raises the LoggerRepositoryCreatedEvent + event. + + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + The default implementation of the interface. + + + + Uses attributes defined on the calling assembly to determine how to + configure the hierarchy for the repository. + + + Nicko Cadell + Gert Driesen + + + + Creates a new repository selector. + + The type of the repositories to create, must implement + + + Create an new repository selector. + The default type for repositories must be specified, + an appropriate value would be . + + + is . + does not implement . + + + + Gets the for the specified assembly. + + The assembly use to lookup the . + + + The type of the created and the repository + to create can be overridden by specifying the + attribute on the . + + + The default values are to use the + implementation of the interface and to use the + as the name of the repository. + + + The created will be automatically configured using + any attributes defined on + the . + + + The for the assembly + is . + + + + Gets the for the specified repository. + + The repository to use to lookup the . + The for the specified repository. + + + Returns the named repository. If is null + a is thrown. If the repository + does not exist a is thrown. + + + Use to create a repository. + + + is . + does not exist. + + + + Create a new repository for the assembly specified + + the assembly to use to create the repository to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The type of the created and + the repository to create can be overridden by specifying the + attribute on the + . The default values are to use the + implementation of the + interface and to use the + as the name of the repository. + + + The created will be automatically + configured using any + attributes defined on the . + + + If a repository for the already exists + that repository will be returned. An error will not be raised and that + repository may be of a different type to that specified in . + Also the attribute on the + assembly may be used to override the repository type specified in + . + + + is . + + + + Creates a new repository for the assembly specified. + + the assembly to use to create the repository to associate with the . + The type of repository to create, must implement . + The name to assign to the created repository + Set to true to read and apply the assembly attributes + The repository created. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The type of the created and + the repository to create can be overridden by specifying the + attribute on the + . The default values are to use the + implementation of the + interface and to use the + as the name of the repository. + + + The created will be automatically + configured using any + attributes defined on the . + + + If a repository for the already exists + that repository will be returned. An error will not be raised and that + repository may be of a different type to that specified in . + Also the attribute on the + assembly may be used to override the repository type specified in + . + + + is . + + + + Creates a new repository for the specified repository. + + The repository to associate with the . + The type of repository to create, must implement . + If this param is then the default repository type is used. + The new repository. + + + The created will be associated with the repository + specified such that a call to with the + same repository specified will return the same repository instance. + + + is . + already exists. + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets a list of objects + + an array of all known objects + + + Gets an array of all of the repositories created by this selector. + + + + + + Aliases a repository to an existing repository. + + The repository to alias. + The repository that the repository is aliased to. + + + The repository specified will be aliased to the repository when created. + The repository must not already exist. + + + When the repository is created it must utilize the same repository type as + the repository it is aliased to, otherwise the aliasing will fail. + + + + is . + -or- + is . + + + + + Notifies the registered listeners that the repository has been created. + + The repository that has been created. + + + Raises the event. + + + + + + Gets the repository name and repository type for the specified assembly. + + The assembly that has a . + in/out param to hold the repository name to use for the assembly, caller should set this to the default value before calling. + in/out param to hold the type of the repository to create for the assembly, caller should set this to the default value before calling. + is . + + + + Configures the repository using information from the assembly. + + The assembly containing + attributes which define the configuration for the repository. + The repository to configure. + + is . + -or- + is . + + + + + Loads the attribute defined plugins on the assembly. + + The assembly that contains the attributes. + The repository to add the plugins to. + + is . + -or- + is . + + + + + Loads the attribute defined aliases on the assembly. + + The assembly that contains the attributes. + The repository to alias to. + + is . + -or- + is . + + + + + The fully qualified type of the DefaultRepositorySelector class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + Defined error codes that can be passed to the method. + + + + Values passed to the method. + + + Nicko Cadell + + + + A general error + + + + + Error while writing output + + + + + Failed to flush file + + + + + Failed to close file + + + + + Unable to open output file + + + + + No layout specified + + + + + Failed to parse address + + + + + An evaluator that triggers on an Exception type + + + + This evaluator will trigger if the type of the Exception + passed to + is equal to a Type in . /// + + + Drew Schaeffer + + + + Test if an triggers an action + + + + Implementations of this interface allow certain appenders to decide + when to perform an appender specific action. + + + The action or behavior triggered is defined by the implementation. + + + Nicko Cadell + + + + Test if this event triggers the action + + The event to check + true if this event triggers the action, otherwise false + + + Return true if this event triggers the action + + + + + + The type that causes the trigger to fire. + + + + + Causes subclasses of to cause the trigger to fire. + + + + + Default ctor to allow dynamic creation through a configurator. + + + + + Constructs an evaluator and initializes to trigger on + + the type that triggers this evaluator. + If true, this evaluator will trigger on subclasses of . + + + + Is this the triggering event? + + The event to check + This method returns true, if the logging event Exception + Type is . + Otherwise it returns false + + + This evaluator will trigger if the Exception Type of the event + passed to + is . + + + + + + The type that triggers this evaluator. + + + + + If true, this evaluator will trigger on subclasses of . + + + + + Appenders may delegate their error handling to an . + + + + Error handling is a particularly tedious to get right because by + definition errors are hard to predict and to reproduce. + + + Nicko Cadell + Gert Driesen + + + + Handles the error and information about the error condition is passed as + a parameter. + + The message associated with the error. + The that was thrown when the error occurred. + The error code associated with the error. + + + Handles the error and information about the error condition is passed as + a parameter. + + + + + + Prints the error message passed as a parameter. + + The message associated with the error. + The that was thrown when the error occurred. + + + See . + + + + + + Prints the error message passed as a parameter. + + The message associated with the error. + + + See . + + + + + + Interface for objects that require fixing. + + + + Interface that indicates that the object requires fixing before it + can be taken outside the context of the appender's + method. + + + When objects that implement this interface are stored + in the context properties maps + and + are fixed + (see ) the + method will be called. + + + Nicko Cadell + + + + Get a portable version of this object + + the portable instance of this object + + + Get a portable instance object that represents the current + state of this object. The portable object can be stored + and logged from any thread with identical results. + + + + + + Interface that all loggers implement + + + + This interface supports logging events and testing if a level + is enabled for logging. + + + These methods will not throw exceptions. Note to implementor, ensure + that the implementation of these methods cannot allow an exception + to be thrown to the caller. + + + Nicko Cadell + Gert Driesen + + + + This generic form is intended to be used by wrappers. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + the exception to log, including its stack trace. Pass null to not log an exception. + + + Generates a logging event for the specified using + the and . + + + + + + This is the most generic printing method that is intended to be used + by wrappers. + + The event being logged. + + + Logs the specified logging event through this logger. + + + + + + Checks if this logger is enabled for a given passed as parameter. + + The level to check. + + true if this logger is enabled for level, otherwise false. + + + + Test if this logger is going to log events of the specified . + + + + + + Gets the name of the logger. + + + The name of the logger. + + + + The name of this logger + + + + + + Gets the where this + Logger instance is attached to. + + + The that this logger belongs to. + + + + Gets the where this + Logger instance is attached to. + + + + + + Base interface for all wrappers + + + + Base interface for all wrappers. + + + All wrappers must implement this interface. + + + Nicko Cadell + + + + Get the implementation behind this wrapper object. + + + The object that in implementing this object. + + + + The object that in implementing this + object. The Logger object may not + be the same object as this object because of logger decorators. + This gets the actual underlying objects that is used to process + the log events. + + + + + + Delegate used to handle logger repository creation event notifications + + The which created the repository. + The event args + that holds the instance that has been created. + + + Delegate used to handle logger repository creation event notifications. + + + + + + Provides data for the event. + + + + A + event is raised every time a is created. + + + + + + The created + + + + + Construct instance using specified + + the that has been created + + + Construct instance using specified + + + + + + The that has been created + + + The that has been created + + + + The that has been created + + + + + + Defines the default set of levels recognized by the system. + + + + Each has an associated . + + + Levels have a numeric that defines the relative + ordering between levels. Two Levels with the same + are deemed to be equivalent. + + + The levels that are recognized by log4net are set for each + and each repository can have different levels defined. The levels are stored + in the on the repository. Levels are + looked up by name from the . + + + When logging at level INFO the actual level used is not but + the value of LoggerRepository.LevelMap["INFO"]. The default value for this is + , but this can be changed by reconfiguring the level map. + + + Each level has a in addition to its . The + is the string that is written into the output log. By default + the display name is the same as the level name, but this can be used to alias levels + or to localize the log output. + + + Some of the predefined levels recognized by the system are: + + + + . + + + . + + + . + + + . + + + . + + + . + + + . + + + + Nicko Cadell + Gert Driesen + + + + Constructor + + Integer value for this level, higher values represent more severe levels. + The string name of this level. + The display name for this level. This may be localized or otherwise different from the name + + + Initializes a new instance of the class with + the specified level name and value. + + + + + + Constructor + + Integer value for this level, higher values represent more severe levels. + The string name of this level. + + + Initializes a new instance of the class with + the specified level name and value. + + + + + + Returns the representation of the current + . + + + A representation of the current . + + + + Returns the level . + + + + + + Compares levels. + + The object to compare against. + true if the objects are equal. + + + Compares the levels of instances, and + defers to base class if the target object is not a + instance. + + + + + + Returns a hash code + + A hash code for the current . + + + Returns a hash code suitable for use in hashing algorithms and data + structures like a hash table. + + + Returns the hash code of the level . + + + + + + Compares this instance to a specified object and returns an + indication of their relative values. + + A instance or to compare with this instance. + + A 32-bit signed integer that indicates the relative order of the + values compared. The return value has these meanings: + + + Value + Meaning + + + Less than zero + This instance is less than . + + + Zero + This instance is equal to . + + + Greater than zero + + This instance is greater than . + -or- + is . + + + + + + + must be an instance of + or ; otherwise, an exception is thrown. + + + is not a . + + + + Returns a value indicating whether a specified + is greater than another specified . + + A + A + + true if is greater than + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is less than another specified . + + A + A + + true if is less than + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is greater than or equal to another specified . + + A + A + + true if is greater than or equal to + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is less than or equal to another specified . + + A + A + + true if is less than or equal to + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether two specified + objects have the same value. + + A or . + A or . + + true if the value of is the same as the + value of ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether two specified + objects have different values. + + A or . + A or . + + true if the value of is different from + the value of ; otherwise, false. + + + + Compares two levels. + + + + + + Compares two specified instances. + + The first to compare. + The second to compare. + + A 32-bit signed integer that indicates the relative order of the + two values compared. The return value has these meanings: + + + Value + Meaning + + + Less than zero + is less than . + + + Zero + is equal to . + + + Greater than zero + is greater than . + + + + + + Compares two levels. + + + + + + The level designates a higher level than all the rest. + + + + + The level designates very severe error events. + System unusable, emergencies. + + + + + The level designates very severe error events. + System unusable, emergencies. + + + + + The level designates very severe error events + that will presumably lead the application to abort. + + + + + The level designates very severe error events. + Take immediate action, alerts. + + + + + The level designates very severe error events. + Critical condition, critical. + + + + + The level designates very severe error events. + + + + + The level designates error events that might + still allow the application to continue running. + + + + + The level designates potentially harmful + situations. + + + + + The level designates informational messages + that highlight the progress of the application at the highest level. + + + + + The level designates informational messages that + highlight the progress of the application at coarse-grained level. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates the lowest level possible. + + + + + Gets the name of this level. + + + The name of this level. + + + + Gets the name of this level. + + + + + + Gets the value of this level. + + + The value of this level. + + + + Gets the value of this level. + + + + + + Gets the display name of this level. + + + The display name of this level. + + + + Gets the display name of this level. + + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Creates a read-only wrapper for a LevelCollection instance. + + list to create a readonly wrapper arround + + A LevelCollection wrapper that is read-only. + + + + + Initializes a new instance of the LevelCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the LevelCollection class + that has the specified initial capacity. + + + The number of elements that the new LevelCollection is initially capable of storing. + + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified LevelCollection. + + The LevelCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Allow subclasses to avoid our default constructors + + + + + + Copies the entire LevelCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire LevelCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Adds a to the end of the LevelCollection. + + The to be added to the end of the LevelCollection. + The index at which the value has been added. + + + + Removes all elements from the LevelCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the LevelCollection. + + The to check for. + true if is found in the LevelCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the LevelCollection. + + The to locate in the LevelCollection. + + The zero-based index of the first occurrence of + in the entire LevelCollection, if found; otherwise, -1. + + + + + Inserts an element into the LevelCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the LevelCollection. + + The to remove from the LevelCollection. + + The specified was not found in the LevelCollection. + + + + + Removes the element at the specified index of the LevelCollection. + + The zero-based index of the element to remove. + + is less than zero + -or- + is equal to or greater than . + + + + + Returns an enumerator that can iterate through the LevelCollection. + + An for the entire LevelCollection. + + + + Adds the elements of another LevelCollection to the current LevelCollection. + + The LevelCollection whose elements should be added to the end of the current LevelCollection. + The new of the LevelCollection. + + + + Adds the elements of a array to the current LevelCollection. + + The array whose elements should be added to the end of the LevelCollection. + The new of the LevelCollection. + + + + Adds the elements of a collection to the current LevelCollection. + + The collection whose elements should be added to the end of the LevelCollection. + The new of the LevelCollection. + + + + Sets the capacity to the actual number of elements. + + + + + is less than zero + -or- + is equal to or greater than . + + + + + is less than zero + -or- + is equal to or greater than . + + + + + Gets the number of elements actually contained in the LevelCollection. + + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + The zero-based index of the element to get or set. + + is less than zero + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false + + + + Gets or sets the number of elements the LevelCollection can contain. + + + + + Supports type-safe iteration over a . + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + A value + + + + + Supports simple iteration over a . + + + + + Initializes a new instance of the Enumerator class. + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + An evaluator that triggers at a threshold level + + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + Nicko Cadell + + + + The threshold for triggering + + + + + Create a new evaluator using the threshold. + + + + Create a new evaluator using the threshold. + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Create a new evaluator using the specified threshold. + + the threshold to trigger at + + + Create a new evaluator using the specified threshold. + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Is this the triggering event? + + The event to check + This method returns true, if the event level + is equal or higher than the . + Otherwise it returns false + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + the threshold to trigger at + + + The that will cause this evaluator to trigger + + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Mapping between string name and Level object + + + + Mapping between string name and object. + This mapping is held separately for each . + The level name is case insensitive. + + + Nicko Cadell + + + + Mapping from level name to Level object. The + level name is case insensitive + + + + + Construct the level map + + + + Construct the level map. + + + + + + Clear the internal maps of all levels + + + + Clear the internal maps of all levels + + + + + + Create a new Level and add it to the map + + the string to display for the Level + the level value to give to the Level + + + Create a new Level and add it to the map + + + + + + + Create a new Level and add it to the map + + the string to display for the Level + the level value to give to the Level + the display name to give to the Level + + + Create a new Level and add it to the map + + + + + + Add a Level to the map + + the Level to add + + + Add a Level to the map + + + + + + Lookup a named level from the map + + the name of the level to lookup is taken from this level. + If the level is not set on the map then this level is added + the level in the map with the name specified + + + Lookup a named level from the map. The name of the level to lookup is taken + from the property of the + argument. + + + If no level with the specified name is found then the + argument is added to the level map + and returned. + + + + + + Lookup a by name + + The name of the Level to lookup + a Level from the map with the name specified + + + Returns the from the + map with the name specified. If the no level is + found then null is returned. + + + + + + Return all possible levels as a list of Level objects. + + all possible levels as a list of Level objects + + + Return all possible levels as a list of Level objects. + + + + + + The internal representation of caller location information. + + + + This class uses the System.Diagnostics.StackTrace class to generate + a call stack. The caller's information is then extracted from this stack. + + + The System.Diagnostics.StackTrace class is not supported on the + .NET Compact Framework 1.0 therefore caller location information is not + available on that framework. + + + The System.Diagnostics.StackTrace class has this to say about Release builds: + + + "StackTrace information will be most informative with Debug build configurations. + By default, Debug builds include debug symbols, while Release builds do not. The + debug symbols contain most of the file, method name, line number, and column + information used in constructing StackFrame and StackTrace objects. StackTrace + might not report as many method calls as expected, due to code transformations + that occur during optimization." + + + This means that in a Release build the caller information may be incomplete or may + not exist at all! Therefore caller location information cannot be relied upon in a Release build. + + + Nicko Cadell + Gert Driesen + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + Constructor + + The declaring type of the method that is + the stack boundary into the logging system for this call. + + + Initializes a new instance of the + class based on the current thread. + + + + + + Constructor + + The fully qualified class name. + The method name. + The file name. + The line number of the method within the file. + + + Initializes a new instance of the + class with the specified data. + + + + + + The fully qualified type of the LocationInfo class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the fully qualified class name of the caller making the logging + request. + + + The fully qualified class name of the caller making the logging + request. + + + + Gets the fully qualified class name of the caller making the logging + request. + + + + + + Gets the file name of the caller. + + + The file name of the caller. + + + + Gets the file name of the caller. + + + + + + Gets the line number of the caller. + + + The line number of the caller. + + + + Gets the line number of the caller. + + + + + + Gets the method name of the caller. + + + The method name of the caller. + + + + Gets the method name of the caller. + + + + + + Gets all available caller information + + + All available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + Gets all available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + + + Gets the stack frames from the stack trace of the caller making the log request + + + + + Static manager that controls the creation of repositories + + + + Static manager that controls the creation of repositories + + + This class is used by the wrapper managers (e.g. ) + to provide access to the objects. + + + This manager also holds the that is used to + lookup and create repositories. The selector can be set either programmatically using + the property, or by setting the log4net.RepositorySelector + AppSetting in the applications config file to the fully qualified type name of the + selector to use. + + + Nicko Cadell + Gert Driesen + + + + Private constructor to prevent instances. Only static methods should be used. + + + + Private constructor to prevent instances. Only static methods should be used. + + + + + + Hook the shutdown event + + + + On the full .NET runtime, the static constructor hooks up the + AppDomain.ProcessExit and AppDomain.DomainUnload> events. + These are used to shutdown the log4net system as the application exits. + + + + + + Register for ProcessExit and DomainUnload events on the AppDomain + + + + This needs to be in a separate method because the events make + a LinkDemand for the ControlAppDomain SecurityPermission. Because + this is a LinkDemand it is demanded at JIT time. Therefore we cannot + catch the exception in the method itself, we have to catch it in the + caller. + + + + + + Return the default instance. + + the repository to lookup in + Return the default instance + + + Gets the for the repository specified + by the argument. + + + + + + Returns the default instance. + + The assembly to use to lookup the repository. + The default instance. + + + + Return the default instance. + + the repository to lookup in + Return the default instance + + + Gets the for the repository specified + by the argument. + + + + + + Returns the default instance. + + The assembly to use to lookup the repository. + The default instance. + + + Returns the default instance. + + + + + + Returns the named logger if it exists. + + The repository to lookup in. + The fully qualified logger name to look for. + + The logger found, or null if the named logger does not exist in the + specified repository. + + + + If the named logger exists (in the specified repository) then it + returns a reference to the logger, otherwise it returns + null. + + + + + + Returns the named logger if it exists. + + The assembly to use to lookup the repository. + The fully qualified logger name to look for. + + The logger found, or null if the named logger does not exist in the + specified assembly's repository. + + + + If the named logger exists (in the specified assembly's repository) then it + returns a reference to the logger, otherwise it returns + null. + + + + + + Returns all the currently defined loggers in the specified repository. + + The repository to lookup in. + All the defined loggers. + + + The root logger is not included in the returned array. + + + + + + Returns all the currently defined loggers in the specified assembly's repository. + + The assembly to use to lookup the repository. + All the defined loggers. + + + The root logger is not included in the returned array. + + + + + + Retrieves or creates a named logger. + + The repository to lookup in. + The name of the logger to retrieve. + The logger with the name specified. + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + + + + Retrieves or creates a named logger. + + The assembly to use to lookup the repository. + The name of the logger to retrieve. + The logger with the name specified. + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + + + + Shorthand for . + + The repository to lookup in. + The of which the fullname will be used as the name of the logger to retrieve. + The logger with the name specified. + + + Gets the logger for the fully qualified name of the type specified. + + + + + + Shorthand for . + + the assembly to use to lookup the repository + The of which the fullname will be used as the name of the logger to retrieve. + The logger with the name specified. + + + Gets the logger for the fully qualified name of the type specified. + + + + + + Shuts down the log4net system. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in all the + default repositories. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + The repository to shutdown. + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository for the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + The assembly to use to lookup the repository. + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository for the repository. The repository is looked up using + the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Resets all values contained in this repository instance to their defaults. + + The repository to reset. + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + + + + Resets all values contained in this repository instance to their defaults. + + The assembly to use to lookup the repository to reset. + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + + + + Creates a repository with the specified name. + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name. + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The name must be unique. Repositories cannot be redefined. + An Exception will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The name must be unique. Repositories cannot be redefined. + An Exception will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository for the specified assembly and repository type. + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + + + + Creates a repository for the specified assembly and repository type. + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + + + + Gets an array of all currently defined repositories. + + An array of all the known objects. + + + Gets an array of all currently defined repositories. + + + + + + Internal method to get pertinent version info. + + A string of version info. + + + + Called when the event fires + + the that is exiting + null + + + Called when the event fires. + + + When the event is triggered the log4net system is . + + + + + + Called when the event fires + + the that is exiting + null + + + Called when the event fires. + + + When the event is triggered the log4net system is . + + + + + + The fully qualified type of the LoggerManager class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Initialize the default repository selector + + + + + Gets or sets the repository selector used by the . + + + The repository selector used by the . + + + + The repository selector () is used by + the to create and select repositories + (). + + + The caller to supplies either a string name + or an assembly (if not supplied the assembly is inferred using + ). + + + This context is used by the selector to lookup a specific repository. + + + For the full .NET Framework, the default repository is DefaultRepositorySelector; + for the .NET Compact Framework CompactRepositorySelector is the default + repository. + + + + + + Implementation of the interface. + + + + This class should be used as the base for all wrapper implementations. + + + Nicko Cadell + Gert Driesen + + + + Constructs a new wrapper for the specified logger. + + The logger to wrap. + + + Constructs a new wrapper for the specified logger. + + + + + + The logger that this object is wrapping + + + + + Gets the implementation behind this wrapper object. + + + The object that this object is implementing. + + + + The Logger object may not be the same object as this object + because of logger decorators. + + + This gets the actual underlying objects that is used to process + the log events. + + + + + + Portable data structure used by + + + + Portable data structure used by + + + Nicko Cadell + + + + The logger name. + + + + The logger name. + + + + + + Level of logging event. + + + + Level of logging event. Level cannot be Serializable + because it is a flyweight. Due to its special serialization it + cannot be declared final either. + + + + + + The application supplied message. + + + + The application supplied message of logging event. + + + + + + The name of thread + + + + The name of thread in which this logging event was generated + + + + + + Gets or sets the local time the event was logged + + + + Prefer using the setter, since local time can be ambiguous. + + + + + + Location information for the caller. + + + + Location information for the caller. + + + + + + String representation of the user + + + + String representation of the user's windows name, + like DOMAIN\username + + + + + + String representation of the identity. + + + + String representation of the current thread's principal identity. + + + + + + The string representation of the exception + + + + The string representation of the exception + + + + + + String representation of the AppDomain. + + + + String representation of the AppDomain. + + + + + + Additional event specific properties + + + + A logger or an appender may attach additional + properties to specific events. These properties + have a string key and an object value. + + + + + + Gets or sets the UTC time the event was logged + + + + The TimeStamp is stored in the UTC time zone. + + + + + + Flags passed to the property + + + + Flags passed to the property + + + Nicko Cadell + + + + Fix the MDC + + + + + Fix the NDC + + + + + Fix the rendered message + + + + + Fix the thread name + + + + + Fix the callers location information + + + CAUTION: Very slow to generate + + + + + Fix the callers windows user name + + + CAUTION: Slow to generate + + + + + Fix the domain friendly name + + + + + Fix the callers principal name + + + CAUTION: May be slow to generate + + + + + Fix the exception text + + + + + Fix the event properties. Active properties must implement in order to be eligible for fixing. + + + + + No fields fixed + + + + + All fields fixed + + + + + Partial fields fixed + + + + This set of partial fields gives good performance. The following fields are fixed: + + + + + + + + + + + + + The internal representation of logging events. + + + + When an affirmative decision is made to log then a + instance is created. This instance + is passed around to the different log4net components. + + + This class is of concern to those wishing to extend log4net. + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + for incurred by calling but it + is essential to maintaining data consistency. + + + Nicko Cadell + Gert Driesen + Douglas de la Torre + Daniel Cazzulino + + + + The key into the Properties map for the host name value. + + + + + The key into the Properties map for the thread identity value. + + + + + The key into the Properties map for the user name value. + + + + + Initializes a new instance of the class + from the supplied parameters. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + The name of the logger of this event. + The level of this event. + The message of this event. + The exception for this event. + + + Except , and , + all fields of LoggingEvent are filled when actually needed. Call + to cache all data locally + to prevent inconsistencies. + + This method is called by the log4net framework + to create a logging event. + + + + + + Initializes a new instance of the class + using specific data. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + Data used to initialize the logging event. + The fields in the struct that have already been fixed. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + The parameter should be used to specify which fields in the + struct have been preset. Fields not specified in the + will be captured from the environment if requested or fixed. + + + + + + Initializes a new instance of the class + using specific data. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + Data used to initialize the logging event. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + This constructor sets this objects flags to , + this assumes that all the data relating to this event is passed in via the + parameter and no other data should be captured from the environment. + + + + + + Initializes a new instance of the class + using specific data. + + Data used to initialize the logging event. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + This constructor sets this objects flags to , + this assumes that all the data relating to this event is passed in via the + parameter and no other data should be captured from the environment. + + + + + + Serialization constructor + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Ensure that the repository is set. + + the value for the repository + + + + Write the rendered message to a TextWriter + + the writer to write the message to + + + Unlike the property this method + does store the message data in the internal cache. Therefore + if called only once this method should be faster than the + property, however if the message is + to be accessed multiple times then the property will be more efficient. + + + + + + Serializes this object into the provided. + + The to populate with data. + The destination for this serialization. + + + The data in this event must be fixed before it can be serialized. + + + The method must be called during the + method call if this event + is to be used outside that method. + + + + + + Gets the portable data for this . + + The for this event. + + + A new can be constructed using a + instance. + + + Does a fix of the data + in the logging event before returning the event data. + + + + + + Gets the portable data for this . + + The set of data to ensure is fixed in the LoggingEventData + The for this event. + + + A new can be constructed using a + instance. + + + + + + Returns this event's exception's rendered using the + . + + + This event's exception's rendered using the . + + + + Obsolete. Use instead. + + + + + + Returns this event's exception's rendered using the + . + + + This event's exception's rendered using the . + + + + Returns this event's exception's rendered using the + . + + + + + + Fix instance fields that hold volatile data. + + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + incurred by calling but it + is essential to maintaining data consistency. + + + Calling is equivalent to + calling passing the parameter + false. + + + See for more + information. + + + + + + Fixes instance fields that hold volatile data. + + Set to true to not fix data that takes a long time to fix. + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + for incurred by calling but it + is essential to maintaining data consistency. + + + The param controls the data that + is fixed. Some of the data that can be fixed takes a long time to + generate, therefore if you do not require those settings to be fixed + they can be ignored by setting the param + to true. This setting will ignore the + and settings. + + + Set to false to ensure that all + settings are fixed. + + + + + + Fix the fields specified by the parameter + + the fields to fix + + + Only fields specified in the will be fixed. + Fields will not be fixed if they have previously been fixed. + It is not possible to 'unfix' a field. + + + + + + Lookup a composite property in this event + + the key for the property to lookup + the value for the property + + + This event has composite properties that combine together properties from + several different contexts in the following order: + + + this events properties + + This event has that can be set. These + properties are specific to this event only. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + + + Get all the composite properties in this event + + the containing all the properties + + + See for details of the composite properties + stored by the event. + + + This method returns a single containing all the + properties defined for this event. + + + + + + The internal logging event data. + + + + + The internal logging event data. + + + + + The internal logging event data. + + + + + The fully qualified Type of the calling + logger class in the stack frame (i.e. the declaring type of the method). + + + + + The application supplied message of logging event. + + + + + The exception that was thrown. + + + This is not serialized. The string representation + is serialized instead. + + + + + The repository that generated the logging event + + + This is not serialized. + + + + + The fix state for this event + + + These flags indicate which fields have been fixed. + Not serialized. + + + + + Indicated that the internal cache is updateable (ie not fixed) + + + This is a seperate flag to m_fixFlags as it allows incrementel fixing and simpler + changes in the caching strategy. + + + + + Gets the time when the current process started. + + + This is the time when this process started. + + + + The TimeStamp is stored internally in UTC and converted to the local time zone for this computer. + + + Tries to get the start time for the current process. + Failing that it returns the time of the first call to + this property. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating and therefore + without the process start time being reset. + + + + + + Gets the UTC time when the current process started. + + + This is the UTC time when this process started. + + + + Tries to get the start time for the current process. + Failing that it returns the time of the first call to + this property. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating and therefore + without the process start time being reset. + + + + + + Gets the of the logging event. + + + The of the logging event. + + + + Gets the of the logging event. + + + + + + Gets the time of the logging event. + + + The time of the logging event. + + + + The TimeStamp is stored in UTC and converted to the local time zone for this computer. + + + + + + Gets UTC the time of the logging event. + + + The UTC time of the logging event. + + + + + Gets the name of the logger that logged the event. + + + The name of the logger that logged the event. + + + + Gets the name of the logger that logged the event. + + + + + + Gets the location information for this logging event. + + + The location information for this logging event. + + + + The collected information is cached for future use. + + + See the class for more information on + supported frameworks and the different behavior in Debug and + Release builds. + + + + + + Gets the message object used to initialize this event. + + + The message object used to initialize this event. + + + + Gets the message object used to initialize this event. + Note that this event may not have a valid message object. + If the event is serialized the message object will not + be transferred. To get the text of the message the + property must be used + not this property. + + + If there is no defined message object for this event then + null will be returned. + + + + + + Gets the exception object used to initialize this event. + + + The exception object used to initialize this event. + + + + Gets the exception object used to initialize this event. + Note that this event may not have a valid exception object. + If the event is serialized the exception object will not + be transferred. To get the text of the exception the + method must be used + not this property. + + + If there is no defined exception object for this event then + null will be returned. + + + + + + The that this event was created in. + + + + The that this event was created in. + + + + + + Gets the message, rendered through the . + + + The message rendered through the . + + + + The collected information is cached for future use. + + + + + + Gets the name of the current thread. + + + The name of the current thread, or the thread ID when + the name is not available. + + + + The collected information is cached for future use. + + + + + + Gets the name of the current user. + + + The name of the current user, or NOT AVAILABLE when the + underlying runtime has no support for retrieving the name of the + current user. + + + + Calls WindowsIdentity.GetCurrent().Name to get the name of + the current windows user. + + + To improve performance, we could cache the string representation of + the name, and reuse that as long as the identity stayed constant. + Once the identity changed, we would need to re-assign and re-render + the string. + + + However, the WindowsIdentity.GetCurrent() call seems to + return different objects every time, so the current implementation + doesn't do this type of caching. + + + Timing for these operations: + + + + Method + Results + + + WindowsIdentity.GetCurrent() + 10000 loops, 00:00:00.2031250 seconds + + + WindowsIdentity.GetCurrent().Name + 10000 loops, 00:00:08.0468750 seconds + + + + This means we could speed things up almost 40 times by caching the + value of the WindowsIdentity.GetCurrent().Name property, since + this takes (8.04-0.20) = 7.84375 seconds. + + + + + + Gets the identity of the current thread principal. + + + The string name of the identity of the current thread principal. + + + + Calls System.Threading.Thread.CurrentPrincipal.Identity.Name to get + the name of the current thread principal. + + + + + + Gets the AppDomain friendly name. + + + The AppDomain friendly name. + + + + Gets the AppDomain friendly name. + + + + + + Additional event specific properties. + + + Additional event specific properties. + + + + A logger or an appender may attach additional + properties to specific events. These properties + have a string key and an object value. + + + This property is for events that have been added directly to + this event. The aggregate properties (which include these + event properties) can be retrieved using + and . + + + Once the properties have been fixed this property + returns the combined cached properties. This ensures that updates to + this property are always reflected in the underlying storage. When + returning the combined properties there may be more keys in the + Dictionary than expected. + + + + + + The fixed fields in this event + + + The set of fields that are fixed in this event + + + + Fields will not be fixed if they have previously been fixed. + It is not possible to 'unfix' a field. + + + + + + Implementation of wrapper interface. + + + + This implementation of the interface + forwards to the held by the base class. + + + This logger has methods to allow the caller to log at the following + levels: + + + + DEBUG + + The and methods log messages + at the DEBUG level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + INFO + + The and methods log messages + at the INFO level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + WARN + + The and methods log messages + at the WARN level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + ERROR + + The and methods log messages + at the ERROR level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + FATAL + + The and methods log messages + at the FATAL level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + + The values for these levels and their semantic meanings can be changed by + configuring the for the repository. + + + Nicko Cadell + Gert Driesen + + + + The ILog interface is use by application to log messages into + the log4net framework. + + + + Use the to obtain logger instances + that implement this interface. The + static method is used to get logger instances. + + + This class contains methods for logging at different levels and also + has properties for determining if those logging levels are + enabled in the current configuration. + + + This interface can be implemented in different ways. This documentation + specifies reasonable behavior that a caller can expect from the actual + implementation, however different implementations reserve the right to + do things differently. + + + Simple example of logging messages + + ILog log = LogManager.GetLogger("application-log"); + + log.Info("Application Start"); + log.Debug("This is a debug message"); + + if (log.IsDebugEnabled) + { + log.Debug("This is another debug message"); + } + + + + + Nicko Cadell + Gert Driesen + + + Log a message object with the level. + + Log a message object with the level. + + The message object to log. + + + This method first checks if this logger is DEBUG + enabled by comparing the level of this logger with the + level. If this logger is + DEBUG enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Logs a message object with the level. + + + + This method first checks if this logger is INFO + enabled by comparing the level of this logger with the + level. If this logger is + INFO enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Logs a message object with the INFO level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Log a message object with the level. + + + + This method first checks if this logger is WARN + enabled by comparing the level of this logger with the + level. If this logger is + WARN enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Logs a message object with the level. + + The message object to log. + + + This method first checks if this logger is ERROR + enabled by comparing the level of this logger with the + level. If this logger is + ERROR enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Log a message object with the level. + + + + This method first checks if this logger is FATAL + enabled by comparing the level of this logger with the + level. If this logger is + FATAL enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + + This function is intended to lessen the computational cost of + disabled log debug statements. + + For some ILog interface log, when you write: + + log.Debug("This is entry number: " + i ); + + + You incur the cost constructing the message, string construction and concatenation in + this case, regardless of whether the message is logged or not. + + + If you are worried about speed (who isn't), then you should write: + + + if (log.IsDebugEnabled) + { + log.Debug("This is entry number: " + i ); + } + + + This way you will not incur the cost of parameter + construction if debugging is disabled for log. On + the other hand, if the log is debug enabled, you + will incur the cost of evaluating whether the logger is debug + enabled twice. Once in and once in + the . This is an insignificant overhead + since evaluating a logger takes about 1% of the time it + takes to actually log. This is the preferred style of logging. + + Alternatively if your logger is available statically then the is debug + enabled state can be stored in a static variable like this: + + + private static readonly bool isDebugEnabled = log.IsDebugEnabled; + + + Then when you come to log you can write: + + + if (isDebugEnabled) + { + log.Debug("This is entry number: " + i ); + } + + + This way the debug enabled state is only queried once + when the class is loaded. Using a private static readonly + variable is the most efficient because it is a run time constant + and can be heavily optimized by the JIT compiler. + + + Of course if you use a static readonly variable to + hold the enabled state of the logger then you cannot + change the enabled state at runtime to vary the logging + that is produced. You have to decide if you need absolute + speed or runtime flexibility. + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Construct a new wrapper for the specified logger. + + The logger to wrap. + + + Construct a new wrapper for the specified logger. + + + + + + Virtual method called when the configuration of the repository changes + + the repository holding the levels + + + Virtual method called when the configuration of the repository changes + + + + + + Logs a message object with the DEBUG level. + + The message object to log. + + + This method first checks if this logger is DEBUG + enabled by comparing the level of this logger with the + DEBUG level. If this logger is + DEBUG enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the DEBUG level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the DEBUG level including + the stack trace of the passed + as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the INFO level. + + The message object to log. + + + This method first checks if this logger is INFO + enabled by comparing the level of this logger with the + INFO level. If this logger is + INFO enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the INFO level. + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the INFO level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the WARN level. + + the message object to log + + + This method first checks if this logger is WARN + enabled by comparing the level of this logger with the + WARN level. If this logger is + WARN enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the WARN level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the WARN level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the ERROR level. + + The message object to log. + + + This method first checks if this logger is ERROR + enabled by comparing the level of this logger with the + ERROR level. If this logger is + ERROR enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the ERROR level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the ERROR level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the FATAL level. + + The message object to log. + + + This method first checks if this logger is FATAL + enabled by comparing the level of this logger with the + FATAL level. If this logger is + FATAL enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the FATAL level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the FATAL level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Event handler for the event + + the repository + Empty + + + + The fully qualified name of this declaring type not the type of any subclass. + + + + + Checks if this logger is enabled for the DEBUG + level. + + + true if this logger is enabled for DEBUG events, + false otherwise. + + + + This function is intended to lessen the computational cost of + disabled log debug statements. + + + For some log Logger object, when you write: + + + log.Debug("This is entry number: " + i ); + + + You incur the cost constructing the message, concatenation in + this case, regardless of whether the message is logged or not. + + + If you are worried about speed, then you should write: + + + if (log.IsDebugEnabled()) + { + log.Debug("This is entry number: " + i ); + } + + + This way you will not incur the cost of parameter + construction if debugging is disabled for log. On + the other hand, if the log is debug enabled, you + will incur the cost of evaluating whether the logger is debug + enabled twice. Once in IsDebugEnabled and once in + the Debug. This is an insignificant overhead + since evaluating a logger takes about 1% of the time it + takes to actually log. + + + + + + Checks if this logger is enabled for the INFO level. + + + true if this logger is enabled for INFO events, + false otherwise. + + + + See for more information and examples + of using this method. + + + + + + + Checks if this logger is enabled for the WARN level. + + + true if this logger is enabled for WARN events, + false otherwise. + + + + See for more information and examples + of using this method. + + + + + + + Checks if this logger is enabled for the ERROR level. + + + true if this logger is enabled for ERROR events, + false otherwise. + + + + See for more information and examples of using this method. + + + + + + + Checks if this logger is enabled for the FATAL level. + + + true if this logger is enabled for FATAL events, + false otherwise. + + + + See for more information and examples of using this method. + + + + + + + provides method information without actually referencing a System.Reflection.MethodBase + as that would require that the containing assembly is loaded. + + + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + constructs a method item for an unknown method. + + + + + constructs a method item from the name of the method. + + + + + + constructs a method item from the name of the method and its parameters. + + + + + + + constructs a method item from a method base by determining the method name and its parameters. + + + + + + The fully qualified type of the StackFrameItem class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the method name of the caller making the logging + request. + + + The method name of the caller making the logging + request. + + + + Gets the method name of the caller making the logging + request. + + + + + + Gets the method parameters of the caller making + the logging request. + + + The method parameters of the caller making + the logging request + + + + Gets the method parameters of the caller making + the logging request. + + + + + + A SecurityContext used by log4net when interacting with protected resources + + + + A SecurityContext used by log4net when interacting with protected resources + for example with operating system services. This can be used to impersonate + a principal that has been granted privileges on the system resources. + + + Nicko Cadell + + + + Impersonate this SecurityContext + + State supplied by the caller + An instance that will + revoke the impersonation of this SecurityContext, or null + + + Impersonate this security context. Further calls on the current + thread should now be made in the security context provided + by this object. When the result + method is called the security + context of the thread should be reverted to the state it was in + before was called. + + + + + + The providers default instances. + + + + A configured component that interacts with potentially protected system + resources uses a to provide the elevated + privileges required. If the object has + been not been explicitly provided to the component then the component + will request one from this . + + + By default the is + an instance of which returns only + objects. This is a reasonable default + where the privileges required are not know by the system. + + + This default behavior can be overridden by subclassing the + and overriding the method to return + the desired objects. The default provider + can be replaced by programmatically setting the value of the + property. + + + An alternative is to use the log4net.Config.SecurityContextProviderAttribute + This attribute can be applied to an assembly in the same way as the + log4net.Config.XmlConfiguratorAttribute". The attribute takes + the type to use as the as an argument. + + + Nicko Cadell + + + + The default provider + + + + + Protected default constructor to allow subclassing + + + + Protected default constructor to allow subclassing + + + + + + Create a SecurityContext for a consumer + + The consumer requesting the SecurityContext + An impersonation context + + + The default implementation is to return a . + + + Subclasses should override this method to provide their own + behavior. + + + + + + Gets or sets the default SecurityContextProvider + + + The default SecurityContextProvider + + + + The default provider is used by configured components that + require a and have not had one + given to them. + + + By default this is an instance of + that returns objects. + + + The default provider can be set programmatically by setting + the value of this property to a sub class of + that has the desired behavior. + + + + + + provides stack frame information without actually referencing a System.Diagnostics.StackFrame + as that would require that the containing assembly is loaded. + + + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + returns a stack frame item from a stack frame. This + + + + + + + The fully qualified type of the StackFrameItem class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the fully qualified class name of the caller making the logging + request. + + + The fully qualified class name of the caller making the logging + request. + + + + Gets the fully qualified class name of the caller making the logging + request. + + + + + + Gets the file name of the caller. + + + The file name of the caller. + + + + Gets the file name of the caller. + + + + + + Gets the line number of the caller. + + + The line number of the caller. + + + + Gets the line number of the caller. + + + + + + Gets the method name of the caller. + + + The method name of the caller. + + + + Gets the method name of the caller. + + + + + + Gets all available caller information + + + All available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + Gets all available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + + + An evaluator that triggers after specified number of seconds. + + + + This evaluator will trigger if the specified time period + has passed since last check. + + + Robert Sevcik + + + + The default time threshold for triggering in seconds. Zero means it won't trigger at all. + + + + + The time threshold for triggering in seconds. Zero means it won't trigger at all. + + + + + The UTC time of last check. This gets updated when the object is created and when the evaluator triggers. + + + + + Create a new evaluator using the time threshold in seconds. + + + + Create a new evaluator using the time threshold in seconds. + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Create a new evaluator using the specified time threshold in seconds. + + + The time threshold in seconds to trigger after. + Zero means it won't trigger at all. + + + + Create a new evaluator using the specified time threshold in seconds. + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Is this the triggering event? + + The event to check + This method returns true, if the specified time period + has passed since last check.. + Otherwise it returns false + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + The time threshold in seconds to trigger after + + + The time threshold in seconds to trigger after. + Zero means it won't trigger at all. + + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Delegate used to handle creation of new wrappers. + + The logger to wrap in a wrapper. + + + Delegate used to handle creation of new wrappers. This delegate + is called from the + method to construct the wrapper for the specified logger. + + + The delegate to use is supplied to the + constructor. + + + + + + Maps between logger objects and wrapper objects. + + + + This class maintains a mapping between objects and + objects. Use the method to + lookup the for the specified . + + + New wrapper instances are created by the + method. The default behavior is for this method to delegate construction + of the wrapper to the delegate supplied + to the constructor. This allows specialization of the behavior without + requiring subclassing of this type. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the + + The handler to use to create the wrapper objects. + + + Initializes a new instance of the class with + the specified handler to create the wrapper objects. + + + + + + Gets the wrapper object for the specified logger. + + The wrapper object for the specified logger + + + If the logger is null then the corresponding wrapper is null. + + + Looks up the wrapper it it has previously been requested and + returns it. If the wrapper has never been requested before then + the virtual method is + called. + + + + + + Creates the wrapper object for the specified logger. + + The logger to wrap in a wrapper. + The wrapper object for the logger. + + + This implementation uses the + passed to the constructor to create the wrapper. This method + can be overridden in a subclass. + + + + + + Called when a monitored repository shutdown event is received. + + The that is shutting down + + + This method is called when a that this + is holding loggers for has signaled its shutdown + event . The default + behavior of this method is to release the references to the loggers + and their wrappers generated for this repository. + + + + + + Event handler for repository shutdown event. + + The sender of the event. + The event args. + + + + Map of logger repositories to hashtables of ILogger to ILoggerWrapper mappings + + + + + The handler to use to create the extension wrapper objects. + + + + + Internal reference to the delegate used to register for repository shutdown events. + + + + + Gets the map of logger repositories. + + + Map of logger repositories. + + + + Gets the hashtable that is keyed on . The + values are hashtables keyed on with the + value being the corresponding . + + + + + + Formats a as "HH:mm:ss,fff". + + + + Formats a in the format "HH:mm:ss,fff" for example, "15:49:37,459". + + + Nicko Cadell + Gert Driesen + + + + Render a as a string. + + + + Interface to abstract the rendering of a + instance into a string. + + + The method is used to render the + date to a text writer. + + + Nicko Cadell + Gert Driesen + + + + Formats the specified date as a string. + + The date to format. + The writer to write to. + + + Format the as a string and write it + to the provided. + + + + + + String constant used to specify AbsoluteTimeDateFormat in layouts. Current value is ABSOLUTE. + + + + + String constant used to specify DateTimeDateFormat in layouts. Current value is DATE. + + + + + String constant used to specify ISO8601DateFormat in layouts. Current value is ISO8601. + + + + + Renders the date into a string. Format is "HH:mm:ss". + + The date to render into a string. + The string builder to write to. + + + Subclasses should override this method to render the date + into a string using a precision up to the second. This method + will be called at most once per second and the result will be + reused if it is needed again during the same second. + + + + + + Renders the date into a string. Format is "HH:mm:ss,fff". + + The date to render into a string. + The writer to write to. + + + Uses the method to generate the + time string up to the seconds and then appends the current + milliseconds. The results from are + cached and is called at most once + per second. + + + Sub classes should override + rather than . + + + + + + Last stored time with precision up to the second. + + + + + Last stored time with precision up to the second, formatted + as a string. + + + + + Last stored time with precision up to the second, formatted + as a string. + + + + + Formats a as "dd MMM yyyy HH:mm:ss,fff" + + + + Formats a in the format + "dd MMM yyyy HH:mm:ss,fff" for example, + "06 Nov 1994 15:49:37,459". + + + Nicko Cadell + Gert Driesen + Angelika Schnagl + + + + Default constructor. + + + + Initializes a new instance of the class. + + + + + + Formats the date without the milliseconds part + + The date to format. + The string builder to write to. + + + Formats a DateTime in the format "dd MMM yyyy HH:mm:ss" + for example, "06 Nov 1994 15:49:37". + + + The base class will append the ",fff" milliseconds section. + This method will only be called at most once per second. + + + + + + The format info for the invariant culture. + + + + + Formats the as "yyyy-MM-dd HH:mm:ss,fff". + + + + Formats the specified as a string: "yyyy-MM-dd HH:mm:ss,fff". + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Formats the date without the milliseconds part + + The date to format. + The string builder to write to. + + + Formats the date specified as a string: "yyyy-MM-dd HH:mm:ss". + + + The base class will append the ",fff" milliseconds section. + This method will only be called at most once per second. + + + + + + Formats the using the method. + + + + Formats the using the method. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The format string. + + + Initializes a new instance of the class + with the specified format string. + + + The format string must be compatible with the options + that can be supplied to . + + + + + + Formats the date using . + + The date to convert to a string. + The writer to write to. + + + Uses the date format string supplied to the constructor to call + the method to format the date. + + + + + + The format string used to format the . + + + + The format string must be compatible with the options + that can be supplied to . + + + + + + This filter drops all . + + + + You can add this filter to the end of a filter chain to + switch from the default "accept all unless instructed otherwise" + filtering behavior to a "deny all unless instructed otherwise" + behavior. + + + Nicko Cadell + Gert Driesen + + + + Subclass this type to implement customized logging event filtering + + + + Users should extend this class to implement customized logging + event filtering. Note that and + , the parent class of all standard + appenders, have built-in filtering rules. It is suggested that you + first use and understand the built-in rules before rushing to write + your own custom filters. + + + This abstract class assumes and also imposes that filters be + organized in a linear chain. The + method of each filter is called sequentially, in the order of their + addition to the chain. + + + The method must return one + of the integer constants , + or . + + + If the value is returned, then the log event is dropped + immediately without consulting with the remaining filters. + + + If the value is returned, then the next filter + in the chain is consulted. If there are no more filters in the + chain, then the log event is logged. Thus, in the presence of no + filters, the default behavior is to log all logging events. + + + If the value is returned, then the log + event is logged without consulting the remaining filters. + + + The philosophy of log4net filters is largely inspired from the + Linux ipchains. + + + Nicko Cadell + Gert Driesen + + + + Implement this interface to provide customized logging event filtering + + + + Users should implement this interface to implement customized logging + event filtering. Note that and + , the parent class of all standard + appenders, have built-in filtering rules. It is suggested that you + first use and understand the built-in rules before rushing to write + your own custom filters. + + + This abstract class assumes and also imposes that filters be + organized in a linear chain. The + method of each filter is called sequentially, in the order of their + addition to the chain. + + + The method must return one + of the integer constants , + or . + + + If the value is returned, then the log event is dropped + immediately without consulting with the remaining filters. + + + If the value is returned, then the next filter + in the chain is consulted. If there are no more filters in the + chain, then the log event is logged. Thus, in the presence of no + filters, the default behavior is to log all logging events. + + + If the value is returned, then the log + event is logged without consulting the remaining filters. + + + The philosophy of log4net filters is largely inspired from the + Linux ipchains. + + + Nicko Cadell + Gert Driesen + + + + Decide if the logging event should be logged through an appender. + + The LoggingEvent to decide upon + The decision of the filter + + + If the decision is , then the event will be + dropped. If the decision is , then the next + filter, if any, will be invoked. If the decision is then + the event will be logged without consulting with other filters in + the chain. + + + + + + Property to get and set the next filter + + + The next filter in the chain + + + + Filters are typically composed into chains. This property allows the next filter in + the chain to be accessed. + + + + + + Points to the next filter in the filter chain. + + + + See for more information. + + + + + + Initialize the filter with the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Typically filter's options become active immediately on set, + however this method must still be called. + + + + + + Decide if the should be logged through an appender. + + The to decide upon + The decision of the filter + + + If the decision is , then the event will be + dropped. If the decision is , then the next + filter, if any, will be invoked. If the decision is then + the event will be logged without consulting with other filters in + the chain. + + + This method is marked abstract and must be implemented + in a subclass. + + + + + + Property to get and set the next filter + + + The next filter in the chain + + + + Filters are typically composed into chains. This property allows the next filter in + the chain to be accessed. + + + + + + Default constructor + + + + + Always returns the integer constant + + the LoggingEvent to filter + Always returns + + + Ignores the event being logged and just returns + . This can be used to change the default filter + chain behavior from to . This filter + should only be used as the last filter in the chain + as any further filters will be ignored! + + + + + + The return result from + + + + The return result from + + + + + + The log event must be dropped immediately without + consulting with the remaining filters, if any, in the chain. + + + + + This filter is neutral with respect to the log event. + The remaining filters, if any, should be consulted for a final decision. + + + + + The log event must be logged immediately without + consulting with the remaining filters, if any, in the chain. + + + + + This is a very simple filter based on matching. + + + + The filter admits two options and + . If there is an exact match between the value + of the option and the of the + , then the method returns in + case the option value is set + to true, if it is false then + is returned. If the does not match then + the result will be . + + + Nicko Cadell + Gert Driesen + + + + flag to indicate if the filter should on a match + + + + + the to match against + + + + + Default constructor + + + + + Tests if the of the logging event matches that of the filter + + the event to filter + see remarks + + + If the of the event matches the level of the + filter then the result of the function depends on the + value of . If it is true then + the function will return , it it is false then it + will return . If the does not match then + the result will be . + + + + + + when matching + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + The that the filter will match + + + + The level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + This is a simple filter based on matching. + + + + The filter admits three options and + that determine the range of priorities that are matched, and + . If there is a match between the range + of priorities and the of the , then the + method returns in case the + option value is set to true, if it is false + then is returned. If there is no match, is returned. + + + Nicko Cadell + Gert Driesen + + + + Flag to indicate the behavior when matching a + + + + + the minimum value to match + + + + + the maximum value to match + + + + + Default constructor + + + + + Check if the event should be logged. + + the logging event to check + see remarks + + + If the of the logging event is outside the range + matched by this filter then + is returned. If the is matched then the value of + is checked. If it is true then + is returned, otherwise + is returned. + + + + + + when matching and + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + Set the minimum matched + + + + The minimum level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + Sets the maximum matched + + + + The maximum level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + Simple filter to match a string in the event's logger name. + + + + The works very similar to the . It admits two + options and . If the + of the starts + with the value of the option, then the + method returns in + case the option value is set to true, + if it is false then is returned. + + + Daniel Cazzulino + + + + Flag to indicate the behavior when we have a match + + + + + The logger name string to substring match against the event + + + + + Default constructor + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The rendered message is matched against the . + If the equals the beginning of + the incoming () + then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + when matching + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + The that the filter will match + + + + This filter will attempt to match this value against logger name in + the following way. The match will be done against the beginning of the + logger name (using ). The match is + case sensitive. If a match is found then + the result depends on the value of . + + + + + + Simple filter to match a keyed string in the + + + + Simple filter to match a keyed string in the + + + As the MDC has been replaced with layered properties the + should be used instead. + + + Nicko Cadell + Gert Driesen + + + + Simple filter to match a string an event property + + + + Simple filter to match a string in the value for a + specific event property + + + Nicko Cadell + + + + Simple filter to match a string in the rendered message + + + + Simple filter to match a string in the rendered message + + + Nicko Cadell + Gert Driesen + + + + Flag to indicate the behavior when we have a match + + + + + The string to substring match against the message + + + + + A string regex to match + + + + + A regex object to match (generated from m_stringRegexToMatch) + + + + + Default constructor + + + + + Initialize and precompile the Regex if required + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The rendered message is matched against the . + If the occurs as a substring within + the message then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + when matching or + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + Sets the static string to match + + + + The string that will be substring matched against + the rendered message. If the message contains this + string then the filter will match. If a match is found then + the result depends on the value of . + + + One of or + must be specified. + + + + + + Sets the regular expression to match + + + + The regular expression pattern that will be matched against + the rendered message. If the message matches this + pattern then the filter will match. If a match is found then + the result depends on the value of . + + + One of or + must be specified. + + + + + + The key to use to lookup the string from the event properties + + + + + Default constructor + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The event property for the is matched against + the . + If the occurs as a substring within + the property value then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + The key to lookup in the event properties and then match against. + + + + The key name to use to lookup in the properties map of the + . The match will be performed against + the value of this property if it exists. + + + + + + Simple filter to match a string in the + + + + Simple filter to match a string in the + + + As the MDC has been replaced with named stacks stored in the + properties collections the should + be used instead. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Sets the to "NDC". + + + + + + Write the event appdomain name to the output + + + + Writes the to the output writer. + + + Daniel Cazzulino + Nicko Cadell + + + + Abstract class that provides the formatting functionality that + derived classes need. + + + Conversion specifiers in a conversion patterns are parsed to + individual PatternConverters. Each of which is responsible for + converting a logging event in a converter specific manner. + + Nicko Cadell + + + + Abstract class that provides the formatting functionality that + derived classes need. + + + + Conversion specifiers in a conversion patterns are parsed to + individual PatternConverters. Each of which is responsible for + converting a logging event in a converter specific manner. + + + Nicko Cadell + Gert Driesen + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + Protected constructor + + + + Initializes a new instance of the class. + + + + + + Evaluate this pattern converter and write the output to a writer. + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the appropriate way. + + + + + + Set the next pattern converter in the chains + + the pattern converter that should follow this converter in the chain + the next converter + + + The PatternConverter can merge with its neighbor during this method (or a sub class). + Therefore the return value may or may not be the value of the argument passed in. + + + + + + Write the pattern converter to the writer with appropriate formatting + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + This method calls to allow the subclass to perform + appropriate conversion of the pattern converter. If formatting options have + been specified via the then this method will + apply those formattings before writing the output. + + + + + + Fast space padding method. + + to which the spaces will be appended. + The number of spaces to be padded. + + + Fast space padding method. + + + + + + The option string to the converter + + + + + Write an dictionary to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the to a writer in the form: + + + {key1=value1, key2=value2, key3=value3} + + + If the specified + is not null then it is used to render the key and value to text, otherwise + the object's ToString method is called. + + + + + + Write an dictionary to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the to a writer in the form: + + + {key1=value1, key2=value2, key3=value3} + + + If the specified + is not null then it is used to render the key and value to text, otherwise + the object's ToString method is called. + + + + + + Write an object to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the Object to a writer. If the specified + is not null then it is used to render the object to text, otherwise + the object's ToString method is called. + + + + + + Get the next pattern converter in the chain + + + the next pattern converter in the chain + + + + Get the next pattern converter in the chain + + + + + + Gets or sets the formatting info for this converter + + + The formatting info for this converter + + + + Gets or sets the formatting info for this converter + + + + + + Gets or sets the option value for this converter + + + The option for this converter + + + + Gets or sets the option value for this converter + + + + + + + + + + + Initializes a new instance of the class. + + + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the correct way. + + that will receive the formatted result. + The on which the pattern converter should be executed. + + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the correct way. + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + + Flag indicating if this converter handles exceptions + + + false if this converter handles exceptions + + + + + Flag indicating if this converter handles the logging event exception + + false if this converter handles the logging event exception + + + If this converter handles the exception object contained within + , then this property should be set to + false. Otherwise, if the layout ignores the exception + object, then the property should be set to true. + + + Set this value to override a this default setting. The default + value is true, this converter does not handle the exception. + + + + + + Write the event appdomain name to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output . + + + + + + Date pattern converter, uses a to format + the date of a . + + + + Render the to the writer as a string. + + + The value of the determines + the formatting of the date. The following values are allowed: + + + Option value + Output + + + ISO8601 + + Uses the formatter. + Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. + + + + DATE + + Uses the formatter. + Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". + + + + ABSOLUTE + + Uses the formatter. + Formats using the "HH:mm:ss,yyyy" for example, "15:49:37,459". + + + + other + + Any other pattern string uses the formatter. + This formatter passes the pattern string to the + method. + For details on valid patterns see + DateTimeFormatInfo Class. + + + + + + The is in the local time zone and is rendered in that zone. + To output the time in Universal time see . + + + Nicko Cadell + + + + The used to render the date to a string + + + + The used to render the date to a string + + + + + + Initialize the converter pattern based on the property. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Convert the pattern into the rendered message + + that will receive the formatted result. + the event being logged + + + Pass the to the + for it to render it to the writer. + + + The passed is in the local time zone. + + + + + + The fully qualified type of the DatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the exception text to the output + + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + + + If there is no exception then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + Nicko Cadell + + + + Default constructor + + + + + Write the exception text to the output + + that will receive the formatted result. + the event being logged + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + + + If there is no exception or the exception property specified + by the Option value does not exist then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + Recognized values for the Option parameter are: + + + + Message + + + Source + + + StackTrace + + + TargetSite + + + HelpLink + + + + + + + Writes the caller location file name to the output + + + + Writes the value of the for + the event to the output writer. + + + Nicko Cadell + + + + Write the caller location file name to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the for + the to the output . + + + + + + Write the caller location info to the output + + + + Writes the to the output writer. + + + Nicko Cadell + + + + Write the caller location info to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output writer. + + + + + + Writes the event identity to the output + + + + Writes the value of the to + the output writer. + + + Daniel Cazzulino + Nicko Cadell + + + + Writes the event identity to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the + to + the output . + + + + + + Write the event level to the output + + + + Writes the display name of the event + to the writer. + + + Nicko Cadell + + + + Write the event level to the output + + that will receive the formatted result. + the event being logged + + + Writes the of the + to the . + + + + + + Write the caller location line number to the output + + + + Writes the value of the for + the event to the output writer. + + + Nicko Cadell + + + + Write the caller location line number to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the for + the to the output . + + + + + + Converter for logger name + + + + Outputs the of the event. + + + Nicko Cadell + + + + Converter to output and truncate '.' separated strings + + + + This abstract class supports truncating a '.' separated string + to show a specified number of elements from the right hand side. + This is used to truncate class names that are fully qualified. + + + Subclasses should override the method to + return the fully qualified string. + + + Nicko Cadell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Get the fully qualified string data + + the event being logged + the fully qualified name + + + Overridden by subclasses to get the fully qualified name before the + precision is applied to it. + + + Return the fully qualified '.' (dot/period) separated string. + + + + + + Convert the pattern to the rendered message + + that will receive the formatted result. + the event being logged + + Render the to the precision + specified by the property. + + + + + The fully qualified type of the NamedPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the fully qualified name of the logger + + the event being logged + The fully qualified logger name + + + Returns the of the . + + + + + + Writes the event message to the output + + + + Uses the method + to write out the event message. + + + Nicko Cadell + + + + Writes the event message to the output + + that will receive the formatted result. + the event being logged + + + Uses the method + to write out the event message. + + + + + + Write the method name to the output + + + + Writes the caller location to + the output. + + + Nicko Cadell + + + + Write the method name to the output + + that will receive the formatted result. + the event being logged + + + Writes the caller location to + the output. + + + + + + Converter to include event NDC + + + + Outputs the value of the event property named NDC. + + + The should be used instead. + + + Nicko Cadell + + + + Write the event NDC to the output + + that will receive the formatted result. + the event being logged + + + As the thread context stacks are now stored in named event properties + this converter simply looks up the value of the NDC property. + + + The should be used instead. + + + + + + Property pattern converter + + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + Nicko Cadell + + + + Write the property value to the output + + that will receive the formatted result. + the event being logged + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + Converter to output the relative time of the event + + + + Converter to output the time of the event relative to the start of the program. + + + Nicko Cadell + + + + Write the relative time to the output + + that will receive the formatted result. + the event being logged + + + Writes out the relative time of the event in milliseconds. + That is the number of milliseconds between the event + and the . + + + + + + Helper method to get the time difference between two DateTime objects + + start time (in the current local time zone) + end time (in the current local time zone) + the time difference in milliseconds + + + + Write the caller stack frames to the output + + + + Writes the to the output writer, using format: + type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) + + + Adam Davies + + + + Write the caller stack frames to the output + + + + Writes the to the output writer, using format: + type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 + + + Michael Cromwell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the strack frames to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output writer. + + + + + + Returns the Name of the method + + + This method was created, so this class could be used as a base class for StackTraceDetailPatternConverter + string + + + + The fully qualified type of the StackTracePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + The fully qualified type of the StackTraceDetailPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Converter to include event thread name + + + + Writes the to the output. + + + Nicko Cadell + + + + Write the ThreadName to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the . + + + + + + Pattern converter for the class name + + + + Outputs the of the event. + + + Nicko Cadell + + + + Gets the fully qualified name of the class + + the event being logged + The fully qualified type name for the caller location + + + Returns the of the . + + + + + + Converter to include event user name + + Douglas de la Torre + Nicko Cadell + + + + Convert the pattern to the rendered message + + that will receive the formatted result. + the event being logged + + + + Write the TimeStamp to the output + + + + Date pattern converter, uses a to format + the date of a . + + + Uses a to format the + in Universal time. + + + See the for details on the date pattern syntax. + + + + Nicko Cadell + + + + Write the TimeStamp to the output + + that will receive the formatted result. + the event being logged + + + Pass the to the + for it to render it to the writer. + + + The passed is in the local time zone, this is converted + to Universal time before it is rendered. + + + + + + + The fully qualified type of the UtcDatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + A flexible layout configurable with pattern string that re-evaluates on each call. + + + This class is built on and provides all the + features and capabilities of PatternLayout. PatternLayout is a 'static' class + in that its layout is done once at configuration time. This class will recreate + the layout on each reference. + One important difference between PatternLayout and DynamicPatternLayout is the + treatment of the Header and Footer parameters in the configuration. The Header and Footer + parameters for DynamicPatternLayout must be syntactically in the form of a PatternString, + but should not be marked as type log4net.Util.PatternString. Doing so causes the + pattern to be statically converted at configuration time and causes DynamicPatternLayout + to perform the same as PatternLayout. + Please see for complete documentation. + + <layout type="log4net.Layout.DynamicPatternLayout"> + <param name="Header" value="%newline**** Trace Opened Local: %date{yyyy-MM-dd HH:mm:ss.fff} UTC: %utcdate{yyyy-MM-dd HH:mm:ss.fff} ****%newline" /> + <param name="Footer" value="**** Trace Closed %date{yyyy-MM-dd HH:mm:ss.fff} ****%newline" /> + </layout> + + + + + + A flexible layout configurable with pattern string. + + + + The goal of this class is to a + as a string. The results + depend on the conversion pattern. + + + The conversion pattern is closely related to the conversion + pattern of the printf function in C. A conversion pattern is + composed of literal text and format control expressions called + conversion specifiers. + + + You are free to insert any literal text within the conversion + pattern. + + + Each conversion specifier starts with a percent sign (%) and is + followed by optional format modifiers and a conversion + pattern name. The conversion pattern name specifies the type of + data, e.g. logger, level, date, thread name. The format + modifiers control such things as field width, padding, left and + right justification. The following is a simple example. + + + Let the conversion pattern be "%-5level [%thread]: %message%newline" and assume + that the log4net environment was set to use a PatternLayout. Then the + statements + + + ILog log = LogManager.GetLogger(typeof(TestApp)); + log.Debug("Message 1"); + log.Warn("Message 2"); + + would yield the output + + DEBUG [main]: Message 1 + WARN [main]: Message 2 + + + Note that there is no explicit separator between text and + conversion specifiers. The pattern parser knows when it has reached + the end of a conversion specifier when it reads a conversion + character. In the example above the conversion specifier + %-5level means the level of the logging event should be left + justified to a width of five characters. + + + The recognized conversion pattern names are: + + + + Conversion Pattern Name + Effect + + + a + Equivalent to appdomain + + + appdomain + + Used to output the friendly name of the AppDomain where the + logging event was generated. + + + + aspnet-cache + + + Used to output all cache items in the case of %aspnet-cache or just one named item if used as %aspnet-cache{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-context + + + Used to output all context items in the case of %aspnet-context or just one named item if used as %aspnet-context{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-request + + + Used to output all request parameters in the case of %aspnet-request or just one named param if used as %aspnet-request{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-session + + + Used to output all session items in the case of %aspnet-session or just one named item if used as %aspnet-session{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + c + Equivalent to logger + + + C + Equivalent to type + + + class + Equivalent to type + + + d + Equivalent to date + + + date + + + Used to output the date of the logging event in the local time zone. + To output the date in universal time use the %utcdate pattern. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %date{HH:mm:ss,fff} or + %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %date{ISO8601} or %date{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + exception + + + Used to output the exception passed in with the log message. + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + If there is no exception then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + + + F + Equivalent to file + + + file + + + Used to output the file name where the logging request was + issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + identity + + + Used to output the user name for the currently active user + (Principal.Identity.Name). + + + WARNING Generating caller information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + + + l + Equivalent to location + + + L + Equivalent to line + + + location + + + Used to output location information of the caller which generated + the logging event. + + + The location information depends on the CLI implementation but + usually consists of the fully qualified name of the calling + method followed by the callers source the file name and line + number between parentheses. + + + The location information can be very useful. However, its + generation is extremely slow. Its use should be avoided + unless execution speed is not an issue. + + + See the note below on the availability of caller location information. + + + + + level + + + Used to output the level of the logging event. + + + + + line + + + Used to output the line number from where the logging request + was issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + logger + + + Used to output the logger of the logging event. The + logger conversion specifier can be optionally followed by + precision specifier, that is a decimal constant in + brackets. + + + If a precision specifier is given, then only the corresponding + number of right most components of the logger name will be + printed. By default the logger name is printed in full. + + + For example, for the logger name "a.b.c" the pattern + %logger{2} will output "b.c". + + + + + m + Equivalent to message + + + M + Equivalent to method + + + message + + + Used to output the application supplied message associated with + the logging event. + + + + + mdc + + + The MDC (old name for the ThreadContext.Properties) is now part of the + combined event properties. This pattern is supported for compatibility + but is equivalent to property. + + + + + method + + + Used to output the method name where the logging request was + issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + n + Equivalent to newline + + + newline + + + Outputs the platform dependent line separator character or + characters. + + + This conversion pattern offers the same performance as using + non-portable line separator strings such as "\n", or "\r\n". + Thus, it is the preferred way of specifying a line separator. + + + + + ndc + + + Used to output the NDC (nested diagnostic context) associated + with the thread that generated the logging event. + + + + + p + Equivalent to level + + + P + Equivalent to property + + + properties + Equivalent to property + + + property + + + Used to output the an event specific property. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %property{user} would include the value + from the property that is keyed by the string 'user'. Each property value + that is to be included in the log must be specified separately. + Properties are added to events by loggers or appenders. By default + the log4net:HostName property is set to the name of machine on + which the event was originally logged. + + + If no key is specified, e.g. %property then all the keys and their + values are printed in a comma separated list. + + + The properties of an event are combined from a number of different + contexts. These are listed below in the order in which they are searched. + + + + the event properties + + The event has that can be set. These + properties are specific to this event only. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + + r + Equivalent to timestamp + + + stacktrace + + + Used to output the stack trace of the logging event + The stack trace level specifier may be enclosed + between braces. For example, %stacktrace{level}. + If no stack trace level specifier is given then 1 is assumed + + + Output uses the format: + type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 + + + This pattern is not available for Compact Framework assemblies. + + + + + stacktracedetail + + + Used to output the stack trace of the logging event + The stack trace level specifier may be enclosed + between braces. For example, %stacktracedetail{level}. + If no stack trace level specifier is given then 1 is assumed + + + Output uses the format: + type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) + + + This pattern is not available for Compact Framework assemblies. + + + + + t + Equivalent to thread + + + timestamp + + + Used to output the number of milliseconds elapsed since the start + of the application until the creation of the logging event. + + + + + thread + + + Used to output the name of the thread that generated the + logging event. Uses the thread number if no name is available. + + + + + type + + + Used to output the fully qualified type name of the caller + issuing the logging request. This conversion specifier + can be optionally followed by precision specifier, that + is a decimal constant in brackets. + + + If a precision specifier is given, then only the corresponding + number of right most components of the class name will be + printed. By default the class name is output in fully qualified form. + + + For example, for the class name "log4net.Layout.PatternLayout", the + pattern %type{1} will output "PatternLayout". + + + WARNING Generating the caller class information is + slow. Thus, its use should be avoided unless execution speed is + not an issue. + + + See the note below on the availability of caller location information. + + + + + u + Equivalent to identity + + + username + + + Used to output the WindowsIdentity for the currently + active user. + + + WARNING Generating caller WindowsIdentity information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + + + utcdate + + + Used to output the date of the logging event in universal time. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %utcdate{HH:mm:ss,fff} or + %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %utcdate{ISO8601} or %utcdate{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + w + Equivalent to username + + + x + Equivalent to ndc + + + X + Equivalent to mdc + + + % + + + The sequence %% outputs a single percent sign. + + + + + + The single letter patterns are deprecated in favor of the + longer more descriptive pattern names. + + + By default the relevant information is output as is. However, + with the aid of format modifiers it is possible to change the + minimum field width, the maximum field width and justification. + + + The optional format modifier is placed between the percent sign + and the conversion pattern name. + + + The first optional format modifier is the left justification + flag which is just the minus (-) character. Then comes the + optional minimum field width modifier. This is a decimal + constant that represents the minimum number of characters to + output. If the data item requires fewer characters, it is padded on + either the left or the right until the minimum width is + reached. The default is to pad on the left (right justify) but you + can specify right padding with the left justification flag. The + padding character is space. If the data item is larger than the + minimum field width, the field is expanded to accommodate the + data. The value is never truncated. + + + This behavior can be changed using the maximum field + width modifier which is designated by a period followed by a + decimal constant. If the data item is longer than the maximum + field, then the extra characters are removed from the + beginning of the data item and not from the end. For + example, it the maximum field width is eight and the data item is + ten characters long, then the first two characters of the data item + are dropped. This behavior deviates from the printf function in C + where truncation is done from the end. + + + Below are various format modifier examples for the logger + conversion specifier. + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Format modifierleft justifyminimum widthmaximum widthcomment
%20loggerfalse20none + + Left pad with spaces if the logger name is less than 20 + characters long. + +
%-20loggertrue20none + + Right pad with spaces if the logger + name is less than 20 characters long. + +
%.30loggerNAnone30 + + Truncate from the beginning if the logger + name is longer than 30 characters. + +
%20.30loggerfalse2030 + + Left pad with spaces if the logger name is shorter than 20 + characters. However, if logger name is longer than 30 characters, + then truncate from the beginning. + +
%-20.30loggertrue2030 + + Right pad with spaces if the logger name is shorter than 20 + characters. However, if logger name is longer than 30 characters, + then truncate from the beginning. + +
+
+ + Note about caller location information.
+ The following patterns %type %file %line %method %location %class %C %F %L %l %M + all generate caller location information. + Location information uses the System.Diagnostics.StackTrace class to generate + a call stack. The caller's information is then extracted from this stack. +
+ + + The System.Diagnostics.StackTrace class is not supported on the + .NET Compact Framework 1.0 therefore caller location information is not + available on that framework. + + + + + The System.Diagnostics.StackTrace class has this to say about Release builds: + + + "StackTrace information will be most informative with Debug build configurations. + By default, Debug builds include debug symbols, while Release builds do not. The + debug symbols contain most of the file, method name, line number, and column + information used in constructing StackFrame and StackTrace objects. StackTrace + might not report as many method calls as expected, due to code transformations + that occur during optimization." + + + This means that in a Release build the caller information may be incomplete or may + not exist at all! Therefore caller location information cannot be relied upon in a Release build. + + + + Additional pattern converters may be registered with a specific + instance using the method. + +
+ + This is a more detailed pattern. + %timestamp [%thread] %level %logger %ndc - %message%newline + + + A similar pattern except that the relative time is + right padded if less than 6 digits, thread name is right padded if + less than 15 characters and truncated if longer and the logger + name is left padded if shorter than 30 characters and truncated if + longer. + %-6timestamp [%15.15thread] %-5level %30.30logger %ndc - %message%newline + + Nicko Cadell + Gert Driesen + Douglas de la Torre + Daniel Cazzulino +
+ + + Extend this abstract class to create your own log layout format. + + + + This is the base implementation of the + interface. Most layout objects should extend this class. + + + + + + Subclasses must implement the + method. + + + Subclasses should set the in their default + constructor. + + + + Nicko Cadell + Gert Driesen + + + + Interface implemented by layout objects + + + + An object is used to format a + as text. The method is called by an + appender to transform the into a string. + + + The layout can also supply and + text that is appender before any events and after all the events respectively. + + + Nicko Cadell + Gert Driesen + + + + Implement this method to create your own layout format. + + The TextWriter to write the formatted event to + The event to format + + + This method is called by an appender to format + the as text and output to a writer. + + + If the caller does not have a and prefers the + event to be formatted as a then the following + code can be used to format the event into a . + + + StringWriter writer = new StringWriter(); + Layout.Format(writer, loggingEvent); + string formattedEvent = writer.ToString(); + + + + + + The content type output by this layout. + + The content type + + + The content type output by this layout. + + + This is a MIME type e.g. "text/plain". + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + + + + + Flag indicating if this layout handle exceptions + + false if this layout handles exceptions + + + If this layout handles the exception object contained within + , then the layout should return + false. Otherwise, if the layout ignores the exception + object, then the layout should return true. + + + + + + The header text + + + + See for more information. + + + + + + The footer text + + + + See for more information. + + + + + + Flag indicating if this layout handles exceptions + + + + false if this layout handles exceptions + + + + + + Empty default constructor + + + + Empty default constructor + + + + + + Activate component options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + This method must be implemented by the subclass. + + + + + + Implement this method to create your own layout format. + + The TextWriter to write the formatted event to + The event to format + + + This method is called by an appender to format + the as text. + + + + + + Convenience method for easily formatting the logging event into a string variable. + + + + Creates a new StringWriter instance to store the formatted logging event. + + + + + The content type output by this layout. + + The content type is "text/plain" + + + The content type output by this layout. + + + This base class uses the value "text/plain". + To change this value a subclass must override this + property. + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + + + + + Flag indicating if this layout handles exceptions + + false if this layout handles exceptions + + + If this layout handles the exception object contained within + , then the layout should return + false. Otherwise, if the layout ignores the exception + object, then the layout should return true. + + + Set this value to override a this default setting. The default + value is true, this layout does not handle the exception. + + + + + + Default pattern string for log output. + + + + Default pattern string for log output. + Currently set to the string "%message%newline" + which just prints the application supplied message. + + + + + + A detailed conversion pattern + + + + A conversion pattern which includes Time, Thread, Logger, and Nested Context. + Current value is %timestamp [%thread] %level %logger %ndc - %message%newline. + + + + + + Internal map of converter identifiers to converter types. + + + + This static map is overridden by the m_converterRegistry instance map + + + + + + the pattern + + + + + the head of the pattern converter chain + + + + + patterns defined on this PatternLayout only + + + + + Initialize the global registry + + + + Defines the builtin global rules. + + + + + + Constructs a PatternLayout using the DefaultConversionPattern + + + + The default pattern just produces the application supplied message. + + + Note to Inheritors: This constructor calls the virtual method + . If you override this method be + aware that it will be called before your is called constructor. + + + As per the contract the + method must be called after the properties on this object have been + configured. + + + + + + Constructs a PatternLayout using the supplied conversion pattern + + the pattern to use + + + Note to Inheritors: This constructor calls the virtual method + . If you override this method be + aware that it will be called before your is called constructor. + + + When using this constructor the method + need not be called. This may not be the case when using a subclass. + + + + + + Create the pattern parser instance + + the pattern to parse + The that will format the event + + + Creates the used to parse the conversion string. Sets the + global and instance rules on the . + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a formatted string as specified by the conversion pattern. + + the event being logged + The TextWriter to write the formatted event to + + + Parse the using the patter format + specified in the property. + + + + + + Add a converter to this PatternLayout + + the converter info + + + This version of the method is used by the configurator. + Programmatic users should use the alternative method. + + + + + + Add a converter to this PatternLayout + + the name of the conversion pattern for this converter + the type of the converter + + + Add a named pattern converter to this instance. This + converter will be used in the formatting of the event. + This method must be called before . + + + The specified must extend the + type. + + + + + + The pattern formatting string + + + + The ConversionPattern option. This is the string which + controls formatting and consists of a mix of literal content and + conversion specifiers. + + + + + + The header PatternString + + + + + The footer PatternString + + + + + Constructs a DynamicPatternLayout using the DefaultConversionPattern + + + + The default pattern just produces the application supplied message. + + + + + + Constructs a DynamicPatternLayout using the supplied conversion pattern + + the pattern to use + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + The pattern will be formatted on each get operation. + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + The pattern will be formatted on each get operation. + + + + + A Layout that renders only the Exception text from the logging event + + + + A Layout that renders only the Exception text from the logging event. + + + This Layout should only be used with appenders that utilize multiple + layouts (e.g. ). + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Constructs a ExceptionLayout + + + + + + Activate component options + + + + Part of the component activation + framework. + + + This method does nothing as options become effective immediately. + + + + + + Gets the exception text from the logging event + + The TextWriter to write the formatted event to + the event being logged + + + Write the exception string to the . + The exception string is retrieved from . + + + + + + Interface for raw layout objects + + + + Interface used to format a + to an object. + + + This interface should not be confused with the + interface. This interface is used in + only certain specialized situations where a raw object is + required rather than a formatted string. The + is not generally useful than this interface. + + + Nicko Cadell + Gert Driesen + + + + Implement this method to create your own layout format. + + The event to format + returns the formatted event + + + Implement this method to create your own layout format. + + + + + + Adapts any to a + + + + Where an is required this adapter + allows a to be specified. + + + Nicko Cadell + Gert Driesen + + + + The layout to adapt + + + + + Construct a new adapter + + the layout to adapt + + + Create the adapter for the specified . + + + + + + Format the logging event as an object. + + The event to format + returns the formatted event + + + Format the logging event as an object. + + + Uses the object supplied to + the constructor to perform the formatting. + + + + + + Type converter for the interface + + + + Used to convert objects to the interface. + Supports converting from the interface to + the interface using the . + + + Nicko Cadell + Gert Driesen + + + + Interface supported by type converters + + + + This interface supports conversion from arbitrary types + to a single target type. See . + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Test if the can be converted to the + type supported by this converter. + + + + + + Convert the source object to the type supported by this object + + the object to convert + the converted object + + + Converts the to the type supported + by this converter. + + + + + + Can the sourceType be converted to an + + the source to be to be converted + true if the source type can be converted to + + + Test if the can be converted to a + . Only is supported + as the . + + + + + + Convert the value to a object + + the value to convert + the object + + + Convert the object to a + object. If the object + is a then the + is used to adapt between the two interfaces, otherwise an + exception is thrown. + + + + + + Extract the value of a property from the + + + + Extract the value of a property from the + + + Nicko Cadell + + + + Constructs a RawPropertyLayout + + + + + Lookup the property for + + The event to format + returns property value + + + Looks up and returns the object value of the property + named . If there is no property defined + with than name then null will be returned. + + + + + + The name of the value to lookup in the LoggingEvent Properties collection. + + + Value to lookup in the LoggingEvent Properties collection + + + + String name of the property to lookup in the . + + + + + + Extract the date from the + + + + Extract the date from the + + + Nicko Cadell + Gert Driesen + + + + Constructs a RawTimeStampLayout + + + + + Gets the as a . + + The event to format + returns the time stamp + + + Gets the as a . + + + The time stamp is in local time. To format the time stamp + in universal time use . + + + + + + Extract the date from the + + + + Extract the date from the + + + Nicko Cadell + Gert Driesen + + + + Constructs a RawUtcTimeStampLayout + + + + + Gets the as a . + + The event to format + returns the time stamp + + + Gets the as a . + + + The time stamp is in universal time. To format the time stamp + in local time use . + + + + + + A very simple layout + + + + SimpleLayout consists of the level of the log statement, + followed by " - " and then the log message itself. For example, + + DEBUG - Hello world + + + + Nicko Cadell + Gert Driesen + + + + Constructs a SimpleLayout + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a simple formatted output. + + the event being logged + The TextWriter to write the formatted event to + + + Formats the event as the level of the even, + followed by " - " and then the log message itself. The + output is terminated by a newline. + + + + + + Layout that formats the log events as XML elements. + + + + The output of the consists of a series of + log4net:event elements. It does not output a complete well-formed XML + file. The output is designed to be included as an external entity + in a separate file to form a correct XML file. + + + For example, if abc is the name of the file where + the output goes, then a well-formed XML file would + be: + + + <?xml version="1.0" ?> + + <!DOCTYPE log4net:events SYSTEM "log4net-events.dtd" [<!ENTITY data SYSTEM "abc">]> + + <log4net:events version="1.2" xmlns:log4net="http://logging.apache.org/log4net/schemas/log4net-events-1.2> + &data; + </log4net:events> + + + This approach enforces the independence of the + and the appender where it is embedded. + + + The version attribute helps components to correctly + interpret output generated by . The value of + this attribute should be "1.2" for release 1.2 and later. + + + Alternatively the Header and Footer properties can be + configured to output the correct XML header, open tag and close tag. + When setting the Header and Footer properties it is essential + that the underlying data store not be appendable otherwise the data + will become invalid XML. + + + Nicko Cadell + Gert Driesen + + + + Layout that formats the log events as XML elements. + + + + This is an abstract class that must be subclassed by an implementation + to conform to a specific schema. + + + Deriving classes must implement the method. + + + Nicko Cadell + Gert Driesen + + + + Protected constructor to support subclasses + + + + Initializes a new instance of the class + with no location info. + + + + + + Protected constructor to support subclasses + + + + The parameter determines whether + location information will be output by the layout. If + is set to true, then the + file name and line number of the statement at the origin of the log + statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a formatted string. + + The event being logged. + The TextWriter to write the formatted event to + + + Format the and write it to the . + + + This method creates an that writes to the + . The is passed + to the method. Subclasses should override the + method rather than this method. + + + + + + Does the actual writing of the XML. + + The writer to use to output the event to. + The event to write. + + + Subclasses should override this method to format + the as XML. + + + + + + Flag to indicate if location information should be included in + the XML events. + + + + + The string to replace invalid chars with + + + + + Gets a value indicating whether to include location information in + the XML events. + + + true if location information should be included in the XML + events; otherwise, false. + + + + If is set to true, then the file + name and line number of the statement at the origin of the log + statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + The string to replace characters that can not be expressed in XML with. + + + Not all characters may be expressed in XML. This property contains the + string to replace those that can not with. This defaults to a ?. Set it + to the empty string to simply remove offending characters. For more + details on the allowed character ranges see http://www.w3.org/TR/REC-xml/#charsets + Character replacement will occur in the log message, the property names + and the property values. + + + + + + + Gets the content type output by this layout. + + + As this is the XML layout, the value is always "text/xml". + + + + As this is the XML layout, the value is always "text/xml". + + + + + + Constructs an XmlLayout + + + + + Constructs an XmlLayout. + + + + The LocationInfo option takes a boolean value. By + default, it is set to false which means there will be no location + information output by this layout. If the the option is set to + true, then the file name and line number of the statement + at the origin of the log statement will be output. + + + If you are embedding this layout within an SmtpAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Builds a cache of the element names + + + + + + Does the actual writing of the XML. + + The writer to use to output the event to. + The event to write. + + + Override the base class method + to write the to the . + + + + + + The prefix to use for all generated element names + + + + + The prefix to use for all element names + + + + The default prefix is log4net. Set this property + to change the prefix. If the prefix is set to an empty string + then no prefix will be written. + + + + + + Set whether or not to base64 encode the message. + + + + By default the log message will be written as text to the xml + output. This can cause problems when the message contains binary + data. By setting this to true the contents of the message will be + base64 encoded. If this is set then invalid character replacement + (see ) will not be performed + on the log message. + + + + + + Set whether or not to base64 encode the property values. + + + + By default the properties will be written as text to the xml + output. This can cause problems when one or more properties contain + binary data. By setting this to true the values of the properties + will be base64 encoded. If this is set then invalid character replacement + (see ) will not be performed + on the property values. + + + + + + Layout that formats the log events as XML elements compatible with the log4j schema + + + + Formats the log events according to the http://logging.apache.org/log4j schema. + + + Nicko Cadell + + + + The 1st of January 1970 in UTC + + + + + Constructs an XMLLayoutSchemaLog4j + + + + + Constructs an XMLLayoutSchemaLog4j. + + + + The LocationInfo option takes a boolean value. By + default, it is set to false which means there will be no location + information output by this layout. If the the option is set to + true, then the file name and line number of the statement + at the origin of the log statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + Actually do the writing of the xml + + the writer to use + the event to write + + + Generate XML that is compatible with the log4j schema. + + + + + + The version of the log4j schema to use. + + + + Only version 1.2 of the log4j schema is supported. + + + + + + The default object Renderer. + + + + The default renderer supports rendering objects and collections to strings. + + + See the method for details of the output. + + + Nicko Cadell + Gert Driesen + + + + Implement this interface in order to render objects as strings + + + + Certain types require special case conversion to + string form. This conversion is done by an object renderer. + Object renderers implement the + interface. + + + Nicko Cadell + Gert Driesen + + + + Render the object to a string + + The map used to lookup renderers + The object to render + The writer to render to + + + Render the object to a + string. + + + The parameter is + provided to lookup and render other objects. This is + very useful where contains + nested objects of unknown type. The + method can be used to render these objects. + + + + + + Default constructor + + + + Default constructor + + + + + + Render the object to a string + + The map used to lookup renderers + The object to render + The writer to render to + + + Render the object to a string. + + + The parameter is + provided to lookup and render other objects. This is + very useful where contains + nested objects of unknown type. The + method can be used to render these objects. + + + The default renderer supports rendering objects to strings as follows: + + + + Value + Rendered String + + + null + + "(null)" + + + + + + + For a one dimensional array this is the + array type name, an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. + + + For example: int[] {1, 2, 3}. + + + If the array is not one dimensional the + Array.ToString() is returned. + + + + + , & + + + Rendered as an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. + + + For example: {a, b, c}. + + + All collection classes that implement its subclasses, + or generic equivalents all implement the interface. + + + + + + + + Rendered as the key, an equals sign ('='), and the value (using the appropriate + renderer). + + + For example: key=value. + + + + + other + + Object.ToString() + + + + + + + + Render the array argument into a string + + The map used to lookup renderers + the array to render + The writer to render to + + + For a one dimensional array this is the + array type name, an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. For example: + int[] {1, 2, 3}. + + + If the array is not one dimensional the + Array.ToString() is returned. + + + + + + Render the enumerator argument into a string + + The map used to lookup renderers + the enumerator to render + The writer to render to + + + Rendered as an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. For example: + {a, b, c}. + + + + + + Render the DictionaryEntry argument into a string + + The map used to lookup renderers + the DictionaryEntry to render + The writer to render to + + + Render the key, an equals sign ('='), and the value (using the appropriate + renderer). For example: key=value. + + + + + + Map class objects to an . + + + + Maintains a mapping between types that require special + rendering and the that + is used to render them. + + + The method is used to render an + object using the appropriate renderers defined in this map. + + + Nicko Cadell + Gert Driesen + + + + Default Constructor + + + + Default constructor. + + + + + + Render using the appropriate renderer. + + the object to render to a string + the object rendered as a string + + + This is a convenience method used to render an object to a string. + The alternative method + should be used when streaming output to a . + + + + + + Render using the appropriate renderer. + + the object to render to a string + The writer to render to + + + Find the appropriate renderer for the type of the + parameter. This is accomplished by calling the + method. Once a renderer is found, it is + applied on the object and the result is returned + as a . + + + + + + Gets the renderer for the specified object type + + the object to lookup the renderer for + the renderer for + + + Gets the renderer for the specified object type. + + + Syntactic sugar method that calls + with the type of the object parameter. + + + + + + Gets the renderer for the specified type + + the type to lookup the renderer for + the renderer for the specified type + + + Returns the renderer for the specified type. + If no specific renderer has been defined the + will be returned. + + + + + + Internal function to recursively search interfaces + + the type to lookup the renderer for + the renderer for the specified type + + + + Clear the map of renderers + + + + Clear the custom renderers defined by using + . The + cannot be removed. + + + + + + Register an for . + + the type that will be rendered by + the renderer for + + + Register an object renderer for a specific source type. + This renderer will be returned from a call to + specifying the same as an argument. + + + + + + Get the default renderer instance + + the default renderer + + + Get the default renderer + + + + + + Interface implemented by logger repository plugins. + + + + Plugins define additional behavior that can be associated + with a . + The held by the + property is used to store the plugins for a repository. + + + The log4net.Config.PluginAttribute can be used to + attach plugins to repositories created using configuration + attributes. + + + Nicko Cadell + Gert Driesen + + + + Attaches the plugin to the specified . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + This method is called to notify the plugin that + it should stop operating and should detach from + the repository. + + + + + + Gets the name of the plugin. + + + The name of the plugin. + + + + Plugins are stored in the + keyed by name. Each plugin instance attached to a + repository must be a unique name. + + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Creates a read-only wrapper for a PluginCollection instance. + + list to create a readonly wrapper arround + + A PluginCollection wrapper that is read-only. + + + + + Initializes a new instance of the PluginCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the PluginCollection class + that has the specified initial capacity. + + + The number of elements that the new PluginCollection is initially capable of storing. + + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified PluginCollection. + + The PluginCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Allow subclasses to avoid our default constructors + + + + + + + Copies the entire PluginCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire PluginCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Adds a to the end of the PluginCollection. + + The to be added to the end of the PluginCollection. + The index at which the value has been added. + + + + Removes all elements from the PluginCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the PluginCollection. + + The to check for. + true if is found in the PluginCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the PluginCollection. + + The to locate in the PluginCollection. + + The zero-based index of the first occurrence of + in the entire PluginCollection, if found; otherwise, -1. + + + + + Inserts an element into the PluginCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the PluginCollection. + + The to remove from the PluginCollection. + + The specified was not found in the PluginCollection. + + + + + Removes the element at the specified index of the PluginCollection. + + The zero-based index of the element to remove. + + is less than zero. + -or- + is equal to or greater than . + + + + + Returns an enumerator that can iterate through the PluginCollection. + + An for the entire PluginCollection. + + + + Adds the elements of another PluginCollection to the current PluginCollection. + + The PluginCollection whose elements should be added to the end of the current PluginCollection. + The new of the PluginCollection. + + + + Adds the elements of a array to the current PluginCollection. + + The array whose elements should be added to the end of the PluginCollection. + The new of the PluginCollection. + + + + Adds the elements of a collection to the current PluginCollection. + + The collection whose elements should be added to the end of the PluginCollection. + The new of the PluginCollection. + + + + Sets the capacity to the actual number of elements. + + + + + is less than zero. + -or- + is equal to or greater than . + + + + + is less than zero. + -or- + is equal to or greater than . + + + + + Gets the number of elements actually contained in the PluginCollection. + + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + An object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + + The at the specified index. + + The zero-based index of the element to get or set. + + is less than zero. + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false. + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false. + + + + Gets or sets the number of elements the PluginCollection can contain. + + + The number of elements the PluginCollection can contain. + + + + + Supports type-safe iteration over a . + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + + A value + + + + + Supports simple iteration over a . + + + + + + Initializes a new instance of the Enumerator class. + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + The current element in the collection. + + + + + + + + Map of repository plugins. + + + + This class is a name keyed map of the plugins that are + attached to a repository. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The repository that the plugins should be attached to. + + + Initialize a new instance of the class with a + repository that the plugins should be attached to. + + + + + + Adds a to the map. + + The to add to the map. + + + The will be attached to the repository when added. + + + If there already exists a plugin with the same name + attached to the repository then the old plugin will + be and replaced with + the new plugin. + + + + + + Removes a from the map. + + The to remove from the map. + + + Remove a specific plugin from this map. + + + + + + Gets a by name. + + The name of the to lookup. + + The from the map with the name specified, or + null if no plugin is found. + + + + Lookup a plugin by name. If the plugin is not found null + will be returned. + + + + + + Gets all possible plugins as a list of objects. + + All possible plugins as a list of objects. + + + Get a collection of all the plugins defined in this map. + + + + + + Base implementation of + + + + Default abstract implementation of the + interface. This base class can be used by implementors + of the interface. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + the name of the plugin + + Initializes a new Plugin with the specified name. + + + + + Attaches this plugin to a . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + This method is called to notify the plugin that + it should stop operating and should detach from + the repository. + + + + + + The name of this plugin. + + + + + The repository this plugin is attached to. + + + + + Gets or sets the name of the plugin. + + + The name of the plugin. + + + + Plugins are stored in the + keyed by name. Each plugin instance attached to a + repository must be a unique name. + + + The name of the plugin must not change one the + plugin has been attached to a repository. + + + + + + The repository for this plugin + + + The that this plugin is attached to. + + + + Gets or sets the that this plugin is + attached to. + + + + + + Plugin that listens for events from the + + + + This plugin publishes an instance of + on a specified . This listens for logging events delivered from + a remote . + + + When an event is received it is relogged within the attached repository + as if it had been raised locally. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Initializes a new instance of the class. + + + The property must be set. + + + + + + Construct with sink Uri. + + The name to publish the sink under in the remoting infrastructure. + See for more details. + + + Initializes a new instance of the class + with specified name. + + + + + + Attaches this plugin to a . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + When the plugin is shutdown the remote logging + sink is disconnected. + + + + + + The fully qualified type of the RemoteLoggingServerPlugin class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the URI of this sink. + + + The URI of this sink. + + + + This is the name under which the object is marshaled. + + + + + + + Delivers objects to a remote sink. + + + + Internal class used to listen for logging events + and deliver them to the local repository. + + + + + + Constructor + + The repository to log to. + + + Initializes a new instance of the for the + specified . + + + + + + Logs the events to the repository. + + The events to log. + + + The events passed are logged to the + + + + + + Obtains a lifetime service object to control the lifetime + policy for this instance. + + null to indicate that this instance should live forever. + + + Obtains a lifetime service object to control the lifetime + policy for this instance. This object should live forever + therefore this implementation returns null. + + + + + + The underlying that events should + be logged to. + + + + + Default implementation of + + + + This default implementation of the + interface is used to create the default subclass + of the object. + + + Nicko Cadell + Gert Driesen + + + + Interface abstracts creation of instances + + + + This interface is used by the to + create new objects. + + + The method is called + to create a named . + + + Implement this interface to create new subclasses of . + + + Nicko Cadell + Gert Driesen + + + + Create a new instance + + The that will own the . + The name of the . + The instance for the specified name. + + + Create a new instance with the + specified name. + + + Called by the to create + new named instances. + + + If the is null then the root logger + must be returned. + + + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Create a new instance + + The that will own the . + The name of the . + The instance for the specified name. + + + Create a new instance with the + specified name. + + + Called by the to create + new named instances. + + + If the is null then the root logger + must be returned. + + + + + + Default internal subclass of + + + + This subclass has no additional behavior over the + class but does allow instances + to be created. + + + + + + Implementation of used by + + + + Internal class used to provide implementation of + interface. Applications should use to get + logger instances. + + + This is one of the central classes in the log4net implementation. One of the + distinctive features of log4net are hierarchical loggers and their + evaluation. The organizes the + instances into a rooted tree hierarchy. + + + The class is abstract. Only concrete subclasses of + can be created. The + is used to create instances of this type for the . + + + Nicko Cadell + Gert Driesen + Aspi Havewala + Douglas de la Torre + + + + This constructor created a new instance and + sets its name. + + The name of the . + + + This constructor is protected and designed to be used by + a subclass that is not abstract. + + + Loggers are constructed by + objects. See for the default + logger creator. + + + + + + Add to the list of appenders of this + Logger instance. + + An appender to add to this logger + + + Add to the list of appenders of this + Logger instance. + + + If is already in the list of + appenders, then it won't be added again. + + + + + + Look for the appender named as name + + The name of the appender to lookup + The appender with the name specified, or null. + + + Returns the named appender, or null if the appender is not found. + + + + + + Remove all previously added appenders from this Logger instance. + + + + Remove all previously added appenders from this Logger instance. + + + This is useful when re-reading configuration information. + + + + + + Remove the appender passed as parameter form the list of appenders. + + The appender to remove + The appender removed from the list + + + Remove the appender passed as parameter form the list of appenders. + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Remove the appender passed as parameter form the list of appenders. + + The name of the appender to remove + The appender removed from the list + + + Remove the named appender passed as parameter form the list of appenders. + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + This generic form is intended to be used by wrappers. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generate a logging event for the specified using + the and . + + + This method must not throw any exception to the caller. + + + + + + This is the most generic printing method that is intended to be used + by wrappers. + + The event being logged. + + + Logs the specified logging event through this logger. + + + This method must not throw any exception to the caller. + + + + + + Checks if this logger is enabled for a given passed as parameter. + + The level to check. + + true if this logger is enabled for level, otherwise false. + + + + Test if this logger is going to log events of the specified . + + + This method must not throw any exception to the caller. + + + + + + Deliver the to the attached appenders. + + The event to log. + + + Call the appenders in the hierarchy starting at + this. If no appenders could be found, emit a + warning. + + + This method calls all the appenders inherited from the + hierarchy circumventing any evaluation of whether to log or not + to log the particular log request. + + + + + + Closes all attached appenders implementing the interface. + + + + Used to ensure that the appenders are correctly shutdown. + + + + + + This is the most generic printing method. This generic form is intended to be used by wrappers + + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generate a logging event for the specified using + the . + + + + + + Creates a new logging event and logs the event without further checks. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generates a logging event and delivers it to the attached + appenders. + + + + + + Creates a new logging event and logs the event without further checks. + + The event being logged. + + + Delivers the logging event to the attached appenders. + + + + + + The fully qualified type of the Logger class. + + + + + The name of this logger. + + + + + The assigned level of this logger. + + + + The level variable need not be + assigned a value in which case it is inherited + form the hierarchy. + + + + + + The parent of this logger. + + + + The parent of this logger. + All loggers have at least one ancestor which is the root logger. + + + + + + Loggers need to know what Hierarchy they are in. + + + + Loggers need to know what Hierarchy they are in. + The hierarchy that this logger is a member of is stored + here. + + + + + + Helper implementation of the interface + + + + + Flag indicating if child loggers inherit their parents appenders + + + + Additivity is set to true by default, that is children inherit + the appenders of their ancestors by default. If this variable is + set to false then the appenders found in the + ancestors of this logger are not used. However, the children + of this logger will inherit its appenders, unless the children + have their additivity flag set to false too. See + the user manual for more details. + + + + + + Lock to protect AppenderAttachedImpl variable m_appenderAttachedImpl + + + + + Gets or sets the parent logger in the hierarchy. + + + The parent logger in the hierarchy. + + + + Part of the Composite pattern that makes the hierarchy. + The hierarchy is parent linked rather than child linked. + + + + + + Gets or sets a value indicating if child loggers inherit their parent's appenders. + + + true if child loggers inherit their parent's appenders. + + + + Additivity is set to true by default, that is children inherit + the appenders of their ancestors by default. If this variable is + set to false then the appenders found in the + ancestors of this logger are not used. However, the children + of this logger will inherit its appenders, unless the children + have their additivity flag set to false too. See + the user manual for more details. + + + + + + Gets the effective level for this logger. + + The nearest level in the logger hierarchy. + + + Starting from this logger, searches the logger hierarchy for a + non-null level and returns it. Otherwise, returns the level of the + root logger. + + The Logger class is designed so that this method executes as + quickly as possible. + + + + + Gets or sets the where this + Logger instance is attached to. + + The hierarchy that this logger belongs to. + + + This logger must be attached to a single . + + + + + + Gets or sets the assigned , if any, for this Logger. + + + The of this logger. + + + + The assigned can be null. + + + + + + Get the appenders contained in this logger as an + . + + A collection of the appenders in this logger + + + Get the appenders contained in this logger as an + . If no appenders + can be found, then a is returned. + + + + + + Gets the logger name. + + + The name of the logger. + + + + The name of this logger + + + + + + Gets the where this + Logger instance is attached to. + + + The that this logger belongs to. + + + + Gets the where this + Logger instance is attached to. + + + + + + Construct a new Logger + + the name of the logger + + + Initializes a new instance of the class + with the specified name. + + + + + + Delegate used to handle logger creation event notifications. + + The in which the has been created. + The event args that hold the instance that has been created. + + + Delegate used to handle logger creation event notifications. + + + + + + Provides data for the event. + + + + A event is raised every time a + is created. + + + + + + The created + + + + + Constructor + + The that has been created. + + + Initializes a new instance of the event argument + class,with the specified . + + + + + + Gets the that has been created. + + + The that has been created. + + + + The that has been created. + + + + + + Hierarchical organization of loggers + + + + The casual user should not have to deal with this class + directly. + + + This class is specialized in retrieving loggers by name and + also maintaining the logger hierarchy. Implements the + interface. + + + The structure of the logger hierarchy is maintained by the + method. The hierarchy is such that children + link to their parent but parents do not have any references to their + children. Moreover, loggers can be instantiated in any order, in + particular descendant before ancestor. + + + In case a descendant is created before a particular ancestor, + then it creates a provision node for the ancestor and adds itself + to the provision node. Other descendants of the same ancestor add + themselves to the previously created provision node. + + + Nicko Cadell + Gert Driesen + + + + Base implementation of + + + + Default abstract implementation of the interface. + + + Skeleton implementation of the interface. + All types can extend this type. + + + Nicko Cadell + Gert Driesen + + + + Interface implemented by logger repositories. + + + + This interface is implemented by logger repositories. e.g. + . + + + This interface is used by the + to obtain interfaces. + + + Nicko Cadell + Gert Driesen + + + + Check if the named logger exists in the repository. If so return + its reference, otherwise returns null. + + The name of the logger to lookup + The Logger object with the name specified + + + If the names logger exists it is returned, otherwise + null is returned. + + + + + + Returns all the currently defined loggers as an Array. + + All the defined loggers + + + Returns all the currently defined loggers as an Array. + + + + + + Returns a named logger instance + + The name of the logger to retrieve + The logger object with the name specified + + + Returns a named logger instance. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + + + Shutdown the repository + + + Shutting down a repository will safely close and remove + all appenders in all loggers including the root logger. + + + Some appenders need to be closed before the + application exists. Otherwise, pending logging events might be + lost. + + + The method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Reset the repositories configuration to a default state + + + + Reset all values contained in this instance to their + default state. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the through this repository. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Returns all the Appenders that are configured as an Array. + + All the Appenders + + + Returns all the Appenders that are configured as an Array. + + + + + + The name of the repository + + + The name of the repository + + + + The name of the repository. + + + + + + RendererMap accesses the object renderer map for this repository. + + + RendererMap accesses the object renderer map for this repository. + + + + RendererMap accesses the object renderer map for this repository. + + + The RendererMap holds a mapping between types and + objects. + + + + + + The plugin map for this repository. + + + The plugin map for this repository. + + + + The plugin map holds the instances + that have been attached to this repository. + + + + + + Get the level map for the Repository. + + + + Get the level map for the Repository. + + + The level map defines the mappings between + level names and objects in + this repository. + + + + + + The threshold for all events in this repository + + + The threshold for all events in this repository + + + + The threshold for all events in this repository. + + + + + + Flag indicates if this repository has been configured. + + + Flag indicates if this repository has been configured. + + + + Flag indicates if this repository has been configured. + + + + + + Collection of internal messages captured during the most + recent configuration process. + + + + + Event to notify that the repository has been shutdown. + + + Event to notify that the repository has been shutdown. + + + + Event raised when the repository has been shutdown. + + + + + + Event to notify that the repository has had its configuration reset. + + + Event to notify that the repository has had its configuration reset. + + + + Event raised when the repository's configuration has been + reset to default. + + + + + + Event to notify that the repository has had its configuration changed. + + + Event to notify that the repository has had its configuration changed. + + + + Event raised when the repository's configuration has been changed. + + + + + + Repository specific properties + + + Repository specific properties + + + + These properties can be specified on a repository specific basis. + + + + + + Default Constructor + + + + Initializes the repository with default (empty) properties. + + + + + + Construct the repository using specific properties + + the properties to set for this repository + + + Initializes the repository with specified properties. + + + + + + Test if logger exists + + The name of the logger to lookup + The Logger object with the name specified + + + Check if the named logger exists in the repository. If so return + its reference, otherwise returns null. + + + + + + Returns all the currently defined loggers in the repository + + All the defined loggers + + + Returns all the currently defined loggers in the repository as an Array. + + + + + + Return a new logger instance + + The name of the logger to retrieve + The logger object with the name specified + + + Return a new logger instance. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + + + + Shutdown the repository + + + + Shutdown the repository. Can be overridden in a subclass. + This base class implementation notifies the + listeners and all attached plugins of the shutdown event. + + + + + + Reset the repositories configuration to a default state + + + + Reset all values contained in this instance to their + default state. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the logEvent through this repository. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Returns all the Appenders that are configured as an Array. + + All the Appenders + + + Returns all the Appenders that are configured as an Array. + + + + + + The fully qualified type of the LoggerRepositorySkeleton class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Adds an object renderer for a specific class. + + The type that will be rendered by the renderer supplied. + The object renderer used to render the object. + + + Adds an object renderer for a specific class. + + + + + + Notify the registered listeners that the repository is shutting down + + Empty EventArgs + + + Notify any listeners that this repository is shutting down. + + + + + + Notify the registered listeners that the repository has had its configuration reset + + Empty EventArgs + + + Notify any listeners that this repository's configuration has been reset. + + + + + + Notify the registered listeners that the repository has had its configuration changed + + Empty EventArgs + + + Notify any listeners that this repository's configuration has changed. + + + + + + Raise a configuration changed event on this repository + + EventArgs.Empty + + + Applications that programmatically change the configuration of the repository should + raise this event notification to notify listeners. + + + + + + Flushes all configured Appenders that implement . + + The maximum time in milliseconds to wait for logging events from asycnhronous appenders to be flushed, + or to wait indefinitely. + True if all logging events were flushed successfully, else false. + + + + The name of the repository + + + The string name of the repository + + + + The name of this repository. The name is + used to store and lookup the repositories + stored by the . + + + + + + The threshold for all events in this repository + + + The threshold for all events in this repository + + + + The threshold for all events in this repository + + + + + + RendererMap accesses the object renderer map for this repository. + + + RendererMap accesses the object renderer map for this repository. + + + + RendererMap accesses the object renderer map for this repository. + + + The RendererMap holds a mapping between types and + objects. + + + + + + The plugin map for this repository. + + + The plugin map for this repository. + + + + The plugin map holds the instances + that have been attached to this repository. + + + + + + Get the level map for the Repository. + + + + Get the level map for the Repository. + + + The level map defines the mappings between + level names and objects in + this repository. + + + + + + Flag indicates if this repository has been configured. + + + Flag indicates if this repository has been configured. + + + + Flag indicates if this repository has been configured. + + + + + + Contains a list of internal messages captures during the + last configuration. + + + + + Event to notify that the repository has been shutdown. + + + Event to notify that the repository has been shutdown. + + + + Event raised when the repository has been shutdown. + + + + + + Event to notify that the repository has had its configuration reset. + + + Event to notify that the repository has had its configuration reset. + + + + Event raised when the repository's configuration has been + reset to default. + + + + + + Event to notify that the repository has had its configuration changed. + + + Event to notify that the repository has had its configuration changed. + + + + Event raised when the repository's configuration has been changed. + + + + + + Repository specific properties + + + Repository specific properties + + + These properties can be specified on a repository specific basis + + + + + Basic Configurator interface for repositories + + + + Interface used by basic configurator to configure a + with a default . + + + A should implement this interface to support + configuration by the . + + + Nicko Cadell + Gert Driesen + + + + Initialize the repository using the specified appender + + the appender to use to log all logging events + + + Configure the repository to route all logging events to the + specified appender. + + + + + + Initialize the repository using the specified appenders + + the appenders to use to log all logging events + + + Configure the repository to route all logging events to the + specified appenders. + + + + + + Configure repository using XML + + + + Interface used by Xml configurator to configure a . + + + A should implement this interface to support + configuration by the . + + + Nicko Cadell + Gert Driesen + + + + Initialize the repository using the specified config + + the element containing the root of the config + + + The schema for the XML configuration data is defined by + the implementation. + + + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Construct with properties + + The properties to pass to this repository. + + + Initializes a new instance of the class. + + + + + + Construct with a logger factory + + The factory to use to create new logger instances. + + + Initializes a new instance of the class with + the specified . + + + + + + Construct with properties and a logger factory + + The properties to pass to this repository. + The factory to use to create new logger instances. + + + Initializes a new instance of the class with + the specified . + + + + + + Test if a logger exists + + The name of the logger to lookup + The Logger object with the name specified + + + Check if the named logger exists in the hierarchy. If so return + its reference, otherwise returns null. + + + + + + Returns all the currently defined loggers in the hierarchy as an Array + + All the defined loggers + + + Returns all the currently defined loggers in the hierarchy as an Array. + The root logger is not included in the returned + enumeration. + + + + + + Return a new logger instance named as the first parameter using + the default factory. + + + + Return a new logger instance named as the first parameter using + the default factory. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + The name of the logger to retrieve + The logger object with the name specified + + + + Shutting down a hierarchy will safely close and remove + all appenders in all loggers including the root logger. + + + + Shutting down a hierarchy will safely close and remove + all appenders in all loggers including the root logger. + + + Some appenders need to be closed before the + application exists. Otherwise, pending logging events might be + lost. + + + The Shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Reset all values contained in this hierarchy instance to their default. + + + + Reset all values contained in this hierarchy instance to their + default. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the logEvent through this hierarchy. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Returns all the Appenders that are currently configured + + An array containing all the currently configured appenders + + + Returns all the instances that are currently configured. + All the loggers are searched for appenders. The appenders may also be containers + for appenders and these are also searched for additional loggers. + + + The list returned is unordered but does not contain duplicates. + + + + + + Collect the appenders from an . + The appender may also be a container. + + + + + + + Collect the appenders from an container + + + + + + + Initialize the log4net system using the specified appender + + the appender to use to log all logging events + + + + Initialize the log4net system using the specified appenders + + the appenders to use to log all logging events + + + + Initialize the log4net system using the specified appenders + + the appenders to use to log all logging events + + + This method provides the same functionality as the + method implemented + on this object, but it is protected and therefore can be called by subclasses. + + + + + + Initialize the log4net system using the specified config + + the element containing the root of the config + + + + Initialize the log4net system using the specified config + + the element containing the root of the config + + + This method provides the same functionality as the + method implemented + on this object, but it is protected and therefore can be called by subclasses. + + + + + + Test if this hierarchy is disabled for the specified . + + The level to check against. + + true if the repository is disabled for the level argument, false otherwise. + + + + If this hierarchy has not been configured then this method will + always return true. + + + This method will return true if this repository is + disabled for level object passed as parameter and + false otherwise. + + + See also the property. + + + + + + Clear all logger definitions from the internal hashtable + + + + This call will clear all logger definitions from the internal + hashtable. Invoking this method will irrevocably mess up the + logger hierarchy. + + + You should really know what you are doing before + invoking this method. + + + + + + Return a new logger instance named as the first parameter using + . + + The name of the logger to retrieve + The factory that will make the new logger instance + The logger object with the name specified + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated by the + parameter and linked with its existing + ancestors as well as children. + + + + + + Sends a logger creation event to all registered listeners + + The newly created logger + + Raises the logger creation event. + + + + + Updates all the parents of the specified logger + + The logger to update the parents for + + + This method loops through all the potential parents of + . There 3 possible cases: + + + + No entry for the potential parent of exists + + We create a ProvisionNode for this potential + parent and insert in that provision node. + + + + The entry is of type Logger for the potential parent. + + The entry is 's nearest existing parent. We + update 's parent field with this entry. We also break from + he loop because updating our parent's parent is our parent's + responsibility. + + + + The entry is of type ProvisionNode for this potential parent. + + We add to the list of children for this + potential parent. + + + + + + + + Replace a with a in the hierarchy. + + + + + + We update the links for all the children that placed themselves + in the provision node 'pn'. The second argument 'log' is a + reference for the newly created Logger, parent of all the + children in 'pn'. + + + We loop on all the children 'c' in 'pn'. + + + If the child 'c' has been already linked to a child of + 'log' then there is no need to update 'c'. + + + Otherwise, we set log's parent field to c's parent and set + c's parent field to log. + + + + + + Define or redefine a Level using the values in the argument + + the level values + + + Define or redefine a Level using the values in the argument + + + Supports setting levels via the configuration file. + + + + + + Set a Property using the values in the argument + + the property value + + + Set a Property using the values in the argument. + + + Supports setting property values via the configuration file. + + + + + + The fully qualified type of the Hierarchy class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Event used to notify that a logger has been created. + + + + Event raised when a logger is created. + + + + + + Has no appender warning been emitted + + + + Flag to indicate if we have already issued a warning + about not having an appender warning. + + + + + + Get the root of this hierarchy + + + + Get the root of this hierarchy. + + + + + + Gets or sets the default instance. + + The default + + + The logger factory is used to create logger instances. + + + + + + A class to hold the value, name and display name for a level + + + + A class to hold the value, name and display name for a level + + + + + + Override Object.ToString to return sensible debug info + + string info about this object + + + + Value of the level + + + + If the value is not set (defaults to -1) the value will be looked + up for the current level with the same name. + + + + + + Name of the level + + + The name of the level + + + + The name of the level. + + + + + + Display name for the level + + + The display name of the level + + + + The display name of the level. + + + + + + Used internally to accelerate hash table searches. + + + + Internal class used to improve performance of + string keyed hashtables. + + + The hashcode of the string is cached for reuse. + The string is stored as an interned value. + When comparing two objects for equality + the reference equality of the interned strings is compared. + + + Nicko Cadell + Gert Driesen + + + + Construct key with string name + + + + Initializes a new instance of the class + with the specified name. + + + Stores the hashcode of the string and interns + the string key to optimize comparisons. + + + The Compact Framework 1.0 the + method does not work. On the Compact Framework + the string keys are not interned nor are they + compared by reference. + + + The name of the logger. + + + + Returns a hash code for the current instance. + + A hash code for the current instance. + + + Returns the cached hashcode. + + + + + + Determines whether two instances + are equal. + + The to compare with the current . + + true if the specified is equal to the current ; otherwise, false. + + + + Compares the references of the interned strings. + + + + + + Provision nodes are used where no logger instance has been specified + + + + instances are used in the + when there is no specified + for that node. + + + A provision node holds a list of child loggers on behalf of + a logger that does not exist. + + + Nicko Cadell + Gert Driesen + + + + Create a new provision node with child node + + A child logger to add to this node. + + + Initializes a new instance of the class + with the specified child logger. + + + + + + The sits at the root of the logger hierarchy tree. + + + + The is a regular except + that it provides several guarantees. + + + First, it cannot be assigned a null + level. Second, since the root logger cannot have a parent, the + property always returns the value of the + level field without walking the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Construct a + + The level to assign to the root logger. + + + Initializes a new instance of the class with + the specified logging level. + + + The root logger names itself as "root". However, the root + logger cannot be retrieved by name. + + + + + + The fully qualified type of the RootLogger class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the assigned level value without walking the logger hierarchy. + + The assigned level value without walking the logger hierarchy. + + + Because the root logger cannot have a parent and its level + must not be null this property just returns the + value of . + + + + + + Gets or sets the assigned for the root logger. + + + The of the root logger. + + + + Setting the level of the root logger to a null reference + may have catastrophic results. We prevent this here. + + + + + + Initializes the log4net environment using an XML DOM. + + + + Configures a using an XML DOM. + + + Nicko Cadell + Gert Driesen + + + + Construct the configurator for a hierarchy + + The hierarchy to build. + + + Initializes a new instance of the class + with the specified . + + + + + + Configure the hierarchy by parsing a DOM tree of XML elements. + + The root element to parse. + + + Configure the hierarchy by parsing a DOM tree of XML elements. + + + + + + Parse appenders by IDREF. + + The appender ref element. + The instance of the appender that the ref refers to. + + + Parse an XML element that represents an appender and return + the appender. + + + + + + Parses an appender element. + + The appender element. + The appender instance or null when parsing failed. + + + Parse an XML element that represents an appender and return + the appender instance. + + + + + + Parses a logger element. + + The logger element. + + + Parse an XML element that represents a logger. + + + + + + Parses the root logger element. + + The root element. + + + Parse an XML element that represents the root logger. + + + + + + Parses the children of a logger element. + + The category element. + The logger instance. + Flag to indicate if the logger is the root logger. + + + Parse the child elements of a <logger> element. + + + + + + Parses an object renderer. + + The renderer element. + + + Parse an XML element that represents a renderer. + + + + + + Parses a level element. + + The level element. + The logger object to set the level on. + Flag to indicate if the logger is the root logger. + + + Parse an XML element that represents a level. + + + + + + Sets a parameter on an object. + + The parameter element. + The object to set the parameter on. + + The parameter name must correspond to a writable property + on the object. The value of the parameter is a string, + therefore this function will attempt to set a string + property first. If unable to set a string property it + will inspect the property and its argument type. It will + attempt to call a static method called Parse on the + type of the property. This method will take a single + string argument and return a value that can be used to + set the property. + + + + + Test if an element has no attributes or child elements + + the element to inspect + true if the element has any attributes or child elements, false otherwise + + + + Test if a is constructible with Activator.CreateInstance. + + the type to inspect + true if the type is creatable using a default constructor, false otherwise + + + + Look for a method on the that matches the supplied + + the type that has the method + the name of the method + the method info found + + + The method must be a public instance method on the . + The method must be named or "Add" followed by . + The method must take a single parameter. + + + + + + Converts a string value to a target type. + + The type of object to convert the string to. + The string value to use as the value of the object. + + + An object of type with value or + null when the conversion could not be performed. + + + + + + Creates an object as specified in XML. + + The XML element that contains the definition of the object. + The object type to use if not explicitly specified. + The type that the returned object must be or must inherit from. + The object or null + + + Parse an XML element and create an object instance based on the configuration + data. + + + The type of the instance may be specified in the XML. If not + specified then the is used + as the type. However the type is specified it must support the + type. + + + + + + key: appenderName, value: appender. + + + + + The Hierarchy being configured. + + + + + The fully qualified type of the XmlHierarchyConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + + + + + + + + + + + + + + + + + Delegate used to handle logger repository shutdown event notifications + + The that is shutting down. + Empty event args + + + Delegate used to handle logger repository shutdown event notifications. + + + + + + Delegate used to handle logger repository configuration reset event notifications + + The that has had its configuration reset. + Empty event args + + + Delegate used to handle logger repository configuration reset event notifications. + + + + + + Delegate used to handle event notifications for logger repository configuration changes. + + The that has had its configuration changed. + Empty event arguments. + + + Delegate used to handle event notifications for logger repository configuration changes. + + + + + + Write the name of the current AppDomain to the output + + + + Write the name of the current AppDomain to the output writer + + + Nicko Cadell + + + + Write the name of the current AppDomain to the output + + the writer to write to + null, state is not set + + + Writes name of the current AppDomain to the output . + + + + + + AppSetting pattern converter + + + + This pattern converter reads appSettings from the application configuration file. + + + If the is specified then that will be used to + lookup a single appSettings value. If no is specified + then all appSettings will be dumped as a list of key value pairs. + + + A typical use is to specify a base directory for log files, e.g. + + + + + ... + + + ]]> + + + + + + + Write the property value to the output + + that will receive the formatted result. + null, state is not set + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + Write the current date to the output + + + + Date pattern converter, uses a to format + the current date and time to the writer as a string. + + + The value of the determines + the formatting of the date. The following values are allowed: + + + Option value + Output + + + ISO8601 + + Uses the formatter. + Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. + + + + DATE + + Uses the formatter. + Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". + + + + ABSOLUTE + + Uses the formatter. + Formats using the "HH:mm:ss,fff" for example, "15:49:37,459". + + + + other + + Any other pattern string uses the formatter. + This formatter passes the pattern string to the + method. + For details on valid patterns see + DateTimeFormatInfo Class. + + + + + + The date and time is in the local time zone and is rendered in that zone. + To output the time in Universal time see . + + + Nicko Cadell + + + + The used to render the date to a string + + + + The used to render the date to a string + + + + + + Initialize the converter options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the current date to the output + + that will receive the formatted result. + null, state is not set + + + Pass the current date and time to the + for it to render it to the writer. + + + The date and time passed is in the local time zone. + + + + + + The fully qualified type of the DatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write an folder path to the output + + + + Write an special path environment folder path to the output writer. + The value of the determines + the name of the variable to output. + should be a value in the enumeration. + + + Ron Grabowski + + + + Write an special path environment folder path to the output + + the writer to write to + null, state is not set + + + Writes the special path environment folder path to the output . + The name of the special path environment folder path to output must be set + using the + property. + + + + + + The fully qualified type of the EnvironmentFolderPathPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write an environment variable to the output + + + + Write an environment variable to the output writer. + The value of the determines + the name of the variable to output. + + + Nicko Cadell + + + + Write an environment variable to the output + + the writer to write to + null, state is not set + + + Writes the environment variable to the output . + The name of the environment variable to output must be set + using the + property. + + + + + + The fully qualified type of the EnvironmentPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the current thread identity to the output + + + + Write the current thread identity to the output writer + + + Nicko Cadell + + + + Write the current thread identity to the output + + the writer to write to + null, state is not set + + + Writes the current thread identity to the output . + + + + + + The fully qualified type of the IdentityPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Pattern converter for literal string instances in the pattern + + + + Writes the literal string value specified in the + property to + the output. + + + Nicko Cadell + + + + Set the next converter in the chain + + The next pattern converter in the chain + The next pattern converter + + + Special case the building of the pattern converter chain + for instances. Two adjacent + literals in the pattern can be represented by a single combined + pattern converter. This implementation detects when a + is added to the chain + after this converter and combines its value with this converter's + literal value. + + + + + + Write the literal to the output + + the writer to write to + null, not set + + + Override the formatting behavior to ignore the FormattingInfo + because we have a literal instead. + + + Writes the value of + to the output . + + + + + + Convert this pattern into the rendered message + + that will receive the formatted result. + null, not set + + + This method is not used. + + + + + + Writes a newline to the output + + + + Writes the system dependent line terminator to the output. + This behavior can be overridden by setting the : + + + + Option Value + Output + + + DOS + DOS or Windows line terminator "\r\n" + + + UNIX + UNIX line terminator "\n" + + + + Nicko Cadell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the current process ID to the output + + + + Write the current process ID to the output writer + + + Nicko Cadell + + + + Write the current process ID to the output + + the writer to write to + null, state is not set + + + Write the current process ID to the output . + + + + + + The fully qualified type of the ProcessIdPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Property pattern converter + + + + This pattern converter reads the thread and global properties. + The thread properties take priority over global properties. + See for details of the + thread properties. See for + details of the global properties. + + + If the is specified then that will be used to + lookup a single property. If no is specified + then all properties will be dumped as a list of key value pairs. + + + Nicko Cadell + + + + Write the property value to the output + + that will receive the formatted result. + null, state is not set + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + A Pattern converter that generates a string of random characters + + + + The converter generates a string of random characters. By default + the string is length 4. This can be changed by setting the + to the string value of the length required. + + + The random characters in the string are limited to uppercase letters + and numbers only. + + + The random number generator used by this class is not cryptographically secure. + + + Nicko Cadell + + + + Shared random number generator + + + + + Length of random string to generate. Default length 4. + + + + + Initialize the converter options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write a randoim string to the output + + the writer to write to + null, state is not set + + + Write a randoim string to the output . + + + + + + The fully qualified type of the RandomStringPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the current threads username to the output + + + + Write the current threads username to the output writer + + + Nicko Cadell + + + + Write the current threads username to the output + + the writer to write to + null, state is not set + + + Write the current threads username to the output . + + + + + + The fully qualified type of the UserNamePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the UTC date time to the output + + + + Date pattern converter, uses a to format + the current date and time in Universal time. + + + See the for details on the date pattern syntax. + + + + Nicko Cadell + + + + Write the current date and time to the output + + that will receive the formatted result. + null, state is not set + + + Pass the current date and time to the + for it to render it to the writer. + + + The date is in Universal time when it is rendered. + + + + + + + The fully qualified type of the UtcDatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Type converter for Boolean. + + + + Supports conversion from string to bool type. + + + + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Convert the source object to the type supported by this object + + the object to convert + the converted object + + + Uses the method to convert the + argument to a . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Exception base type for conversion errors. + + + + This type extends . It + does not add any new functionality but does differentiate the + type of exception being thrown. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + A message to include with the exception. + + + Initializes a new instance of the class + with the specified message. + + + + + + Constructor + + A message to include with the exception. + A nested exception to include. + + + Initializes a new instance of the class + with the specified message and inner exception. + + + + + + Serialization constructor + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Creates a new instance of the class. + + The conversion destination type. + The value to convert. + An instance of the . + + + Creates a new instance of the class. + + + + + + Creates a new instance of the class. + + The conversion destination type. + The value to convert. + A nested exception to include. + An instance of the . + + + Creates a new instance of the class. + + + + + + Register of type converters for specific types. + + + + Maintains a registry of type converters used to convert between + types. + + + Use the and + methods to register new converters. + The and methods + lookup appropriate converters to use. + + + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + Initializes a new instance of the class. + + + + + Static constructor. + + + + This constructor defines the intrinsic type converters. + + + + + + Adds a converter for a specific type. + + The type being converted to. + The type converter to use to convert to the destination type. + + + Adds a converter instance for a specific type. + + + + + + Adds a converter for a specific type. + + The type being converted to. + The type of the type converter to use to convert to the destination type. + + + Adds a converter for a specific type. + + + + + + Gets the type converter to use to convert values to the destination type. + + The type being converted from. + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + Gets the type converter to use to convert values to the destination type. + + + + + + Gets the type converter to use to convert values to the destination type. + + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + Gets the type converter to use to convert values to the destination type. + + + + + + Lookups the type converter to use as specified by the attributes on the + destination type. + + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + + Creates the instance of the type converter. + + The type of the type converter. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + The type specified for the type converter must implement + the or interfaces + and must have a public default (no argument) constructor. + + + + + + The fully qualified type of the ConverterRegistry class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Mapping from to type converter. + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to an encoding + the encoding + + + Uses the method to + convert the argument to an . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Interface supported by type converters + + + + This interface supports conversion from a single type to arbitrary types. + See . + + + Nicko Cadell + + + + Returns whether this converter can convert the object to the specified type + + A Type that represents the type you want to convert to + true if the conversion is possible + + + Test if the type supported by this converter can be converted to the + . + + + + + + Converts the given value object to the specified type, using the arguments + + the object to convert + The Type to convert the value parameter to + the converted object + + + Converts the (which must be of the type supported + by this converter) to the specified.. + + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to an IPAddress + the IPAddress + + + Uses the method to convert the + argument to an . + If that fails then the string is resolved as a DNS hostname. + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Valid characters in an IPv4 or IPv6 address string. (Does not support subnets) + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + The string is used as the + of the . + + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a PatternLayout + the PatternLayout + + + Creates and returns a new using + the as the + . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Convert between string and + + + + Supports conversion from string to type, + and from a type to a string. + + + The string is used as the + of the . + + + + + + Nicko Cadell + + + + Can the target type be converted to the type supported by this object + + A that represents the type you want to convert to + true if the conversion is possible + + + Returns true if the is + assignable from a type. + + + + + + Converts the given value object to the specified type, using the arguments + + the object to convert + The Type to convert the value parameter to + the converted object + + + Uses the method to convert the + argument to a . + + + + The object cannot be converted to the + . To check for this condition use the + method. + + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a PatternString + the PatternString + + + Creates and returns a new using + the as the + . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a Type + the Type + + + Uses the method to convert the + argument to a . + Additional effort is made to locate partially specified types + by searching the loaded assemblies. + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Attribute used to associate a type converter + + + + Class and Interface level attribute that specifies a type converter + to use with the associated type. + + + To associate a type converter with a target type apply a + TypeConverterAttribute to the target type. Specify the + type of the type converter on the attribute. + + + Nicko Cadell + Gert Driesen + + + + The string type name of the type converter + + + + + Default constructor + + + + Default constructor + + + + + + Create a new type converter attribute for the specified type name + + The string type name of the type converter + + + The type specified must implement the + or the interfaces. + + + + + + Create a new type converter attribute for the specified type + + The type of the type converter + + + The type specified must implement the + or the interfaces. + + + + + + The string type name of the type converter + + + The string type name of the type converter + + + + The type specified must implement the + or the interfaces. + + + + + + A straightforward implementation of the interface. + + + + This is the default implementation of the + interface. Implementors of the interface + should aggregate an instance of this type. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Append on on all attached appenders. + + The event being logged. + The number of appenders called. + + + Calls the method on all + attached appenders. + + + + + + Append on on all attached appenders. + + The array of events being logged. + The number of appenders called. + + + Calls the method on all + attached appenders. + + + + + + Calls the DoAppende method on the with + the objects supplied. + + The appender + The events + + + If the supports the + interface then the will be passed + through using that interface. Otherwise the + objects in the array will be passed one at a time. + + + + + + Attaches an appender. + + The appender to add. + + + If the appender is already in the list it won't be added again. + + + + + + Gets an attached appender with the specified name. + + The name of the appender to get. + + The appender with the name specified, or null if no appender with the + specified name is found. + + + + Lookup an attached appender by name. + + + + + + Removes all attached appenders. + + + + Removes and closes all attached appenders + + + + + + Removes the specified appender from the list of attached appenders. + + The appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + List of appenders + + + + + Array of appenders, used to cache the m_appenderList + + + + + The fully qualified type of the AppenderAttachedImpl class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets all attached appenders. + + + A collection of attached appenders, or null if there + are no attached appenders. + + + + The read only collection of all currently attached appenders. + + + + + + This class aggregates several PropertiesDictionary collections together. + + + + Provides a dictionary style lookup over an ordered list of + collections. + + + Nicko Cadell + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Add a Properties Dictionary to this composite collection + + the properties to add + + + Properties dictionaries added first take precedence over dictionaries added + later. + + + + + + Flatten this composite collection into a single properties dictionary + + the flattened dictionary + + + Reduces the collection of ordered dictionaries to a single dictionary + containing the resultant values for the keys. + + + + + + Gets the value of a property + + + The value for the property with the specified key + + + + Looks up the value for the specified. + The collections are searched + in the order in which they were added to this collection. The value + returned is the value held by the first collection that contains + the specified key. + + + If none of the collections contain the specified key then + null is returned. + + + + + + Base class for Context Properties implementations + + + + This class defines a basic property get set accessor + + + Nicko Cadell + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Gets or sets the value of a property + + + + + + Wrapper class used to map converter names to converter types + + + + Pattern converter info class used during configuration by custom + PatternString and PatternLayer converters. + + + + + + default constructor + + + + + + + + + + + Gets or sets the name of the conversion pattern + + + + The name of the pattern in the format string + + + + + + Gets or sets the type of the converter + + + + The value specified must extend the + type. + + + + + + + + + + + Subclass of that maintains a count of + the number of bytes written. + + + + This writer counts the number of bytes written. + + + Nicko Cadell + Gert Driesen + + + + that does not leak exceptions + + + + does not throw exceptions when things go wrong. + Instead, it delegates error handling to its . + + + Nicko Cadell + Gert Driesen + + + + Adapter that extends and forwards all + messages to an instance of . + + + + Adapter that extends and forwards all + messages to an instance of . + + + Nicko Cadell + + + + The writer to forward messages to + + + + + Create an instance of that forwards all + messages to a . + + The to forward to + + + Create an instance of that forwards all + messages to a . + + + + + + Closes the writer and releases any system resources associated with the writer + + + + + + + + + Dispose this writer + + flag indicating if we are being disposed + + + Dispose this writer + + + + + + Flushes any buffered output + + + + Clears all buffers for the writer and causes any buffered data to be written + to the underlying device + + + + + + Writes a character to the wrapped TextWriter + + the value to write to the TextWriter + + + Writes a character to the wrapped TextWriter + + + + + + Writes a character buffer to the wrapped TextWriter + + the data buffer + the start index + the number of characters to write + + + Writes a character buffer to the wrapped TextWriter + + + + + + Writes a string to the wrapped TextWriter + + the value to write to the TextWriter + + + Writes a string to the wrapped TextWriter + + + + + + Gets or sets the underlying . + + + The underlying . + + + + Gets or sets the underlying . + + + + + + The Encoding in which the output is written + + + The + + + + The Encoding in which the output is written + + + + + + Gets an object that controls formatting + + + The format provider + + + + Gets an object that controls formatting + + + + + + Gets or sets the line terminator string used by the TextWriter + + + The line terminator to use + + + + Gets or sets the line terminator string used by the TextWriter + + + + + + Constructor + + the writer to actually write to + the error handler to report error to + + + Create a new QuietTextWriter using a writer and error handler + + + + + + Writes a character to the underlying writer + + the char to write + + + Writes a character to the underlying writer + + + + + + Writes a buffer to the underlying writer + + the buffer to write + the start index to write from + the number of characters to write + + + Writes a buffer to the underlying writer + + + + + + Writes a string to the output. + + The string data to write to the output. + + + Writes a string to the output. + + + + + + Closes the underlying output writer. + + + + Closes the underlying output writer. + + + + + + The error handler instance to pass all errors to + + + + + Flag to indicate if this writer is closed + + + + + Gets or sets the error handler that all errors are passed to. + + + The error handler that all errors are passed to. + + + + Gets or sets the error handler that all errors are passed to. + + + + + + Gets a value indicating whether this writer is closed. + + + true if this writer is closed, otherwise false. + + + + Gets a value indicating whether this writer is closed. + + + + + + Constructor + + The to actually write to. + The to report errors to. + + + Creates a new instance of the class + with the specified and . + + + + + + Writes a character to the underlying writer and counts the number of bytes written. + + the char to write + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Writes a buffer to the underlying writer and counts the number of bytes written. + + the buffer to write + the start index to write from + the number of characters to write + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Writes a string to the output and counts the number of bytes written. + + The string data to write to the output. + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Total number of bytes written. + + + + + Gets or sets the total number of bytes written. + + + The total number of bytes written. + + + + Gets or sets the total number of bytes written. + + + + + + A fixed size rolling buffer of logging events. + + + + An array backed fixed size leaky bucket. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The maximum number of logging events in the buffer. + + + Initializes a new instance of the class with + the specified maximum number of buffered logging events. + + + The argument is not a positive integer. + + + + Appends a to the buffer. + + The event to append to the buffer. + The event discarded from the buffer, if the buffer is full, otherwise null. + + + Append an event to the buffer. If the buffer still contains free space then + null is returned. If the buffer is full then an event will be dropped + to make space for the new event, the event dropped is returned. + + + + + + Get and remove the oldest event in the buffer. + + The oldest logging event in the buffer + + + Gets the oldest (first) logging event in the buffer and removes it + from the buffer. + + + + + + Pops all the logging events from the buffer into an array. + + An array of all the logging events in the buffer. + + + Get all the events in the buffer and clear the buffer. + + + + + + Clear the buffer + + + + Clear the buffer of all events. The events in the buffer are lost. + + + + + + Gets the th oldest event currently in the buffer. + + The th oldest event currently in the buffer. + + + If is outside the range 0 to the number of events + currently in the buffer, then null is returned. + + + + + + Gets the maximum size of the buffer. + + The maximum size of the buffer. + + + Gets the maximum size of the buffer + + + + + + Gets the number of logging events in the buffer. + + The number of logging events in the buffer. + + + This number is guaranteed to be in the range 0 to + (inclusive). + + + + + + An always empty . + + + + A singleton implementation of the + interface that always represents an empty collection. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Copies the elements of the to an + , starting at a particular Array index. + + The one-dimensional + that is the destination of the elements copied from + . The Array must have zero-based + indexing. + The zero-based index in array at which + copying begins. + + + As the collection is empty no values are copied into the array. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + The singleton instance of the empty collection. + + + + + Gets the singleton instance of the empty collection. + + The singleton instance of the empty collection. + + + Gets the singleton instance of the empty collection. + + + + + + Gets a value indicating if access to the is synchronized (thread-safe). + + + true if access to the is synchronized (thread-safe); otherwise, false. + + + + For the this property is always true. + + + + + + Gets the number of elements contained in the . + + + The number of elements contained in the . + + + + As the collection is empty the is always 0. + + + + + + Gets an object that can be used to synchronize access to the . + + + An object that can be used to synchronize access to the . + + + + As the collection is empty and thread safe and synchronized this instance is also + the object. + + + + + + An always empty . + + + + A singleton implementation of the + interface that always represents an empty collection. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Copies the elements of the to an + , starting at a particular Array index. + + The one-dimensional + that is the destination of the elements copied from + . The Array must have zero-based + indexing. + The zero-based index in array at which + copying begins. + + + As the collection is empty no values are copied into the array. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + Adds an element with the provided key and value to the + . + + The to use as the key of the element to add. + The to use as the value of the element to add. + + + As the collection is empty no new values can be added. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + Removes all elements from the . + + + + As the collection is empty no values can be removed. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + Determines whether the contains an element + with the specified key. + + The key to locate in the . + false + + + As the collection is empty the method always returns false. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + Removes the element with the specified key from the . + + The key of the element to remove. + + + As the collection is empty no values can be removed. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + The singleton instance of the empty dictionary. + + + + + Gets the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets a value indicating if access to the is synchronized (thread-safe). + + + true if access to the is synchronized (thread-safe); otherwise, false. + + + + For the this property is always true. + + + + + + Gets the number of elements contained in the + + + The number of elements contained in the . + + + + As the collection is empty the is always 0. + + + + + + Gets an object that can be used to synchronize access to the . + + + An object that can be used to synchronize access to the . + + + + As the collection is empty and thread safe and synchronized this instance is also + the object. + + + + + + Gets a value indicating whether the has a fixed size. + + true + + + As the collection is empty always returns true. + + + + + + Gets a value indicating whether the is read-only. + + true + + + As the collection is empty always returns true. + + + + + + Gets an containing the keys of the . + + An containing the keys of the . + + + As the collection is empty a is returned. + + + + + + Gets an containing the values of the . + + An containing the values of the . + + + As the collection is empty a is returned. + + + + + + Gets or sets the element with the specified key. + + The key of the element to get or set. + null + + + As the collection is empty no values can be looked up or stored. + If the index getter is called then null is returned. + A is thrown if the setter is called. + + + This dictionary is always empty and cannot be modified. + + + + Contain the information obtained when parsing formatting modifiers + in conversion modifiers. + + + + Holds the formatting information extracted from the format string by + the . This is used by the + objects when rendering the output. + + + Nicko Cadell + Gert Driesen + + + + Defaut Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + + + Initializes a new instance of the class + with the specified parameters. + + + + + + Gets or sets the minimum value. + + + The minimum value. + + + + Gets or sets the minimum value. + + + + + + Gets or sets the maximum value. + + + The maximum value. + + + + Gets or sets the maximum value. + + + + + + Gets or sets a flag indicating whether left align is enabled + or not. + + + A flag indicating whether left align is enabled or not. + + + + Gets or sets a flag indicating whether left align is enabled or not. + + + + + + Implementation of Properties collection for the + + + + This class implements a properties collection that is thread safe and supports both + storing properties and capturing a read only copy of the current propertied. + + + This class is optimized to the scenario where the properties are read frequently + and are modified infrequently. + + + Nicko Cadell + + + + The read only copy of the properties. + + + + This variable is declared volatile to prevent the compiler and JIT from + reordering reads and writes of this thread performed on different threads. + + + + + + Lock object used to synchronize updates within this instance + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Remove a property from the global context + + the key for the entry to remove + + + Removing an entry from the global context properties is relatively expensive compared + with reading a value. + + + + + + Clear the global context properties + + + + + Get a readonly immutable copy of the properties + + the current global context properties + + + This implementation is fast because the GlobalContextProperties class + stores a readonly copy of the properties. + + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Reading the value for a key is faster than setting the value. + When the value is written a new read only copy of + the properties is created. + + + + + + The static class ILogExtensions contains a set of widely used + methods that ease the interaction with the ILog interface implementations. + + + + This class contains methods for logging at different levels and checks the + properties for determining if those logging levels are enabled in the current + configuration. + + + Simple example of logging messages + + using log4net.Util; + + ILog log = LogManager.GetLogger("application-log"); + + log.InfoExt("Application Start"); + log.DebugExt("This is a debug message"); + + + + + + The fully qualified type of the Logger class. + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is WARN + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is WARN enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is WARN + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is WARN enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is ERROR + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is ERROR enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is ERROR + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is ERROR enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is FATAL + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is FATAL enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is FATAL + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is FATAL enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Manages a mapping from levels to + + + + Manages an ordered mapping from instances + to subclasses. + + + Nicko Cadell + + + + Default constructor + + + + Initialise a new instance of . + + + + + + Add a to this mapping + + the entry to add + + + If a has previously been added + for the same then that entry will be + overwritten. + + + + + + Lookup the mapping for the specified level + + the level to lookup + the for the level or null if no mapping found + + + Lookup the value for the specified level. Finds the nearest + mapping value for the level that is equal to or less than the + specified. + + + If no mapping could be found then null is returned. + + + + + + Initialize options + + + + Caches the sorted list of in an array + + + + + + Implementation of Properties collection for the + + + + Class implements a collection of properties that is specific to each thread. + The class is not synchronized as each thread has its own . + + + This class stores its properties in a slot on the named + log4net.Util.LogicalThreadContextProperties. + + + For .NET Standard 1.3 this class uses + System.Threading.AsyncLocal rather than . + + + The requires a link time + for the + . + If the calling code does not have this permission then this context will be disabled. + It will not store any property values set on it. + + + Nicko Cadell + + + + Flag used to disable this context if we don't have permission to access the CallContext. + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Remove a property + + the key for the entry to remove + + + Remove the value for the specified from the context. + + + + + + Clear all the context properties + + + + Clear all the context properties + + + + + + Get the PropertiesDictionary stored in the LocalDataStoreSlot for this thread. + + create the dictionary if it does not exist, otherwise return null if is does not exist + the properties for this thread + + + The collection returned is only to be used on the calling thread. If the + caller needs to share the collection between different threads then the + caller must clone the collection before doings so. + + + + + + Gets the call context get data. + + The peroperties dictionary stored in the call context + + The method has a + security link demand, therfore we must put the method call in a seperate method + that we can wrap in an exception handler. + + + + + Sets the call context data. + + The properties. + + The method has a + security link demand, therfore we must put the method call in a seperate method + that we can wrap in an exception handler. + + + + + The fully qualified type of the LogicalThreadContextProperties class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Get or set the property value for the specified. + + + + + + Delegate type used for LogicalThreadContextStack's callbacks. + + + + + Implementation of Stack for the + + + + Implementation of Stack for the + + + Nicko Cadell + + + + The stack store. + + + + + The name of this within the + . + + + + + The callback used to let the register a + new instance of a . + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Clears all the contextual information held in this stack. + + + + Clears all the contextual information held in this stack. + Only call this if you think that this thread is being reused after + a previous call execution which may not have completed correctly. + You do not need to use this method if you always guarantee to call + the method of the + returned from even in exceptional circumstances, + for example by using the using(log4net.LogicalThreadContext.Stacks["NDC"].Push("Stack_Message")) + syntax. + + + + + + Removes the top context from this stack. + + The message in the context that was removed from the top of this stack. + + + Remove the top context from this stack, and return + it to the caller. If this stack is empty then an + empty string (not ) is returned. + + + + + + Pushes a new context message into this stack. + + The new context message. + + An that can be used to clean up the context stack. + + + + Pushes a new context onto this stack. An + is returned that can be used to clean up this stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.LogicalThreadContext.Stacks["NDC"].Push("Stack_Message")) + { + log.Warn("This should have an ThreadContext Stack message"); + } + + + + + + Gets the current context information for this stack. + + The current context information. + + + + Gets the current context information for this stack. + + Gets the current context information + + + Gets the current context information for this stack. + + + + + + Get a portable version of this object + + the portable instance of this object + + + Get a cross thread portable version of this object + + + + + + The number of messages in the stack + + + The current number of messages in the stack + + + + The current number of messages in the stack. That is + the number of times has been called + minus the number of times has been called. + + + + + + Gets and sets the internal stack used by this + + The internal storage stack + + + This property is provided only to support backward compatability + of the . Tytpically the internal stack should not + be modified. + + + + + + Inner class used to represent a single context frame in the stack. + + + + Inner class used to represent a single context frame in the stack. + + + + + + Constructor + + The message for this context. + The parent context in the chain. + + + Initializes a new instance of the class + with the specified message and parent context. + + + + + + Get the message. + + The message. + + + Get the message. + + + + + + Gets the full text of the context down to the root level. + + + The full text of the context down to the root level. + + + + Gets the full text of the context down to the root level. + + + + + + Struct returned from the method. + + + + This struct implements the and is designed to be used + with the pattern to remove the stack frame at the end of the scope. + + + + + + The depth to trim the stack to when this instance is disposed + + + + + The outer LogicalThreadContextStack. + + + + + Constructor + + The internal stack used by the ThreadContextStack. + The depth to return the stack to when this object is disposed. + + + Initializes a new instance of the class with + the specified stack and return depth. + + + + + + Returns the stack to the correct depth. + + + + Returns the stack to the correct depth. + + + + + + Implementation of Stacks collection for the + + + + Implementation of Stacks collection for the + + + Nicko Cadell + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + The fully qualified type of the ThreadContextStacks class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the named thread context stack + + + The named stack + + + + Gets the named thread context stack + + + + + + + + + + + + + Outputs log statements from within the log4net assembly. + + + + Log4net components cannot make log4net logging calls. However, it is + sometimes useful for the user to learn about what log4net is + doing. + + + All log4net internal debug calls go to the standard output stream + whereas internal error messages are sent to the standard error output + stream. + + + Nicko Cadell + Gert Driesen + + + + Formats Prefix, Source, and Message in the same format as the value + sent to Console.Out and Trace.Write. + + + + + + Initializes a new instance of the class. + + + + + + + + + Static constructor that initializes logging by reading + settings from the application configuration file. + + + + The log4net.Internal.Debug application setting + controls internal debugging. This setting should be set + to true to enable debugging. + + + The log4net.Internal.Quiet application setting + suppresses all internal logging including error messages. + This setting should be set to true to enable message + suppression. + + + + + + Raises the LogReceived event when an internal messages is received. + + + + + + + + + Writes log4net internal debug messages to the + standard output stream. + + + The message to log. + + + All internal debug messages are prepended with + the string "log4net: ". + + + + + + Writes log4net internal debug messages to the + standard output stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal debug messages are prepended with + the string "log4net: ". + + + + + + Writes log4net internal warning messages to the + standard error stream. + + The Type that generated this message. + The message to log. + + + All internal warning messages are prepended with + the string "log4net:WARN ". + + + + + + Writes log4net internal warning messages to the + standard error stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal warning messages are prepended with + the string "log4net:WARN ". + + + + + + Writes log4net internal error messages to the + standard error stream. + + The Type that generated this message. + The message to log. + + + All internal error messages are prepended with + the string "log4net:ERROR ". + + + + + + Writes log4net internal error messages to the + standard error stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal debug messages are prepended with + the string "log4net:ERROR ". + + + + + + Writes output to the standard output stream. + + The message to log. + + + Writes to both Console.Out and System.Diagnostics.Trace. + Note that the System.Diagnostics.Trace is not supported + on the Compact Framework. + + + If the AppDomain is not configured with a config file then + the call to System.Diagnostics.Trace may fail. This is only + an issue if you are programmatically creating your own AppDomains. + + + + + + Writes output to the standard error stream. + + The message to log. + + + Writes to both Console.Error and System.Diagnostics.Trace. + Note that the System.Diagnostics.Trace is not supported + on the Compact Framework. + + + If the AppDomain is not configured with a config file then + the call to System.Diagnostics.Trace may fail. This is only + an issue if you are programmatically creating your own AppDomains. + + + + + + Default debug level + + + + + In quietMode not even errors generate any output. + + + + + The event raised when an internal message has been received. + + + + + The Type that generated the internal message. + + + + + The DateTime stamp of when the internal message was received. + + + + + The UTC DateTime stamp of when the internal message was received. + + + + + A string indicating the severity of the internal message. + + + "log4net: ", + "log4net:ERROR ", + "log4net:WARN " + + + + + The internal log message. + + + + + The Exception related to the message. + + + Optional. Will be null if no Exception was passed. + + + + + Gets or sets a value indicating whether log4net internal logging + is enabled or disabled. + + + true if log4net internal logging is enabled, otherwise + false. + + + + When set to true, internal debug level logging will be + displayed. + + + This value can be set by setting the application setting + log4net.Internal.Debug in the application configuration + file. + + + The default value is false, i.e. debugging is + disabled. + + + + + The following example enables internal debugging using the + application configuration file : + + + + + + + + + + + + + Gets or sets a value indicating whether log4net should generate no output + from internal logging, not even for errors. + + + true if log4net should generate no output at all from internal + logging, otherwise false. + + + + When set to true will cause internal logging at all levels to be + suppressed. This means that no warning or error reports will be logged. + This option overrides the setting and + disables all debug also. + + This value can be set by setting the application setting + log4net.Internal.Quiet in the application configuration file. + + + The default value is false, i.e. internal logging is not + disabled. + + + + The following example disables internal logging using the + application configuration file : + + + + + + + + + + + + + + + + + Test if LogLog.Debug is enabled for output. + + + true if Debug is enabled + + + + Test if LogLog.Debug is enabled for output. + + + + + + Test if LogLog.Warn is enabled for output. + + + true if Warn is enabled + + + + Test if LogLog.Warn is enabled for output. + + + + + + Test if LogLog.Error is enabled for output. + + + true if Error is enabled + + + + Test if LogLog.Error is enabled for output. + + + + + + Subscribes to the LogLog.LogReceived event and stores messages + to the supplied IList instance. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a native error code and message. + + + + Represents a Win32 platform native error. + + + Nicko Cadell + Gert Driesen + + + + Create an instance of the class with the specified + error number and message. + + The number of the native error. + The message of the native error. + + + Create an instance of the class with the specified + error number and message. + + + + + + Create a new instance of the class for the last Windows error. + + + An instance of the class for the last windows error. + + + + The message for the error number is lookup up using the + native Win32 FormatMessage function. + + + + + + Create a new instance of the class. + + the error number for the native error + + An instance of the class for the specified + error number. + + + + The message for the specified error number is lookup up using the + native Win32 FormatMessage function. + + + + + + Retrieves the message corresponding with a Win32 message identifier. + + Message identifier for the requested message. + + The message corresponding with the specified message identifier. + + + + The message will be searched for in system message-table resource(s) + using the native FormatMessage function. + + + + + + Return error information string + + error information string + + + Return error information string + + + + + + Formats a message string. + + Formatting options, and how to interpret the parameter. + Location of the message definition. + Message identifier for the requested message. + Language identifier for the requested message. + If includes FORMAT_MESSAGE_ALLOCATE_BUFFER, the function allocates a buffer using the LocalAlloc function, and places the pointer to the buffer at the address specified in . + If the FORMAT_MESSAGE_ALLOCATE_BUFFER flag is not set, this parameter specifies the maximum number of TCHARs that can be stored in the output buffer. If FORMAT_MESSAGE_ALLOCATE_BUFFER is set, this parameter specifies the minimum number of TCHARs to allocate for an output buffer. + Pointer to an array of values that are used as insert values in the formatted message. + + + The function requires a message definition as input. The message definition can come from a + buffer passed into the function. It can come from a message table resource in an + already-loaded module. Or the caller can ask the function to search the system's message + table resource(s) for the message definition. The function finds the message definition + in a message table resource based on a message identifier and a language identifier. + The function copies the formatted message text to an output buffer, processing any embedded + insert sequences if requested. + + + To prevent the usage of unsafe code, this stub does not support inserting values in the formatted message. + + + + + If the function succeeds, the return value is the number of TCHARs stored in the output + buffer, excluding the terminating null character. + + + If the function fails, the return value is zero. To get extended error information, + call . + + + + + + Gets the number of the native error. + + + The number of the native error. + + + + Gets the number of the native error. + + + + + + Gets the message of the native error. + + + The message of the native error. + + + + + Gets the message of the native error. + + + + + An always empty . + + + + A singleton implementation of the over a collection + that is empty and not modifiable. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Test if the enumerator can advance, if so advance. + + false as the cannot advance. + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will always return false. + + + + + + Resets the enumerator back to the start. + + + + As the enumerator is over an empty collection does nothing. + + + + + + The singleton instance of the . + + + + + Gets the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets the current object from the enumerator. + + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current key from the enumerator. + + + Throws an exception because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current value from the enumerator. + + The current value from the enumerator. + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current entry from the enumerator. + + + Throws an because the + never has a current entry. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + An always empty . + + + + A singleton implementation of the over a collection + that is empty and not modifiable. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Test if the enumerator can advance, if so advance + + false as the cannot advance. + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will always return false. + + + + + + Resets the enumerator back to the start. + + + + As the enumerator is over an empty collection does nothing. + + + + + + The singleton instance of the . + + + + + Get the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets the current object from the enumerator. + + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + A SecurityContext used when a SecurityContext is not required + + + + The is a no-op implementation of the + base class. It is used where a + is required but one has not been provided. + + + Nicko Cadell + + + + Singleton instance of + + + + Singleton instance of + + + + + + Private constructor + + + + Private constructor for singleton pattern. + + + + + + Impersonate this SecurityContext + + State supplied by the caller + null + + + No impersonation is done and null is always returned. + + + + + + Implements log4net's default error handling policy which consists + of emitting a message for the first error in an appender and + ignoring all subsequent errors. + + + + The error message is processed using the LogLog sub-system by default. + + + This policy aims at protecting an otherwise working application + from being flooded with error messages when logging fails. + + + Nicko Cadell + Gert Driesen + Ron Grabowski + + + + Default Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + The prefix to use for each message. + + + Initializes a new instance of the class + with the specified prefix. + + + + + + Reset the error handler back to its initial disabled state. + + + + + Log an Error + + The error message. + The exception. + The internal error code. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + Log the very first error + + The error message. + The exception. + The internal error code. + + + Sends the error information to 's Error method. + + + + + + Log an Error + + The error message. + The exception. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + Log an error + + The error message. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + The UTC date the error was recorded. + + + + + Flag to indicate if it is the first error + + + + + The message recorded during the first error. + + + + + The exception recorded during the first error. + + + + + The error code recorded during the first error. + + + + + String to prefix each message with + + + + + The fully qualified type of the OnlyOnceErrorHandler class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Is error logging enabled + + + + Is error logging enabled. Logging is only enabled for the + first error delivered to the . + + + + + + The date the first error that trigged this error handler occurred, or if it has not been triggered. + + + + + The UTC date the first error that trigged this error handler occured, or if it has not been triggered. + + + + + The message from the first error that trigged this error handler. + + + + + The exception from the first error that trigged this error handler. + + + May be . + + + + + The error code from the first error that trigged this error handler. + + + Defaults to + + + + + A convenience class to convert property values to specific types. + + + + Utility functions for converting types and parsing values. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Converts a string to a value. + + String to convert. + The default value. + The value of . + + + If is "true", then true is returned. + If is "false", then false is returned. + Otherwise, is returned. + + + + + + Parses a file size into a number. + + String to parse. + The default value. + The value of . + + + Parses a file size of the form: number[KB|MB|GB] into a + long value. It is scaled with the appropriate multiplier. + + + is returned when + cannot be converted to a value. + + + + + + Converts a string to an object. + + The target type to convert to. + The string to convert to an object. + + The object converted from a string or null when the + conversion failed. + + + + Converts a string to an object. Uses the converter registry to try + to convert the string value into the specified target type. + + + + + + Checks if there is an appropriate type conversion from the source type to the target type. + + The type to convert from. + The type to convert to. + true if there is a conversion from the source type to the target type. + + Checks if there is an appropriate type conversion from the source type to the target type. + + + + + + + Converts an object to the target type. + + The object to convert to the target type. + The type to convert to. + The converted object. + + + Converts an object to the target type. + + + + + + Instantiates an object given a class name. + + The fully qualified class name of the object to instantiate. + The class to which the new object should belong. + The object to return in case of non-fulfillment. + + An instance of the or + if the object could not be instantiated. + + + + Checks that the is a subclass of + . If that test fails or the object could + not be instantiated, then is returned. + + + + + + Performs variable substitution in string from the + values of keys found in . + + The string on which variable substitution is performed. + The dictionary to use to lookup variables. + The result of the substitutions. + + + The variable substitution delimiters are ${ and }. + + + For example, if props contains key=value, then the call + + + + string s = OptionConverter.SubstituteVariables("Value of key is ${key}."); + + + + will set the variable s to "Value of key is value.". + + + If no value could be found for the specified key, then substitution + defaults to an empty string. + + + For example, if system properties contains no value for the key + "nonExistentKey", then the call + + + + string s = OptionConverter.SubstituteVariables("Value of nonExistentKey is [${nonExistentKey}]"); + + + + will set s to "Value of nonExistentKey is []". + + + An Exception is thrown if contains a start + delimiter "${" which is not balanced by a stop delimiter "}". + + + + + + Converts the string representation of the name or numeric value of one or + more enumerated constants to an equivalent enumerated object. + + The type to convert to. + The enum string value. + If true, ignore case; otherwise, regard case. + An object of type whose value is represented by . + + + + The fully qualified type of the OptionConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Most of the work of the class + is delegated to the PatternParser class. + + + + The PatternParser processes a pattern string and + returns a chain of objects. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The pattern to parse. + + + Initializes a new instance of the class + with the specified pattern string. + + + + + + Parses the pattern into a chain of pattern converters. + + The head of a chain of pattern converters. + + + Parses the pattern into a chain of pattern converters. + + + + + + Build the unified cache of converters from the static and instance maps + + the list of all the converter names + + + Build the unified cache of converters from the static and instance maps + + + + + + Internal method to parse the specified pattern to find specified matches + + the pattern to parse + the converter names to match in the pattern + + + The matches param must be sorted such that longer strings come before shorter ones. + + + + + + Process a parsed literal + + the literal text + + + + Process a parsed converter pattern + + the name of the converter + the optional option for the converter + the formatting info for the converter + + + + Resets the internal state of the parser and adds the specified pattern converter + to the chain. + + The pattern converter to add. + + + + The first pattern converter in the chain + + + + + the last pattern converter in the chain + + + + + The pattern + + + + + Internal map of converter identifiers to converter types + + + + This map overrides the static s_globalRulesRegistry map. + + + + + + The fully qualified type of the PatternParser class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Get the converter registry used by this parser + + + The converter registry used by this parser + + + + Get the converter registry used by this parser + + + + + + Sort strings by length + + + + that orders strings by string length. + The longest strings are placed first + + + + + + This class implements a patterned string. + + + + This string has embedded patterns that are resolved and expanded + when the string is formatted. + + + This class functions similarly to the + in that it accepts a pattern and renders it to a string. Unlike the + however the PatternString + does not render the properties of a specific but + of the process in general. + + + The recognized conversion pattern names are: + + + + Conversion Pattern Name + Effect + + + appdomain + + + Used to output the friendly name of the current AppDomain. + + + + + appsetting + + + Used to output the value of a specific appSetting key in the application + configuration file. + + + + + date + + + Used to output the current date and time in the local time zone. + To output the date in universal time use the %utcdate pattern. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %date{HH:mm:ss,fff} or + %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %date{ISO8601} or %date{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + env + + + Used to output the a specific environment variable. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %env{COMPUTERNAME} would include the value + of the COMPUTERNAME environment variable. + + + The env pattern is not supported on the .NET Compact Framework. + + + + + identity + + + Used to output the user name for the currently active user + (Principal.Identity.Name). + + + + + newline + + + Outputs the platform dependent line separator character or + characters. + + + This conversion pattern name offers the same performance as using + non-portable line separator strings such as "\n", or "\r\n". + Thus, it is the preferred way of specifying a line separator. + + + + + processid + + + Used to output the system process ID for the current process. + + + + + property + + + Used to output a specific context property. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %property{user} would include the value + from the property that is keyed by the string 'user'. Each property value + that is to be included in the log must be specified separately. + Properties are stored in logging contexts. By default + the log4net:HostName property is set to the name of machine on + which the event was originally logged. + + + If no key is specified, e.g. %property then all the keys and their + values are printed in a comma separated list. + + + The properties of an event are combined from a number of different + contexts. These are listed below in the order in which they are searched. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + random + + + Used to output a random string of characters. The string is made up of + uppercase letters and numbers. By default the string is 4 characters long. + The length of the string can be specified within braces directly following the + pattern specifier, e.g. %random{8} would output an 8 character string. + + + + + username + + + Used to output the WindowsIdentity for the currently + active user. + + + + + utcdate + + + Used to output the date of the logging event in universal time. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %utcdate{HH:mm:ss,fff} or + %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %utcdate{ISO8601} or %utcdate{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + % + + + The sequence %% outputs a single percent sign. + + + + + + Additional pattern converters may be registered with a specific + instance using or + . + + + See the for details on the + format modifiers supported by the patterns. + + + Nicko Cadell + + + + Internal map of converter identifiers to converter types. + + + + + the pattern + + + + + the head of the pattern converter chain + + + + + patterns defined on this PatternString only + + + + + Initialize the global registry + + + + + Default constructor + + + + Initialize a new instance of + + + + + + Constructs a PatternString + + The pattern to use with this PatternString + + + Initialize a new instance of with the pattern specified. + + + + + + Initialize object options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Create the used to parse the pattern + + the pattern to parse + The + + + Returns PatternParser used to parse the conversion string. Subclasses + may override this to return a subclass of PatternParser which recognize + custom conversion pattern name. + + + + + + Produces a formatted string as specified by the conversion pattern. + + The TextWriter to write the formatted event to + + + Format the pattern to the . + + + + + + Format the pattern as a string + + the pattern formatted as a string + + + Format the pattern to a string. + + + + + + Add a converter to this PatternString + + the converter info + + + This version of the method is used by the configurator. + Programmatic users should use the alternative method. + + + + + + Add a converter to this PatternString + + the name of the conversion pattern for this converter + the type of the converter + + + Add a converter to this PatternString + + + + + + Gets or sets the pattern formatting string + + + The pattern formatting string + + + + The ConversionPattern option. This is the string which + controls formatting and consists of a mix of literal content and + conversion specifiers. + + + + + + String keyed object map. + + + + While this collection is serializable only member + objects that are serializable will + be serialized along with this collection. + + + Nicko Cadell + Gert Driesen + + + + String keyed object map that is read only. + + + + This collection is readonly and cannot be modified. + + + While this collection is serializable only member + objects that are serializable will + be serialized along with this collection. + + + Nicko Cadell + Gert Driesen + + + + The Hashtable used to store the properties data + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Copy Constructor + + properties to copy + + + Initializes a new instance of the class. + + + + + + Deserialization constructor + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Gets the key names. + + An array of all the keys. + + + Gets the key names. + + + + + + Test if the dictionary contains a specified key + + the key to look for + true if the dictionary contains the specified key + + + Test if the dictionary contains a specified key + + + + + + Serializes this object into the provided. + + The to populate with data. + The destination for this serialization. + + + Serializes this object into the provided. + + + + + + See + + + + + See + + + + + + See + + + + + + + Remove all properties from the properties collection + + + + + See + + + + + + + See + + + + + + + See + + + + + Gets or sets the value of the property with the specified key. + + + The value of the property with the specified key. + + The key of the property to get or set. + + + The property value will only be serialized if it is serializable. + If it cannot be serialized it will be silently ignored if + a serialization operation is performed. + + + + + + The hashtable used to store the properties + + + The internal collection used to store the properties + + + + The hashtable used to store the properties + + + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + The number of properties in this collection + + + + + See + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + properties to copy + + + Initializes a new instance of the class. + + + + + + Initializes a new instance of the class + with serialized data. + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Because this class is sealed the serialization constructor is private. + + + + + + Remove the entry with the specified key from this dictionary + + the key for the entry to remove + + + Remove the entry with the specified key from this dictionary + + + + + + See + + an enumerator + + + Returns a over the contest of this collection. + + + + + + See + + the key to remove + + + Remove the entry with the specified key from this dictionary + + + + + + See + + the key to lookup in the collection + true if the collection contains the specified key + + + Test if this collection contains a specified key. + + + + + + Remove all properties from the properties collection + + + + Remove all properties from the properties collection + + + + + + See + + the key + the value to store for the key + + + Store a value for the specified . + + + Thrown if the is not a string + + + + See + + + + + + + See + + + + + Gets or sets the value of the property with the specified key. + + + The value of the property with the specified key. + + The key of the property to get or set. + + + The property value will only be serialized if it is serializable. + If it cannot be serialized it will be silently ignored if + a serialization operation is performed. + + + + + + See + + + false + + + + This collection is modifiable. This property always + returns false. + + + + + + See + + + The value for the key specified. + + + + Get or set a value for the specified . + + + Thrown if the is not a string + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + A class to hold the key and data for a property set in the config file + + + + A class to hold the key and data for a property set in the config file + + + + + + Override Object.ToString to return sensible debug info + + string info about this object + + + + Property Key + + + Property Key + + + + Property Key. + + + + + + Property Value + + + Property Value + + + + Property Value. + + + + + + A that ignores the message + + + + This writer is used in special cases where it is necessary + to protect a writer from being closed by a client. + + + Nicko Cadell + + + + Constructor + + the writer to actually write to + + + Create a new ProtectCloseTextWriter using a writer + + + + + + Attach this instance to a different underlying + + the writer to attach to + + + Attach this instance to a different underlying + + + + + + Does not close the underlying output writer. + + + + Does not close the underlying output writer. + This method does nothing. + + + + + + Defines a lock that supports single writers and multiple readers + + + + ReaderWriterLock is used to synchronize access to a resource. + At any given time, it allows either concurrent read access for + multiple threads, or write access for a single thread. In a + situation where a resource is changed infrequently, a + ReaderWriterLock provides better throughput than a simple + one-at-a-time lock, such as . + + + If a platform does not support a System.Threading.ReaderWriterLock + implementation then all readers and writers are serialized. Therefore + the caller must not rely on multiple simultaneous readers. + + + Nicko Cadell + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Acquires a reader lock + + + + blocks if a different thread has the writer + lock, or if at least one thread is waiting for the writer lock. + + + + + + Decrements the lock count + + + + decrements the lock count. When the count + reaches zero, the lock is released. + + + + + + Acquires the writer lock + + + + This method blocks if another thread has a reader lock or writer lock. + + + + + + Decrements the lock count on the writer lock + + + + ReleaseWriterLock decrements the writer lock count. + When the count reaches zero, the writer lock is released. + + + + + + A that can be and reused + + + + A that can be and reused. + This uses a single buffer for string operations. + + + Nicko Cadell + + + + Create an instance of + + the format provider to use + + + Create an instance of + + + + + + Override Dispose to prevent closing of writer + + flag + + + Override Dispose to prevent closing of writer + + + + + + Reset this string writer so that it can be reused. + + the maximum buffer capacity before it is trimmed + the default size to make the buffer + + + Reset this string writer so that it can be reused. + The internal buffers are cleared and reset. + + + + + + Utility class for system specific information. + + + + Utility class of static methods for system specific information. + + + Nicko Cadell + Gert Driesen + Alexey Solofnenko + + + + Private constructor to prevent instances. + + + + Only static methods are exposed from this type. + + + + + + Initialize default values for private static fields. + + + + Only static methods are exposed from this type. + + + + + + Gets the assembly location path for the specified assembly. + + The assembly to get the location for. + The location of the assembly. + + + This method does not guarantee to return the correct path + to the assembly. If only tries to give an indication as to + where the assembly was loaded from. + + + + + + Gets the fully qualified name of the , including + the name of the assembly from which the was + loaded. + + The to get the fully qualified name for. + The fully qualified name for the . + + + This is equivalent to the Type.AssemblyQualifiedName property, + but this method works on the .NET Compact Framework 1.0 as well as + the full .NET runtime. + + + + + + Gets the short name of the . + + The to get the name for. + The short name of the . + + + The short name of the assembly is the + without the version, culture, or public key. i.e. it is just the + assembly's file name without the extension. + + + Use this rather than Assembly.GetName().Name because that + is not available on the Compact Framework. + + + Because of a FileIOPermission security demand we cannot do + the obvious Assembly.GetName().Name. We are allowed to get + the of the assembly so we + start from there and strip out just the assembly name. + + + + + + Gets the file name portion of the , including the extension. + + The to get the file name for. + The file name of the assembly. + + + Gets the file name portion of the , including the extension. + + + + + + Loads the type specified in the type string. + + A sibling type to use to load the type. + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified, it will be loaded from the assembly + containing the specified relative type. If the type is not found in the assembly + then all the loaded assemblies will be searched for the type. + + + + + + Loads the type specified in the type string. + + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified it will be loaded from the + assembly that is directly calling this method. If the type is not found + in the assembly then all the loaded assemblies will be searched for the type. + + + + + + Loads the type specified in the type string. + + An assembly to load the type from. + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified it will be loaded from the specified + assembly. If the type is not found in the assembly then all the loaded assemblies + will be searched for the type. + + + + + + Generate a new guid + + A new Guid + + + Generate a new guid + + + + + + Create an + + The name of the parameter that caused the exception + The value of the argument that causes this exception + The message that describes the error + the ArgumentOutOfRangeException object + + + Create a new instance of the class + with a specified error message, the parameter name, and the value + of the argument. + + + The Compact Framework does not support the 3 parameter constructor for the + type. This method provides an + implementation that works for all platforms. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Lookup an application setting + + the application settings key to lookup + the value for the key, or null + + + Configuration APIs are not supported under the Compact Framework + + + + + + Convert a path into a fully qualified local file path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + The path specified must be a local file path, a URI is not supported. + + + + + + Creates a new case-insensitive instance of the class with the default initial capacity. + + A new case-insensitive instance of the class with the default initial capacity + + + The new Hashtable instance uses the default load factor, the CaseInsensitiveHashCodeProvider, and the CaseInsensitiveComparer. + + + + + + Tests two strings for equality, the ignoring case. + + + If the platform permits, culture information is ignored completely (ordinal comparison). + The aim of this method is to provide a fast comparison that deals with null and ignores different casing. + It is not supposed to deal with various, culture-specific habits. + Use it to compare against pure ASCII constants, like keywords etc. + + The one string. + The other string. + true if the strings are equal, false otherwise. + + + + Gets an empty array of types. + + + + The Type.EmptyTypes field is not available on + the .NET Compact Framework 1.0. + + + + + + The fully qualified type of the SystemInfo class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Cache the host name for the current machine + + + + + Cache the application friendly name + + + + + Text to output when a null is encountered. + + + + + Text to output when an unsupported feature is requested. + + + + + Start time for the current process. + + + + + Gets the system dependent line terminator. + + + The system dependent line terminator. + + + + Gets the system dependent line terminator. + + + + + + Gets the base directory for this . + + The base directory path for the current . + + + Gets the base directory for this . + + + The value returned may be either a local file path or a URI. + + + + + + Gets the path to the configuration file for the current . + + The path to the configuration file for the current . + + + The .NET Compact Framework 1.0 does not have a concept of a configuration + file. For this runtime, we use the entry assembly location as the root for + the configuration file name. + + + The value returned may be either a local file path or a URI. + + + + + + Gets the path to the file that first executed in the current . + + The path to the entry assembly. + + + Gets the path to the file that first executed in the current . + + + + + + Gets the ID of the current thread. + + The ID of the current thread. + + + On the .NET framework, the AppDomain.GetCurrentThreadId method + is used to obtain the thread ID for the current thread. This is the + operating system ID for the thread. + + + On the .NET Compact Framework 1.0 it is not possible to get the + operating system thread ID for the current thread. The native method + GetCurrentThreadId is implemented inline in a header file + and cannot be called. + + + On the .NET Framework 2.0 the Thread.ManagedThreadId is used as this + gives a stable id unrelated to the operating system thread ID which may + change if the runtime is using fibers. + + + + + + Get the host name or machine name for the current machine + + + The hostname or machine name + + + + Get the host name or machine name for the current machine + + + The host name () or + the machine name (Environment.MachineName) for + the current machine, or if neither of these are available + then NOT AVAILABLE is returned. + + + + + + Get this application's friendly name + + + The friendly name of this application as a string + + + + If available the name of the application is retrieved from + the AppDomain using AppDomain.CurrentDomain.FriendlyName. + + + Otherwise the file name of the entry assembly is used. + + + + + + Get the start time for the current process. + + + + This is the time at which the log4net library was loaded into the + AppDomain. Due to reports of a hang in the call to System.Diagnostics.Process.StartTime + this is not the start time for the current process. + + + The log4net library should be loaded by an application early during its + startup, therefore this start time should be a good approximation for + the actual start time. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating, however this start time + will be set per AppDomain. + + + + + + Get the UTC start time for the current process. + + + + This is the UTC time at which the log4net library was loaded into the + AppDomain. Due to reports of a hang in the call to System.Diagnostics.Process.StartTime + this is not the start time for the current process. + + + The log4net library should be loaded by an application early during its + startup, therefore this start time should be a good approximation for + the actual start time. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating, however this start time + will be set per AppDomain. + + + + + + Text to output when a null is encountered. + + + + Use this value to indicate a null has been encountered while + outputting a string representation of an item. + + + The default value is (null). This value can be overridden by specifying + a value for the log4net.NullText appSetting in the application's + .config file. + + + + + + Text to output when an unsupported feature is requested. + + + + Use this value when an unsupported feature is requested. + + + The default value is NOT AVAILABLE. This value can be overridden by specifying + a value for the log4net.NotAvailableText appSetting in the application's + .config file. + + + + + + Utility class that represents a format string. + + + + Utility class that represents a format string. + + + Nicko Cadell + + + + Initialise the + + An that supplies culture-specific formatting information. + A containing zero or more format items. + An array containing zero or more objects to format. + + + + Format the string and arguments + + the formatted string + + + + Replaces the format item in a specified with the text equivalent + of the value of a corresponding instance in a specified array. + A specified parameter supplies culture-specific formatting information. + + An that supplies culture-specific formatting information. + A containing zero or more format items. + An array containing zero or more objects to format. + + A copy of format in which the format items have been replaced by the + equivalent of the corresponding instances of in args. + + + + This method does not throw exceptions. If an exception thrown while formatting the result the + exception and arguments are returned in the result string. + + + + + + Process an error during StringFormat + + + + + Dump the contents of an array into a string builder + + + + + Dump an object to a string + + + + + The fully qualified type of the SystemStringFormat class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Implementation of Properties collection for the + + + + Class implements a collection of properties that is specific to each thread. + The class is not synchronized as each thread has its own . + + + Nicko Cadell + + + + Each thread will automatically have its instance. + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Remove a property + + the key for the entry to remove + + + Remove a property + + + + + + Get the keys stored in the properties. + + + Gets the keys stored in the properties. + + a set of the defined keys + + + + Clear all properties + + + + Clear all properties + + + + + + Get the PropertiesDictionary for this thread. + + create the dictionary if it does not exist, otherwise return null if does not exist + the properties for this thread + + + The collection returned is only to be used on the calling thread. If the + caller needs to share the collection between different threads then the + caller must clone the collection before doing so. + + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Gets or sets the value of a property + + + + + + Implementation of Stack for the + + + + Implementation of Stack for the + + + Nicko Cadell + + + + The stack store. + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Clears all the contextual information held in this stack. + + + + Clears all the contextual information held in this stack. + Only call this if you think that this tread is being reused after + a previous call execution which may not have completed correctly. + You do not need to use this method if you always guarantee to call + the method of the + returned from even in exceptional circumstances, + for example by using the using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) + syntax. + + + + + + Removes the top context from this stack. + + The message in the context that was removed from the top of this stack. + + + Remove the top context from this stack, and return + it to the caller. If this stack is empty then an + empty string (not ) is returned. + + + + + + Pushes a new context message into this stack. + + The new context message. + + An that can be used to clean up the context stack. + + + + Pushes a new context onto this stack. An + is returned that can be used to clean up this stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) + { + log.Warn("This should have an ThreadContext Stack message"); + } + + + + + + Gets the current context information for this stack. + + The current context information. + + + + Gets the current context information for this stack. + + Gets the current context information + + + Gets the current context information for this stack. + + + + + + Get a portable version of this object + + the portable instance of this object + + + Get a cross thread portable version of this object + + + + + + The number of messages in the stack + + + The current number of messages in the stack + + + + The current number of messages in the stack. That is + the number of times has been called + minus the number of times has been called. + + + + + + Gets and sets the internal stack used by this + + The internal storage stack + + + This property is provided only to support backward compatability + of the . Tytpically the internal stack should not + be modified. + + + + + + Inner class used to represent a single context frame in the stack. + + + + Inner class used to represent a single context frame in the stack. + + + + + + Constructor + + The message for this context. + The parent context in the chain. + + + Initializes a new instance of the class + with the specified message and parent context. + + + + + + Get the message. + + The message. + + + Get the message. + + + + + + Gets the full text of the context down to the root level. + + + The full text of the context down to the root level. + + + + Gets the full text of the context down to the root level. + + + + + + Struct returned from the method. + + + + This struct implements the and is designed to be used + with the pattern to remove the stack frame at the end of the scope. + + + + + + The ThreadContextStack internal stack + + + + + The depth to trim the stack to when this instance is disposed + + + + + Constructor + + The internal stack used by the ThreadContextStack. + The depth to return the stack to when this object is disposed. + + + Initializes a new instance of the class with + the specified stack and return depth. + + + + + + Returns the stack to the correct depth. + + + + Returns the stack to the correct depth. + + + + + + Implementation of Stacks collection for the + + + + Implementation of Stacks collection for the + + + Nicko Cadell + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + The fully qualified type of the ThreadContextStacks class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the named thread context stack + + + The named stack + + + + Gets the named thread context stack + + + + + + Utility class for transforming strings. + + + + Utility class for transforming strings. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Write a string to an + + the writer to write to + the string to write + The string to replace non XML compliant chars with + + + The test is escaped either using XML escape entities + or using CDATA sections. + + + + + + Replace invalid XML characters in text string + + the XML text input string + the string to use in place of invalid characters + A string that does not contain invalid XML characters. + + + Certain Unicode code points are not allowed in the XML InfoSet, for + details see: http://www.w3.org/TR/REC-xml/#charsets. + + + This method replaces any illegal characters in the input string + with the mask string specified. + + + + + + Count the number of times that the substring occurs in the text + + the text to search + the substring to find + the number of times the substring occurs in the text + + + The substring is assumed to be non repeating within itself. + + + + + + Characters illegal in XML 1.0 + + + + + Impersonate a Windows Account + + + + This impersonates a Windows account. + + + How the impersonation is done depends on the value of . + This allows the context to either impersonate a set of user credentials specified + using username, domain name and password or to revert to the process credentials. + + + + + + Default constructor + + + + Default constructor + + + + + + Initialize the SecurityContext based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The security context will try to Logon the specified user account and + capture a primary token for impersonation. + + + The required , + or properties were not specified. + + + + Impersonate the Windows account specified by the and properties. + + caller provided state + + An instance that will revoke the impersonation of this SecurityContext + + + + Depending on the property either + impersonate a user using credentials supplied or revert + to the process credentials. + + + + + + Create a given the userName, domainName and password. + + the user name + the domain name + the password + the for the account specified + + + Uses the Windows API call LogonUser to get a principal token for the account. This + token is used to initialize the WindowsIdentity. + + + + + + Gets or sets the impersonation mode for this security context + + + The impersonation mode for this security context + + + + Impersonate either a user with user credentials or + revert this thread to the credentials of the process. + The value is one of the + enum. + + + The default value is + + + When the mode is set to + the user's credentials are established using the + , and + values. + + + When the mode is set to + no other properties need to be set. If the calling thread is + impersonating then it will be reverted back to the process credentials. + + + + + + Gets or sets the Windows username for this security context + + + The Windows username for this security context + + + + This property must be set if + is set to (the default setting). + + + + + + Gets or sets the Windows domain name for this security context + + + The Windows domain name for this security context + + + + The default value for is the local machine name + taken from the property. + + + This property must be set if + is set to (the default setting). + + + + + + Sets the password for the Windows account specified by the and properties. + + + The password for the Windows account specified by the and properties. + + + + This property must be set if + is set to (the default setting). + + + + + + The impersonation modes for the + + + + See the property for + details. + + + + + + Impersonate a user using the credentials supplied + + + + + Revert this the thread to the credentials of the process + + + + + Adds to + + + + Helper class to expose the + through the interface. + + + + + + Constructor + + the impersonation context being wrapped + + + Constructor + + + + + + Revert the impersonation + + + + Revert the impersonation + + + + + + The log4net Global Context. + + + + The GlobalContext provides a location for global debugging + information to be stored. + + + The global context has a properties map and these properties can + be included in the output of log messages. The + supports selecting and outputing these properties. + + + By default the log4net:HostName property is set to the name of + the current machine. + + + + + GlobalContext.Properties["hostname"] = Environment.MachineName; + + + + Nicko Cadell + + + + Private Constructor. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + The global context properties instance + + + + + The global properties map. + + + The global properties map. + + + + The global properties map. + + + + + + Provides information about the environment the assembly has + been built for. + + + + Version of the assembly + + + Version of the framework targeted + + + Type of framework targeted + + + Does it target a client profile? + + + + Identifies the version and target for this assembly. + + + + + The log4net Logical Thread Context. + + + + The LogicalThreadContext provides a location for specific debugging + information to be stored. + The LogicalThreadContext properties override any or + properties with the same name. + + + For .NET Standard 1.3 this class uses + System.Threading.AsyncLocal rather than . + + + The Logical Thread Context has a properties map and a stack. + The properties and stack can + be included in the output of log messages. The + supports selecting and outputting these properties. + + + The Logical Thread Context provides a diagnostic context for the current call context. + This is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The Logical Thread Context is managed on a per basis. + + + The requires a link time + for the + . + If the calling code does not have this permission then this context will be disabled. + It will not store any property values set on it. + + + Example of using the thread context properties to store a username. + + LogicalThreadContext.Properties["user"] = userName; + log.Info("This log message has a LogicalThreadContext Property called 'user'"); + + + Example of how to push a message into the context stack + + using(LogicalThreadContext.Stacks["LDC"].Push("my context message")) + { + log.Info("This log message has a LogicalThreadContext Stack message that includes 'my context message'"); + + } // at the end of the using block the message is automatically popped + + + + Nicko Cadell + + + + Private Constructor. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + The thread context properties instance + + + + + The thread context stacks instance + + + + + The thread properties map + + + The thread properties map + + + + The LogicalThreadContext properties override any + or properties with the same name. + + + + + + The thread stacks + + + stack map + + + + The logical thread stacks. + + + + + + This class is used by client applications to request logger instances. + + + + This class has static methods that are used by a client to request + a logger instance. The method is + used to retrieve a logger. + + + See the interface for more details. + + + Simple example of logging messages + + ILog log = LogManager.GetLogger("application-log"); + + log.Info("Application Start"); + log.Debug("This is a debug message"); + + if (log.IsDebugEnabled) + { + log.Debug("This is another debug message"); + } + + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + Returns the named logger if it exists. + + Returns the named logger if it exists. + + + + If the named logger exists (in the default repository) then it + returns a reference to the logger, otherwise it returns null. + + + The fully qualified logger name to look for. + The logger found, or null if no logger could be found. + + + Get the currently defined loggers. + + Returns all the currently defined loggers in the default repository. + + + The root logger is not included in the returned array. + + All the defined loggers. + + + Get or create a logger. + + Retrieves or creates a named logger. + + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The name of the logger to retrieve. + The logger with the name specified. + + + + Returns the named logger if it exists. + + + + If the named logger exists (in the specified repository) then it + returns a reference to the logger, otherwise it returns + null. + + + The repository to lookup in. + The fully qualified logger name to look for. + + The logger found, or null if the logger doesn't exist in the specified + repository. + + + + + Returns the named logger if it exists. + + + + If the named logger exists (in the repository for the specified assembly) then it + returns a reference to the logger, otherwise it returns + null. + + + The assembly to use to lookup the repository. + The fully qualified logger name to look for. + + The logger, or null if the logger doesn't exist in the specified + assembly's repository. + + + + + Returns all the currently defined loggers in the specified repository. + + The repository to lookup in. + + The root logger is not included in the returned array. + + All the defined loggers. + + + + Returns all the currently defined loggers in the specified assembly's repository. + + The assembly to use to lookup the repository. + + The root logger is not included in the returned array. + + All the defined loggers. + + + + Retrieves or creates a named logger. + + + + Retrieve a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The repository to lookup in. + The name of the logger to retrieve. + The logger with the name specified. + + + + Retrieves or creates a named logger. + + + + Retrieve a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The assembly to use to lookup the repository. + The name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Get the logger for the fully qualified name of the type specified. + + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Gets the logger for the fully qualified name of the type specified. + + The repository to lookup in. + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Gets the logger for the fully qualified name of the type specified. + + The assembly to use to lookup the repository. + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shuts down the log4net system. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in all the + default repositories. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + Shutdown a logger repository. + + Shuts down the default repository. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + default repository. + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + The repository to shutdown. + + + + Shuts down the repository specified. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository. The repository is looked up using + the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + The assembly to use to lookup the repository. + + + Reset the configuration of a repository + + Resets all values contained in this repository instance to their defaults. + + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + + + + Resets all values contained in this repository instance to their defaults. + + + + Reset all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + The repository to reset. + + + + Resets all values contained in this repository instance to their defaults. + + + + Reset all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + The assembly to use to lookup the repository to reset. + + + Get the logger repository. + + Returns the default instance. + + + + Gets the for the repository specified + by the callers assembly (). + + + The instance for the default repository. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The repository to lookup in. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The assembly to use to lookup the repository. + + + Get a logger repository. + + Returns the default instance. + + + + Gets the for the repository specified + by the callers assembly (). + + + The instance for the default repository. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The repository to lookup in. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The assembly to use to lookup the repository. + + + Create a domain + + Creates a repository with the specified repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to will return + the same repository instance. + + + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + Create a logger repository. + + Creates a repository with the specified repository type. + + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The created will be associated with the repository + specified such that a call to will return + the same repository instance. + + + + + + Creates a repository with the specified name. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name. + + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + The specified repository already exists. + + + + Creates a repository for the specified assembly and repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + + Creates a repository for the specified assembly and repository type. + + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + + Gets the list of currently defined repositories. + + + + Get an array of all the objects that have been created. + + + An array of all the known objects. + + + + Flushes logging events buffered in all configured appenders in the default repository. + + The maximum time in milliseconds to wait for logging events from asycnhronous appenders to be flushed. + True if all logging events were flushed successfully, else false. + + + + Looks up the wrapper object for the logger specified. + + The logger to get the wrapper for. + The wrapper for the logger specified. + + + + Looks up the wrapper objects for the loggers specified. + + The loggers to get the wrappers for. + The wrapper objects for the loggers specified. + + + + Create the objects used by + this manager. + + The logger to wrap. + The wrapper for the logger specified. + + + + The wrapper map to use to hold the objects. + + + + + Implementation of Mapped Diagnostic Contexts. + + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + The MDC class is similar to the class except that it is + based on a map instead of a stack. It provides mapped + diagnostic contexts. A Mapped Diagnostic Context, or + MDC in short, is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The MDC is managed on a per thread basis. + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + Gets the context value identified by the parameter. + + The key to lookup in the MDC. + The string value held for the key, or a null reference if no corresponding value is found. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + If the parameter does not look up to a + previously defined context then null will be returned. + + + + + + Add an entry to the MDC + + The key to store the value under. + The value to store. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Puts a context value (the parameter) as identified + with the parameter into the current thread's + context map. + + + If a value is already defined for the + specified then the value will be replaced. If the + is specified as null then the key value mapping will be removed. + + + + + + Removes the key value mapping for the key specified. + + The key to remove. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Remove the specified entry from this thread's MDC + + + + + + Clear all entries in the MDC + + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Remove all the entries from this thread's MDC + + + + + + Implementation of Nested Diagnostic Contexts. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + A Nested Diagnostic Context, or NDC in short, is an instrument + to distinguish interleaved log output from different sources. Log + output is typically interleaved when a server handles multiple + clients near-simultaneously. + + + Interleaved log output can still be meaningful if each log entry + from different contexts had a distinctive stamp. This is where NDCs + come into play. + + + Note that NDCs are managed on a per thread basis. The NDC class + is made up of static methods that operate on the context of the + calling thread. + + + How to push a message into the context + + using(NDC.Push("my context message")) + { + ... all log calls will have 'my context message' included ... + + } // at the end of the using block the message is automatically removed + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + Clears all the contextual information held on the current thread. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Clears the stack of NDC data held on the current thread. + + + + + + Creates a clone of the stack of context information. + + A clone of the context info for this thread. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + The results of this method can be passed to the + method to allow child threads to inherit the context of their + parent thread. + + + + + + Inherits the contextual information from another thread. + + The context stack to inherit. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + This thread will use the context information from the stack + supplied. This can be used to initialize child threads with + the same contextual information as their parent threads. These + contexts will NOT be shared. Any further contexts that + are pushed onto the stack will not be visible to the other. + Call to obtain a stack to pass to + this method. + + + + + + Removes the top context from the stack. + + + The message in the context that was removed from the top + of the stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Remove the top context from the stack, and return + it to the caller. If the stack is empty then an + empty string (not null) is returned. + + + + + + Pushes a new context message. + + The new context message. + + An that can be used to clean up + the context stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Pushes a new context onto the context stack. An + is returned that can be used to clean up the context stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.NDC.Push("NDC_Message")) + { + log.Warn("This should have an NDC message"); + } + + + + + + Pushes a new context message. + + The new context message string format. + Arguments to be passed into messageFormat. + + An that can be used to clean up + the context stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Pushes a new context onto the context stack. An + is returned that can be used to clean up the context stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + var someValue = "ExampleContext" + using(log4net.NDC.PushFormat("NDC_Message {0}", someValue)) + { + log.Warn("This should have an NDC message"); + } + + + + + + Removes the context information for this thread. It is + not required to call this method. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + This method is not implemented. + + + + + + Forces the stack depth to be at most . + + The maximum depth of the stack + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Forces the stack depth to be at most . + This may truncate the head of the stack. This only affects the + stack in the current thread. Also it does not prevent it from + growing, it only sets the maximum depth at the time of the + call. This can be used to return to a known context depth. + + + + + + Gets the current context depth. + + The current context depth. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + The number of context values pushed onto the context stack. + + + Used to record the current depth of the context. This can then + be restored using the method. + + + + + + + The log4net Thread Context. + + + + The ThreadContext provides a location for thread specific debugging + information to be stored. + The ThreadContext properties override any + properties with the same name. + + + The thread context has a properties map and a stack. + The properties and stack can + be included in the output of log messages. The + supports selecting and outputting these properties. + + + The Thread Context provides a diagnostic context for the current thread. + This is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The Thread Context is managed on a per thread basis. + + + Example of using the thread context properties to store a username. + + ThreadContext.Properties["user"] = userName; + log.Info("This log message has a ThreadContext Property called 'user'"); + + + Example of how to push a message into the context stack + + using(ThreadContext.Stacks["NDC"].Push("my context message")) + { + log.Info("This log message has a ThreadContext Stack message that includes 'my context message'"); + + } // at the end of the using block the message is automatically popped + + + + Nicko Cadell + + + + Private Constructor. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + The thread context properties instance + + + + + The thread context stacks instance + + + + + The thread properties map + + + The thread properties map + + + + The ThreadContext properties override any + properties with the same name. + + + + + + The thread stacks + + + stack map + + + + The thread local stacks. + + + + + diff --git a/packages/log4net.2.0.8/lib/net40-full/log4net.dll b/packages/log4net.2.0.8/lib/net40-full/log4net.dll new file mode 100644 index 0000000..a4af9d6 Binary files /dev/null and b/packages/log4net.2.0.8/lib/net40-full/log4net.dll differ diff --git a/packages/log4net.2.0.8/lib/net40-full/log4net.xml b/packages/log4net.2.0.8/lib/net40-full/log4net.xml new file mode 100644 index 0000000..df56743 --- /dev/null +++ b/packages/log4net.2.0.8/lib/net40-full/log4net.xml @@ -0,0 +1,32464 @@ + + + + log4net + + + + + Appender that logs to a database. + + + + appends logging events to a table within a + database. The appender can be configured to specify the connection + string by setting the property. + The connection type (provider) can be specified by setting the + property. For more information on database connection strings for + your specific database see http://www.connectionstrings.com/. + + + Records are written into the database either using a prepared + statement or a stored procedure. The property + is set to (System.Data.CommandType.Text) to specify a prepared statement + or to (System.Data.CommandType.StoredProcedure) to specify a stored + procedure. + + + The prepared statement text or the name of the stored procedure + must be set in the property. + + + The prepared statement or stored procedure can take a number + of parameters. Parameters are added using the + method. This adds a single to the + ordered list of parameters. The + type may be subclassed if required to provide database specific + functionality. The specifies + the parameter name, database type, size, and how the value should + be generated using a . + + + + An example of a SQL Server table that could be logged to: + + CREATE TABLE [dbo].[Log] ( + [ID] [int] IDENTITY (1, 1) NOT NULL , + [Date] [datetime] NOT NULL , + [Thread] [varchar] (255) NOT NULL , + [Level] [varchar] (20) NOT NULL , + [Logger] [varchar] (255) NOT NULL , + [Message] [varchar] (4000) NOT NULL + ) ON [PRIMARY] + + + + An example configuration to log to the above table: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Julian Biddle + Nicko Cadell + Gert Driesen + Lance Nehring + + + + Abstract base class implementation of that + buffers events in a fixed size buffer. + + + + This base class should be used by appenders that need to buffer a + number of events before logging them. For example the + buffers events and then submits the entire contents of the buffer to + the underlying database in one go. + + + Subclasses should override the + method to deliver the buffered events. + + The BufferingAppenderSkeleton maintains a fixed size cyclic + buffer of events. The size of the buffer is set using + the property. + + A is used to inspect + each event as it arrives in the appender. If the + triggers, then the current buffer is sent immediately + (see ). Otherwise the event + is stored in the buffer. For example, an evaluator can be used to + deliver the events immediately when an ERROR event arrives. + + + The buffering appender can be configured in a mode. + By default the appender is NOT lossy. When the buffer is full all + the buffered events are sent with . + If the property is set to true then the + buffer will not be sent when it is full, and new events arriving + in the appender will overwrite the oldest event in the buffer. + In lossy mode the buffer will only be sent when the + triggers. This can be useful behavior when you need to know about + ERROR events but not about events with a lower level, configure an + evaluator that will trigger when an ERROR event arrives, the whole + buffer will be sent which gives a history of events leading up to + the ERROR event. + + + Nicko Cadell + Gert Driesen + + + + Abstract base class implementation of . + + + + This class provides the code for common functionality, such + as support for threshold filtering and support for general filters. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + Implement this interface for your own strategies for printing log statements. + + + + Implementors should consider extending the + class which provides a default implementation of this interface. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Log the logging event in Appender specific way. + + The event to log + + + This method is called to log a message into this appender. + + + + + + Gets or sets the name of this appender. + + The name of the appender. + + The name uniquely identifies the appender. + + + + + Interface for appenders that support bulk logging. + + + + This interface extends the interface to + support bulk logging of objects. Appenders + should only implement this interface if they can bulk log efficiently. + + + Nicko Cadell + + + + Log the array of logging events in Appender specific way. + + The events to log + + + This method is called to log an array of events into this appender. + + + + + + Interface used to delay activate a configured object. + + + + This allows an object to defer activation of its options until all + options have been set. This is required for components which have + related options that remain ambiguous until all are set. + + + If a component implements this interface then the method + must be called by the container after its all the configured properties have been set + and before the component can be used. + + + Nicko Cadell + + + + Activate the options that were previously set with calls to properties. + + + + This allows an object to defer activation of its options until all + options have been set. This is required for components which have + related options that remain ambiguous until all are set. + + + If a component implements this interface then this method must be called + after its properties have been set before the component can be used. + + + + + + Interface that can be implemented by Appenders that buffer logging data and expose a method. + + + + + Flushes any buffered log data. + + + Appenders that implement the method must do so in a thread-safe manner: it can be called concurrently with + the method. + + Typically this is done by locking on the Appender instance, e.g.: + + + + + + The parameter is only relevant for appenders that process logging events asynchronously, + such as . + + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + Default constructor + + + Empty default constructor + + + + + Finalizes this appender by calling the implementation's + method. + + + + If this appender has not been closed then the Finalize method + will call . + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Closes the appender and release resources. + + + + Release any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + This method cannot be overridden by subclasses. This method + delegates the closing of the appender to the + method which must be overridden in the subclass. + + + + + + Performs threshold checks and invokes filters before + delegating actual logging to the subclasses specific + method. + + The event to log. + + + This method cannot be overridden by derived classes. A + derived class should override the method + which is called by this method. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + Calls and checks that + it returns true. + + + + + If all of the above steps succeed then the + will be passed to the abstract method. + + + + + + Performs threshold checks and invokes filters before + delegating actual logging to the subclasses specific + method. + + The array of events to log. + + + This method cannot be overridden by derived classes. A + derived class should override the method + which is called by this method. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + Calls and checks that + it returns true. + + + + + If all of the above steps succeed then the + will be passed to the method. + + + + + + Test if the logging event should we output by this appender + + the event to test + true if the event should be output, false if the event should be ignored + + + This method checks the logging event against the threshold level set + on this appender and also against the filters specified on this + appender. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + + + + + Adds a filter to the end of the filter chain. + + the filter to add to this appender + + + The Filters are organized in a linked list. + + + Setting this property causes the new filter to be pushed onto the + back of the filter chain. + + + + + + Clears the filter list for this appender. + + + + Clears the filter list for this appender. + + + + + + Checks if the message level is below this appender's threshold. + + to test against. + + + If there is no threshold set, then the return value is always true. + + + + true if the meets the + requirements of this appender. + + + + + Is called when the appender is closed. Derived classes should override + this method if resources need to be released. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Subclasses of should implement this method + to perform actual logging. + + The event to append. + + + A subclass must implement this method to perform + logging of the . + + This method will be called by + if all the conditions listed for that method are met. + + + To restrict the logging of events in the appender + override the method. + + + + + + Append a bulk array of logging events. + + the array of logging events + + + This base class implementation calls the + method for each element in the bulk array. + + + A sub class that can better process a bulk array of events should + override this method in addition to . + + + + + + Called before as a precondition. + + + + This method is called by + before the call to the abstract method. + + + This method can be overridden in a subclass to extend the checks + made before the event is passed to the method. + + + A subclass should ensure that they delegate this call to + this base class if it is overridden. + + + true if the call to should proceed. + + + + Renders the to a string. + + The event to render. + The event rendered as a string. + + + Helper method to render a to + a string. This appender must have a + set to render the to + a string. + + If there is exception data in the logging event and + the layout does not process the exception, this method + will append the exception text to the rendered string. + + + Where possible use the alternative version of this method + . + That method streams the rendering onto an existing Writer + which can give better performance if the caller already has + a open and ready for writing. + + + + + + Renders the to a string. + + The event to render. + The TextWriter to write the formatted event to + + + Helper method to render a to + a string. This appender must have a + set to render the to + a string. + + If there is exception data in the logging event and + the layout does not process the exception, this method + will append the exception text to the rendered string. + + + Use this method in preference to + where possible. If, however, the caller needs to render the event + to a string then does + provide an efficient mechanism for doing so. + + + + + + Flushes any buffered log data. + + + This implementation doesn't flush anything and always returns true + + True if all logging events were flushed successfully, else false. + + + + The layout of this appender. + + + See for more information. + + + + + The name of this appender. + + + See for more information. + + + + + The level threshold of this appender. + + + + There is no level threshold filtering by default. + + + See for more information. + + + + + + It is assumed and enforced that errorHandler is never null. + + + + It is assumed and enforced that errorHandler is never null. + + + See for more information. + + + + + + The first filter in the filter chain. + + + + Set to null initially. + + + See for more information. + + + + + + The last filter in the filter chain. + + + See for more information. + + + + + Flag indicating if this appender is closed. + + + See for more information. + + + + + The guard prevents an appender from repeatedly calling its own DoAppend method + + + + + StringWriter used to render events + + + + + The fully qualified type of the AppenderSkeleton class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the threshold of this appender. + + + The threshold of the appender. + + + + All log events with lower level than the threshold level are ignored + by the appender. + + + In configuration files this option is specified by setting the + value of the option to a level + string, such as "DEBUG", "INFO" and so on. + + + + + + Gets or sets the for this appender. + + The of the appender + + + The provides a default + implementation for the property. + + + + + + The filter chain. + + The head of the filter chain filter chain. + + + Returns the head Filter. The Filters are organized in a linked list + and so all Filters on this Appender are available through the result. + + + + + + Gets or sets the for this appender. + + The layout of the appender. + + + See for more information. + + + + + + + Gets or sets the name of this appender. + + The name of the appender. + + + The name uniquely identifies the appender. + + + + + + Tests if this appender requires a to be set. + + + + In the rather exceptional case, where the appender + implementation admits a layout but can also work without it, + then the appender should return true. + + + This default implementation always returns false. + + + + true if the appender requires a layout object, otherwise false. + + + + + The default buffer size. + + + The default size of the cyclic buffer used to store events. + This is set to 512 by default. + + + + + Initializes a new instance of the class. + + + + Protected default constructor to allow subclassing. + + + + + + Initializes a new instance of the class. + + the events passed through this appender must be + fixed by the time that they arrive in the derived class' SendBuffer method. + + + Protected constructor to allow subclassing. + + + The should be set if the subclass + expects the events delivered to be fixed even if the + is set to zero, i.e. when no buffering occurs. + + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Flush the currently buffered events + + + + Flushes any events that have been buffered. + + + If the appender is buffering in mode then the contents + of the buffer will NOT be flushed to the appender. + + + + + + Flush the currently buffered events + + set to true to flush the buffer of lossy events + + + Flushes events that have been buffered. If is + false then events will only be flushed if this buffer is non-lossy mode. + + + If the appender is buffering in mode then the contents + of the buffer will only be flushed if is true. + In this case the contents of the buffer will be tested against the + and if triggering will be output. All other buffered + events will be discarded. + + + If is true then the buffer will always + be emptied by calling this method. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Close this appender instance. + + + + Close this appender instance. If this appender is marked + as not then the remaining events in + the buffer must be sent when the appender is closed. + + + + + + This method is called by the method. + + the event to log + + + Stores the in the cyclic buffer. + + + The buffer will be sent (i.e. passed to the + method) if one of the following conditions is met: + + + + The cyclic buffer is full and this appender is + marked as not lossy (see ) + + + An is set and + it is triggered for the + specified. + + + + Before the event is stored in the buffer it is fixed + (see ) to ensure that + any data referenced by the event will be valid when the buffer + is processed. + + + + + + Sends the contents of the buffer. + + The first logging event. + The buffer containing the events that need to be send. + + + The subclass must override . + + + + + + Sends the events. + + The events that need to be send. + + + The subclass must override this method to process the buffered events. + + + + + + The size of the cyclic buffer used to hold the logging events. + + + Set to by default. + + + + + The cyclic buffer used to store the logging events. + + + + + The triggering event evaluator that causes the buffer to be sent immediately. + + + The object that is used to determine if an event causes the entire + buffer to be sent immediately. This field can be null, which + indicates that event triggering is not to be done. The evaluator + can be set using the property. If this appender + has the ( property) set to + true then an must be set. + + + + + Indicates if the appender should overwrite events in the cyclic buffer + when it becomes full, or if the buffer should be flushed when the + buffer is full. + + + If this field is set to true then an must + be set. + + + + + The triggering event evaluator filters discarded events. + + + The object that is used to determine if an event that is discarded should + really be discarded or if it should be sent to the appenders. + This field can be null, which indicates that all discarded events will + be discarded. + + + + + Value indicating which fields in the event should be fixed + + + By default all fields are fixed + + + + + The events delivered to the subclass must be fixed. + + + + + Gets or sets a value that indicates whether the appender is lossy. + + + true if the appender is lossy, otherwise false. The default is false. + + + + This appender uses a buffer to store logging events before + delivering them. A triggering event causes the whole buffer + to be send to the remote sink. If the buffer overruns before + a triggering event then logging events could be lost. Set + to false to prevent logging events + from being lost. + + If is set to true then an + must be specified. + + + + + Gets or sets the size of the cyclic buffer used to hold the + logging events. + + + The size of the cyclic buffer used to hold the logging events. + + + + The option takes a positive integer + representing the maximum number of logging events to collect in + a cyclic buffer. When the is reached, + oldest events are deleted as new events are added to the + buffer. By default the size of the cyclic buffer is 512 events. + + + If the is set to a value less than + or equal to 1 then no buffering will occur. The logging event + will be delivered synchronously (depending on the + and properties). Otherwise the event will + be buffered. + + + + + + Gets or sets the that causes the + buffer to be sent immediately. + + + The that causes the buffer to be + sent immediately. + + + + The evaluator will be called for each event that is appended to this + appender. If the evaluator triggers then the current buffer will + immediately be sent (see ). + + If is set to true then an + must be specified. + + + + + Gets or sets the value of the to use. + + + The value of the to use. + + + + The evaluator will be called for each event that is discarded from this + appender. If the evaluator triggers then the current buffer will immediately + be sent (see ). + + + + + + Gets or sets a value indicating if only part of the logging event data + should be fixed. + + + true if the appender should only fix part of the logging event + data, otherwise false. The default is false. + + + + Setting this property to true will cause only part of the + event data to be fixed and serialized. This will improve performance. + + + See for more information. + + + + + + Gets or sets a the fields that will be fixed in the event + + + The event fields that will be fixed before the event is buffered + + + + The logging event needs to have certain thread specific values + captured before it can be buffered. See + for details. + + + + + + + Initializes a new instance of the class. + + + Public default constructor to initialize a new instance of this class. + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Override the parent method to close the database + + + + Closes the database command and database connection. + + + + + + Inserts the events into the database. + + The events to insert into the database. + + + Insert all the events specified in the + array into the database. + + + + + + Adds a parameter to the command. + + The parameter to add to the command. + + + Adds a parameter to the ordered list of command parameters. + + + + + + Writes the events to the database using the transaction specified. + + The transaction that the events will be executed under. + The array of events to insert into the database. + + + The transaction argument can be null if the appender has been + configured not to use transactions. See + property for more information. + + + + + + Formats the log message into database statement text. + + The event being logged. + + This method can be overridden by subclasses to provide + more control over the format of the database statement. + + + Text that can be passed to a . + + + + + Creates an instance used to connect to the database. + + + This method is called whenever a new IDbConnection is needed (i.e. when a reconnect is necessary). + + The of the object. + The connectionString output from the ResolveConnectionString method. + An instance with a valid connection string. + + + + Resolves the connection string from the ConnectionString, ConnectionStringName, or AppSettingsKey + property. + + + ConnectiongStringName is only supported on .NET 2.0 and higher. + + Additional information describing the connection string. + A connection string used to connect to the database. + + + + Retrieves the class type of the ADO.NET provider. + + + + Gets the Type of the ADO.NET provider to use to connect to the + database. This method resolves the type specified in the + property. + + + Subclasses can override this method to return a different type + if necessary. + + + The of the ADO.NET provider + + + + Connects to the database. + + + + + Cleanup the existing connection. + + + Calls the IDbConnection's method. + + + + + The list of objects. + + + + The list of objects. + + + + + + The security context to use for privileged calls + + + + + The that will be used + to insert logging events into a database. + + + + + Database connection string. + + + + + The appSettings key from App.Config that contains the connection string. + + + + + The connectionStrings key from App.Config that contains the connection string. + + + + + String type name of the type name. + + + + + The text of the command. + + + + + The command type. + + + + + Indicates whether to use transactions when writing to the database. + + + + + Indicates whether to reconnect when a connection is lost. + + + + + The fully qualified type of the AdoNetAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the database connection string that is used to connect to + the database. + + + The database connection string used to connect to the database. + + + + The connections string is specific to the connection type. + See for more information. + + + Connection string for MS Access via ODBC: + "DSN=MS Access Database;UID=admin;PWD=;SystemDB=C:\data\System.mdw;SafeTransactions = 0;FIL=MS Access;DriverID = 25;DBQ=C:\data\train33.mdb" + + Another connection string for MS Access via ODBC: + "Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\Work\cvs_root\log4net-1.2\access.mdb;UID=;PWD=;" + + Connection string for MS Access via OLE DB: + "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Work\cvs_root\log4net-1.2\access.mdb;User Id=;Password=;" + + + + + The appSettings key from App.Config that contains the connection string. + + + + + The connectionStrings key from App.Config that contains the connection string. + + + This property requires at least .NET 2.0. + + + + + Gets or sets the type name of the connection + that should be created. + + + The type name of the connection. + + + + The type name of the ADO.NET provider to use. + + + The default is to use the OLE DB provider. + + + Use the OLE DB Provider. This is the default value. + System.Data.OleDb.OleDbConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Use the MS SQL Server Provider. + System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Use the ODBC Provider. + Microsoft.Data.Odbc.OdbcConnection,Microsoft.Data.Odbc,version=1.0.3300.0,publicKeyToken=b77a5c561934e089,culture=neutral + This is an optional package that you can download from + http://msdn.microsoft.com/downloads + search for ODBC .NET Data Provider. + + Use the Oracle Provider. + System.Data.OracleClient.OracleConnection, System.Data.OracleClient, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + This is an optional package that you can download from + http://msdn.microsoft.com/downloads + search for .NET Managed Provider for Oracle. + + + + + Gets or sets the command text that is used to insert logging events + into the database. + + + The command text used to insert logging events into the database. + + + + Either the text of the prepared statement or the + name of the stored procedure to execute to write into + the database. + + + The property determines if + this text is a prepared statement or a stored procedure. + + + If this property is not set, the command text is retrieved by invoking + . + + + + + + Gets or sets the command type to execute. + + + The command type to execute. + + + + This value may be either (System.Data.CommandType.Text) to specify + that the is a prepared statement to execute, + or (System.Data.CommandType.StoredProcedure) to specify that the + property is the name of a stored procedure + to execute. + + + The default value is (System.Data.CommandType.Text). + + + + + + Should transactions be used to insert logging events in the database. + + + true if transactions should be used to insert logging events in + the database, otherwise false. The default value is true. + + + + Gets or sets a value that indicates whether transactions should be used + to insert logging events in the database. + + + When set a single transaction will be used to insert the buffered events + into the database. Otherwise each event will be inserted without using + an explicit transaction. + + + + + + Gets or sets the used to call the NetSend method. + + + The used to call the NetSend method. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Should this appender try to reconnect to the database on error. + + + true if the appender should try to reconnect to the database after an + error has occurred, otherwise false. The default value is false, + i.e. not to try to reconnect. + + + + The default behaviour is for the appender not to try to reconnect to the + database if an error occurs. Subsequent logging events are discarded. + + + To force the appender to attempt to reconnect to the database set this + property to true. + + + When the appender attempts to connect to the database there may be a + delay of up to the connection timeout specified in the connection string. + This delay will block the calling application's thread. + Until the connection can be reestablished this potential delay may occur multiple times. + + + + + + Gets or sets the underlying . + + + The underlying . + + + creates a to insert + logging events into a database. Classes deriving from + can use this property to get or set this . Use the + underlying returned from if + you require access beyond that which provides. + + + + + Parameter type used by the . + + + + This class provides the basic database parameter properties + as defined by the interface. + + This type can be subclassed to provide database specific + functionality. The two methods that are called externally are + and . + + + + + + Initializes a new instance of the class. + + + Default constructor for the AdoNetAppenderParameter class. + + + + + Prepare the specified database command object. + + The command to prepare. + + + Prepares the database command object by adding + this parameter to its collection of parameters. + + + + + + Renders the logging event and set the parameter value in the command. + + The command containing the parameter. + The event to be rendered. + + + Renders the logging event using this parameters layout + object. Sets the value of the parameter on the command object. + + + + + + The name of this parameter. + + + + + The database type for this parameter. + + + + + Flag to infer type rather than use the DbType + + + + + The precision for this parameter. + + + + + The scale for this parameter. + + + + + The size for this parameter. + + + + + The to use to render the + logging event into an object for this parameter. + + + + + Gets or sets the name of this parameter. + + + The name of this parameter. + + + + The name of this parameter. The parameter name + must match up to a named parameter to the SQL stored procedure + or prepared statement. + + + + + + Gets or sets the database type for this parameter. + + + The database type for this parameter. + + + + The database type for this parameter. This property should + be set to the database type from the + enumeration. See . + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the type from the value. + + + + + + + Gets or sets the precision for this parameter. + + + The precision for this parameter. + + + + The maximum number of digits used to represent the Value. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the precision from the value. + + + + + + + Gets or sets the scale for this parameter. + + + The scale for this parameter. + + + + The number of decimal places to which Value is resolved. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the scale from the value. + + + + + + + Gets or sets the size for this parameter. + + + The size for this parameter. + + + + The maximum size, in bytes, of the data within the column. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the size from the value. + + + For BLOB data types like VARCHAR(max) it may be impossible to infer the value automatically, use -1 as the size in this case. + + + + + + + Gets or sets the to use to + render the logging event into an object for this + parameter. + + + The used to render the + logging event into an object for this parameter. + + + + The that renders the value for this + parameter. + + + The can be used to adapt + any into a + for use in the property. + + + + + + Appends logging events to the terminal using ANSI color escape sequences. + + + + AnsiColorTerminalAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific level of message to be set. + + + This appender expects the terminal to understand the VT100 control set + in order to interpret the color codes. If the terminal or console does not + understand the control codes the behavior is not defined. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes each message to the System.Console.Out or + System.Console.Error that is set at the time the event is appended. + Therefore it is possible to programmatically redirect the output of this appender + (for example NUnit does this to capture program output). While this is the desired + behavior of this appender it may have security implications in your application. + + + When configuring the ANSI colored terminal appender, a mapping should be + specified to map a logging level to a color. For example: + + + + + + + + + + + + + + + The Level is the standard log4net logging level and ForeColor and BackColor can be any + of the following values: + + Blue + Green + Red + White + Yellow + Purple + Cyan + + These color values cannot be combined together to make new colors. + + + The attributes can be any combination of the following: + + Brightforeground is brighter + Dimforeground is dimmer + Underscoremessage is underlined + Blinkforeground is blinking (does not work on all terminals) + Reverseforeground and background are reversed + Hiddenoutput is hidden + Strikethroughmessage has a line through it + + While any of these attributes may be combined together not all combinations + work well together, for example setting both Bright and Dim attributes makes + no sense. + + + Patrick Wagstrom + Nicko Cadell + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Ansi code to reset terminal + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Add a mapping of level to color + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colours + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + Target is the value of the console output stream. + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + The enum of possible display attributes + + + + The following flags can be combined together to + form the ANSI color attributes. + + + + + + + text is bright + + + + + text is dim + + + + + text is underlined + + + + + text is blinking + + + Not all terminals support this attribute + + + + + text and background colors are reversed + + + + + text is hidden + + + + + text is displayed with a strikethrough + + + + + text color is light + + + + + The enum of possible foreground or background color values for + use with the color mapping method + + + + The output can be in one for the following ANSI colors. + + + + + + + color is black + + + + + color is red + + + + + color is green + + + + + color is yellow + + + + + color is blue + + + + + color is magenta + + + + + color is cyan + + + + + color is white + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + An entry in the + + + + This is an abstract base class for types that are stored in the + object. + + + Nicko Cadell + + + + Default protected constructor + + + + Default protected constructor + + + + + + Initialize any options defined on this entry + + + + Should be overridden by any classes that need to initialise based on their options + + + + + + The level that is the key for this mapping + + + The that is the key for this mapping + + + + Get or set the that is the key for this + mapping subclass. + + + + + + Initialize the options for the object + + + + Combine the and together + and append the attributes. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level + + + + + + The color attributes for the specified level + + + + Required property. + The color attributes for the specified level + + + + + + The combined , and + suitable for setting the ansi terminal color. + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Creates a read-only wrapper for a AppenderCollection instance. + + list to create a readonly wrapper arround + + An AppenderCollection wrapper that is read-only. + + + + + An empty readonly static AppenderCollection + + + + + Initializes a new instance of the AppenderCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the AppenderCollection class + that has the specified initial capacity. + + + The number of elements that the new AppenderCollection is initially capable of storing. + + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified AppenderCollection. + + The AppenderCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Allow subclasses to avoid our default constructors + + + + + + + Copies the entire AppenderCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire AppenderCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Adds a to the end of the AppenderCollection. + + The to be added to the end of the AppenderCollection. + The index at which the value has been added. + + + + Removes all elements from the AppenderCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the AppenderCollection. + + The to check for. + true if is found in the AppenderCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the AppenderCollection. + + The to locate in the AppenderCollection. + + The zero-based index of the first occurrence of + in the entire AppenderCollection, if found; otherwise, -1. + + + + + Inserts an element into the AppenderCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the AppenderCollection. + + The to remove from the AppenderCollection. + + The specified was not found in the AppenderCollection. + + + + + Removes the element at the specified index of the AppenderCollection. + + The zero-based index of the element to remove. + + is less than zero + -or- + is equal to or greater than . + + + + + Returns an enumerator that can iterate through the AppenderCollection. + + An for the entire AppenderCollection. + + + + Adds the elements of another AppenderCollection to the current AppenderCollection. + + The AppenderCollection whose elements should be added to the end of the current AppenderCollection. + The new of the AppenderCollection. + + + + Adds the elements of a array to the current AppenderCollection. + + The array whose elements should be added to the end of the AppenderCollection. + The new of the AppenderCollection. + + + + Adds the elements of a collection to the current AppenderCollection. + + The collection whose elements should be added to the end of the AppenderCollection. + The new of the AppenderCollection. + + + + Sets the capacity to the actual number of elements. + + + + + Return the collection elements as an array + + the array + + + + is less than zero + -or- + is equal to or greater than . + + + + + is less than zero + -or- + is equal to or greater than . + + + + + Gets the number of elements actually contained in the AppenderCollection. + + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + The zero-based index of the element to get or set. + + is less than zero + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false + + + + Gets or sets the number of elements the AppenderCollection can contain. + + + + + Supports type-safe iteration over a . + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + + A value + + + + + Supports simple iteration over a . + + + + + + Initializes a new instance of the Enumerator class. + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + + + + + Appends log events to the ASP.NET system. + + + + + Diagnostic information and tracing messages that you specify are appended to the output + of the page that is sent to the requesting browser. Optionally, you can view this information + from a separate trace viewer (Trace.axd) that displays trace information for every page in a + given application. + + + Trace statements are processed and displayed only when tracing is enabled. You can control + whether tracing is displayed to a page, to the trace viewer, or both. + + + The logging event is passed to the or + method depending on the level of the logging event. + The event's logger name is the default value for the category parameter of the Write/Warn method. + + + Nicko Cadell + Gert Driesen + Ron Grabowski + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Write the logging event to the ASP.NET trace + + the event to log + + + Write the logging event to the ASP.NET trace + HttpContext.Current.Trace + (). + + + + + + Defaults to %logger + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + The category parameter sent to the Trace method. + + + + Defaults to %logger which will use the logger name of the current + as the category parameter. + + + + + + + + Buffers events and then forwards them to attached appenders. + + + + The events are buffered in this appender until conditions are + met to allow the appender to deliver the events to the attached + appenders. See for the + conditions that cause the buffer to be sent. + + The forwarding appender can be used to specify different + thresholds and filters for the same appender at different locations + within the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Interface for attaching appenders to objects. + + + + Interface for attaching, removing and retrieving appenders. + + + Nicko Cadell + Gert Driesen + + + + Attaches an appender. + + The appender to add. + + + Add the specified appender. The implementation may + choose to allow or deny duplicate appenders. + + + + + + Gets an attached appender with the specified name. + + The name of the appender to get. + + The appender with the name specified, or null if no appender with the + specified name is found. + + + + Returns an attached appender with the specified. + If no appender with the specified name is found null will be + returned. + + + + + + Removes all attached appenders. + + + + Removes and closes all attached appenders + + + + + + Removes the specified appender from the list of attached appenders. + + The appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Gets all attached appenders. + + + A collection of attached appenders. + + + + Gets a collection of attached appenders. + If there are no attached appenders the + implementation should return an empty + collection rather than null. + + + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Send the events. + + The events that need to be send. + + + Forwards the events to the attached appenders. + + + + + + Adds an to the list of appenders of this + instance. + + The to add to this appender. + + + If the specified is already in the list of + appenders, then it won't be added again. + + + + + + Looks for the appender with the specified name. + + The name of the appender to lookup. + + The appender with the specified name, or null. + + + + Get the named appender attached to this buffering appender. + + + + + + Removes all previously added appenders from this appender. + + + + This is useful when re-reading configuration information. + + + + + + Removes the specified appender from the list of appenders. + + The appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Implementation of the interface + + + + + Gets the appenders contained in this appender as an + . + + + If no appenders can be found, then an + is returned. + + + A collection of the appenders in this appender. + + + + + Appends logging events to the console. + + + + ColoredConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific type of message to be set. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes directly to the application's attached console + not to the System.Console.Out or System.Console.Error TextWriter. + The System.Console.Out and System.Console.Error streams can be + programmatically redirected (for example NUnit does this to capture program output). + This appender will ignore these redirections because it needs to use Win32 + API calls to colorize the output. To respect these redirections the + must be used. + + + When configuring the colored console appender, mapping should be + specified to map a logging level to a color. For example: + + + + + + + + + + + + + + The Level is the standard log4net logging level and ForeColor and BackColor can be any + combination of the following values: + + Blue + Green + Red + White + Yellow + Purple + Cyan + HighIntensity + + + + Rick Hobbs + Nicko Cadell + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + flag set to true to write to the console error stream + + When is set to true, output is written to + the standard error output stream. Otherwise, output is written to the standard + output stream. + + + + + Add a mapping of level to color - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colors + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + The console output stream writer to write to + + + + This writer is not thread safe. + + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + The enum of possible color values for use with the color mapping method + + + + The following flags can be combined together to + form the colors. + + + + + + + color is blue + + + + + color is green + + + + + color is red + + + + + color is white + + + + + color is yellow + + + + + color is purple + + + + + color is cyan + + + + + color is intensified + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + Initialize the options for the object + + + + Combine the and together. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level. + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level. + + + + + + The combined and suitable for + setting the console color. + + + + + Appends logging events to the console. + + + + ConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes each message to the System.Console.Out or + System.Console.Error that is set at the time the event is appended. + Therefore it is possible to programmatically redirect the output of this appender + (for example NUnit does this to capture program output). While this is the desired + behavior of this appender it may have security implications in your application. + + + Nicko Cadell + Gert Driesen + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + flag set to true to write to the console error stream + + When is set to true, output is written to + the standard error output stream. Otherwise, output is written to the standard + output stream. + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Appends log events to the system. + + + + The application configuration file can be used to control what listeners + are actually used. See the MSDN documentation for the + class for details on configuring the + debug system. + + + Events are written using the + method. The event's logger name is passed as the value for the category name to the Write method. + + + Nicko Cadell + + + + Initializes a new instance of the . + + + + Default constructor. + + + + + + Initializes a new instance of the + with a specified layout. + + The layout to use with this appender. + + + Obsolete constructor. + + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Writes the logging event to the system. + + The event to log. + + + Writes the logging event to the system. + If is true then the + is called. + + + + + + Immediate flush means that the underlying writer or output stream + will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logs events are not actually written to persistent media if and + when the application crashes. + + + The default value is true. + + + + + Defaults to a with %logger as the pattern. + + + + + Gets or sets a value that indicates whether the appender will + flush at the end of each write. + + + The default behavior is to flush at the end of each + write. If the option is set tofalse, then the underlying + stream can defer writing to physical medium to a later time. + + + Avoiding the flush operation at the end of each append results + in a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + + Formats the category parameter sent to the Debug method. + + + + Defaults to a with %logger as the pattern which will use the logger name of the current + as the category parameter. + + + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Writes events to the system event log. + + + + The appender will fail if you try to write using an event source that doesn't exist unless it is running with local administrator privileges. + See also http://logging.apache.org/log4net/release/faq.html#trouble-EventLog + + + The EventID of the event log entry can be + set using the EventID property () + on the . + + + The Category of the event log entry can be + set using the Category property () + on the . + + + There is a limit of 32K characters for an event log message + + + When configuring the EventLogAppender a mapping can be + specified to map a logging level to an event log entry type. For example: + + + <mapping> + <level value="ERROR" /> + <eventLogEntryType value="Error" /> + </mapping> + <mapping> + <level value="DEBUG" /> + <eventLogEntryType value="Information" /> + </mapping> + + + The Level is the standard log4net logging level and eventLogEntryType can be any value + from the enum, i.e.: + + Erroran error event + Warninga warning event + Informationan informational event + + + + Aspi Havewala + Douglas de la Torre + Nicko Cadell + Gert Driesen + Thomas Voss + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initializes a new instance of the class + with the specified . + + The to use with this appender. + + + Obsolete constructor. + + + + + + Add a mapping of level to - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the event log entry type for a level. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Create an event log source + + + Uses different API calls under NET_2_0 + + + + + This method is called by the + method. + + the event to log + + Writes the event to the system event log using the + . + + If the event has an EventID property (see ) + set then this integer will be used as the event log event id. + + + There is a limit of 32K characters for an event log message + + + + + + Get the equivalent for a + + the Level to convert to an EventLogEntryType + The equivalent for a + + Because there are fewer applicable + values to use in logging levels than there are in the + this is a one way mapping. There is + a loss of information during the conversion. + + + + + The log name is the section in the event logs where the messages + are stored. + + + + + Name of the application to use when logging. This appears in the + application column of the event log named by . + + + + + The name of the machine which holds the event log. This is + currently only allowed to be '.' i.e. the current machine. + + + + + Mapping from level object to EventLogEntryType + + + + + The security context to use for privileged calls + + + + + The event ID to use unless one is explicitly specified via the LoggingEvent's properties. + + + + + The event category to use unless one is explicitly specified via the LoggingEvent's properties. + + + + + The fully qualified type of the EventLogAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + The maximum size supported by default. + + + http://msdn.microsoft.com/en-us/library/xzwc042w(v=vs.100).aspx + The 32766 documented max size is two bytes shy of 32K (I'm assuming 32766 + may leave space for a two byte null terminator of #0#0). The 32766 max + length is what the .NET 4.0 source code checks for, but this is WRONG! + Strings with a length > 31839 on Windows Vista or higher can CORRUPT + the event log! See: System.Diagnostics.EventLogInternal.InternalWriteEvent() + for the use of the 32766 max size. + + + + + The maximum size supported by a windows operating system that is vista + or newer. + + + See ReportEvent API: + http://msdn.microsoft.com/en-us/library/aa363679(VS.85).aspx + ReportEvent's lpStrings parameter: + "A pointer to a buffer containing an array of + null-terminated strings that are merged into the message before Event Viewer + displays the string to the user. This parameter must be a valid pointer + (or NULL), even if wNumStrings is zero. Each string is limited to 31,839 characters." + + Going beyond the size of 31839 will (at some point) corrupt the event log on Windows + Vista or higher! It may succeed for a while...but you will eventually run into the + error: "System.ComponentModel.Win32Exception : A device attached to the system is + not functioning", and the event log will then be corrupt (I was able to corrupt + an event log using a length of 31877 on Windows 7). + + The max size for Windows Vista or higher is documented here: + http://msdn.microsoft.com/en-us/library/xzwc042w(v=vs.100).aspx. + Going over this size may succeed a few times but the buffer will overrun and + eventually corrupt the log (based on testing). + + The maxEventMsgSize size is based on the max buffer size of the lpStrings parameter of the ReportEvent API. + The documented max size for EventLog.WriteEntry for Windows Vista and higher is 31839, but I'm leaving room for a + terminator of #0#0, as we cannot see the source of ReportEvent (though we could use an API monitor to examine the + buffer, given enough time). + + + + + The maximum size that the operating system supports for + a event log message. + + + Used to determine the maximum string length that can be written + to the operating system event log and eventually truncate a string + that exceeds the limits. + + + + + This method determines the maximum event log message size allowed for + the current environment. + + + + + + The name of the log where messages will be stored. + + + The string name of the log where messages will be stored. + + + This is the name of the log as it appears in the Event Viewer + tree. The default value is to log into the Application + log, this is where most applications write their events. However + if you need a separate log for your application (or applications) + then you should set the appropriately. + This should not be used to distinguish your event log messages + from those of other applications, the + property should be used to distinguish events. This property should be + used to group together events into a single log. + + + + + + Property used to set the Application name. This appears in the + event logs when logging. + + + The string used to distinguish events from different sources. + + + Sets the event log source property. + + + + + This property is used to return the name of the computer to use + when accessing the event logs. Currently, this is the current + computer, denoted by a dot "." + + + The string name of the machine holding the event log that + will be logged into. + + + This property cannot be changed. It is currently set to '.' + i.e. the local machine. This may be changed in future. + + + + + Gets or sets the used to write to the EventLog. + + + The used to write to the EventLog. + + + + The system security context used to write to the EventLog. + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Gets or sets the EventId to use unless one is explicitly specified via the LoggingEvent's properties. + + + + The EventID of the event log entry will normally be + set using the EventID property () + on the . + This property provides the fallback value which defaults to 0. + + + + + + Gets or sets the Category to use unless one is explicitly specified via the LoggingEvent's properties. + + + + The Category of the event log entry will normally be + set using the Category property () + on the . + This property provides the fallback value which defaults to 0. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and its event log entry type. + + + + + + The for this entry + + + + Required property. + The for this entry + + + + + + Appends logging events to a file. + + + + Logging events are sent to the file specified by + the property. + + + The file can be opened in either append or overwrite mode + by specifying the property. + If the file path is relative it is taken as relative from + the application base directory. The file encoding can be + specified by setting the property. + + + The layout's and + values will be written each time the file is opened and closed + respectively. If the property is + then the file may contain multiple copies of the header and footer. + + + This appender will first try to open the file for writing when + is called. This will typically be during configuration. + If the file cannot be opened for writing the appender will attempt + to open the file again each time a message is logged to the appender. + If the file cannot be opened for writing when a message is logged then + the message will be discarded by this appender. + + + The supports pluggable file locking models via + the property. + The default behavior, implemented by + is to obtain an exclusive write lock on the file until this appender is closed. + The alternative models only hold a + write lock while the appender is writing a logging event () + or synchronize by using a named system wide Mutex (). + + + All locking strategies have issues and you should seriously consider using a different strategy that + avoids having multiple processes logging to the same file. + + + Nicko Cadell + Gert Driesen + Rodrigo B. de Oliveira + Douglas de la Torre + Niall Daley + + + + Sends logging events to a . + + + + An Appender that writes to a . + + + This appender may be used stand alone if initialized with an appropriate + writer, however it is typically used as a base class for an appender that + can open a to write to. + + + Nicko Cadell + Gert Driesen + Douglas de la Torre + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initializes a new instance of the class and + sets the output destination to a new initialized + with the specified . + + The layout to use with this appender. + The to output to. + + + Obsolete constructor. + + + + + + Initializes a new instance of the class and sets + the output destination to the specified . + + The layout to use with this appender + The to output to + + The must have been previously opened. + + + + Obsolete constructor. + + + + + + This method determines if there is a sense in attempting to append. + + + + This method checks if an output target has been set and if a + layout has been set. + + + false if any of the preconditions fail. + + + + This method is called by the + method. + + The event to log. + + + Writes a log statement to the output stream if the output stream exists + and is writable. + + + The format of the output will depend on the appender's layout. + + + + + + This method is called by the + method. + + The array of events to log. + + + This method writes all the bulk logged events to the output writer + before flushing the stream. + + + + + + Close this appender instance. The underlying stream or writer is also closed. + + + Closed appenders cannot be reused. + + + + + Writes the footer and closes the underlying . + + + + Writes the footer and closes the underlying . + + + + + + Closes the underlying . + + + + Closes the underlying . + + + + + + Clears internal references to the underlying + and other variables. + + + + Subclasses can override this method for an alternate closing behavior. + + + + + + Writes a footer as produced by the embedded layout's property. + + + + Writes a footer as produced by the embedded layout's property. + + + + + + Writes a header produced by the embedded layout's property. + + + + Writes a header produced by the embedded layout's property. + + + + + + Called to allow a subclass to lazily initialize the writer + + + + This method is called when an event is logged and the or + have not been set. This allows a subclass to + attempt to initialize the writer multiple times. + + + + + + This is the where logging events + will be written to. + + + + + Immediate flush means that the underlying + or output stream will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logging events are not actually persisted if and when the application + crashes. + + + The default value is true. + + + + + + The fully qualified type of the TextWriterAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Gets or set whether the appender will flush at the end + of each append operation. + + + + The default behavior is to flush at the end of each + append operation. + + + If this option is set to false, then the underlying + stream can defer persisting the logging event to a later + time. + + + + Avoiding the flush operation at the end of each append results in + a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + Sets the where the log output will go. + + + + The specified must be open and writable. + + + The will be closed when the appender + instance is closed. + + + Note: Logging to an unopened will fail. + + + + + + Gets or set the and the underlying + , if any, for this appender. + + + The for this appender. + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Gets or sets the where logging events + will be written to. + + + The where logging events are written. + + + + This is the where logging events + will be written to. + + + + + + Default constructor + + + + Default constructor + + + + + + Construct a new appender using the layout, file and append mode. + + the layout to use with this appender + the full path to the file to write to + flag to indicate if the file should be appended to + + + Obsolete constructor. + + + + + + Construct a new appender using the layout and file specified. + The file will be appended to. + + the layout to use with this appender + the full path to the file to write to + + + Obsolete constructor. + + + + + + Activate the options on the file appender. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + This will cause the file to be opened. + + + + + + Closes any previously opened file and calls the parent's . + + + + Resets the filename and the file stream. + + + + + + Close this appender instance. The underlying stream or writer is also closed. + + + + + Called to initialize the file writer + + + + Will be called for each logged message until the file is + successfully opened. + + + + + + This method is called by the + method. + + The event to log. + + + Writes a log statement to the output stream if the output stream exists + and is writable. + + + The format of the output will depend on the appender's layout. + + + + + + This method is called by the + method. + + The array of events to log. + + + Acquires the output file locks once before writing all the events to + the stream. + + + + + + Writes a footer as produced by the embedded layout's property. + + + + Writes a footer as produced by the embedded layout's property. + + + + + + Writes a header produced by the embedded layout's property. + + + + Writes a header produced by the embedded layout's property. + + + + + + Closes the underlying . + + + + Closes the underlying . + + + + + + Closes the previously opened file. + + + + Writes the to the file and then + closes the file. + + + + + + Sets and opens the file where the log output will go. The specified file must be writable. + + The path to the log file. Must be a fully qualified path. + If true will append to fileName. Otherwise will truncate fileName + + + Calls but guarantees not to throw an exception. + Errors are passed to the . + + + + + + Sets and opens the file where the log output will go. The specified file must be writable. + + The path to the log file. Must be a fully qualified path. + If true will append to fileName. Otherwise will truncate fileName + + + If there was already an opened file, then the previous file + is closed first. + + + This method will ensure that the directory structure + for the specified exists. + + + + + + Sets the quiet writer used for file output + + the file stream that has been opened for writing + + + This implementation of creates a + over the and passes it to the + method. + + + This method can be overridden by sub classes that want to wrap the + in some way, for example to encrypt the output + data using a System.Security.Cryptography.CryptoStream. + + + + + + Sets the quiet writer being used. + + the writer over the file stream that has been opened for writing + + + This method can be overridden by sub classes that want to + wrap the in some way. + + + + + + Convert a path into a fully qualified path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + + + + Flag to indicate if we should append to the file + or overwrite the file. The default is to append. + + + + + The name of the log file. + + + + + The encoding to use for the file stream. + + + + + The security context to use for privileged calls + + + + + The stream to log to. Has added locking semantics + + + + + The locking model to use + + + + + The fully qualified type of the FileAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the path to the file that logging will be written to. + + + The path to the file that logging will be written to. + + + + If the path is relative it is taken as relative from + the application base directory. + + + + + + Gets or sets a flag that indicates whether the file should be + appended to or overwritten. + + + Indicates whether the file should be appended to or overwritten. + + + + If the value is set to false then the file will be overwritten, if + it is set to true then the file will be appended to. + + The default value is true. + + + + + Gets or sets used to write to the file. + + + The used to write to the file. + + + + The default encoding set is + which is the encoding for the system's current ANSI code page. + + + + + + Gets or sets the used to write to the file. + + + The used to write to the file. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Gets or sets the used to handle locking of the file. + + + The used to lock the file. + + + + Gets or sets the used to handle locking of the file. + + + There are three built in locking models, , and . + The first locks the file from the start of logging to the end, the + second locks only for the minimal amount of time when logging each message + and the last synchronizes processes using a named system wide Mutex. + + + The default locking model is the . + + + + + + Write only that uses the + to manage access to an underlying resource. + + + + + True asynchronous writes are not supported, the implementation forces a synchronous write. + + + + + Exception base type for log4net. + + + + This type extends . It + does not add any new functionality but does differentiate the + type of exception being thrown. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + A message to include with the exception. + + + Initializes a new instance of the class with + the specified message. + + + + + + Constructor + + A message to include with the exception. + A nested exception to include. + + + Initializes a new instance of the class + with the specified message and inner exception. + + + + + + Serialization constructor + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Locking model base class + + + + Base class for the locking models available to the derived loggers. + + + + + + Open the output file + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Acquire the lock on the file in preparation for writing to it. + Return a stream pointing to the file. + must be called to release the lock on the output file. + + + + + + Release the lock on the file + + + + Release the lock on the file. No further writes will be made to the + stream until is called again. + + + + + + Helper method that creates a FileStream under CurrentAppender's SecurityContext. + + + + Typically called during OpenFile or AcquireLock. + + + If the directory portion of the does not exist, it is created + via Directory.CreateDirecctory. + + + + + + + + + + Helper method to close under CurrentAppender's SecurityContext. + + + Does not set to null. + + + + + + Gets or sets the for this LockingModel + + + The for this LockingModel + + + + The file appender this locking model is attached to and working on + behalf of. + + + The file appender is used to locate the security context and the error handler to use. + + + The value of this property will be set before is + called. + + + + + + Hold an exclusive lock on the output file + + + + Open the file once for writing and hold it open until is called. + Maintains an exclusive lock on the file during this time. + + + + + + Open the file specified and prepare for logging. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Does nothing. The lock is already taken + + + + + + Release the lock on the file + + + + Does nothing. The lock will be released when the file is closed. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Acquires the file lock for each write + + + + Opens the file once for each / cycle, + thus holding the lock for the minimal amount of time. This method of locking + is considerably slower than but allows + other processes to move/delete the log file whilst logging continues. + + + + + + Prepares to open the file when the first message is logged. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Acquire the lock on the file in preparation for writing to it. + Return a stream pointing to the file. + must be called to release the lock on the output file. + + + + + + Release the lock on the file + + + + Release the lock on the file. No further writes will be made to the + stream until is called again. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Provides cross-process file locking. + + Ron Grabowski + Steve Wranovsky + + + + Open the file specified and prepare for logging. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + - and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Does nothing. The lock is already taken + + + + + + Releases the lock and allows others to acquire a lock. + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + This appender forwards logging events to attached appenders. + + + + The forwarding appender can be used to specify different thresholds + and filters for the same appender at different locations within the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Forward the logging event to the attached appenders + + The event to log. + + + Delivers the logging event to all the attached appenders. + + + + + + Forward the logging events to the attached appenders + + The array of events to log. + + + Delivers the logging events to all the attached appenders. + + + + + + Adds an to the list of appenders of this + instance. + + The to add to this appender. + + + If the specified is already in the list of + appenders, then it won't be added again. + + + + + + Looks for the appender with the specified name. + + The name of the appender to lookup. + + The appender with the specified name, or null. + + + + Get the named appender attached to this appender. + + + + + + Removes all previously added appenders from this appender. + + + + This is useful when re-reading configuration information. + + + + + + Removes the specified appender from the list of appenders. + + The appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Implementation of the interface + + + + + Gets the appenders contained in this appender as an + . + + + If no appenders can be found, then an + is returned. + + + A collection of the appenders in this appender. + + + + + Logs events to a local syslog service. + + + + This appender uses the POSIX libc library functions openlog, syslog, and closelog. + If these functions are not available on the local system then this appender will not work! + + + The functions openlog, syslog, and closelog are specified in SUSv2 and + POSIX 1003.1-2001 standards. These are used to log messages to the local syslog service. + + + This appender talks to a local syslog service. If you need to log to a remote syslog + daemon and you cannot configure your local syslog service to do this you may be + able to use the to log via UDP. + + + Syslog messages must have a facility and and a severity. The severity + is derived from the Level of the logging event. + The facility must be chosen from the set of defined syslog + values. The facilities list is predefined + and cannot be extended. + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + Rob Lyon + Nicko Cadell + + + + Initializes a new instance of the class. + + + This instance of the class is set up to write + to a local syslog service. + + + + + Add a mapping of level to severity + + The mapping to add + + + Adds a to this appender. + + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to a remote syslog daemon. + + + The format of the output will depend on the appender's layout. + + + + + + Close the syslog when the appender is closed + + + + Close the syslog when the appender is closed + + + + + + Translates a log4net level to a syslog severity. + + A log4net level. + A syslog severity. + + + Translates a log4net level to a syslog severity. + + + + + + Generate a syslog priority. + + The syslog facility. + The syslog severity. + A syslog priority. + + + + The facility. The default facility is . + + + + + The message identity + + + + + Marshaled handle to the identity string. We have to hold on to the + string as the openlog and syslog APIs just hold the + pointer to the ident and dereference it for each log message. + + + + + Mapping from level object to syslog severity + + + + + Open connection to system logger. + + + + + Generate a log message. + + + + The libc syslog method takes a format string and a variable argument list similar + to the classic printf function. As this type of vararg list is not supported + by C# we need to specify the arguments explicitly. Here we have specified the + format string with a single message argument. The caller must set the format + string to "%s". + + + + + + Close descriptor used to write to system logger. + + + + + Message identity + + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + + + + Syslog facility + + + Set to one of the values. The list of + facilities is predefined and cannot be extended. The default value + is . + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + syslog severities + + + + The log4net Level maps to a syslog severity using the + method and the + class. The severity is set on . + + + + + + system is unusable + + + + + action must be taken immediately + + + + + critical conditions + + + + + error conditions + + + + + warning conditions + + + + + normal but significant condition + + + + + informational + + + + + debug-level messages + + + + + syslog facilities + + + + The syslog facility defines which subsystem the logging comes from. + This is set on the property. + + + + + + kernel messages + + + + + random user-level messages + + + + + mail system + + + + + system daemons + + + + + security/authorization messages + + + + + messages generated internally by syslogd + + + + + line printer subsystem + + + + + network news subsystem + + + + + UUCP subsystem + + + + + clock (cron/at) daemon + + + + + security/authorization messages (private) + + + + + ftp daemon + + + + + NTP subsystem + + + + + log audit + + + + + log alert + + + + + clock daemon + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + + + The mapped syslog severity for the specified level + + + + Required property. + The mapped syslog severity for the specified level + + + + + + Appends colorful logging events to the console, using the .NET 2 + built-in capabilities. + + + + ManagedColoredConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific type of message to be set. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + When configuring the colored console appender, mappings should be + specified to map logging levels to colors. For example: + + + + + + + + + + + + + + + + + + + + + + The Level is the standard log4net logging level while + ForeColor and BackColor are the values of + enumeration. + + + Based on the ColoredConsoleAppender + + + Rick Hobbs + Nicko Cadell + Pavlos Touboulidis + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Add a mapping of level to color - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colors + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level. + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level. + + + + + + Stores logging events in an array. + + + + The memory appender stores all the logging events + that are appended in an in-memory array. + + + Use the method to get + and clear the current list of events that have been appended. + + + Use the method to get the current + list of events that have been appended. Note there is a + race-condition when calling and + in pairs, you better use in that case. + + + Use the method to clear the + current list of events. Note there is a + race-condition when calling and + in pairs, you better use in that case. + + + Julian Biddle + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Gets the events that have been logged. + + The events that have been logged + + + Gets the events that have been logged. + + + + + + This method is called by the method. + + the event to log + + Stores the in the events list. + + + + + Clear the list of events + + + Clear the list of events + + + + + Gets the events that have been logged and clears the list of events. + + The events that have been logged + + + Gets the events that have been logged and clears the list of events. + + + + + + The list of events that have been appended. + + + + + Value indicating which fields in the event should be fixed + + + By default all fields are fixed + + + + + Gets or sets a value indicating whether only part of the logging event + data should be fixed. + + + true if the appender should only fix part of the logging event + data, otherwise false. The default is false. + + + + Setting this property to true will cause only part of the event + data to be fixed and stored in the appender, hereby improving performance. + + + See for more information. + + + + + + Gets or sets the fields that will be fixed in the event + + + + The logging event needs to have certain thread specific values + captured before it can be buffered. See + for details. + + + + + + Logs entries by sending network messages using the + native function. + + + + You can send messages only to names that are active + on the network. If you send the message to a user name, + that user must be logged on and running the Messenger + service to receive the message. + + + The receiver will get a top most window displaying the + messages one at a time, therefore this appender should + not be used to deliver a high volume of messages. + + + The following table lists some possible uses for this appender : + + + + + Action + Property Value(s) + + + Send a message to a user account on the local machine + + + = <name of the local machine> + + + = <user name> + + + + + Send a message to a user account on a remote machine + + + = <name of the remote machine> + + + = <user name> + + + + + Send a message to a domain user account + + + = <name of a domain controller | uninitialized> + + + = <user name> + + + + + Send a message to all the names in a workgroup or domain + + + = <workgroup name | domain name>* + + + + + Send a message from the local machine to a remote machine + + + = <name of the local machine | uninitialized> + + + = <name of the remote machine> + + + + + + + Note : security restrictions apply for sending + network messages, see + for more information. + + + + + An example configuration section to log information + using this appender from the local machine, named + LOCAL_PC, to machine OPERATOR_PC : + + + + + + + + + + Nicko Cadell + Gert Driesen + + + + The DNS or NetBIOS name of the server on which the function is to execute. + + + + + The sender of the network message. + + + + + The message alias to which the message should be sent. + + + + + The security context to use for privileged calls + + + + + Initializes the appender. + + + The default constructor initializes all fields to their default values. + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The appender will be ignored if no was specified. + + + The required property was not specified. + + + + This method is called by the method. + + The event to log. + + + Sends the event using a network message. + + + + + + Sends a buffer of information to a registered message alias. + + The DNS or NetBIOS name of the server on which the function is to execute. + The message alias to which the message buffer should be sent + The originator of the message. + The message text. + The length, in bytes, of the message text. + + + The following restrictions apply for sending network messages: + + + + + Platform + Requirements + + + Windows NT + + + No special group membership is required to send a network message. + + + Admin, Accounts, Print, or Server Operator group membership is required to + successfully send a network message on a remote server. + + + + + Windows 2000 or later + + + If you send a message on a domain controller that is running Active Directory, + access is allowed or denied based on the access control list (ACL) for the securable + object. The default ACL permits only Domain Admins and Account Operators to send a network message. + + + On a member server or workstation, only Administrators and Server Operators can send a network message. + + + + + + + For more information see Security Requirements for the Network Management Functions. + + + + + If the function succeeds, the return value is zero. + + + + + + Gets or sets the sender of the message. + + + The sender of the message. + + + If this property is not specified, the message is sent from the local computer. + + + + + Gets or sets the message alias to which the message should be sent. + + + The recipient of the message. + + + This property should always be specified in order to send a message. + + + + + Gets or sets the DNS or NetBIOS name of the remote server on which the function is to execute. + + + DNS or NetBIOS name of the remote server on which the function is to execute. + + + + For Windows NT 4.0 and earlier, the string should begin with \\. + + + If this property is not specified, the local computer is used. + + + + + + Gets or sets the used to call the NetSend method. + + + The used to call the NetSend method. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Appends log events to the OutputDebugString system. + + + + OutputDebugStringAppender appends log events to the + OutputDebugString system. + + + The string is passed to the native OutputDebugString + function. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Write the logging event to the output debug string API + + the event to log + + + Write the logging event to the output debug string API + + + + + + Stub for OutputDebugString native method + + the string to output + + + Stub for OutputDebugString native method + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Logs events to a remote syslog daemon. + + + + The BSD syslog protocol is used to remotely log to + a syslog daemon. The syslogd listens for for messages + on UDP port 514. + + + The syslog UDP protocol is not authenticated. Most syslog daemons + do not accept remote log messages because of the security implications. + You may be able to use the LocalSyslogAppender to talk to a local + syslog service. + + + There is an RFC 3164 that claims to document the BSD Syslog Protocol. + This RFC can be seen here: http://www.faqs.org/rfcs/rfc3164.html. + This appender generates what the RFC calls an "Original Device Message", + i.e. does not include the TIMESTAMP or HOSTNAME fields. By observation + this format of message will be accepted by all current syslog daemon + implementations. The daemon will attach the current time and the source + hostname or IP address to any messages received. + + + Syslog messages must have a facility and and a severity. The severity + is derived from the Level of the logging event. + The facility must be chosen from the set of defined syslog + values. The facilities list is predefined + and cannot be extended. + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + Rob Lyon + Nicko Cadell + + + + Sends logging events as connectionless UDP datagrams to a remote host or a + multicast group using an . + + + + UDP guarantees neither that messages arrive, nor that they arrive in the correct order. + + + To view the logging results, a custom application can be developed that listens for logging + events. + + + When decoding events send via this appender remember to use the same encoding + to decode the events as was used to send the events. See the + property to specify the encoding to use. + + + + This example shows how to log receive logging events that are sent + on IP address 244.0.0.1 and port 8080 to the console. The event is + encoded in the packet as a unicode string and it is decoded as such. + + IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0); + UdpClient udpClient; + byte[] buffer; + string loggingEvent; + + try + { + udpClient = new UdpClient(8080); + + while(true) + { + buffer = udpClient.Receive(ref remoteEndPoint); + loggingEvent = System.Text.Encoding.Unicode.GetString(buffer); + Console.WriteLine(loggingEvent); + } + } + catch(Exception e) + { + Console.WriteLine(e.ToString()); + } + + + Dim remoteEndPoint as IPEndPoint + Dim udpClient as UdpClient + Dim buffer as Byte() + Dim loggingEvent as String + + Try + remoteEndPoint = new IPEndPoint(IPAddress.Any, 0) + udpClient = new UdpClient(8080) + + While True + buffer = udpClient.Receive(ByRef remoteEndPoint) + loggingEvent = System.Text.Encoding.Unicode.GetString(buffer) + Console.WriteLine(loggingEvent) + Wend + Catch e As Exception + Console.WriteLine(e.ToString()) + End Try + + + An example configuration section to log information using this appender to the + IP 224.0.0.1 on port 8080: + + + + + + + + + + Gert Driesen + Nicko Cadell + + + + Initializes a new instance of the class. + + + The default constructor initializes all fields to their default values. + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The appender will be ignored if no was specified or + an invalid remote or local TCP port number was specified. + + + The required property was not specified. + The TCP port number assigned to or is less than or greater than . + + + + This method is called by the method. + + The event to log. + + + Sends the event using an UDP datagram. + + + Exceptions are passed to the . + + + + + + Closes the UDP connection and releases all resources associated with + this instance. + + + + Disables the underlying and releases all managed + and unmanaged resources associated with the . + + + + + + Initializes the underlying connection. + + + + The underlying is initialized and binds to the + port number from which you intend to communicate. + + + Exceptions are passed to the . + + + + + + The IP address of the remote host or multicast group to which + the logging event will be sent. + + + + + The TCP port number of the remote host or multicast group to + which the logging event will be sent. + + + + + The cached remote endpoint to which the logging events will be sent. + + + + + The TCP port number from which the will communicate. + + + + + The instance that will be used for sending the + logging events. + + + + + The encoding to use for the packet. + + + + + Gets or sets the IP address of the remote host or multicast group to which + the underlying should sent the logging event. + + + The IP address of the remote host or multicast group to which the logging event + will be sent. + + + + Multicast addresses are identified by IP class D addresses (in the range 224.0.0.0 to + 239.255.255.255). Multicast packets can pass across different networks through routers, so + it is possible to use multicasts in an Internet scenario as long as your network provider + supports multicasting. + + + Hosts that want to receive particular multicast messages must register their interest by joining + the multicast group. Multicast messages are not sent to networks where no host has joined + the multicast group. Class D IP addresses are used for multicast groups, to differentiate + them from normal host addresses, allowing nodes to easily detect if a message is of interest. + + + Static multicast addresses that are needed globally are assigned by IANA. A few examples are listed in the table below: + + + + + IP Address + Description + + + 224.0.0.1 + + + Sends a message to all system on the subnet. + + + + + 224.0.0.2 + + + Sends a message to all routers on the subnet. + + + + + 224.0.0.12 + + + The DHCP server answers messages on the IP address 224.0.0.12, but only on a subnet. + + + + + + + A complete list of actually reserved multicast addresses and their owners in the ranges + defined by RFC 3171 can be found at the IANA web site. + + + The address range 239.0.0.0 to 239.255.255.255 is reserved for administrative scope-relative + addresses. These addresses can be reused with other local groups. Routers are typically + configured with filters to prevent multicast traffic in this range from flowing outside + of the local network. + + + + + + Gets or sets the TCP port number of the remote host or multicast group to which + the underlying should sent the logging event. + + + An integer value in the range to + indicating the TCP port number of the remote host or multicast group to which the logging event + will be sent. + + + The underlying will send messages to this TCP port number + on the remote host or multicast group. + + The value specified is less than or greater than . + + + + Gets or sets the TCP port number from which the underlying will communicate. + + + An integer value in the range to + indicating the TCP port number from which the underlying will communicate. + + + + The underlying will bind to this port for sending messages. + + + Setting the value to 0 (the default) will cause the udp client not to bind to + a local port. + + + The value specified is less than or greater than . + + + + Gets or sets used to write the packets. + + + The used to write the packets. + + + + The used to write the packets. + + + + + + Gets or sets the underlying . + + + The underlying . + + + creates a to send logging events + over a network. Classes deriving from can use this + property to get or set this . Use the underlying + returned from if you require access beyond that which + provides. + + + + + Gets or sets the cached remote endpoint to which the logging events should be sent. + + + The cached remote endpoint to which the logging events will be sent. + + + The method will initialize the remote endpoint + with the values of the and + properties. + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Syslog port 514 + + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + Initializes a new instance of the class. + + + This instance of the class is set up to write + to a remote syslog daemon. + + + + + Add a mapping of level to severity + + The mapping to add + + + Add a mapping to this appender. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to a remote syslog daemon. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to syslog severity mappings set on this appender. + + + + + + Translates a log4net level to a syslog severity. + + A log4net level. + A syslog severity. + + + Translates a log4net level to a syslog severity. + + + + + + Generate a syslog priority. + + The syslog facility. + The syslog severity. + A syslog priority. + + + Generate a syslog priority. + + + + + + The facility. The default facility is . + + + + + The message identity + + + + + Mapping from level object to syslog severity + + + + + Message identity + + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + + + + Syslog facility + + + Set to one of the values. The list of + facilities is predefined and cannot be extended. The default value + is . + + + + + syslog severities + + + + The syslog severities. + + + + + + system is unusable + + + + + action must be taken immediately + + + + + critical conditions + + + + + error conditions + + + + + warning conditions + + + + + normal but significant condition + + + + + informational + + + + + debug-level messages + + + + + syslog facilities + + + + The syslog facilities + + + + + + kernel messages + + + + + random user-level messages + + + + + mail system + + + + + system daemons + + + + + security/authorization messages + + + + + messages generated internally by syslogd + + + + + line printer subsystem + + + + + network news subsystem + + + + + UUCP subsystem + + + + + clock (cron/at) daemon + + + + + security/authorization messages (private) + + + + + ftp daemon + + + + + NTP subsystem + + + + + log audit + + + + + log alert + + + + + clock daemon + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + + + The mapped syslog severity for the specified level + + + + Required property. + The mapped syslog severity for the specified level + + + + + + Delivers logging events to a remote logging sink. + + + + This Appender is designed to deliver events to a remote sink. + That is any object that implements the + interface. It delivers the events using .NET remoting. The + object to deliver events to is specified by setting the + appenders property. + + The RemotingAppender buffers events before sending them. This allows it to + make more efficient use of the remoting infrastructure. + + Once the buffer is full the events are still not sent immediately. + They are scheduled to be sent using a pool thread. The effect is that + the send occurs asynchronously. This is very important for a + number of non obvious reasons. The remoting infrastructure will + flow thread local variables (stored in the ), + if they are marked as , across the + remoting boundary. If the server is not contactable then + the remoting infrastructure will clear the + objects from the . To prevent a logging failure from + having side effects on the calling application the remoting call must be made + from a separate thread to the one used by the application. A + thread is used for this. If no thread is available then + the events will block in the thread pool manager until a thread is available. + + Because the events are sent asynchronously using pool threads it is possible to close + this appender before all the queued events have been sent. + When closing the appender attempts to wait until all the queued events have been sent, but + this will timeout after 30 seconds regardless. + + If this appender is being closed because the + event has fired it may not be possible to send all the queued events. During process + exit the runtime limits the time that a + event handler is allowed to run for. If the runtime terminates the threads before + the queued events have been sent then they will be lost. To ensure that all events + are sent the appender must be closed before the application exits. See + for details on how to shutdown + log4net programmatically. + + + Nicko Cadell + Gert Driesen + Daniel Cazzulino + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Send the contents of the buffer to the remote sink. + + + The events are not sent immediately. They are scheduled to be sent + using a pool thread. The effect is that the send occurs asynchronously. + This is very important for a number of non obvious reasons. The remoting + infrastructure will flow thread local variables (stored in the ), + if they are marked as , across the + remoting boundary. If the server is not contactable then + the remoting infrastructure will clear the + objects from the . To prevent a logging failure from + having side effects on the calling application the remoting call must be made + from a separate thread to the one used by the application. A + thread is used for this. If no thread is available then + the events will block in the thread pool manager until a thread is available. + + The events to send. + + + + Override base class close. + + + + This method waits while there are queued work items. The events are + sent asynchronously using work items. These items + will be sent once a thread pool thread is available to send them, therefore + it is possible to close the appender before all the queued events have been + sent. + + This method attempts to wait until all the queued events have been sent, but this + method will timeout after 30 seconds regardless. + + If the appender is being closed because the + event has fired it may not be possible to send all the queued events. During process + exit the runtime limits the time that a + event handler is allowed to run for. + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + A work item is being queued into the thread pool + + + + + A work item from the thread pool has completed + + + + + Send the contents of the buffer to the remote sink. + + + This method is designed to be used with the . + This method expects to be passed an array of + objects in the state param. + + the logging events to send + + + + The URL of the remote sink. + + + + + The local proxy (.NET remoting) for the remote logging sink. + + + + + The number of queued callbacks currently waiting or executing + + + + + Event used to signal when there are no queued work items + + + This event is set when there are no queued work items. In this + state it is safe to close the appender. + + + + + Gets or sets the URL of the well-known object that will accept + the logging events. + + + The well-known URL of the remote sink. + + + + The URL of the remoting sink that will accept logging events. + The sink must implement the + interface. + + + + + + Interface used to deliver objects to a remote sink. + + + This interface must be implemented by a remoting sink + if the is to be used + to deliver logging events to the sink. + + + + + Delivers logging events to the remote sink + + Array of events to log. + + + Delivers logging events to the remote sink + + + + + + Appender that rolls log files based on size or date or both. + + + + RollingFileAppender can roll log files based on size or date or both + depending on the setting of the property. + When set to the log file will be rolled + once its size exceeds the . + When set to the log file will be rolled + once the date boundary specified in the property + is crossed. + When set to the log file will be + rolled once the date boundary specified in the property + is crossed, but within a date boundary the file will also be rolled + once its size exceeds the . + When set to the log file will be rolled when + the appender is configured. This effectively means that the log file can be + rolled once per program execution. + + + A of few additional optional features have been added: + + Attach date pattern for current log file + Backup number increments for newer files + Infinite number of backups by file size + + + + + + For large or infinite numbers of backup files a + greater than zero is highly recommended, otherwise all the backup files need + to be renamed each time a new backup is created. + + + When Date/Time based rolling is used setting + to will reduce the number of file renamings to few or none. + + + + + + Changing or without clearing + the log file directory of backup files will cause unexpected and unwanted side effects. + + + + + If Date/Time based rolling is enabled this appender will attempt to roll existing files + in the directory without a Date/Time tag based on the last write date of the base log file. + The appender only rolls the log file when a message is logged. If Date/Time based rolling + is enabled then the appender will not roll the log file at the Date/Time boundary but + at the point when the next message is logged after the boundary has been crossed. + + + + The extends the and + has the same behavior when opening the log file. + The appender will first try to open the file for writing when + is called. This will typically be during configuration. + If the file cannot be opened for writing the appender will attempt + to open the file again each time a message is logged to the appender. + If the file cannot be opened for writing when a message is logged then + the message will be discarded by this appender. + + + When rolling a backup file necessitates deleting an older backup file the + file to be deleted is moved to a temporary name before being deleted. + + + + + A maximum number of backup files when rolling on date/time boundaries is not supported. + + + + Nicko Cadell + Gert Driesen + Aspi Havewala + Douglas de la Torre + Edward Smit + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Cleans up all resources used by this appender. + + + + + The fully qualified type of the RollingFileAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Sets the quiet writer being used. + + + This method can be overridden by sub classes. + + the writer to set + + + + Write out a logging event. + + the event to write to file. + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Write out an array of logging events. + + the events to write to file. + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Performs any required rolling before outputting the next event + + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Creates and opens the file for logging. If + is false then the fully qualified name is determined and used. + + the name of the file to open + true to append to existing file + + This method will ensure that the directory structure + for the specified exists. + + + + + Get the current output file name + + the base file name + the output file name + + The output file name is based on the base fileName specified. + If is set then the output + file name is the same as the base file passed in. Otherwise + the output file depends on the date pattern, on the count + direction or both. + + + + + Determines curSizeRollBackups (only within the current roll point) + + + + + Generates a wildcard pattern that can be used to find all files + that are similar to the base file name. + + + + + + + Builds a list of filenames for all files matching the base filename plus a file + pattern. + + + + + + + Initiates a roll over if needed for crossing a date boundary since the last run. + + + + + Initializes based on existing conditions at time of . + + + + Initializes based on existing conditions at time of . + The following is done + + determine curSizeRollBackups (only within the current roll point) + initiates a roll over if needed for crossing a date boundary since the last run. + + + + + + + Does the work of bumping the 'current' file counter higher + to the highest count when an incremental file name is seen. + The highest count is either the first file (when count direction + is greater than 0) or the last file (when count direction less than 0). + In either case, we want to know the highest count that is present. + + + + + + + Attempts to extract a number from the end of the file name that indicates + the number of the times the file has been rolled over. + + + Certain date pattern extensions like yyyyMMdd will be parsed as valid backup indexes. + + + + + + + Takes a list of files and a base file name, and looks for + 'incremented' versions of the base file. Bumps the max + count up to the highest count seen. + + + + + + + Calculates the RollPoint for the datePattern supplied. + + the date pattern to calculate the check period for + The RollPoint that is most accurate for the date pattern supplied + + Essentially the date pattern is examined to determine what the + most suitable roll point is. The roll point chosen is the roll point + with the smallest period that can be detected using the date pattern + supplied. i.e. if the date pattern only outputs the year, month, day + and hour then the smallest roll point that can be detected would be + and hourly roll point as minutes could not be detected. + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Sets initial conditions including date/time roll over information, first check, + scheduledFilename, and calls to initialize + the current number of backups. + + + + + + + + + .1, .2, .3, etc. + + + + + Rollover the file(s) to date/time tagged file(s). + + set to true if the file to be rolled is currently open + + + Rollover the file(s) to date/time tagged file(s). + Resets curSizeRollBackups. + If fileIsOpen is set then the new file is opened (through SafeOpenFile). + + + + + + Renames file to file . + + Name of existing file to roll. + New name for file. + + + Renames file to file . It + also checks for existence of target file and deletes if it does. + + + + + + Test if a file exists at a specified path + + the path to the file + true if the file exists + + + Test if a file exists at a specified path + + + + + + Deletes the specified file if it exists. + + The file to delete. + + + Delete a file if is exists. + The file is first moved to a new filename then deleted. + This allows the file to be removed even when it cannot + be deleted, but it still can be moved. + + + + + + Implements file roll base on file size. + + + + If the maximum number of size based backups is reached + (curSizeRollBackups == maxSizeRollBackups) then the oldest + file is deleted -- its index determined by the sign of countDirection. + If countDirection < 0, then files + {File.1, ..., File.curSizeRollBackups -1} + are renamed to {File.2, ..., + File.curSizeRollBackups}. Moreover, File is + renamed File.1 and closed. + + + A new file is created to receive further log output. + + + If maxSizeRollBackups is equal to zero, then the + File is truncated with no backup files created. + + + If maxSizeRollBackups < 0, then File is + renamed if needed and no files are deleted. + + + + + + Implements file roll. + + the base name to rename + + + If the maximum number of size based backups is reached + (curSizeRollBackups == maxSizeRollBackups) then the oldest + file is deleted -- its index determined by the sign of countDirection. + If countDirection < 0, then files + {File.1, ..., File.curSizeRollBackups -1} + are renamed to {File.2, ..., + File.curSizeRollBackups}. + + + If maxSizeRollBackups is equal to zero, then the + File is truncated with no backup files created. + + + If maxSizeRollBackups < 0, then File is + renamed if needed and no files are deleted. + + + This is called by to rename the files. + + + + + + Get the start time of the next window for the current rollpoint + + the current date + the type of roll point we are working with + the start time for the next roll point an interval after the currentDateTime date + + + Returns the date of the next roll point after the currentDateTime date passed to the method. + + + The basic strategy is to subtract the time parts that are less significant + than the rollpoint from the current time. This should roll the time back to + the start of the time window for the current rollpoint. Then we add 1 window + worth of time and get the start time of the next window for the rollpoint. + + + + + + This object supplies the current date/time. Allows test code to plug in + a method to control this class when testing date/time based rolling. The default + implementation uses the underlying value of DateTime.Now. + + + + + The date pattern. By default, the pattern is set to ".yyyy-MM-dd" + meaning daily rollover. + + + + + The actual formatted filename that is currently being written to + or will be the file transferred to on roll over + (based on staticLogFileName). + + + + + The timestamp when we shall next recompute the filename. + + + + + Holds date of last roll over + + + + + The type of rolling done + + + + + The default maximum file size is 10MB + + + + + There is zero backup files by default + + + + + How many sized based backups have been made so far + + + + + The rolling file count direction. + + + + + The rolling mode used in this appender. + + + + + Cache flag set if we are rolling by date. + + + + + Cache flag set if we are rolling by size. + + + + + Value indicating whether to always log to the same file. + + + + + Value indicating whether to preserve the file name extension when rolling. + + + + + FileName provided in configuration. Used for rolling properly + + + + + A mutex that is used to lock rolling of files. + + + + + The 1st of January 1970 in UTC + + + + + Gets or sets the strategy for determining the current date and time. The default + implementation is to use LocalDateTime which internally calls through to DateTime.Now. + DateTime.UtcNow may be used on frameworks newer than .NET 1.0 by specifying + . + + + An implementation of the interface which returns the current date and time. + + + + Gets or sets the used to return the current date and time. + + + There are two built strategies for determining the current date and time, + + and . + + + The default strategy is . + + + + + + Gets or sets the date pattern to be used for generating file names + when rolling over on date. + + + The date pattern to be used for generating file names when rolling + over on date. + + + + Takes a string in the same format as expected by + . + + + This property determines the rollover schedule when rolling over + on date. + + + + + + Gets or sets the maximum number of backup files that are kept before + the oldest is erased. + + + The maximum number of backup files that are kept before the oldest is + erased. + + + + If set to zero, then there will be no backup files and the log file + will be truncated when it reaches . + + + If a negative number is supplied then no deletions will be made. Note + that this could result in very slow performance as a large number of + files are rolled over unless is used. + + + The maximum applies to each time based group of files and + not the total. + + + + + + Gets or sets the maximum size that the output file is allowed to reach + before being rolled over to backup files. + + + The maximum size in bytes that the output file is allowed to reach before being + rolled over to backup files. + + + + This property is equivalent to except + that it is required for differentiating the setter taking a + argument from the setter taking a + argument. + + + The default maximum file size is 10MB (10*1024*1024). + + + + + + Gets or sets the maximum size that the output file is allowed to reach + before being rolled over to backup files. + + + The maximum size that the output file is allowed to reach before being + rolled over to backup files. + + + + This property allows you to specify the maximum size with the + suffixes "KB", "MB" or "GB" so that the size is interpreted being + expressed respectively in kilobytes, megabytes or gigabytes. + + + For example, the value "10KB" will be interpreted as 10240 bytes. + + + The default maximum file size is 10MB. + + + If you have the option to set the maximum file size programmatically + consider using the property instead as this + allows you to set the size in bytes as a . + + + + + + Gets or sets the rolling file count direction. + + + The rolling file count direction. + + + + Indicates if the current file is the lowest numbered file or the + highest numbered file. + + + By default newer files have lower numbers ( < 0), + i.e. log.1 is most recent, log.5 is the 5th backup, etc... + + + >= 0 does the opposite i.e. + log.1 is the first backup made, log.5 is the 5th backup made, etc. + For infinite backups use >= 0 to reduce + rollover costs. + + The default file count direction is -1. + + + + + Gets or sets the rolling style. + + The rolling style. + + + The default rolling style is . + + + When set to this appender's + property is set to false, otherwise + the appender would append to a single file rather than rolling + the file each time it is opened. + + + + + + Gets or sets a value indicating whether to preserve the file name extension when rolling. + + + true if the file name extension should be preserved. + + + + By default file.log is rolled to file.log.yyyy-MM-dd or file.log.curSizeRollBackup. + However, under Windows the new file name will loose any program associations as the + extension is changed. Optionally file.log can be renamed to file.yyyy-MM-dd.log or + file.curSizeRollBackup.log to maintain any program associations. + + + + + + Gets or sets a value indicating whether to always log to + the same file. + + + true if always should be logged to the same file, otherwise false. + + + + By default file.log is always the current file. Optionally + file.log.yyyy-mm-dd for current formatted datePattern can by the currently + logging file (or file.log.curSizeRollBackup or even + file.log.yyyy-mm-dd.curSizeRollBackup). + + + This will make time based rollovers with a large number of backups + much faster as the appender it won't have to rename all the backups! + + + + + + Style of rolling to use + + + + Style of rolling to use + + + + + + Roll files once per program execution + + + + Roll files once per program execution. + Well really once each time this appender is + configured. + + + Setting this option also sets AppendToFile to + false on the RollingFileAppender, otherwise + this appender would just be a normal file appender. + + + + + + Roll files based only on the size of the file + + + + + Roll files based only on the date + + + + + Roll files based on both the size and date of the file + + + + + The code assumes that the following 'time' constants are in a increasing sequence. + + + + The code assumes that the following 'time' constants are in a increasing sequence. + + + + + + Roll the log not based on the date + + + + + Roll the log for each minute + + + + + Roll the log for each hour + + + + + Roll the log twice a day (midday and midnight) + + + + + Roll the log each day (midnight) + + + + + Roll the log each week + + + + + Roll the log each month + + + + + This interface is used to supply Date/Time information to the . + + + This interface is used to supply Date/Time information to the . + Used primarily to allow test classes to plug themselves in so they can + supply test date/times. + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Default implementation of that returns the current time. + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Implementation of that returns the current time as the coordinated universal time (UTC). + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Send an e-mail when a specific logging event occurs, typically on errors + or fatal errors. + + + + The number of logging events delivered in this e-mail depend on + the value of option. The + keeps only the last + logging events in its + cyclic buffer. This keeps memory requirements at a reasonable level while + still delivering useful application context. + + + Authentication and setting the server Port are only available on the MS .NET 1.1 runtime. + For these features to be enabled you need to ensure that you are using a version of + the log4net assembly that is built against the MS .NET 1.1 framework and that you are + running the your application on the MS .NET 1.1 runtime. On all other platforms only sending + unauthenticated messages to a server listening on port 25 (the default) is supported. + + + Authentication is supported by setting the property to + either or . + If using authentication then the + and properties must also be set. + + + To set the SMTP server port use the property. The default port is 25. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Default constructor + + + + + + Sends the contents of the cyclic buffer as an e-mail message. + + The logging events to send. + + + + Send the email message + + the body text to include in the mail + + + + trims leading and trailing commas or semicolons + + + + + Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses (use semicolon on .NET 1.1 and comma for later versions). + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + + Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses + that will be carbon copied (use semicolon on .NET 1.1 and comma for later versions). + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + + Gets or sets a semicolon-delimited list of recipient e-mail addresses + that will be blind carbon copied. + + + A semicolon-delimited list of e-mail addresses. + + + + A semicolon-delimited list of recipient e-mail addresses. + + + + + + Gets or sets the e-mail address of the sender. + + + The e-mail address of the sender. + + + + The e-mail address of the sender. + + + + + + Gets or sets the subject line of the e-mail message. + + + The subject line of the e-mail message. + + + + The subject line of the e-mail message. + + + + + + Gets or sets the name of the SMTP relay mail server to use to send + the e-mail messages. + + + The name of the e-mail relay server. If SmtpServer is not set, the + name of the local SMTP server is used. + + + + The name of the e-mail relay server. If SmtpServer is not set, the + name of the local SMTP server is used. + + + + + + Obsolete + + + Use the BufferingAppenderSkeleton Fix methods instead + + + + Obsolete property. + + + + + + The mode to use to authentication with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + Valid Authentication mode values are: , + , and . + The default value is . When using + you must specify the + and to use to authenticate. + When using the Windows credentials for the current + thread, if impersonating, or the process will be used to authenticate. + + + + + + The username to use to authenticate with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + A and must be specified when + is set to , + otherwise the username will be ignored. + + + + + + The password to use to authenticate with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + A and must be specified when + is set to , + otherwise the password will be ignored. + + + + + + The port on which the SMTP server is listening + + + Server Port is only available on the MS .NET 1.1 runtime. + + The port on which the SMTP server is listening. The default + port is 25. The Port can only be changed when running on + the MS .NET 1.1 runtime. + + + + + + Gets or sets the priority of the e-mail message + + + One of the values. + + + + Sets the priority of the e-mails generated by this + appender. The default priority is . + + + If you are using this appender to report errors then + you may want to set the priority to . + + + + + + Enable or disable use of SSL when sending e-mail message + + + This is available on MS .NET 2.0 runtime and higher + + + + + Gets or sets the reply-to e-mail address. + + + This is available on MS .NET 2.0 runtime and higher + + + + + Gets or sets the subject encoding to be used. + + + The default encoding is the operating system's current ANSI codepage. + + + + + Gets or sets the body encoding to be used. + + + The default encoding is the operating system's current ANSI codepage. + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Values for the property. + + + + SMTP authentication modes. + + + + + + No authentication + + + + + Basic authentication. + + + Requires a username and password to be supplied + + + + + Integrated authentication + + + Uses the Windows credentials from the current thread or process to authenticate. + + + + + Send an email when a specific logging event occurs, typically on errors + or fatal errors. Rather than sending via smtp it writes a file into the + directory specified by . This allows services such + as the IIS SMTP agent to manage sending the messages. + + + + The configuration for this appender is identical to that of the SMTPAppender, + except that instead of specifying the SMTPAppender.SMTPHost you specify + . + + + The number of logging events delivered in this e-mail depend on + the value of option. The + keeps only the last + logging events in its + cyclic buffer. This keeps memory requirements at a reasonable level while + still delivering useful application context. + + + Niall Daley + Nicko Cadell + + + + Default constructor + + + + Default constructor + + + + + + Sends the contents of the cyclic buffer as an e-mail message. + + The logging events to send. + + + Sends the contents of the cyclic buffer as an e-mail message. + + + + + + Activate the options on this appender. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Convert a path into a fully qualified path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + + + + The security context to use for privileged calls + + + + + Gets or sets a semicolon-delimited list of recipient e-mail addresses. + + + A semicolon-delimited list of e-mail addresses. + + + + A semicolon-delimited list of e-mail addresses. + + + + + + Gets or sets the e-mail address of the sender. + + + The e-mail address of the sender. + + + + The e-mail address of the sender. + + + + + + Gets or sets the subject line of the e-mail message. + + + The subject line of the e-mail message. + + + + The subject line of the e-mail message. + + + + + + Gets or sets the path to write the messages to. + + + + Gets or sets the path to write the messages to. This should be the same + as that used by the agent sending the messages. + + + + + + Gets or sets the file extension for the generated files + + + The file extension for the generated files + + + + The file extension for the generated files + + + + + + Gets or sets the used to write to the pickup directory. + + + The used to write to the pickup directory. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Appender that allows clients to connect via Telnet to receive log messages + + + + The TelnetAppender accepts socket connections and streams logging messages + back to the client. + The output is provided in a telnet-friendly way so that a log can be monitored + over a TCP/IP socket. + This allows simple remote monitoring of application logging. + + + The default is 23 (the telnet port). + + + Keith Long + Nicko Cadell + + + + Default constructor + + + + Default constructor + + + + + + The fully qualified type of the TelnetAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Overrides the parent method to close the socket handler + + + + Closes all the outstanding connections. + + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Create the socket handler and wait for connections + + + + + + Writes the logging event to each connected client. + + The event to log. + + + Writes the logging event to each connected client. + + + + + + Gets or sets the TCP port number on which this will listen for connections. + + + An integer value in the range to + indicating the TCP port number on which this will listen for connections. + + + + The default value is 23 (the telnet port). + + + The value specified is less than + or greater than . + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Helper class to manage connected clients + + + + The SocketHandler class is used to accept connections from + clients. It is threaded so that clients can connect/disconnect + asynchronously. + + + + + + Opens a new server port on + + the local port to listen on for connections + + + Creates a socket handler on the specified local server port. + + + + + + Sends a string message to each of the connected clients + + the text to send + + + Sends a string message to each of the connected clients + + + + + + Add a client to the internal clients list + + client to add + + + + Remove a client from the internal clients list + + client to remove + + + + Callback used to accept a connection on the server socket + + The result of the asynchronous operation + + + On connection adds to the list of connections + if there are two many open connections you will be disconnected + + + + + + Close all network connections + + + + Make sure we close all network connections + + + + + + Test if this handler has active connections + + + true if this handler has active connections + + + + This property will be true while this handler has + active connections, that is at least one connection that + the handler will attempt to send a message to. + + + + + + Class that represents a client connected to this handler + + + + Class that represents a client connected to this handler + + + + + + Create this for the specified + + the client's socket + + + Opens a stream writer on the socket. + + + + + + Write a string to the client + + string to send + + + Write a string to the client + + + + + + Cleanup the clients connection + + + + Close the socket connection. + + + + + + Appends log events to the system. + + + + The application configuration file can be used to control what listeners + are actually used. See the MSDN documentation for the + class for details on configuring the + trace system. + + + Events are written using the System.Diagnostics.Trace.Write(string,string) + method. The event's logger name is the default value for the category parameter + of the Write method. + + + Compact Framework
+ The Compact Framework does not support the + class for any operation except Assert. When using the Compact Framework this + appender will write to the system rather than + the Trace system. This appender will therefore behave like the . +
+
+ Douglas de la Torre + Nicko Cadell + Gert Driesen + Ron Grabowski +
+ + + Initializes a new instance of the . + + + + Default constructor. + + + + + + Initializes a new instance of the + with a specified layout. + + The layout to use with this appender. + + + Obsolete constructor. + + + + + + Writes the logging event to the system. + + The event to log. + + + Writes the logging event to the system. + + + + + + Immediate flush means that the underlying writer or output stream + will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logs events are not actually written to persistent media if and + when the application crashes. + + + The default value is true. + + + + + Defaults to %logger + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Gets or sets a value that indicates whether the appender will + flush at the end of each write. + + + The default behavior is to flush at the end of each + write. If the option is set tofalse, then the underlying + stream can defer writing to physical medium to a later time. + + + Avoiding the flush operation at the end of each append results + in a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + + The category parameter sent to the Trace method. + + + + Defaults to %logger which will use the logger name of the current + as the category parameter. + + + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Assembly level attribute that specifies a domain to alias to this assembly's repository. + + + + AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. + + + An assembly's logger repository is defined by its , + however this can be overridden by an assembly loaded before the target assembly. + + + An assembly can alias another assembly's domain to its repository by + specifying this attribute with the name of the target domain. + + + This attribute can only be specified on the assembly and may be used + as many times as necessary to alias all the required domains. + + + Nicko Cadell + Gert Driesen + + + + Assembly level attribute that specifies a repository to alias to this assembly's repository. + + + + An assembly's logger repository is defined by its , + however this can be overridden by an assembly loaded before the target assembly. + + + An assembly can alias another assembly's repository to its repository by + specifying this attribute with the name of the target repository. + + + This attribute can only be specified on the assembly and may be used + as many times as necessary to alias all the required repositories. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class with + the specified repository to alias to this assembly's repository. + + The repository to alias to this assemby's repository. + + + Initializes a new instance of the class with + the specified repository to alias to this assembly's repository. + + + + + + Gets or sets the repository to alias to this assemby's repository. + + + The repository to alias to this assemby's repository. + + + + The name of the repository to alias to this assemby's repository. + + + + + + Initializes a new instance of the class with + the specified domain to alias to this assembly's repository. + + The domain to alias to this assemby's repository. + + + Obsolete. Use instead of . + + + + + + Use this class to quickly configure a . + + + + Allows very simple programmatic configuration of log4net. + + + Only one appender can be configured using this configurator. + The appender is set at the root of the hierarchy and all logging + events will be delivered to that appender. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + The fully qualified type of the BasicConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Initializes the log4net system with a default configuration. + + + + Initializes the log4net logging system using a + that will write to Console.Out. The log messages are + formatted using the layout object + with the + layout style. + + + + + + Initializes the log4net system using the specified appenders. + + The appenders to use to log all logging events. + + + Initializes the log4net system using the specified appenders. + + + + + + Initializes the log4net system using the specified appender. + + The appender to use to log all logging events. + + + Initializes the log4net system using the specified appender. + + + + + + Initializes the with a default configuration. + + The repository to configure. + + + Initializes the specified repository using a + that will write to Console.Out. The log messages are + formatted using the layout object + with the + layout style. + + + + + + Initializes the using the specified appender. + + The repository to configure. + The appender to use to log all logging events. + + + Initializes the using the specified appender. + + + + + + Initializes the using the specified appenders. + + The repository to configure. + The appenders to use to log all logging events. + + + Initializes the using the specified appender. + + + + + + Base class for all log4net configuration attributes. + + + This is an abstract class that must be extended by + specific configurators. This attribute allows the + configurator to be parameterized by an assembly level + attribute. + + Nicko Cadell + Gert Driesen + + + + Constructor used by subclasses. + + the ordering priority for this configurator + + + The is used to order the configurator + attributes before they are invoked. Higher priority configurators are executed + before lower priority ones. + + + + + + Configures the for the specified assembly. + + The assembly that this attribute was defined on. + The repository to configure. + + + Abstract method implemented by a subclass. When this method is called + the subclass should configure the . + + + + + + Compare this instance to another ConfiguratorAttribute + + the object to compare to + see + + + Compares the priorities of the two instances. + Sorts by priority in descending order. Objects with the same priority are + randomly ordered. + + + + + + Assembly level attribute that specifies the logging domain for the assembly. + + + + DomainAttribute is obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + Assemblies are mapped to logging domains. Each domain has its own + logging repository. This attribute specified on the assembly controls + the configuration of the domain. The property specifies the name + of the domain that this assembly is a part of. The + specifies the type of the repository objects to create for the domain. If + this attribute is not specified and a is not specified + then the assembly will be part of the default shared logging domain. + + + This attribute can only be specified on the assembly and may only be used + once per assembly. + + + Nicko Cadell + Gert Driesen + + + + Assembly level attribute that specifies the logging repository for the assembly. + + + + Assemblies are mapped to logging repository. This attribute specified + on the assembly controls + the configuration of the repository. The property specifies the name + of the repository that this assembly is a part of. The + specifies the type of the object + to create for the assembly. If this attribute is not specified or a + is not specified then the assembly will be part of the default shared logging repository. + + + This attribute can only be specified on the assembly and may only be used + once per assembly. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initialize a new instance of the class + with the name of the repository. + + The name of the repository. + + + Initialize the attribute with the name for the assembly's repository. + + + + + + Gets or sets the name of the logging repository. + + + The string name to use as the name of the repository associated with this + assembly. + + + + This value does not have to be unique. Several assemblies can share the + same repository. They will share the logging configuration of the repository. + + + + + + Gets or sets the type of repository to create for this assembly. + + + The type of repository to create for this assembly. + + + + The type of the repository to create for the assembly. + The type must implement the + interface. + + + This will be the type of repository created when + the repository is created. If multiple assemblies reference the + same repository then the repository is only created once using the + of the first assembly to call into the + repository. + + + + + + Initializes a new instance of the class. + + + + Obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + + + + Initialize a new instance of the class + with the name of the domain. + + The name of the domain. + + + Obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + + + + Use this class to initialize the log4net environment using an Xml tree. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + Configures a using an Xml tree. + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + + + Automatically configures the log4net system based on the + application's configuration settings. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + + + Automatically configures the using settings + stored in the application's configuration file. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + The repository to configure. + + + + Configures log4net using a log4net element + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Loads the log4net configuration from the XML element + supplied as . + + The element to parse. + + + + Configures the using the specified XML + element. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Loads the log4net configuration from the XML element + supplied as . + + The repository to configure. + The element to parse. + + + + Configures log4net using the specified configuration file. + + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures log4net using the specified configuration file. + + A stream to load the XML configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The stream to load the XML configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures log4net using the file specified, monitors the file for changes + and reloads the configuration if a change is detected. + + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the using the file specified, + monitors the file for changes and reloads the configuration if a change + is detected. + + The repository to configure. + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Assembly level attribute to configure the . + + + + AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + Nicko Cadell + Gert Driesen + + + + Assembly level attribute to configure the . + + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + If neither of the or + properties are set the configuration is loaded from the application's .config file. + If set the property takes priority over the + property. The property + specifies a path to a file to load the config from. The path is relative to the + application's base directory; . + The property is used as a postfix to the assembly file name. + The config file must be located in the application's base directory; . + For example in a console application setting the to + config has the same effect as not specifying the or + properties. + + + The property can be set to cause the + to watch the configuration file for changes. + + + + Log4net will only look for assembly level configuration attributes once. + When using the log4net assembly level attributes to control the configuration + of log4net you must ensure that the first call to any of the + methods is made from the assembly with the configuration + attributes. + + + If you cannot guarantee the order in which log4net calls will be made from + different assemblies you must use programmatic configuration instead, i.e. + call the method directly. + + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Default constructor + + + + + + Configures the for the specified assembly. + + The assembly that this attribute was defined on. + The repository to configure. + + + Configure the repository using the . + The specified must extend the + class otherwise the will not be able to + configure it. + + + The does not extend . + + + + Attempt to load configuration from the local file system + + The assembly that this attribute was defined on. + The repository to configure. + + + + Configure the specified repository using a + + The repository to configure. + the FileInfo pointing to the config file + + + + Attempt to load configuration from a URI + + The assembly that this attribute was defined on. + The repository to configure. + + + + The fully qualified type of the XmlConfiguratorAttribute class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the filename of the configuration file. + + + The filename of the configuration file. + + + + If specified, this is the name of the configuration file to use with + the . This file path is relative to the + application base directory (). + + + The takes priority over the . + + + + + + Gets or sets the extension of the configuration file. + + + The extension of the configuration file. + + + + If specified this is the extension for the configuration file. + The path to the config file is built by using the application + base directory (), + the assembly file name and the config file extension. + + + If the is set to MyExt then + possible config file names would be: MyConsoleApp.exe.MyExt or + MyClassLibrary.dll.MyExt. + + + The takes priority over the . + + + + + + Gets or sets a value indicating whether to watch the configuration file. + + + true if the configuration should be watched, false otherwise. + + + + If this flag is specified and set to true then the framework + will watch the configuration file and will reload the config each time + the file is modified. + + + The config file can only be watched if it is loaded from local disk. + In a No-Touch (Smart Client) deployment where the application is downloaded + from a web server the config file may not reside on the local disk + and therefore it may not be able to watch it. + + + Watching configuration is not supported on the SSCLI. + + + + + + Class to register for the log4net section of the configuration file + + + The log4net section of the configuration file needs to have a section + handler registered. This is the section handler used. It simply returns + the XML element that is the root of the section. + + + Example of registering the log4net section handler : + + + +
+ + + log4net configuration XML goes here + + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Parses the configuration section. + + The configuration settings in a corresponding parent configuration section. + The configuration context when called from the ASP.NET configuration system. Otherwise, this parameter is reserved and is a null reference. + The for the log4net section. + The for the log4net section. + + + Returns the containing the configuration data, + + + + + + Assembly level attribute that specifies a plugin to attach to + the repository. + + + + Specifies the type of a plugin to create and attach to the + assembly's repository. The plugin type must implement the + interface. + + + Nicko Cadell + Gert Driesen + + + + Interface used to create plugins. + + + + Interface used to create a plugin. + + + Nicko Cadell + Gert Driesen + + + + Creates the plugin object. + + the new plugin instance + + + Create and return a new plugin instance. + + + + + + Initializes a new instance of the class + with the specified type. + + The type name of plugin to create. + + + Create the attribute with the plugin type specified. + + + Where possible use the constructor that takes a . + + + + + + Initializes a new instance of the class + with the specified type. + + The type of plugin to create. + + + Create the attribute with the plugin type specified. + + + + + + Creates the plugin object defined by this attribute. + + + + Creates the instance of the object as + specified by this attribute. + + + The plugin object. + + + + Returns a representation of the properties of this object. + + + + Overrides base class method to + return a representation of the properties of this object. + + + A representation of the properties of this object + + + + Gets or sets the type for the plugin. + + + The type for the plugin. + + + + The type for the plugin. + + + + + + Gets or sets the type name for the plugin. + + + The type name for the plugin. + + + + The type name for the plugin. + + + Where possible use the property instead. + + + + + + Assembly level attribute to configure the . + + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + Nicko Cadell + + + + Construct provider attribute with type specified + + the type of the provider to use + + + The provider specified must subclass the + class. + + + + + + Configures the SecurityContextProvider + + The assembly that this attribute was defined on. + The repository to configure. + + + Creates a provider instance from the specified. + Sets this as the default security context provider . + + + + + + The fully qualified type of the SecurityContextProviderAttribute class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the type of the provider to use. + + + the type of the provider to use. + + + + The provider specified must subclass the + class. + + + + + + Use this class to initialize the log4net environment using an Xml tree. + + + + Configures a using an Xml tree. + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + + + Automatically configures the using settings + stored in the application's configuration file. + + + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + To use this method to configure log4net you must specify + the section + handler for the log4net configuration section. See the + for an example. + + + The repository to configure. + + + + Automatically configures the log4net system based on the + application's configuration settings. + + + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + To use this method to configure log4net you must specify + the section + handler for the log4net configuration section. See the + for an example. + + + + + + + Configures log4net using a log4net element + + + + Loads the log4net configuration from the XML element + supplied as . + + + The element to parse. + + + + Configures log4net using the specified configuration file. + + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The first element matching <configuration> will be read as the + configuration. If this file is also a .NET .config file then you must specify + a configuration section for the log4net element otherwise .NET will + complain. Set the type for the section handler to , for example: + + +
+ + + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures log4net using the specified configuration URI. + + A URI to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The must support the URI scheme specified. + + + + + + Configures log4net using the specified configuration data stream. + + A stream to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures the using the specified XML + element. + + + Loads the log4net configuration from the XML element + supplied as . + + The repository to configure. + The element to parse. + + + + Configures the using the specified configuration + file. + + The repository to configure. + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The first element matching <configuration> will be read as the + configuration. If this file is also a .NET .config file then you must specify + a configuration section for the log4net element otherwise .NET will + complain. Set the type for the section handler to , for example: + + +
+ + + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures the using the specified configuration + URI. + + The repository to configure. + A URI to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The must support the URI scheme specified. + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The stream to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures log4net using the file specified, monitors the file for changes + and reloads the configuration if a change is detected. + + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the using the file specified, + monitors the file for changes and reloads the configuration if a change + is detected. + + The repository to configure. + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the specified repository using a log4net element. + + The hierarchy to configure. + The element to parse. + + + Loads the log4net configuration from the XML element + supplied as . + + + This method is ultimately called by one of the Configure methods + to load the configuration from an . + + + + + + Maps repository names to ConfigAndWatchHandler instances to allow a particular + ConfigAndWatchHandler to dispose of its FileSystemWatcher when a repository is + reconfigured. + + + + + The fully qualified type of the XmlConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Class used to watch config files. + + + + Uses the to monitor + changes to a specified file. Because multiple change notifications + may be raised when the file is modified, a timer is used to + compress the notifications into a single event. The timer + waits for time before delivering + the event notification. If any further + change notifications arrive while the timer is waiting it + is reset and waits again for to + elapse. + + + + + + The default amount of time to wait after receiving notification + before reloading the config file. + + + + + Holds the FileInfo used to configure the XmlConfigurator + + + + + Holds the repository being configured. + + + + + The timer used to compress the notification events. + + + + + Watches file for changes. This object should be disposed when no longer + needed to free system handles on the watched resources. + + + + + Initializes a new instance of the class to + watch a specified config file used to configure a repository. + + The repository to configure. + The configuration file to watch. + + + Initializes a new instance of the class. + + + + + + Event handler used by . + + The firing the event. + The argument indicates the file that caused the event to be fired. + + + This handler reloads the configuration from the file when the event is fired. + + + + + + Event handler used by . + + The firing the event. + The argument indicates the file that caused the event to be fired. + + + This handler reloads the configuration from the file when the event is fired. + + + + + + Called by the timer when the configuration has been updated. + + null + + + + Release the handles held by the watcher and timer. + + + + + The implementation of the interface suitable + for use with the compact framework + + + + This implementation is a simple + mapping between repository name and + object. + + + The .NET Compact Framework 1.0 does not support retrieving assembly + level attributes therefore unlike the DefaultRepositorySelector + this selector does not examine the calling assembly for attributes. + + + Nicko Cadell + + + + Interface used by the to select the . + + + + The uses a + to specify the policy for selecting the correct + to return to the caller. + + + Nicko Cadell + Gert Driesen + + + + Gets the for the specified assembly. + + The assembly to use to lookup to the + The for the assembly. + + + Gets the for the specified assembly. + + + How the association between and + is made is not defined. The implementation may choose any method for + this association. The results of this method must be repeatable, i.e. + when called again with the same arguments the result must be the + save value. + + + + + + Gets the named . + + The name to use to lookup to the . + The named + + Lookup a named . This is the repository created by + calling . + + + + + Creates a new repository for the assembly specified. + + The assembly to use to create the domain to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the domain + specified such that a call to with the + same assembly specified will return the same repository instance. + + + How the association between and + is made is not defined. The implementation may choose any method for + this association. + + + + + + Creates a new repository with the name specified. + + The name to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the name + specified such that a call to with the + same name will return the same repository instance. + + + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets an array of all currently defined repositories. + + + An array of the instances created by + this . + + + Gets an array of all of the repositories created by this selector. + + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + Create a new repository selector + + the type of the repositories to create, must implement + + + Create an new compact repository selector. + The default type for repositories must be specified, + an appropriate value would be . + + + throw if is null + throw if does not implement + + + + Get the for the specified assembly + + not used + The default + + + The argument is not used. This selector does not create a + separate repository for each assembly. + + + As a named repository is not specified the default repository is + returned. The default repository is named log4net-default-repository. + + + + + + Get the named + + the name of the repository to lookup + The named + + + Get the named . The default + repository is log4net-default-repository. Other repositories + must be created using the . + If the named repository does not exist an exception is thrown. + + + throw if is null + throw if the does not exist + + + + Create a new repository for the assembly specified + + not used + the type of repository to create, must implement + the repository created + + + The argument is not used. This selector does not create a + separate repository for each assembly. + + + If the is null then the + default repository type specified to the constructor is used. + + + As a named repository is not specified the default repository is + returned. The default repository is named log4net-default-repository. + + + + + + Create a new repository for the repository specified + + the repository to associate with the + the type of repository to create, must implement . + If this param is null then the default repository type is used. + the repository created + + + The created will be associated with the repository + specified such that a call to with the + same repository specified will return the same repository instance. + + + If the named repository already exists an exception will be thrown. + + + If is null then the default + repository type specified to the constructor is used. + + + throw if is null + throw if the already exists + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets a list of objects + + an array of all known objects + + + Gets an array of all of the repositories created by this selector. + + + + + + The fully qualified type of the CompactRepositorySelector class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Notify the registered listeners that the repository has been created + + The repository that has been created + + + Raises the LoggerRepositoryCreatedEvent + event. + + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + The default implementation of the interface. + + + + Uses attributes defined on the calling assembly to determine how to + configure the hierarchy for the repository. + + + Nicko Cadell + Gert Driesen + + + + Creates a new repository selector. + + The type of the repositories to create, must implement + + + Create an new repository selector. + The default type for repositories must be specified, + an appropriate value would be . + + + is . + does not implement . + + + + Gets the for the specified assembly. + + The assembly use to lookup the . + + + The type of the created and the repository + to create can be overridden by specifying the + attribute on the . + + + The default values are to use the + implementation of the interface and to use the + as the name of the repository. + + + The created will be automatically configured using + any attributes defined on + the . + + + The for the assembly + is . + + + + Gets the for the specified repository. + + The repository to use to lookup the . + The for the specified repository. + + + Returns the named repository. If is null + a is thrown. If the repository + does not exist a is thrown. + + + Use to create a repository. + + + is . + does not exist. + + + + Create a new repository for the assembly specified + + the assembly to use to create the repository to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The type of the created and + the repository to create can be overridden by specifying the + attribute on the + . The default values are to use the + implementation of the + interface and to use the + as the name of the repository. + + + The created will be automatically + configured using any + attributes defined on the . + + + If a repository for the already exists + that repository will be returned. An error will not be raised and that + repository may be of a different type to that specified in . + Also the attribute on the + assembly may be used to override the repository type specified in + . + + + is . + + + + Creates a new repository for the assembly specified. + + the assembly to use to create the repository to associate with the . + The type of repository to create, must implement . + The name to assign to the created repository + Set to true to read and apply the assembly attributes + The repository created. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The type of the created and + the repository to create can be overridden by specifying the + attribute on the + . The default values are to use the + implementation of the + interface and to use the + as the name of the repository. + + + The created will be automatically + configured using any + attributes defined on the . + + + If a repository for the already exists + that repository will be returned. An error will not be raised and that + repository may be of a different type to that specified in . + Also the attribute on the + assembly may be used to override the repository type specified in + . + + + is . + + + + Creates a new repository for the specified repository. + + The repository to associate with the . + The type of repository to create, must implement . + If this param is then the default repository type is used. + The new repository. + + + The created will be associated with the repository + specified such that a call to with the + same repository specified will return the same repository instance. + + + is . + already exists. + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets a list of objects + + an array of all known objects + + + Gets an array of all of the repositories created by this selector. + + + + + + Aliases a repository to an existing repository. + + The repository to alias. + The repository that the repository is aliased to. + + + The repository specified will be aliased to the repository when created. + The repository must not already exist. + + + When the repository is created it must utilize the same repository type as + the repository it is aliased to, otherwise the aliasing will fail. + + + + is . + -or- + is . + + + + + Notifies the registered listeners that the repository has been created. + + The repository that has been created. + + + Raises the event. + + + + + + Gets the repository name and repository type for the specified assembly. + + The assembly that has a . + in/out param to hold the repository name to use for the assembly, caller should set this to the default value before calling. + in/out param to hold the type of the repository to create for the assembly, caller should set this to the default value before calling. + is . + + + + Configures the repository using information from the assembly. + + The assembly containing + attributes which define the configuration for the repository. + The repository to configure. + + is . + -or- + is . + + + + + Loads the attribute defined plugins on the assembly. + + The assembly that contains the attributes. + The repository to add the plugins to. + + is . + -or- + is . + + + + + Loads the attribute defined aliases on the assembly. + + The assembly that contains the attributes. + The repository to alias to. + + is . + -or- + is . + + + + + The fully qualified type of the DefaultRepositorySelector class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + Defined error codes that can be passed to the method. + + + + Values passed to the method. + + + Nicko Cadell + + + + A general error + + + + + Error while writing output + + + + + Failed to flush file + + + + + Failed to close file + + + + + Unable to open output file + + + + + No layout specified + + + + + Failed to parse address + + + + + An evaluator that triggers on an Exception type + + + + This evaluator will trigger if the type of the Exception + passed to + is equal to a Type in . /// + + + Drew Schaeffer + + + + Test if an triggers an action + + + + Implementations of this interface allow certain appenders to decide + when to perform an appender specific action. + + + The action or behavior triggered is defined by the implementation. + + + Nicko Cadell + + + + Test if this event triggers the action + + The event to check + true if this event triggers the action, otherwise false + + + Return true if this event triggers the action + + + + + + The type that causes the trigger to fire. + + + + + Causes subclasses of to cause the trigger to fire. + + + + + Default ctor to allow dynamic creation through a configurator. + + + + + Constructs an evaluator and initializes to trigger on + + the type that triggers this evaluator. + If true, this evaluator will trigger on subclasses of . + + + + Is this the triggering event? + + The event to check + This method returns true, if the logging event Exception + Type is . + Otherwise it returns false + + + This evaluator will trigger if the Exception Type of the event + passed to + is . + + + + + + The type that triggers this evaluator. + + + + + If true, this evaluator will trigger on subclasses of . + + + + + Appenders may delegate their error handling to an . + + + + Error handling is a particularly tedious to get right because by + definition errors are hard to predict and to reproduce. + + + Nicko Cadell + Gert Driesen + + + + Handles the error and information about the error condition is passed as + a parameter. + + The message associated with the error. + The that was thrown when the error occurred. + The error code associated with the error. + + + Handles the error and information about the error condition is passed as + a parameter. + + + + + + Prints the error message passed as a parameter. + + The message associated with the error. + The that was thrown when the error occurred. + + + See . + + + + + + Prints the error message passed as a parameter. + + The message associated with the error. + + + See . + + + + + + Interface for objects that require fixing. + + + + Interface that indicates that the object requires fixing before it + can be taken outside the context of the appender's + method. + + + When objects that implement this interface are stored + in the context properties maps + and + are fixed + (see ) the + method will be called. + + + Nicko Cadell + + + + Get a portable version of this object + + the portable instance of this object + + + Get a portable instance object that represents the current + state of this object. The portable object can be stored + and logged from any thread with identical results. + + + + + + Interface that all loggers implement + + + + This interface supports logging events and testing if a level + is enabled for logging. + + + These methods will not throw exceptions. Note to implementor, ensure + that the implementation of these methods cannot allow an exception + to be thrown to the caller. + + + Nicko Cadell + Gert Driesen + + + + This generic form is intended to be used by wrappers. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + the exception to log, including its stack trace. Pass null to not log an exception. + + + Generates a logging event for the specified using + the and . + + + + + + This is the most generic printing method that is intended to be used + by wrappers. + + The event being logged. + + + Logs the specified logging event through this logger. + + + + + + Checks if this logger is enabled for a given passed as parameter. + + The level to check. + + true if this logger is enabled for level, otherwise false. + + + + Test if this logger is going to log events of the specified . + + + + + + Gets the name of the logger. + + + The name of the logger. + + + + The name of this logger + + + + + + Gets the where this + Logger instance is attached to. + + + The that this logger belongs to. + + + + Gets the where this + Logger instance is attached to. + + + + + + Base interface for all wrappers + + + + Base interface for all wrappers. + + + All wrappers must implement this interface. + + + Nicko Cadell + + + + Get the implementation behind this wrapper object. + + + The object that in implementing this object. + + + + The object that in implementing this + object. The Logger object may not + be the same object as this object because of logger decorators. + This gets the actual underlying objects that is used to process + the log events. + + + + + + Delegate used to handle logger repository creation event notifications + + The which created the repository. + The event args + that holds the instance that has been created. + + + Delegate used to handle logger repository creation event notifications. + + + + + + Provides data for the event. + + + + A + event is raised every time a is created. + + + + + + The created + + + + + Construct instance using specified + + the that has been created + + + Construct instance using specified + + + + + + The that has been created + + + The that has been created + + + + The that has been created + + + + + + Defines the default set of levels recognized by the system. + + + + Each has an associated . + + + Levels have a numeric that defines the relative + ordering between levels. Two Levels with the same + are deemed to be equivalent. + + + The levels that are recognized by log4net are set for each + and each repository can have different levels defined. The levels are stored + in the on the repository. Levels are + looked up by name from the . + + + When logging at level INFO the actual level used is not but + the value of LoggerRepository.LevelMap["INFO"]. The default value for this is + , but this can be changed by reconfiguring the level map. + + + Each level has a in addition to its . The + is the string that is written into the output log. By default + the display name is the same as the level name, but this can be used to alias levels + or to localize the log output. + + + Some of the predefined levels recognized by the system are: + + + + . + + + . + + + . + + + . + + + . + + + . + + + . + + + + Nicko Cadell + Gert Driesen + + + + Constructor + + Integer value for this level, higher values represent more severe levels. + The string name of this level. + The display name for this level. This may be localized or otherwise different from the name + + + Initializes a new instance of the class with + the specified level name and value. + + + + + + Constructor + + Integer value for this level, higher values represent more severe levels. + The string name of this level. + + + Initializes a new instance of the class with + the specified level name and value. + + + + + + Returns the representation of the current + . + + + A representation of the current . + + + + Returns the level . + + + + + + Compares levels. + + The object to compare against. + true if the objects are equal. + + + Compares the levels of instances, and + defers to base class if the target object is not a + instance. + + + + + + Returns a hash code + + A hash code for the current . + + + Returns a hash code suitable for use in hashing algorithms and data + structures like a hash table. + + + Returns the hash code of the level . + + + + + + Compares this instance to a specified object and returns an + indication of their relative values. + + A instance or to compare with this instance. + + A 32-bit signed integer that indicates the relative order of the + values compared. The return value has these meanings: + + + Value + Meaning + + + Less than zero + This instance is less than . + + + Zero + This instance is equal to . + + + Greater than zero + + This instance is greater than . + -or- + is . + + + + + + + must be an instance of + or ; otherwise, an exception is thrown. + + + is not a . + + + + Returns a value indicating whether a specified + is greater than another specified . + + A + A + + true if is greater than + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is less than another specified . + + A + A + + true if is less than + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is greater than or equal to another specified . + + A + A + + true if is greater than or equal to + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is less than or equal to another specified . + + A + A + + true if is less than or equal to + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether two specified + objects have the same value. + + A or . + A or . + + true if the value of is the same as the + value of ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether two specified + objects have different values. + + A or . + A or . + + true if the value of is different from + the value of ; otherwise, false. + + + + Compares two levels. + + + + + + Compares two specified instances. + + The first to compare. + The second to compare. + + A 32-bit signed integer that indicates the relative order of the + two values compared. The return value has these meanings: + + + Value + Meaning + + + Less than zero + is less than . + + + Zero + is equal to . + + + Greater than zero + is greater than . + + + + + + Compares two levels. + + + + + + The level designates a higher level than all the rest. + + + + + The level designates very severe error events. + System unusable, emergencies. + + + + + The level designates very severe error events. + System unusable, emergencies. + + + + + The level designates very severe error events + that will presumably lead the application to abort. + + + + + The level designates very severe error events. + Take immediate action, alerts. + + + + + The level designates very severe error events. + Critical condition, critical. + + + + + The level designates very severe error events. + + + + + The level designates error events that might + still allow the application to continue running. + + + + + The level designates potentially harmful + situations. + + + + + The level designates informational messages + that highlight the progress of the application at the highest level. + + + + + The level designates informational messages that + highlight the progress of the application at coarse-grained level. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates the lowest level possible. + + + + + Gets the name of this level. + + + The name of this level. + + + + Gets the name of this level. + + + + + + Gets the value of this level. + + + The value of this level. + + + + Gets the value of this level. + + + + + + Gets the display name of this level. + + + The display name of this level. + + + + Gets the display name of this level. + + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Creates a read-only wrapper for a LevelCollection instance. + + list to create a readonly wrapper arround + + A LevelCollection wrapper that is read-only. + + + + + Initializes a new instance of the LevelCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the LevelCollection class + that has the specified initial capacity. + + + The number of elements that the new LevelCollection is initially capable of storing. + + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified LevelCollection. + + The LevelCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Allow subclasses to avoid our default constructors + + + + + + Copies the entire LevelCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire LevelCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Adds a to the end of the LevelCollection. + + The to be added to the end of the LevelCollection. + The index at which the value has been added. + + + + Removes all elements from the LevelCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the LevelCollection. + + The to check for. + true if is found in the LevelCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the LevelCollection. + + The to locate in the LevelCollection. + + The zero-based index of the first occurrence of + in the entire LevelCollection, if found; otherwise, -1. + + + + + Inserts an element into the LevelCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the LevelCollection. + + The to remove from the LevelCollection. + + The specified was not found in the LevelCollection. + + + + + Removes the element at the specified index of the LevelCollection. + + The zero-based index of the element to remove. + + is less than zero + -or- + is equal to or greater than . + + + + + Returns an enumerator that can iterate through the LevelCollection. + + An for the entire LevelCollection. + + + + Adds the elements of another LevelCollection to the current LevelCollection. + + The LevelCollection whose elements should be added to the end of the current LevelCollection. + The new of the LevelCollection. + + + + Adds the elements of a array to the current LevelCollection. + + The array whose elements should be added to the end of the LevelCollection. + The new of the LevelCollection. + + + + Adds the elements of a collection to the current LevelCollection. + + The collection whose elements should be added to the end of the LevelCollection. + The new of the LevelCollection. + + + + Sets the capacity to the actual number of elements. + + + + + is less than zero + -or- + is equal to or greater than . + + + + + is less than zero + -or- + is equal to or greater than . + + + + + Gets the number of elements actually contained in the LevelCollection. + + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + The zero-based index of the element to get or set. + + is less than zero + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false + + + + Gets or sets the number of elements the LevelCollection can contain. + + + + + Supports type-safe iteration over a . + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + A value + + + + + Supports simple iteration over a . + + + + + Initializes a new instance of the Enumerator class. + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + An evaluator that triggers at a threshold level + + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + Nicko Cadell + + + + The threshold for triggering + + + + + Create a new evaluator using the threshold. + + + + Create a new evaluator using the threshold. + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Create a new evaluator using the specified threshold. + + the threshold to trigger at + + + Create a new evaluator using the specified threshold. + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Is this the triggering event? + + The event to check + This method returns true, if the event level + is equal or higher than the . + Otherwise it returns false + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + the threshold to trigger at + + + The that will cause this evaluator to trigger + + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Mapping between string name and Level object + + + + Mapping between string name and object. + This mapping is held separately for each . + The level name is case insensitive. + + + Nicko Cadell + + + + Mapping from level name to Level object. The + level name is case insensitive + + + + + Construct the level map + + + + Construct the level map. + + + + + + Clear the internal maps of all levels + + + + Clear the internal maps of all levels + + + + + + Create a new Level and add it to the map + + the string to display for the Level + the level value to give to the Level + + + Create a new Level and add it to the map + + + + + + + Create a new Level and add it to the map + + the string to display for the Level + the level value to give to the Level + the display name to give to the Level + + + Create a new Level and add it to the map + + + + + + Add a Level to the map + + the Level to add + + + Add a Level to the map + + + + + + Lookup a named level from the map + + the name of the level to lookup is taken from this level. + If the level is not set on the map then this level is added + the level in the map with the name specified + + + Lookup a named level from the map. The name of the level to lookup is taken + from the property of the + argument. + + + If no level with the specified name is found then the + argument is added to the level map + and returned. + + + + + + Lookup a by name + + The name of the Level to lookup + a Level from the map with the name specified + + + Returns the from the + map with the name specified. If the no level is + found then null is returned. + + + + + + Return all possible levels as a list of Level objects. + + all possible levels as a list of Level objects + + + Return all possible levels as a list of Level objects. + + + + + + The internal representation of caller location information. + + + + This class uses the System.Diagnostics.StackTrace class to generate + a call stack. The caller's information is then extracted from this stack. + + + The System.Diagnostics.StackTrace class is not supported on the + .NET Compact Framework 1.0 therefore caller location information is not + available on that framework. + + + The System.Diagnostics.StackTrace class has this to say about Release builds: + + + "StackTrace information will be most informative with Debug build configurations. + By default, Debug builds include debug symbols, while Release builds do not. The + debug symbols contain most of the file, method name, line number, and column + information used in constructing StackFrame and StackTrace objects. StackTrace + might not report as many method calls as expected, due to code transformations + that occur during optimization." + + + This means that in a Release build the caller information may be incomplete or may + not exist at all! Therefore caller location information cannot be relied upon in a Release build. + + + Nicko Cadell + Gert Driesen + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + Constructor + + The declaring type of the method that is + the stack boundary into the logging system for this call. + + + Initializes a new instance of the + class based on the current thread. + + + + + + Constructor + + The fully qualified class name. + The method name. + The file name. + The line number of the method within the file. + + + Initializes a new instance of the + class with the specified data. + + + + + + The fully qualified type of the LocationInfo class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the fully qualified class name of the caller making the logging + request. + + + The fully qualified class name of the caller making the logging + request. + + + + Gets the fully qualified class name of the caller making the logging + request. + + + + + + Gets the file name of the caller. + + + The file name of the caller. + + + + Gets the file name of the caller. + + + + + + Gets the line number of the caller. + + + The line number of the caller. + + + + Gets the line number of the caller. + + + + + + Gets the method name of the caller. + + + The method name of the caller. + + + + Gets the method name of the caller. + + + + + + Gets all available caller information + + + All available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + Gets all available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + + + Gets the stack frames from the stack trace of the caller making the log request + + + + + Static manager that controls the creation of repositories + + + + Static manager that controls the creation of repositories + + + This class is used by the wrapper managers (e.g. ) + to provide access to the objects. + + + This manager also holds the that is used to + lookup and create repositories. The selector can be set either programmatically using + the property, or by setting the log4net.RepositorySelector + AppSetting in the applications config file to the fully qualified type name of the + selector to use. + + + Nicko Cadell + Gert Driesen + + + + Private constructor to prevent instances. Only static methods should be used. + + + + Private constructor to prevent instances. Only static methods should be used. + + + + + + Hook the shutdown event + + + + On the full .NET runtime, the static constructor hooks up the + AppDomain.ProcessExit and AppDomain.DomainUnload> events. + These are used to shutdown the log4net system as the application exits. + + + + + + Register for ProcessExit and DomainUnload events on the AppDomain + + + + This needs to be in a separate method because the events make + a LinkDemand for the ControlAppDomain SecurityPermission. Because + this is a LinkDemand it is demanded at JIT time. Therefore we cannot + catch the exception in the method itself, we have to catch it in the + caller. + + + + + + Return the default instance. + + the repository to lookup in + Return the default instance + + + Gets the for the repository specified + by the argument. + + + + + + Returns the default instance. + + The assembly to use to lookup the repository. + The default instance. + + + + Return the default instance. + + the repository to lookup in + Return the default instance + + + Gets the for the repository specified + by the argument. + + + + + + Returns the default instance. + + The assembly to use to lookup the repository. + The default instance. + + + Returns the default instance. + + + + + + Returns the named logger if it exists. + + The repository to lookup in. + The fully qualified logger name to look for. + + The logger found, or null if the named logger does not exist in the + specified repository. + + + + If the named logger exists (in the specified repository) then it + returns a reference to the logger, otherwise it returns + null. + + + + + + Returns the named logger if it exists. + + The assembly to use to lookup the repository. + The fully qualified logger name to look for. + + The logger found, or null if the named logger does not exist in the + specified assembly's repository. + + + + If the named logger exists (in the specified assembly's repository) then it + returns a reference to the logger, otherwise it returns + null. + + + + + + Returns all the currently defined loggers in the specified repository. + + The repository to lookup in. + All the defined loggers. + + + The root logger is not included in the returned array. + + + + + + Returns all the currently defined loggers in the specified assembly's repository. + + The assembly to use to lookup the repository. + All the defined loggers. + + + The root logger is not included in the returned array. + + + + + + Retrieves or creates a named logger. + + The repository to lookup in. + The name of the logger to retrieve. + The logger with the name specified. + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + + + + Retrieves or creates a named logger. + + The assembly to use to lookup the repository. + The name of the logger to retrieve. + The logger with the name specified. + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + + + + Shorthand for . + + The repository to lookup in. + The of which the fullname will be used as the name of the logger to retrieve. + The logger with the name specified. + + + Gets the logger for the fully qualified name of the type specified. + + + + + + Shorthand for . + + the assembly to use to lookup the repository + The of which the fullname will be used as the name of the logger to retrieve. + The logger with the name specified. + + + Gets the logger for the fully qualified name of the type specified. + + + + + + Shuts down the log4net system. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in all the + default repositories. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + The repository to shutdown. + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository for the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + The assembly to use to lookup the repository. + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository for the repository. The repository is looked up using + the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Resets all values contained in this repository instance to their defaults. + + The repository to reset. + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + + + + Resets all values contained in this repository instance to their defaults. + + The assembly to use to lookup the repository to reset. + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + + + + Creates a repository with the specified name. + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name. + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The name must be unique. Repositories cannot be redefined. + An Exception will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The name must be unique. Repositories cannot be redefined. + An Exception will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository for the specified assembly and repository type. + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + + + + Creates a repository for the specified assembly and repository type. + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + + + + Gets an array of all currently defined repositories. + + An array of all the known objects. + + + Gets an array of all currently defined repositories. + + + + + + Internal method to get pertinent version info. + + A string of version info. + + + + Called when the event fires + + the that is exiting + null + + + Called when the event fires. + + + When the event is triggered the log4net system is . + + + + + + Called when the event fires + + the that is exiting + null + + + Called when the event fires. + + + When the event is triggered the log4net system is . + + + + + + The fully qualified type of the LoggerManager class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Initialize the default repository selector + + + + + Gets or sets the repository selector used by the . + + + The repository selector used by the . + + + + The repository selector () is used by + the to create and select repositories + (). + + + The caller to supplies either a string name + or an assembly (if not supplied the assembly is inferred using + ). + + + This context is used by the selector to lookup a specific repository. + + + For the full .NET Framework, the default repository is DefaultRepositorySelector; + for the .NET Compact Framework CompactRepositorySelector is the default + repository. + + + + + + Implementation of the interface. + + + + This class should be used as the base for all wrapper implementations. + + + Nicko Cadell + Gert Driesen + + + + Constructs a new wrapper for the specified logger. + + The logger to wrap. + + + Constructs a new wrapper for the specified logger. + + + + + + The logger that this object is wrapping + + + + + Gets the implementation behind this wrapper object. + + + The object that this object is implementing. + + + + The Logger object may not be the same object as this object + because of logger decorators. + + + This gets the actual underlying objects that is used to process + the log events. + + + + + + Portable data structure used by + + + + Portable data structure used by + + + Nicko Cadell + + + + The logger name. + + + + The logger name. + + + + + + Level of logging event. + + + + Level of logging event. Level cannot be Serializable + because it is a flyweight. Due to its special serialization it + cannot be declared final either. + + + + + + The application supplied message. + + + + The application supplied message of logging event. + + + + + + The name of thread + + + + The name of thread in which this logging event was generated + + + + + + Gets or sets the local time the event was logged + + + + Prefer using the setter, since local time can be ambiguous. + + + + + + Location information for the caller. + + + + Location information for the caller. + + + + + + String representation of the user + + + + String representation of the user's windows name, + like DOMAIN\username + + + + + + String representation of the identity. + + + + String representation of the current thread's principal identity. + + + + + + The string representation of the exception + + + + The string representation of the exception + + + + + + String representation of the AppDomain. + + + + String representation of the AppDomain. + + + + + + Additional event specific properties + + + + A logger or an appender may attach additional + properties to specific events. These properties + have a string key and an object value. + + + + + + Gets or sets the UTC time the event was logged + + + + The TimeStamp is stored in the UTC time zone. + + + + + + Flags passed to the property + + + + Flags passed to the property + + + Nicko Cadell + + + + Fix the MDC + + + + + Fix the NDC + + + + + Fix the rendered message + + + + + Fix the thread name + + + + + Fix the callers location information + + + CAUTION: Very slow to generate + + + + + Fix the callers windows user name + + + CAUTION: Slow to generate + + + + + Fix the domain friendly name + + + + + Fix the callers principal name + + + CAUTION: May be slow to generate + + + + + Fix the exception text + + + + + Fix the event properties. Active properties must implement in order to be eligible for fixing. + + + + + No fields fixed + + + + + All fields fixed + + + + + Partial fields fixed + + + + This set of partial fields gives good performance. The following fields are fixed: + + + + + + + + + + + + + The internal representation of logging events. + + + + When an affirmative decision is made to log then a + instance is created. This instance + is passed around to the different log4net components. + + + This class is of concern to those wishing to extend log4net. + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + for incurred by calling but it + is essential to maintaining data consistency. + + + Nicko Cadell + Gert Driesen + Douglas de la Torre + Daniel Cazzulino + + + + The key into the Properties map for the host name value. + + + + + The key into the Properties map for the thread identity value. + + + + + The key into the Properties map for the user name value. + + + + + Initializes a new instance of the class + from the supplied parameters. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + The name of the logger of this event. + The level of this event. + The message of this event. + The exception for this event. + + + Except , and , + all fields of LoggingEvent are filled when actually needed. Call + to cache all data locally + to prevent inconsistencies. + + This method is called by the log4net framework + to create a logging event. + + + + + + Initializes a new instance of the class + using specific data. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + Data used to initialize the logging event. + The fields in the struct that have already been fixed. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + The parameter should be used to specify which fields in the + struct have been preset. Fields not specified in the + will be captured from the environment if requested or fixed. + + + + + + Initializes a new instance of the class + using specific data. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + Data used to initialize the logging event. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + This constructor sets this objects flags to , + this assumes that all the data relating to this event is passed in via the + parameter and no other data should be captured from the environment. + + + + + + Initializes a new instance of the class + using specific data. + + Data used to initialize the logging event. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + This constructor sets this objects flags to , + this assumes that all the data relating to this event is passed in via the + parameter and no other data should be captured from the environment. + + + + + + Serialization constructor + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Ensure that the repository is set. + + the value for the repository + + + + Write the rendered message to a TextWriter + + the writer to write the message to + + + Unlike the property this method + does store the message data in the internal cache. Therefore + if called only once this method should be faster than the + property, however if the message is + to be accessed multiple times then the property will be more efficient. + + + + + + Serializes this object into the provided. + + The to populate with data. + The destination for this serialization. + + + The data in this event must be fixed before it can be serialized. + + + The method must be called during the + method call if this event + is to be used outside that method. + + + + + + Gets the portable data for this . + + The for this event. + + + A new can be constructed using a + instance. + + + Does a fix of the data + in the logging event before returning the event data. + + + + + + Gets the portable data for this . + + The set of data to ensure is fixed in the LoggingEventData + The for this event. + + + A new can be constructed using a + instance. + + + + + + Returns this event's exception's rendered using the + . + + + This event's exception's rendered using the . + + + + Obsolete. Use instead. + + + + + + Returns this event's exception's rendered using the + . + + + This event's exception's rendered using the . + + + + Returns this event's exception's rendered using the + . + + + + + + Fix instance fields that hold volatile data. + + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + incurred by calling but it + is essential to maintaining data consistency. + + + Calling is equivalent to + calling passing the parameter + false. + + + See for more + information. + + + + + + Fixes instance fields that hold volatile data. + + Set to true to not fix data that takes a long time to fix. + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + for incurred by calling but it + is essential to maintaining data consistency. + + + The param controls the data that + is fixed. Some of the data that can be fixed takes a long time to + generate, therefore if you do not require those settings to be fixed + they can be ignored by setting the param + to true. This setting will ignore the + and settings. + + + Set to false to ensure that all + settings are fixed. + + + + + + Fix the fields specified by the parameter + + the fields to fix + + + Only fields specified in the will be fixed. + Fields will not be fixed if they have previously been fixed. + It is not possible to 'unfix' a field. + + + + + + Lookup a composite property in this event + + the key for the property to lookup + the value for the property + + + This event has composite properties that combine together properties from + several different contexts in the following order: + + + this events properties + + This event has that can be set. These + properties are specific to this event only. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + + + Get all the composite properties in this event + + the containing all the properties + + + See for details of the composite properties + stored by the event. + + + This method returns a single containing all the + properties defined for this event. + + + + + + The internal logging event data. + + + + + The internal logging event data. + + + + + The internal logging event data. + + + + + The fully qualified Type of the calling + logger class in the stack frame (i.e. the declaring type of the method). + + + + + The application supplied message of logging event. + + + + + The exception that was thrown. + + + This is not serialized. The string representation + is serialized instead. + + + + + The repository that generated the logging event + + + This is not serialized. + + + + + The fix state for this event + + + These flags indicate which fields have been fixed. + Not serialized. + + + + + Indicated that the internal cache is updateable (ie not fixed) + + + This is a seperate flag to m_fixFlags as it allows incrementel fixing and simpler + changes in the caching strategy. + + + + + Gets the time when the current process started. + + + This is the time when this process started. + + + + The TimeStamp is stored internally in UTC and converted to the local time zone for this computer. + + + Tries to get the start time for the current process. + Failing that it returns the time of the first call to + this property. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating and therefore + without the process start time being reset. + + + + + + Gets the UTC time when the current process started. + + + This is the UTC time when this process started. + + + + Tries to get the start time for the current process. + Failing that it returns the time of the first call to + this property. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating and therefore + without the process start time being reset. + + + + + + Gets the of the logging event. + + + The of the logging event. + + + + Gets the of the logging event. + + + + + + Gets the time of the logging event. + + + The time of the logging event. + + + + The TimeStamp is stored in UTC and converted to the local time zone for this computer. + + + + + + Gets UTC the time of the logging event. + + + The UTC time of the logging event. + + + + + Gets the name of the logger that logged the event. + + + The name of the logger that logged the event. + + + + Gets the name of the logger that logged the event. + + + + + + Gets the location information for this logging event. + + + The location information for this logging event. + + + + The collected information is cached for future use. + + + See the class for more information on + supported frameworks and the different behavior in Debug and + Release builds. + + + + + + Gets the message object used to initialize this event. + + + The message object used to initialize this event. + + + + Gets the message object used to initialize this event. + Note that this event may not have a valid message object. + If the event is serialized the message object will not + be transferred. To get the text of the message the + property must be used + not this property. + + + If there is no defined message object for this event then + null will be returned. + + + + + + Gets the exception object used to initialize this event. + + + The exception object used to initialize this event. + + + + Gets the exception object used to initialize this event. + Note that this event may not have a valid exception object. + If the event is serialized the exception object will not + be transferred. To get the text of the exception the + method must be used + not this property. + + + If there is no defined exception object for this event then + null will be returned. + + + + + + The that this event was created in. + + + + The that this event was created in. + + + + + + Gets the message, rendered through the . + + + The message rendered through the . + + + + The collected information is cached for future use. + + + + + + Gets the name of the current thread. + + + The name of the current thread, or the thread ID when + the name is not available. + + + + The collected information is cached for future use. + + + + + + Gets the name of the current user. + + + The name of the current user, or NOT AVAILABLE when the + underlying runtime has no support for retrieving the name of the + current user. + + + + Calls WindowsIdentity.GetCurrent().Name to get the name of + the current windows user. + + + To improve performance, we could cache the string representation of + the name, and reuse that as long as the identity stayed constant. + Once the identity changed, we would need to re-assign and re-render + the string. + + + However, the WindowsIdentity.GetCurrent() call seems to + return different objects every time, so the current implementation + doesn't do this type of caching. + + + Timing for these operations: + + + + Method + Results + + + WindowsIdentity.GetCurrent() + 10000 loops, 00:00:00.2031250 seconds + + + WindowsIdentity.GetCurrent().Name + 10000 loops, 00:00:08.0468750 seconds + + + + This means we could speed things up almost 40 times by caching the + value of the WindowsIdentity.GetCurrent().Name property, since + this takes (8.04-0.20) = 7.84375 seconds. + + + + + + Gets the identity of the current thread principal. + + + The string name of the identity of the current thread principal. + + + + Calls System.Threading.Thread.CurrentPrincipal.Identity.Name to get + the name of the current thread principal. + + + + + + Gets the AppDomain friendly name. + + + The AppDomain friendly name. + + + + Gets the AppDomain friendly name. + + + + + + Additional event specific properties. + + + Additional event specific properties. + + + + A logger or an appender may attach additional + properties to specific events. These properties + have a string key and an object value. + + + This property is for events that have been added directly to + this event. The aggregate properties (which include these + event properties) can be retrieved using + and . + + + Once the properties have been fixed this property + returns the combined cached properties. This ensures that updates to + this property are always reflected in the underlying storage. When + returning the combined properties there may be more keys in the + Dictionary than expected. + + + + + + The fixed fields in this event + + + The set of fields that are fixed in this event + + + + Fields will not be fixed if they have previously been fixed. + It is not possible to 'unfix' a field. + + + + + + Implementation of wrapper interface. + + + + This implementation of the interface + forwards to the held by the base class. + + + This logger has methods to allow the caller to log at the following + levels: + + + + DEBUG + + The and methods log messages + at the DEBUG level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + INFO + + The and methods log messages + at the INFO level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + WARN + + The and methods log messages + at the WARN level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + ERROR + + The and methods log messages + at the ERROR level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + FATAL + + The and methods log messages + at the FATAL level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + + The values for these levels and their semantic meanings can be changed by + configuring the for the repository. + + + Nicko Cadell + Gert Driesen + + + + The ILog interface is use by application to log messages into + the log4net framework. + + + + Use the to obtain logger instances + that implement this interface. The + static method is used to get logger instances. + + + This class contains methods for logging at different levels and also + has properties for determining if those logging levels are + enabled in the current configuration. + + + This interface can be implemented in different ways. This documentation + specifies reasonable behavior that a caller can expect from the actual + implementation, however different implementations reserve the right to + do things differently. + + + Simple example of logging messages + + ILog log = LogManager.GetLogger("application-log"); + + log.Info("Application Start"); + log.Debug("This is a debug message"); + + if (log.IsDebugEnabled) + { + log.Debug("This is another debug message"); + } + + + + + Nicko Cadell + Gert Driesen + + + Log a message object with the level. + + Log a message object with the level. + + The message object to log. + + + This method first checks if this logger is DEBUG + enabled by comparing the level of this logger with the + level. If this logger is + DEBUG enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Logs a message object with the level. + + + + This method first checks if this logger is INFO + enabled by comparing the level of this logger with the + level. If this logger is + INFO enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Logs a message object with the INFO level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Log a message object with the level. + + + + This method first checks if this logger is WARN + enabled by comparing the level of this logger with the + level. If this logger is + WARN enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Logs a message object with the level. + + The message object to log. + + + This method first checks if this logger is ERROR + enabled by comparing the level of this logger with the + level. If this logger is + ERROR enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Log a message object with the level. + + + + This method first checks if this logger is FATAL + enabled by comparing the level of this logger with the + level. If this logger is + FATAL enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + + This function is intended to lessen the computational cost of + disabled log debug statements. + + For some ILog interface log, when you write: + + log.Debug("This is entry number: " + i ); + + + You incur the cost constructing the message, string construction and concatenation in + this case, regardless of whether the message is logged or not. + + + If you are worried about speed (who isn't), then you should write: + + + if (log.IsDebugEnabled) + { + log.Debug("This is entry number: " + i ); + } + + + This way you will not incur the cost of parameter + construction if debugging is disabled for log. On + the other hand, if the log is debug enabled, you + will incur the cost of evaluating whether the logger is debug + enabled twice. Once in and once in + the . This is an insignificant overhead + since evaluating a logger takes about 1% of the time it + takes to actually log. This is the preferred style of logging. + + Alternatively if your logger is available statically then the is debug + enabled state can be stored in a static variable like this: + + + private static readonly bool isDebugEnabled = log.IsDebugEnabled; + + + Then when you come to log you can write: + + + if (isDebugEnabled) + { + log.Debug("This is entry number: " + i ); + } + + + This way the debug enabled state is only queried once + when the class is loaded. Using a private static readonly + variable is the most efficient because it is a run time constant + and can be heavily optimized by the JIT compiler. + + + Of course if you use a static readonly variable to + hold the enabled state of the logger then you cannot + change the enabled state at runtime to vary the logging + that is produced. You have to decide if you need absolute + speed or runtime flexibility. + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Construct a new wrapper for the specified logger. + + The logger to wrap. + + + Construct a new wrapper for the specified logger. + + + + + + Virtual method called when the configuration of the repository changes + + the repository holding the levels + + + Virtual method called when the configuration of the repository changes + + + + + + Logs a message object with the DEBUG level. + + The message object to log. + + + This method first checks if this logger is DEBUG + enabled by comparing the level of this logger with the + DEBUG level. If this logger is + DEBUG enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the DEBUG level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the DEBUG level including + the stack trace of the passed + as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the INFO level. + + The message object to log. + + + This method first checks if this logger is INFO + enabled by comparing the level of this logger with the + INFO level. If this logger is + INFO enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the INFO level. + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the INFO level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the WARN level. + + the message object to log + + + This method first checks if this logger is WARN + enabled by comparing the level of this logger with the + WARN level. If this logger is + WARN enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the WARN level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the WARN level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the ERROR level. + + The message object to log. + + + This method first checks if this logger is ERROR + enabled by comparing the level of this logger with the + ERROR level. If this logger is + ERROR enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the ERROR level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the ERROR level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the FATAL level. + + The message object to log. + + + This method first checks if this logger is FATAL + enabled by comparing the level of this logger with the + FATAL level. If this logger is + FATAL enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the FATAL level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the FATAL level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Event handler for the event + + the repository + Empty + + + + The fully qualified name of this declaring type not the type of any subclass. + + + + + Checks if this logger is enabled for the DEBUG + level. + + + true if this logger is enabled for DEBUG events, + false otherwise. + + + + This function is intended to lessen the computational cost of + disabled log debug statements. + + + For some log Logger object, when you write: + + + log.Debug("This is entry number: " + i ); + + + You incur the cost constructing the message, concatenation in + this case, regardless of whether the message is logged or not. + + + If you are worried about speed, then you should write: + + + if (log.IsDebugEnabled()) + { + log.Debug("This is entry number: " + i ); + } + + + This way you will not incur the cost of parameter + construction if debugging is disabled for log. On + the other hand, if the log is debug enabled, you + will incur the cost of evaluating whether the logger is debug + enabled twice. Once in IsDebugEnabled and once in + the Debug. This is an insignificant overhead + since evaluating a logger takes about 1% of the time it + takes to actually log. + + + + + + Checks if this logger is enabled for the INFO level. + + + true if this logger is enabled for INFO events, + false otherwise. + + + + See for more information and examples + of using this method. + + + + + + + Checks if this logger is enabled for the WARN level. + + + true if this logger is enabled for WARN events, + false otherwise. + + + + See for more information and examples + of using this method. + + + + + + + Checks if this logger is enabled for the ERROR level. + + + true if this logger is enabled for ERROR events, + false otherwise. + + + + See for more information and examples of using this method. + + + + + + + Checks if this logger is enabled for the FATAL level. + + + true if this logger is enabled for FATAL events, + false otherwise. + + + + See for more information and examples of using this method. + + + + + + + provides method information without actually referencing a System.Reflection.MethodBase + as that would require that the containing assembly is loaded. + + + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + constructs a method item for an unknown method. + + + + + constructs a method item from the name of the method. + + + + + + constructs a method item from the name of the method and its parameters. + + + + + + + constructs a method item from a method base by determining the method name and its parameters. + + + + + + The fully qualified type of the StackFrameItem class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the method name of the caller making the logging + request. + + + The method name of the caller making the logging + request. + + + + Gets the method name of the caller making the logging + request. + + + + + + Gets the method parameters of the caller making + the logging request. + + + The method parameters of the caller making + the logging request + + + + Gets the method parameters of the caller making + the logging request. + + + + + + A SecurityContext used by log4net when interacting with protected resources + + + + A SecurityContext used by log4net when interacting with protected resources + for example with operating system services. This can be used to impersonate + a principal that has been granted privileges on the system resources. + + + Nicko Cadell + + + + Impersonate this SecurityContext + + State supplied by the caller + An instance that will + revoke the impersonation of this SecurityContext, or null + + + Impersonate this security context. Further calls on the current + thread should now be made in the security context provided + by this object. When the result + method is called the security + context of the thread should be reverted to the state it was in + before was called. + + + + + + The providers default instances. + + + + A configured component that interacts with potentially protected system + resources uses a to provide the elevated + privileges required. If the object has + been not been explicitly provided to the component then the component + will request one from this . + + + By default the is + an instance of which returns only + objects. This is a reasonable default + where the privileges required are not know by the system. + + + This default behavior can be overridden by subclassing the + and overriding the method to return + the desired objects. The default provider + can be replaced by programmatically setting the value of the + property. + + + An alternative is to use the log4net.Config.SecurityContextProviderAttribute + This attribute can be applied to an assembly in the same way as the + log4net.Config.XmlConfiguratorAttribute". The attribute takes + the type to use as the as an argument. + + + Nicko Cadell + + + + The default provider + + + + + Protected default constructor to allow subclassing + + + + Protected default constructor to allow subclassing + + + + + + Create a SecurityContext for a consumer + + The consumer requesting the SecurityContext + An impersonation context + + + The default implementation is to return a . + + + Subclasses should override this method to provide their own + behavior. + + + + + + Gets or sets the default SecurityContextProvider + + + The default SecurityContextProvider + + + + The default provider is used by configured components that + require a and have not had one + given to them. + + + By default this is an instance of + that returns objects. + + + The default provider can be set programmatically by setting + the value of this property to a sub class of + that has the desired behavior. + + + + + + provides stack frame information without actually referencing a System.Diagnostics.StackFrame + as that would require that the containing assembly is loaded. + + + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + returns a stack frame item from a stack frame. This + + + + + + + The fully qualified type of the StackFrameItem class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the fully qualified class name of the caller making the logging + request. + + + The fully qualified class name of the caller making the logging + request. + + + + Gets the fully qualified class name of the caller making the logging + request. + + + + + + Gets the file name of the caller. + + + The file name of the caller. + + + + Gets the file name of the caller. + + + + + + Gets the line number of the caller. + + + The line number of the caller. + + + + Gets the line number of the caller. + + + + + + Gets the method name of the caller. + + + The method name of the caller. + + + + Gets the method name of the caller. + + + + + + Gets all available caller information + + + All available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + Gets all available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + + + An evaluator that triggers after specified number of seconds. + + + + This evaluator will trigger if the specified time period + has passed since last check. + + + Robert Sevcik + + + + The default time threshold for triggering in seconds. Zero means it won't trigger at all. + + + + + The time threshold for triggering in seconds. Zero means it won't trigger at all. + + + + + The UTC time of last check. This gets updated when the object is created and when the evaluator triggers. + + + + + Create a new evaluator using the time threshold in seconds. + + + + Create a new evaluator using the time threshold in seconds. + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Create a new evaluator using the specified time threshold in seconds. + + + The time threshold in seconds to trigger after. + Zero means it won't trigger at all. + + + + Create a new evaluator using the specified time threshold in seconds. + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Is this the triggering event? + + The event to check + This method returns true, if the specified time period + has passed since last check.. + Otherwise it returns false + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + The time threshold in seconds to trigger after + + + The time threshold in seconds to trigger after. + Zero means it won't trigger at all. + + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Delegate used to handle creation of new wrappers. + + The logger to wrap in a wrapper. + + + Delegate used to handle creation of new wrappers. This delegate + is called from the + method to construct the wrapper for the specified logger. + + + The delegate to use is supplied to the + constructor. + + + + + + Maps between logger objects and wrapper objects. + + + + This class maintains a mapping between objects and + objects. Use the method to + lookup the for the specified . + + + New wrapper instances are created by the + method. The default behavior is for this method to delegate construction + of the wrapper to the delegate supplied + to the constructor. This allows specialization of the behavior without + requiring subclassing of this type. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the + + The handler to use to create the wrapper objects. + + + Initializes a new instance of the class with + the specified handler to create the wrapper objects. + + + + + + Gets the wrapper object for the specified logger. + + The wrapper object for the specified logger + + + If the logger is null then the corresponding wrapper is null. + + + Looks up the wrapper it it has previously been requested and + returns it. If the wrapper has never been requested before then + the virtual method is + called. + + + + + + Creates the wrapper object for the specified logger. + + The logger to wrap in a wrapper. + The wrapper object for the logger. + + + This implementation uses the + passed to the constructor to create the wrapper. This method + can be overridden in a subclass. + + + + + + Called when a monitored repository shutdown event is received. + + The that is shutting down + + + This method is called when a that this + is holding loggers for has signaled its shutdown + event . The default + behavior of this method is to release the references to the loggers + and their wrappers generated for this repository. + + + + + + Event handler for repository shutdown event. + + The sender of the event. + The event args. + + + + Map of logger repositories to hashtables of ILogger to ILoggerWrapper mappings + + + + + The handler to use to create the extension wrapper objects. + + + + + Internal reference to the delegate used to register for repository shutdown events. + + + + + Gets the map of logger repositories. + + + Map of logger repositories. + + + + Gets the hashtable that is keyed on . The + values are hashtables keyed on with the + value being the corresponding . + + + + + + Formats a as "HH:mm:ss,fff". + + + + Formats a in the format "HH:mm:ss,fff" for example, "15:49:37,459". + + + Nicko Cadell + Gert Driesen + + + + Render a as a string. + + + + Interface to abstract the rendering of a + instance into a string. + + + The method is used to render the + date to a text writer. + + + Nicko Cadell + Gert Driesen + + + + Formats the specified date as a string. + + The date to format. + The writer to write to. + + + Format the as a string and write it + to the provided. + + + + + + String constant used to specify AbsoluteTimeDateFormat in layouts. Current value is ABSOLUTE. + + + + + String constant used to specify DateTimeDateFormat in layouts. Current value is DATE. + + + + + String constant used to specify ISO8601DateFormat in layouts. Current value is ISO8601. + + + + + Renders the date into a string. Format is "HH:mm:ss". + + The date to render into a string. + The string builder to write to. + + + Subclasses should override this method to render the date + into a string using a precision up to the second. This method + will be called at most once per second and the result will be + reused if it is needed again during the same second. + + + + + + Renders the date into a string. Format is "HH:mm:ss,fff". + + The date to render into a string. + The writer to write to. + + + Uses the method to generate the + time string up to the seconds and then appends the current + milliseconds. The results from are + cached and is called at most once + per second. + + + Sub classes should override + rather than . + + + + + + Last stored time with precision up to the second. + + + + + Last stored time with precision up to the second, formatted + as a string. + + + + + Last stored time with precision up to the second, formatted + as a string. + + + + + Formats a as "dd MMM yyyy HH:mm:ss,fff" + + + + Formats a in the format + "dd MMM yyyy HH:mm:ss,fff" for example, + "06 Nov 1994 15:49:37,459". + + + Nicko Cadell + Gert Driesen + Angelika Schnagl + + + + Default constructor. + + + + Initializes a new instance of the class. + + + + + + Formats the date without the milliseconds part + + The date to format. + The string builder to write to. + + + Formats a DateTime in the format "dd MMM yyyy HH:mm:ss" + for example, "06 Nov 1994 15:49:37". + + + The base class will append the ",fff" milliseconds section. + This method will only be called at most once per second. + + + + + + The format info for the invariant culture. + + + + + Formats the as "yyyy-MM-dd HH:mm:ss,fff". + + + + Formats the specified as a string: "yyyy-MM-dd HH:mm:ss,fff". + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Formats the date without the milliseconds part + + The date to format. + The string builder to write to. + + + Formats the date specified as a string: "yyyy-MM-dd HH:mm:ss". + + + The base class will append the ",fff" milliseconds section. + This method will only be called at most once per second. + + + + + + Formats the using the method. + + + + Formats the using the method. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The format string. + + + Initializes a new instance of the class + with the specified format string. + + + The format string must be compatible with the options + that can be supplied to . + + + + + + Formats the date using . + + The date to convert to a string. + The writer to write to. + + + Uses the date format string supplied to the constructor to call + the method to format the date. + + + + + + The format string used to format the . + + + + The format string must be compatible with the options + that can be supplied to . + + + + + + This filter drops all . + + + + You can add this filter to the end of a filter chain to + switch from the default "accept all unless instructed otherwise" + filtering behavior to a "deny all unless instructed otherwise" + behavior. + + + Nicko Cadell + Gert Driesen + + + + Subclass this type to implement customized logging event filtering + + + + Users should extend this class to implement customized logging + event filtering. Note that and + , the parent class of all standard + appenders, have built-in filtering rules. It is suggested that you + first use and understand the built-in rules before rushing to write + your own custom filters. + + + This abstract class assumes and also imposes that filters be + organized in a linear chain. The + method of each filter is called sequentially, in the order of their + addition to the chain. + + + The method must return one + of the integer constants , + or . + + + If the value is returned, then the log event is dropped + immediately without consulting with the remaining filters. + + + If the value is returned, then the next filter + in the chain is consulted. If there are no more filters in the + chain, then the log event is logged. Thus, in the presence of no + filters, the default behavior is to log all logging events. + + + If the value is returned, then the log + event is logged without consulting the remaining filters. + + + The philosophy of log4net filters is largely inspired from the + Linux ipchains. + + + Nicko Cadell + Gert Driesen + + + + Implement this interface to provide customized logging event filtering + + + + Users should implement this interface to implement customized logging + event filtering. Note that and + , the parent class of all standard + appenders, have built-in filtering rules. It is suggested that you + first use and understand the built-in rules before rushing to write + your own custom filters. + + + This abstract class assumes and also imposes that filters be + organized in a linear chain. The + method of each filter is called sequentially, in the order of their + addition to the chain. + + + The method must return one + of the integer constants , + or . + + + If the value is returned, then the log event is dropped + immediately without consulting with the remaining filters. + + + If the value is returned, then the next filter + in the chain is consulted. If there are no more filters in the + chain, then the log event is logged. Thus, in the presence of no + filters, the default behavior is to log all logging events. + + + If the value is returned, then the log + event is logged without consulting the remaining filters. + + + The philosophy of log4net filters is largely inspired from the + Linux ipchains. + + + Nicko Cadell + Gert Driesen + + + + Decide if the logging event should be logged through an appender. + + The LoggingEvent to decide upon + The decision of the filter + + + If the decision is , then the event will be + dropped. If the decision is , then the next + filter, if any, will be invoked. If the decision is then + the event will be logged without consulting with other filters in + the chain. + + + + + + Property to get and set the next filter + + + The next filter in the chain + + + + Filters are typically composed into chains. This property allows the next filter in + the chain to be accessed. + + + + + + Points to the next filter in the filter chain. + + + + See for more information. + + + + + + Initialize the filter with the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Typically filter's options become active immediately on set, + however this method must still be called. + + + + + + Decide if the should be logged through an appender. + + The to decide upon + The decision of the filter + + + If the decision is , then the event will be + dropped. If the decision is , then the next + filter, if any, will be invoked. If the decision is then + the event will be logged without consulting with other filters in + the chain. + + + This method is marked abstract and must be implemented + in a subclass. + + + + + + Property to get and set the next filter + + + The next filter in the chain + + + + Filters are typically composed into chains. This property allows the next filter in + the chain to be accessed. + + + + + + Default constructor + + + + + Always returns the integer constant + + the LoggingEvent to filter + Always returns + + + Ignores the event being logged and just returns + . This can be used to change the default filter + chain behavior from to . This filter + should only be used as the last filter in the chain + as any further filters will be ignored! + + + + + + The return result from + + + + The return result from + + + + + + The log event must be dropped immediately without + consulting with the remaining filters, if any, in the chain. + + + + + This filter is neutral with respect to the log event. + The remaining filters, if any, should be consulted for a final decision. + + + + + The log event must be logged immediately without + consulting with the remaining filters, if any, in the chain. + + + + + This is a very simple filter based on matching. + + + + The filter admits two options and + . If there is an exact match between the value + of the option and the of the + , then the method returns in + case the option value is set + to true, if it is false then + is returned. If the does not match then + the result will be . + + + Nicko Cadell + Gert Driesen + + + + flag to indicate if the filter should on a match + + + + + the to match against + + + + + Default constructor + + + + + Tests if the of the logging event matches that of the filter + + the event to filter + see remarks + + + If the of the event matches the level of the + filter then the result of the function depends on the + value of . If it is true then + the function will return , it it is false then it + will return . If the does not match then + the result will be . + + + + + + when matching + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + The that the filter will match + + + + The level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + This is a simple filter based on matching. + + + + The filter admits three options and + that determine the range of priorities that are matched, and + . If there is a match between the range + of priorities and the of the , then the + method returns in case the + option value is set to true, if it is false + then is returned. If there is no match, is returned. + + + Nicko Cadell + Gert Driesen + + + + Flag to indicate the behavior when matching a + + + + + the minimum value to match + + + + + the maximum value to match + + + + + Default constructor + + + + + Check if the event should be logged. + + the logging event to check + see remarks + + + If the of the logging event is outside the range + matched by this filter then + is returned. If the is matched then the value of + is checked. If it is true then + is returned, otherwise + is returned. + + + + + + when matching and + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + Set the minimum matched + + + + The minimum level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + Sets the maximum matched + + + + The maximum level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + Simple filter to match a string in the event's logger name. + + + + The works very similar to the . It admits two + options and . If the + of the starts + with the value of the option, then the + method returns in + case the option value is set to true, + if it is false then is returned. + + + Daniel Cazzulino + + + + Flag to indicate the behavior when we have a match + + + + + The logger name string to substring match against the event + + + + + Default constructor + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The rendered message is matched against the . + If the equals the beginning of + the incoming () + then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + when matching + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + The that the filter will match + + + + This filter will attempt to match this value against logger name in + the following way. The match will be done against the beginning of the + logger name (using ). The match is + case sensitive. If a match is found then + the result depends on the value of . + + + + + + Simple filter to match a keyed string in the + + + + Simple filter to match a keyed string in the + + + As the MDC has been replaced with layered properties the + should be used instead. + + + Nicko Cadell + Gert Driesen + + + + Simple filter to match a string an event property + + + + Simple filter to match a string in the value for a + specific event property + + + Nicko Cadell + + + + Simple filter to match a string in the rendered message + + + + Simple filter to match a string in the rendered message + + + Nicko Cadell + Gert Driesen + + + + Flag to indicate the behavior when we have a match + + + + + The string to substring match against the message + + + + + A string regex to match + + + + + A regex object to match (generated from m_stringRegexToMatch) + + + + + Default constructor + + + + + Initialize and precompile the Regex if required + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The rendered message is matched against the . + If the occurs as a substring within + the message then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + when matching or + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + Sets the static string to match + + + + The string that will be substring matched against + the rendered message. If the message contains this + string then the filter will match. If a match is found then + the result depends on the value of . + + + One of or + must be specified. + + + + + + Sets the regular expression to match + + + + The regular expression pattern that will be matched against + the rendered message. If the message matches this + pattern then the filter will match. If a match is found then + the result depends on the value of . + + + One of or + must be specified. + + + + + + The key to use to lookup the string from the event properties + + + + + Default constructor + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The event property for the is matched against + the . + If the occurs as a substring within + the property value then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + The key to lookup in the event properties and then match against. + + + + The key name to use to lookup in the properties map of the + . The match will be performed against + the value of this property if it exists. + + + + + + Simple filter to match a string in the + + + + Simple filter to match a string in the + + + As the MDC has been replaced with named stacks stored in the + properties collections the should + be used instead. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Sets the to "NDC". + + + + + + Write the event appdomain name to the output + + + + Writes the to the output writer. + + + Daniel Cazzulino + Nicko Cadell + + + + Abstract class that provides the formatting functionality that + derived classes need. + + + Conversion specifiers in a conversion patterns are parsed to + individual PatternConverters. Each of which is responsible for + converting a logging event in a converter specific manner. + + Nicko Cadell + + + + Abstract class that provides the formatting functionality that + derived classes need. + + + + Conversion specifiers in a conversion patterns are parsed to + individual PatternConverters. Each of which is responsible for + converting a logging event in a converter specific manner. + + + Nicko Cadell + Gert Driesen + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + Protected constructor + + + + Initializes a new instance of the class. + + + + + + Evaluate this pattern converter and write the output to a writer. + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the appropriate way. + + + + + + Set the next pattern converter in the chains + + the pattern converter that should follow this converter in the chain + the next converter + + + The PatternConverter can merge with its neighbor during this method (or a sub class). + Therefore the return value may or may not be the value of the argument passed in. + + + + + + Write the pattern converter to the writer with appropriate formatting + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + This method calls to allow the subclass to perform + appropriate conversion of the pattern converter. If formatting options have + been specified via the then this method will + apply those formattings before writing the output. + + + + + + Fast space padding method. + + to which the spaces will be appended. + The number of spaces to be padded. + + + Fast space padding method. + + + + + + The option string to the converter + + + + + Write an dictionary to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the to a writer in the form: + + + {key1=value1, key2=value2, key3=value3} + + + If the specified + is not null then it is used to render the key and value to text, otherwise + the object's ToString method is called. + + + + + + Write an dictionary to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the to a writer in the form: + + + {key1=value1, key2=value2, key3=value3} + + + If the specified + is not null then it is used to render the key and value to text, otherwise + the object's ToString method is called. + + + + + + Write an object to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the Object to a writer. If the specified + is not null then it is used to render the object to text, otherwise + the object's ToString method is called. + + + + + + Get the next pattern converter in the chain + + + the next pattern converter in the chain + + + + Get the next pattern converter in the chain + + + + + + Gets or sets the formatting info for this converter + + + The formatting info for this converter + + + + Gets or sets the formatting info for this converter + + + + + + Gets or sets the option value for this converter + + + The option for this converter + + + + Gets or sets the option value for this converter + + + + + + + + + + + Initializes a new instance of the class. + + + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the correct way. + + that will receive the formatted result. + The on which the pattern converter should be executed. + + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the correct way. + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + + Flag indicating if this converter handles exceptions + + + false if this converter handles exceptions + + + + + Flag indicating if this converter handles the logging event exception + + false if this converter handles the logging event exception + + + If this converter handles the exception object contained within + , then this property should be set to + false. Otherwise, if the layout ignores the exception + object, then the property should be set to true. + + + Set this value to override a this default setting. The default + value is true, this converter does not handle the exception. + + + + + + Write the event appdomain name to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output . + + + + + + Converter for items in the ASP.Net Cache. + + + + Outputs an item from the . + + + Ron Grabowski + + + + Abstract class that provides access to the current HttpContext () that + derived classes need. + + + This class handles the case when HttpContext.Current is null by writing + to the writer. + + Ron Grabowski + + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the correct way. + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + + Write the ASP.Net Cache item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. If no property has been set, all key value pairs from the Cache will + be written to the output. + + + + + + Converter for items in the . + + + + Outputs an item from the . + + + Ron Grabowski + + + + Write the ASP.Net HttpContext item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. + + + + + + Converter for items in the ASP.Net Cache. + + + + Outputs an item from the . + + + Ron Grabowski + + + + Write the ASP.Net Cache item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. + + + + + + Converter for items in the ASP.Net Cache. + + + + Outputs an item from the . + + + Ron Grabowski + + + + Write the ASP.Net Cache item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. If no property has been set, all key value pairs from the Session will + be written to the output. + + + + + + Date pattern converter, uses a to format + the date of a . + + + + Render the to the writer as a string. + + + The value of the determines + the formatting of the date. The following values are allowed: + + + Option value + Output + + + ISO8601 + + Uses the formatter. + Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. + + + + DATE + + Uses the formatter. + Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". + + + + ABSOLUTE + + Uses the formatter. + Formats using the "HH:mm:ss,yyyy" for example, "15:49:37,459". + + + + other + + Any other pattern string uses the formatter. + This formatter passes the pattern string to the + method. + For details on valid patterns see + DateTimeFormatInfo Class. + + + + + + The is in the local time zone and is rendered in that zone. + To output the time in Universal time see . + + + Nicko Cadell + + + + The used to render the date to a string + + + + The used to render the date to a string + + + + + + Initialize the converter pattern based on the property. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Convert the pattern into the rendered message + + that will receive the formatted result. + the event being logged + + + Pass the to the + for it to render it to the writer. + + + The passed is in the local time zone. + + + + + + The fully qualified type of the DatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the exception text to the output + + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + + + If there is no exception then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + Nicko Cadell + + + + Default constructor + + + + + Write the exception text to the output + + that will receive the formatted result. + the event being logged + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + + + If there is no exception or the exception property specified + by the Option value does not exist then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + Recognized values for the Option parameter are: + + + + Message + + + Source + + + StackTrace + + + TargetSite + + + HelpLink + + + + + + + Writes the caller location file name to the output + + + + Writes the value of the for + the event to the output writer. + + + Nicko Cadell + + + + Write the caller location file name to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the for + the to the output . + + + + + + Write the caller location info to the output + + + + Writes the to the output writer. + + + Nicko Cadell + + + + Write the caller location info to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output writer. + + + + + + Writes the event identity to the output + + + + Writes the value of the to + the output writer. + + + Daniel Cazzulino + Nicko Cadell + + + + Writes the event identity to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the + to + the output . + + + + + + Write the event level to the output + + + + Writes the display name of the event + to the writer. + + + Nicko Cadell + + + + Write the event level to the output + + that will receive the formatted result. + the event being logged + + + Writes the of the + to the . + + + + + + Write the caller location line number to the output + + + + Writes the value of the for + the event to the output writer. + + + Nicko Cadell + + + + Write the caller location line number to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the for + the to the output . + + + + + + Converter for logger name + + + + Outputs the of the event. + + + Nicko Cadell + + + + Converter to output and truncate '.' separated strings + + + + This abstract class supports truncating a '.' separated string + to show a specified number of elements from the right hand side. + This is used to truncate class names that are fully qualified. + + + Subclasses should override the method to + return the fully qualified string. + + + Nicko Cadell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Get the fully qualified string data + + the event being logged + the fully qualified name + + + Overridden by subclasses to get the fully qualified name before the + precision is applied to it. + + + Return the fully qualified '.' (dot/period) separated string. + + + + + + Convert the pattern to the rendered message + + that will receive the formatted result. + the event being logged + + Render the to the precision + specified by the property. + + + + + The fully qualified type of the NamedPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the fully qualified name of the logger + + the event being logged + The fully qualified logger name + + + Returns the of the . + + + + + + Writes the event message to the output + + + + Uses the method + to write out the event message. + + + Nicko Cadell + + + + Writes the event message to the output + + that will receive the formatted result. + the event being logged + + + Uses the method + to write out the event message. + + + + + + Write the method name to the output + + + + Writes the caller location to + the output. + + + Nicko Cadell + + + + Write the method name to the output + + that will receive the formatted result. + the event being logged + + + Writes the caller location to + the output. + + + + + + Converter to include event NDC + + + + Outputs the value of the event property named NDC. + + + The should be used instead. + + + Nicko Cadell + + + + Write the event NDC to the output + + that will receive the formatted result. + the event being logged + + + As the thread context stacks are now stored in named event properties + this converter simply looks up the value of the NDC property. + + + The should be used instead. + + + + + + Property pattern converter + + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + Nicko Cadell + + + + Write the property value to the output + + that will receive the formatted result. + the event being logged + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + Converter to output the relative time of the event + + + + Converter to output the time of the event relative to the start of the program. + + + Nicko Cadell + + + + Write the relative time to the output + + that will receive the formatted result. + the event being logged + + + Writes out the relative time of the event in milliseconds. + That is the number of milliseconds between the event + and the . + + + + + + Helper method to get the time difference between two DateTime objects + + start time (in the current local time zone) + end time (in the current local time zone) + the time difference in milliseconds + + + + Write the caller stack frames to the output + + + + Writes the to the output writer, using format: + type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) + + + Adam Davies + + + + Write the caller stack frames to the output + + + + Writes the to the output writer, using format: + type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 + + + Michael Cromwell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the strack frames to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output writer. + + + + + + Returns the Name of the method + + + This method was created, so this class could be used as a base class for StackTraceDetailPatternConverter + string + + + + The fully qualified type of the StackTracePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + The fully qualified type of the StackTraceDetailPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Converter to include event thread name + + + + Writes the to the output. + + + Nicko Cadell + + + + Write the ThreadName to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the . + + + + + + Pattern converter for the class name + + + + Outputs the of the event. + + + Nicko Cadell + + + + Gets the fully qualified name of the class + + the event being logged + The fully qualified type name for the caller location + + + Returns the of the . + + + + + + Converter to include event user name + + Douglas de la Torre + Nicko Cadell + + + + Convert the pattern to the rendered message + + that will receive the formatted result. + the event being logged + + + + Write the TimeStamp to the output + + + + Date pattern converter, uses a to format + the date of a . + + + Uses a to format the + in Universal time. + + + See the for details on the date pattern syntax. + + + + Nicko Cadell + + + + Write the TimeStamp to the output + + that will receive the formatted result. + the event being logged + + + Pass the to the + for it to render it to the writer. + + + The passed is in the local time zone, this is converted + to Universal time before it is rendered. + + + + + + + The fully qualified type of the UtcDatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + A flexible layout configurable with pattern string that re-evaluates on each call. + + + This class is built on and provides all the + features and capabilities of PatternLayout. PatternLayout is a 'static' class + in that its layout is done once at configuration time. This class will recreate + the layout on each reference. + One important difference between PatternLayout and DynamicPatternLayout is the + treatment of the Header and Footer parameters in the configuration. The Header and Footer + parameters for DynamicPatternLayout must be syntactically in the form of a PatternString, + but should not be marked as type log4net.Util.PatternString. Doing so causes the + pattern to be statically converted at configuration time and causes DynamicPatternLayout + to perform the same as PatternLayout. + Please see for complete documentation. + + <layout type="log4net.Layout.DynamicPatternLayout"> + <param name="Header" value="%newline**** Trace Opened Local: %date{yyyy-MM-dd HH:mm:ss.fff} UTC: %utcdate{yyyy-MM-dd HH:mm:ss.fff} ****%newline" /> + <param name="Footer" value="**** Trace Closed %date{yyyy-MM-dd HH:mm:ss.fff} ****%newline" /> + </layout> + + + + + + A flexible layout configurable with pattern string. + + + + The goal of this class is to a + as a string. The results + depend on the conversion pattern. + + + The conversion pattern is closely related to the conversion + pattern of the printf function in C. A conversion pattern is + composed of literal text and format control expressions called + conversion specifiers. + + + You are free to insert any literal text within the conversion + pattern. + + + Each conversion specifier starts with a percent sign (%) and is + followed by optional format modifiers and a conversion + pattern name. The conversion pattern name specifies the type of + data, e.g. logger, level, date, thread name. The format + modifiers control such things as field width, padding, left and + right justification. The following is a simple example. + + + Let the conversion pattern be "%-5level [%thread]: %message%newline" and assume + that the log4net environment was set to use a PatternLayout. Then the + statements + + + ILog log = LogManager.GetLogger(typeof(TestApp)); + log.Debug("Message 1"); + log.Warn("Message 2"); + + would yield the output + + DEBUG [main]: Message 1 + WARN [main]: Message 2 + + + Note that there is no explicit separator between text and + conversion specifiers. The pattern parser knows when it has reached + the end of a conversion specifier when it reads a conversion + character. In the example above the conversion specifier + %-5level means the level of the logging event should be left + justified to a width of five characters. + + + The recognized conversion pattern names are: + + + + Conversion Pattern Name + Effect + + + a + Equivalent to appdomain + + + appdomain + + Used to output the friendly name of the AppDomain where the + logging event was generated. + + + + aspnet-cache + + + Used to output all cache items in the case of %aspnet-cache or just one named item if used as %aspnet-cache{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-context + + + Used to output all context items in the case of %aspnet-context or just one named item if used as %aspnet-context{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-request + + + Used to output all request parameters in the case of %aspnet-request or just one named param if used as %aspnet-request{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-session + + + Used to output all session items in the case of %aspnet-session or just one named item if used as %aspnet-session{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + c + Equivalent to logger + + + C + Equivalent to type + + + class + Equivalent to type + + + d + Equivalent to date + + + date + + + Used to output the date of the logging event in the local time zone. + To output the date in universal time use the %utcdate pattern. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %date{HH:mm:ss,fff} or + %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %date{ISO8601} or %date{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + exception + + + Used to output the exception passed in with the log message. + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + If there is no exception then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + + + F + Equivalent to file + + + file + + + Used to output the file name where the logging request was + issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + identity + + + Used to output the user name for the currently active user + (Principal.Identity.Name). + + + WARNING Generating caller information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + + + l + Equivalent to location + + + L + Equivalent to line + + + location + + + Used to output location information of the caller which generated + the logging event. + + + The location information depends on the CLI implementation but + usually consists of the fully qualified name of the calling + method followed by the callers source the file name and line + number between parentheses. + + + The location information can be very useful. However, its + generation is extremely slow. Its use should be avoided + unless execution speed is not an issue. + + + See the note below on the availability of caller location information. + + + + + level + + + Used to output the level of the logging event. + + + + + line + + + Used to output the line number from where the logging request + was issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + logger + + + Used to output the logger of the logging event. The + logger conversion specifier can be optionally followed by + precision specifier, that is a decimal constant in + brackets. + + + If a precision specifier is given, then only the corresponding + number of right most components of the logger name will be + printed. By default the logger name is printed in full. + + + For example, for the logger name "a.b.c" the pattern + %logger{2} will output "b.c". + + + + + m + Equivalent to message + + + M + Equivalent to method + + + message + + + Used to output the application supplied message associated with + the logging event. + + + + + mdc + + + The MDC (old name for the ThreadContext.Properties) is now part of the + combined event properties. This pattern is supported for compatibility + but is equivalent to property. + + + + + method + + + Used to output the method name where the logging request was + issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + n + Equivalent to newline + + + newline + + + Outputs the platform dependent line separator character or + characters. + + + This conversion pattern offers the same performance as using + non-portable line separator strings such as "\n", or "\r\n". + Thus, it is the preferred way of specifying a line separator. + + + + + ndc + + + Used to output the NDC (nested diagnostic context) associated + with the thread that generated the logging event. + + + + + p + Equivalent to level + + + P + Equivalent to property + + + properties + Equivalent to property + + + property + + + Used to output the an event specific property. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %property{user} would include the value + from the property that is keyed by the string 'user'. Each property value + that is to be included in the log must be specified separately. + Properties are added to events by loggers or appenders. By default + the log4net:HostName property is set to the name of machine on + which the event was originally logged. + + + If no key is specified, e.g. %property then all the keys and their + values are printed in a comma separated list. + + + The properties of an event are combined from a number of different + contexts. These are listed below in the order in which they are searched. + + + + the event properties + + The event has that can be set. These + properties are specific to this event only. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + + r + Equivalent to timestamp + + + stacktrace + + + Used to output the stack trace of the logging event + The stack trace level specifier may be enclosed + between braces. For example, %stacktrace{level}. + If no stack trace level specifier is given then 1 is assumed + + + Output uses the format: + type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 + + + This pattern is not available for Compact Framework assemblies. + + + + + stacktracedetail + + + Used to output the stack trace of the logging event + The stack trace level specifier may be enclosed + between braces. For example, %stacktracedetail{level}. + If no stack trace level specifier is given then 1 is assumed + + + Output uses the format: + type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) + + + This pattern is not available for Compact Framework assemblies. + + + + + t + Equivalent to thread + + + timestamp + + + Used to output the number of milliseconds elapsed since the start + of the application until the creation of the logging event. + + + + + thread + + + Used to output the name of the thread that generated the + logging event. Uses the thread number if no name is available. + + + + + type + + + Used to output the fully qualified type name of the caller + issuing the logging request. This conversion specifier + can be optionally followed by precision specifier, that + is a decimal constant in brackets. + + + If a precision specifier is given, then only the corresponding + number of right most components of the class name will be + printed. By default the class name is output in fully qualified form. + + + For example, for the class name "log4net.Layout.PatternLayout", the + pattern %type{1} will output "PatternLayout". + + + WARNING Generating the caller class information is + slow. Thus, its use should be avoided unless execution speed is + not an issue. + + + See the note below on the availability of caller location information. + + + + + u + Equivalent to identity + + + username + + + Used to output the WindowsIdentity for the currently + active user. + + + WARNING Generating caller WindowsIdentity information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + + + utcdate + + + Used to output the date of the logging event in universal time. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %utcdate{HH:mm:ss,fff} or + %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %utcdate{ISO8601} or %utcdate{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + w + Equivalent to username + + + x + Equivalent to ndc + + + X + Equivalent to mdc + + + % + + + The sequence %% outputs a single percent sign. + + + + + + The single letter patterns are deprecated in favor of the + longer more descriptive pattern names. + + + By default the relevant information is output as is. However, + with the aid of format modifiers it is possible to change the + minimum field width, the maximum field width and justification. + + + The optional format modifier is placed between the percent sign + and the conversion pattern name. + + + The first optional format modifier is the left justification + flag which is just the minus (-) character. Then comes the + optional minimum field width modifier. This is a decimal + constant that represents the minimum number of characters to + output. If the data item requires fewer characters, it is padded on + either the left or the right until the minimum width is + reached. The default is to pad on the left (right justify) but you + can specify right padding with the left justification flag. The + padding character is space. If the data item is larger than the + minimum field width, the field is expanded to accommodate the + data. The value is never truncated. + + + This behavior can be changed using the maximum field + width modifier which is designated by a period followed by a + decimal constant. If the data item is longer than the maximum + field, then the extra characters are removed from the + beginning of the data item and not from the end. For + example, it the maximum field width is eight and the data item is + ten characters long, then the first two characters of the data item + are dropped. This behavior deviates from the printf function in C + where truncation is done from the end. + + + Below are various format modifier examples for the logger + conversion specifier. + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Format modifierleft justifyminimum widthmaximum widthcomment
%20loggerfalse20none + + Left pad with spaces if the logger name is less than 20 + characters long. + +
%-20loggertrue20none + + Right pad with spaces if the logger + name is less than 20 characters long. + +
%.30loggerNAnone30 + + Truncate from the beginning if the logger + name is longer than 30 characters. + +
%20.30loggerfalse2030 + + Left pad with spaces if the logger name is shorter than 20 + characters. However, if logger name is longer than 30 characters, + then truncate from the beginning. + +
%-20.30loggertrue2030 + + Right pad with spaces if the logger name is shorter than 20 + characters. However, if logger name is longer than 30 characters, + then truncate from the beginning. + +
+
+ + Note about caller location information.
+ The following patterns %type %file %line %method %location %class %C %F %L %l %M + all generate caller location information. + Location information uses the System.Diagnostics.StackTrace class to generate + a call stack. The caller's information is then extracted from this stack. +
+ + + The System.Diagnostics.StackTrace class is not supported on the + .NET Compact Framework 1.0 therefore caller location information is not + available on that framework. + + + + + The System.Diagnostics.StackTrace class has this to say about Release builds: + + + "StackTrace information will be most informative with Debug build configurations. + By default, Debug builds include debug symbols, while Release builds do not. The + debug symbols contain most of the file, method name, line number, and column + information used in constructing StackFrame and StackTrace objects. StackTrace + might not report as many method calls as expected, due to code transformations + that occur during optimization." + + + This means that in a Release build the caller information may be incomplete or may + not exist at all! Therefore caller location information cannot be relied upon in a Release build. + + + + Additional pattern converters may be registered with a specific + instance using the method. + +
+ + This is a more detailed pattern. + %timestamp [%thread] %level %logger %ndc - %message%newline + + + A similar pattern except that the relative time is + right padded if less than 6 digits, thread name is right padded if + less than 15 characters and truncated if longer and the logger + name is left padded if shorter than 30 characters and truncated if + longer. + %-6timestamp [%15.15thread] %-5level %30.30logger %ndc - %message%newline + + Nicko Cadell + Gert Driesen + Douglas de la Torre + Daniel Cazzulino +
+ + + Extend this abstract class to create your own log layout format. + + + + This is the base implementation of the + interface. Most layout objects should extend this class. + + + + + + Subclasses must implement the + method. + + + Subclasses should set the in their default + constructor. + + + + Nicko Cadell + Gert Driesen + + + + Interface implemented by layout objects + + + + An object is used to format a + as text. The method is called by an + appender to transform the into a string. + + + The layout can also supply and + text that is appender before any events and after all the events respectively. + + + Nicko Cadell + Gert Driesen + + + + Implement this method to create your own layout format. + + The TextWriter to write the formatted event to + The event to format + + + This method is called by an appender to format + the as text and output to a writer. + + + If the caller does not have a and prefers the + event to be formatted as a then the following + code can be used to format the event into a . + + + StringWriter writer = new StringWriter(); + Layout.Format(writer, loggingEvent); + string formattedEvent = writer.ToString(); + + + + + + The content type output by this layout. + + The content type + + + The content type output by this layout. + + + This is a MIME type e.g. "text/plain". + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + + + + + Flag indicating if this layout handle exceptions + + false if this layout handles exceptions + + + If this layout handles the exception object contained within + , then the layout should return + false. Otherwise, if the layout ignores the exception + object, then the layout should return true. + + + + + + The header text + + + + See for more information. + + + + + + The footer text + + + + See for more information. + + + + + + Flag indicating if this layout handles exceptions + + + + false if this layout handles exceptions + + + + + + Empty default constructor + + + + Empty default constructor + + + + + + Activate component options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + This method must be implemented by the subclass. + + + + + + Implement this method to create your own layout format. + + The TextWriter to write the formatted event to + The event to format + + + This method is called by an appender to format + the as text. + + + + + + Convenience method for easily formatting the logging event into a string variable. + + + + Creates a new StringWriter instance to store the formatted logging event. + + + + + The content type output by this layout. + + The content type is "text/plain" + + + The content type output by this layout. + + + This base class uses the value "text/plain". + To change this value a subclass must override this + property. + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + + + + + Flag indicating if this layout handles exceptions + + false if this layout handles exceptions + + + If this layout handles the exception object contained within + , then the layout should return + false. Otherwise, if the layout ignores the exception + object, then the layout should return true. + + + Set this value to override a this default setting. The default + value is true, this layout does not handle the exception. + + + + + + Default pattern string for log output. + + + + Default pattern string for log output. + Currently set to the string "%message%newline" + which just prints the application supplied message. + + + + + + A detailed conversion pattern + + + + A conversion pattern which includes Time, Thread, Logger, and Nested Context. + Current value is %timestamp [%thread] %level %logger %ndc - %message%newline. + + + + + + Internal map of converter identifiers to converter types. + + + + This static map is overridden by the m_converterRegistry instance map + + + + + + the pattern + + + + + the head of the pattern converter chain + + + + + patterns defined on this PatternLayout only + + + + + Initialize the global registry + + + + Defines the builtin global rules. + + + + + + Constructs a PatternLayout using the DefaultConversionPattern + + + + The default pattern just produces the application supplied message. + + + Note to Inheritors: This constructor calls the virtual method + . If you override this method be + aware that it will be called before your is called constructor. + + + As per the contract the + method must be called after the properties on this object have been + configured. + + + + + + Constructs a PatternLayout using the supplied conversion pattern + + the pattern to use + + + Note to Inheritors: This constructor calls the virtual method + . If you override this method be + aware that it will be called before your is called constructor. + + + When using this constructor the method + need not be called. This may not be the case when using a subclass. + + + + + + Create the pattern parser instance + + the pattern to parse + The that will format the event + + + Creates the used to parse the conversion string. Sets the + global and instance rules on the . + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a formatted string as specified by the conversion pattern. + + the event being logged + The TextWriter to write the formatted event to + + + Parse the using the patter format + specified in the property. + + + + + + Add a converter to this PatternLayout + + the converter info + + + This version of the method is used by the configurator. + Programmatic users should use the alternative method. + + + + + + Add a converter to this PatternLayout + + the name of the conversion pattern for this converter + the type of the converter + + + Add a named pattern converter to this instance. This + converter will be used in the formatting of the event. + This method must be called before . + + + The specified must extend the + type. + + + + + + The pattern formatting string + + + + The ConversionPattern option. This is the string which + controls formatting and consists of a mix of literal content and + conversion specifiers. + + + + + + The header PatternString + + + + + The footer PatternString + + + + + Constructs a DynamicPatternLayout using the DefaultConversionPattern + + + + The default pattern just produces the application supplied message. + + + + + + Constructs a DynamicPatternLayout using the supplied conversion pattern + + the pattern to use + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + The pattern will be formatted on each get operation. + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + The pattern will be formatted on each get operation. + + + + + A Layout that renders only the Exception text from the logging event + + + + A Layout that renders only the Exception text from the logging event. + + + This Layout should only be used with appenders that utilize multiple + layouts (e.g. ). + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Constructs a ExceptionLayout + + + + + + Activate component options + + + + Part of the component activation + framework. + + + This method does nothing as options become effective immediately. + + + + + + Gets the exception text from the logging event + + The TextWriter to write the formatted event to + the event being logged + + + Write the exception string to the . + The exception string is retrieved from . + + + + + + Interface for raw layout objects + + + + Interface used to format a + to an object. + + + This interface should not be confused with the + interface. This interface is used in + only certain specialized situations where a raw object is + required rather than a formatted string. The + is not generally useful than this interface. + + + Nicko Cadell + Gert Driesen + + + + Implement this method to create your own layout format. + + The event to format + returns the formatted event + + + Implement this method to create your own layout format. + + + + + + Adapts any to a + + + + Where an is required this adapter + allows a to be specified. + + + Nicko Cadell + Gert Driesen + + + + The layout to adapt + + + + + Construct a new adapter + + the layout to adapt + + + Create the adapter for the specified . + + + + + + Format the logging event as an object. + + The event to format + returns the formatted event + + + Format the logging event as an object. + + + Uses the object supplied to + the constructor to perform the formatting. + + + + + + Type converter for the interface + + + + Used to convert objects to the interface. + Supports converting from the interface to + the interface using the . + + + Nicko Cadell + Gert Driesen + + + + Interface supported by type converters + + + + This interface supports conversion from arbitrary types + to a single target type. See . + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Test if the can be converted to the + type supported by this converter. + + + + + + Convert the source object to the type supported by this object + + the object to convert + the converted object + + + Converts the to the type supported + by this converter. + + + + + + Can the sourceType be converted to an + + the source to be to be converted + true if the source type can be converted to + + + Test if the can be converted to a + . Only is supported + as the . + + + + + + Convert the value to a object + + the value to convert + the object + + + Convert the object to a + object. If the object + is a then the + is used to adapt between the two interfaces, otherwise an + exception is thrown. + + + + + + Extract the value of a property from the + + + + Extract the value of a property from the + + + Nicko Cadell + + + + Constructs a RawPropertyLayout + + + + + Lookup the property for + + The event to format + returns property value + + + Looks up and returns the object value of the property + named . If there is no property defined + with than name then null will be returned. + + + + + + The name of the value to lookup in the LoggingEvent Properties collection. + + + Value to lookup in the LoggingEvent Properties collection + + + + String name of the property to lookup in the . + + + + + + Extract the date from the + + + + Extract the date from the + + + Nicko Cadell + Gert Driesen + + + + Constructs a RawTimeStampLayout + + + + + Gets the as a . + + The event to format + returns the time stamp + + + Gets the as a . + + + The time stamp is in local time. To format the time stamp + in universal time use . + + + + + + Extract the date from the + + + + Extract the date from the + + + Nicko Cadell + Gert Driesen + + + + Constructs a RawUtcTimeStampLayout + + + + + Gets the as a . + + The event to format + returns the time stamp + + + Gets the as a . + + + The time stamp is in universal time. To format the time stamp + in local time use . + + + + + + A very simple layout + + + + SimpleLayout consists of the level of the log statement, + followed by " - " and then the log message itself. For example, + + DEBUG - Hello world + + + + Nicko Cadell + Gert Driesen + + + + Constructs a SimpleLayout + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a simple formatted output. + + the event being logged + The TextWriter to write the formatted event to + + + Formats the event as the level of the even, + followed by " - " and then the log message itself. The + output is terminated by a newline. + + + + + + Layout that formats the log events as XML elements. + + + + The output of the consists of a series of + log4net:event elements. It does not output a complete well-formed XML + file. The output is designed to be included as an external entity + in a separate file to form a correct XML file. + + + For example, if abc is the name of the file where + the output goes, then a well-formed XML file would + be: + + + <?xml version="1.0" ?> + + <!DOCTYPE log4net:events SYSTEM "log4net-events.dtd" [<!ENTITY data SYSTEM "abc">]> + + <log4net:events version="1.2" xmlns:log4net="http://logging.apache.org/log4net/schemas/log4net-events-1.2> + &data; + </log4net:events> + + + This approach enforces the independence of the + and the appender where it is embedded. + + + The version attribute helps components to correctly + interpret output generated by . The value of + this attribute should be "1.2" for release 1.2 and later. + + + Alternatively the Header and Footer properties can be + configured to output the correct XML header, open tag and close tag. + When setting the Header and Footer properties it is essential + that the underlying data store not be appendable otherwise the data + will become invalid XML. + + + Nicko Cadell + Gert Driesen + + + + Layout that formats the log events as XML elements. + + + + This is an abstract class that must be subclassed by an implementation + to conform to a specific schema. + + + Deriving classes must implement the method. + + + Nicko Cadell + Gert Driesen + + + + Protected constructor to support subclasses + + + + Initializes a new instance of the class + with no location info. + + + + + + Protected constructor to support subclasses + + + + The parameter determines whether + location information will be output by the layout. If + is set to true, then the + file name and line number of the statement at the origin of the log + statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a formatted string. + + The event being logged. + The TextWriter to write the formatted event to + + + Format the and write it to the . + + + This method creates an that writes to the + . The is passed + to the method. Subclasses should override the + method rather than this method. + + + + + + Does the actual writing of the XML. + + The writer to use to output the event to. + The event to write. + + + Subclasses should override this method to format + the as XML. + + + + + + Flag to indicate if location information should be included in + the XML events. + + + + + The string to replace invalid chars with + + + + + Gets a value indicating whether to include location information in + the XML events. + + + true if location information should be included in the XML + events; otherwise, false. + + + + If is set to true, then the file + name and line number of the statement at the origin of the log + statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + The string to replace characters that can not be expressed in XML with. + + + Not all characters may be expressed in XML. This property contains the + string to replace those that can not with. This defaults to a ?. Set it + to the empty string to simply remove offending characters. For more + details on the allowed character ranges see http://www.w3.org/TR/REC-xml/#charsets + Character replacement will occur in the log message, the property names + and the property values. + + + + + + + Gets the content type output by this layout. + + + As this is the XML layout, the value is always "text/xml". + + + + As this is the XML layout, the value is always "text/xml". + + + + + + Constructs an XmlLayout + + + + + Constructs an XmlLayout. + + + + The LocationInfo option takes a boolean value. By + default, it is set to false which means there will be no location + information output by this layout. If the the option is set to + true, then the file name and line number of the statement + at the origin of the log statement will be output. + + + If you are embedding this layout within an SmtpAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Builds a cache of the element names + + + + + + Does the actual writing of the XML. + + The writer to use to output the event to. + The event to write. + + + Override the base class method + to write the to the . + + + + + + The prefix to use for all generated element names + + + + + The prefix to use for all element names + + + + The default prefix is log4net. Set this property + to change the prefix. If the prefix is set to an empty string + then no prefix will be written. + + + + + + Set whether or not to base64 encode the message. + + + + By default the log message will be written as text to the xml + output. This can cause problems when the message contains binary + data. By setting this to true the contents of the message will be + base64 encoded. If this is set then invalid character replacement + (see ) will not be performed + on the log message. + + + + + + Set whether or not to base64 encode the property values. + + + + By default the properties will be written as text to the xml + output. This can cause problems when one or more properties contain + binary data. By setting this to true the values of the properties + will be base64 encoded. If this is set then invalid character replacement + (see ) will not be performed + on the property values. + + + + + + Layout that formats the log events as XML elements compatible with the log4j schema + + + + Formats the log events according to the http://logging.apache.org/log4j schema. + + + Nicko Cadell + + + + The 1st of January 1970 in UTC + + + + + Constructs an XMLLayoutSchemaLog4j + + + + + Constructs an XMLLayoutSchemaLog4j. + + + + The LocationInfo option takes a boolean value. By + default, it is set to false which means there will be no location + information output by this layout. If the the option is set to + true, then the file name and line number of the statement + at the origin of the log statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + Actually do the writing of the xml + + the writer to use + the event to write + + + Generate XML that is compatible with the log4j schema. + + + + + + The version of the log4j schema to use. + + + + Only version 1.2 of the log4j schema is supported. + + + + + + The default object Renderer. + + + + The default renderer supports rendering objects and collections to strings. + + + See the method for details of the output. + + + Nicko Cadell + Gert Driesen + + + + Implement this interface in order to render objects as strings + + + + Certain types require special case conversion to + string form. This conversion is done by an object renderer. + Object renderers implement the + interface. + + + Nicko Cadell + Gert Driesen + + + + Render the object to a string + + The map used to lookup renderers + The object to render + The writer to render to + + + Render the object to a + string. + + + The parameter is + provided to lookup and render other objects. This is + very useful where contains + nested objects of unknown type. The + method can be used to render these objects. + + + + + + Default constructor + + + + Default constructor + + + + + + Render the object to a string + + The map used to lookup renderers + The object to render + The writer to render to + + + Render the object to a string. + + + The parameter is + provided to lookup and render other objects. This is + very useful where contains + nested objects of unknown type. The + method can be used to render these objects. + + + The default renderer supports rendering objects to strings as follows: + + + + Value + Rendered String + + + null + + "(null)" + + + + + + + For a one dimensional array this is the + array type name, an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. + + + For example: int[] {1, 2, 3}. + + + If the array is not one dimensional the + Array.ToString() is returned. + + + + + , & + + + Rendered as an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. + + + For example: {a, b, c}. + + + All collection classes that implement its subclasses, + or generic equivalents all implement the interface. + + + + + + + + Rendered as the key, an equals sign ('='), and the value (using the appropriate + renderer). + + + For example: key=value. + + + + + other + + Object.ToString() + + + + + + + + Render the array argument into a string + + The map used to lookup renderers + the array to render + The writer to render to + + + For a one dimensional array this is the + array type name, an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. For example: + int[] {1, 2, 3}. + + + If the array is not one dimensional the + Array.ToString() is returned. + + + + + + Render the enumerator argument into a string + + The map used to lookup renderers + the enumerator to render + The writer to render to + + + Rendered as an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. For example: + {a, b, c}. + + + + + + Render the DictionaryEntry argument into a string + + The map used to lookup renderers + the DictionaryEntry to render + The writer to render to + + + Render the key, an equals sign ('='), and the value (using the appropriate + renderer). For example: key=value. + + + + + + Map class objects to an . + + + + Maintains a mapping between types that require special + rendering and the that + is used to render them. + + + The method is used to render an + object using the appropriate renderers defined in this map. + + + Nicko Cadell + Gert Driesen + + + + Default Constructor + + + + Default constructor. + + + + + + Render using the appropriate renderer. + + the object to render to a string + the object rendered as a string + + + This is a convenience method used to render an object to a string. + The alternative method + should be used when streaming output to a . + + + + + + Render using the appropriate renderer. + + the object to render to a string + The writer to render to + + + Find the appropriate renderer for the type of the + parameter. This is accomplished by calling the + method. Once a renderer is found, it is + applied on the object and the result is returned + as a . + + + + + + Gets the renderer for the specified object type + + the object to lookup the renderer for + the renderer for + + + Gets the renderer for the specified object type. + + + Syntactic sugar method that calls + with the type of the object parameter. + + + + + + Gets the renderer for the specified type + + the type to lookup the renderer for + the renderer for the specified type + + + Returns the renderer for the specified type. + If no specific renderer has been defined the + will be returned. + + + + + + Internal function to recursively search interfaces + + the type to lookup the renderer for + the renderer for the specified type + + + + Clear the map of renderers + + + + Clear the custom renderers defined by using + . The + cannot be removed. + + + + + + Register an for . + + the type that will be rendered by + the renderer for + + + Register an object renderer for a specific source type. + This renderer will be returned from a call to + specifying the same as an argument. + + + + + + Get the default renderer instance + + the default renderer + + + Get the default renderer + + + + + + Interface implemented by logger repository plugins. + + + + Plugins define additional behavior that can be associated + with a . + The held by the + property is used to store the plugins for a repository. + + + The log4net.Config.PluginAttribute can be used to + attach plugins to repositories created using configuration + attributes. + + + Nicko Cadell + Gert Driesen + + + + Attaches the plugin to the specified . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + This method is called to notify the plugin that + it should stop operating and should detach from + the repository. + + + + + + Gets the name of the plugin. + + + The name of the plugin. + + + + Plugins are stored in the + keyed by name. Each plugin instance attached to a + repository must be a unique name. + + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Creates a read-only wrapper for a PluginCollection instance. + + list to create a readonly wrapper arround + + A PluginCollection wrapper that is read-only. + + + + + Initializes a new instance of the PluginCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the PluginCollection class + that has the specified initial capacity. + + + The number of elements that the new PluginCollection is initially capable of storing. + + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified PluginCollection. + + The PluginCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Allow subclasses to avoid our default constructors + + + + + + + Copies the entire PluginCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire PluginCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Adds a to the end of the PluginCollection. + + The to be added to the end of the PluginCollection. + The index at which the value has been added. + + + + Removes all elements from the PluginCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the PluginCollection. + + The to check for. + true if is found in the PluginCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the PluginCollection. + + The to locate in the PluginCollection. + + The zero-based index of the first occurrence of + in the entire PluginCollection, if found; otherwise, -1. + + + + + Inserts an element into the PluginCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the PluginCollection. + + The to remove from the PluginCollection. + + The specified was not found in the PluginCollection. + + + + + Removes the element at the specified index of the PluginCollection. + + The zero-based index of the element to remove. + + is less than zero. + -or- + is equal to or greater than . + + + + + Returns an enumerator that can iterate through the PluginCollection. + + An for the entire PluginCollection. + + + + Adds the elements of another PluginCollection to the current PluginCollection. + + The PluginCollection whose elements should be added to the end of the current PluginCollection. + The new of the PluginCollection. + + + + Adds the elements of a array to the current PluginCollection. + + The array whose elements should be added to the end of the PluginCollection. + The new of the PluginCollection. + + + + Adds the elements of a collection to the current PluginCollection. + + The collection whose elements should be added to the end of the PluginCollection. + The new of the PluginCollection. + + + + Sets the capacity to the actual number of elements. + + + + + is less than zero. + -or- + is equal to or greater than . + + + + + is less than zero. + -or- + is equal to or greater than . + + + + + Gets the number of elements actually contained in the PluginCollection. + + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + An object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + + The at the specified index. + + The zero-based index of the element to get or set. + + is less than zero. + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false. + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false. + + + + Gets or sets the number of elements the PluginCollection can contain. + + + The number of elements the PluginCollection can contain. + + + + + Supports type-safe iteration over a . + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + + A value + + + + + Supports simple iteration over a . + + + + + + Initializes a new instance of the Enumerator class. + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + The current element in the collection. + + + + + + + + Map of repository plugins. + + + + This class is a name keyed map of the plugins that are + attached to a repository. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The repository that the plugins should be attached to. + + + Initialize a new instance of the class with a + repository that the plugins should be attached to. + + + + + + Adds a to the map. + + The to add to the map. + + + The will be attached to the repository when added. + + + If there already exists a plugin with the same name + attached to the repository then the old plugin will + be and replaced with + the new plugin. + + + + + + Removes a from the map. + + The to remove from the map. + + + Remove a specific plugin from this map. + + + + + + Gets a by name. + + The name of the to lookup. + + The from the map with the name specified, or + null if no plugin is found. + + + + Lookup a plugin by name. If the plugin is not found null + will be returned. + + + + + + Gets all possible plugins as a list of objects. + + All possible plugins as a list of objects. + + + Get a collection of all the plugins defined in this map. + + + + + + Base implementation of + + + + Default abstract implementation of the + interface. This base class can be used by implementors + of the interface. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + the name of the plugin + + Initializes a new Plugin with the specified name. + + + + + Attaches this plugin to a . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + This method is called to notify the plugin that + it should stop operating and should detach from + the repository. + + + + + + The name of this plugin. + + + + + The repository this plugin is attached to. + + + + + Gets or sets the name of the plugin. + + + The name of the plugin. + + + + Plugins are stored in the + keyed by name. Each plugin instance attached to a + repository must be a unique name. + + + The name of the plugin must not change one the + plugin has been attached to a repository. + + + + + + The repository for this plugin + + + The that this plugin is attached to. + + + + Gets or sets the that this plugin is + attached to. + + + + + + Plugin that listens for events from the + + + + This plugin publishes an instance of + on a specified . This listens for logging events delivered from + a remote . + + + When an event is received it is relogged within the attached repository + as if it had been raised locally. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Initializes a new instance of the class. + + + The property must be set. + + + + + + Construct with sink Uri. + + The name to publish the sink under in the remoting infrastructure. + See for more details. + + + Initializes a new instance of the class + with specified name. + + + + + + Attaches this plugin to a . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + When the plugin is shutdown the remote logging + sink is disconnected. + + + + + + The fully qualified type of the RemoteLoggingServerPlugin class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the URI of this sink. + + + The URI of this sink. + + + + This is the name under which the object is marshaled. + + + + + + + Delivers objects to a remote sink. + + + + Internal class used to listen for logging events + and deliver them to the local repository. + + + + + + Constructor + + The repository to log to. + + + Initializes a new instance of the for the + specified . + + + + + + Logs the events to the repository. + + The events to log. + + + The events passed are logged to the + + + + + + Obtains a lifetime service object to control the lifetime + policy for this instance. + + null to indicate that this instance should live forever. + + + Obtains a lifetime service object to control the lifetime + policy for this instance. This object should live forever + therefore this implementation returns null. + + + + + + The underlying that events should + be logged to. + + + + + Default implementation of + + + + This default implementation of the + interface is used to create the default subclass + of the object. + + + Nicko Cadell + Gert Driesen + + + + Interface abstracts creation of instances + + + + This interface is used by the to + create new objects. + + + The method is called + to create a named . + + + Implement this interface to create new subclasses of . + + + Nicko Cadell + Gert Driesen + + + + Create a new instance + + The that will own the . + The name of the . + The instance for the specified name. + + + Create a new instance with the + specified name. + + + Called by the to create + new named instances. + + + If the is null then the root logger + must be returned. + + + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Create a new instance + + The that will own the . + The name of the . + The instance for the specified name. + + + Create a new instance with the + specified name. + + + Called by the to create + new named instances. + + + If the is null then the root logger + must be returned. + + + + + + Default internal subclass of + + + + This subclass has no additional behavior over the + class but does allow instances + to be created. + + + + + + Implementation of used by + + + + Internal class used to provide implementation of + interface. Applications should use to get + logger instances. + + + This is one of the central classes in the log4net implementation. One of the + distinctive features of log4net are hierarchical loggers and their + evaluation. The organizes the + instances into a rooted tree hierarchy. + + + The class is abstract. Only concrete subclasses of + can be created. The + is used to create instances of this type for the . + + + Nicko Cadell + Gert Driesen + Aspi Havewala + Douglas de la Torre + + + + This constructor created a new instance and + sets its name. + + The name of the . + + + This constructor is protected and designed to be used by + a subclass that is not abstract. + + + Loggers are constructed by + objects. See for the default + logger creator. + + + + + + Add to the list of appenders of this + Logger instance. + + An appender to add to this logger + + + Add to the list of appenders of this + Logger instance. + + + If is already in the list of + appenders, then it won't be added again. + + + + + + Look for the appender named as name + + The name of the appender to lookup + The appender with the name specified, or null. + + + Returns the named appender, or null if the appender is not found. + + + + + + Remove all previously added appenders from this Logger instance. + + + + Remove all previously added appenders from this Logger instance. + + + This is useful when re-reading configuration information. + + + + + + Remove the appender passed as parameter form the list of appenders. + + The appender to remove + The appender removed from the list + + + Remove the appender passed as parameter form the list of appenders. + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Remove the appender passed as parameter form the list of appenders. + + The name of the appender to remove + The appender removed from the list + + + Remove the named appender passed as parameter form the list of appenders. + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + This generic form is intended to be used by wrappers. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generate a logging event for the specified using + the and . + + + This method must not throw any exception to the caller. + + + + + + This is the most generic printing method that is intended to be used + by wrappers. + + The event being logged. + + + Logs the specified logging event through this logger. + + + This method must not throw any exception to the caller. + + + + + + Checks if this logger is enabled for a given passed as parameter. + + The level to check. + + true if this logger is enabled for level, otherwise false. + + + + Test if this logger is going to log events of the specified . + + + This method must not throw any exception to the caller. + + + + + + Deliver the to the attached appenders. + + The event to log. + + + Call the appenders in the hierarchy starting at + this. If no appenders could be found, emit a + warning. + + + This method calls all the appenders inherited from the + hierarchy circumventing any evaluation of whether to log or not + to log the particular log request. + + + + + + Closes all attached appenders implementing the interface. + + + + Used to ensure that the appenders are correctly shutdown. + + + + + + This is the most generic printing method. This generic form is intended to be used by wrappers + + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generate a logging event for the specified using + the . + + + + + + Creates a new logging event and logs the event without further checks. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generates a logging event and delivers it to the attached + appenders. + + + + + + Creates a new logging event and logs the event without further checks. + + The event being logged. + + + Delivers the logging event to the attached appenders. + + + + + + The fully qualified type of the Logger class. + + + + + The name of this logger. + + + + + The assigned level of this logger. + + + + The level variable need not be + assigned a value in which case it is inherited + form the hierarchy. + + + + + + The parent of this logger. + + + + The parent of this logger. + All loggers have at least one ancestor which is the root logger. + + + + + + Loggers need to know what Hierarchy they are in. + + + + Loggers need to know what Hierarchy they are in. + The hierarchy that this logger is a member of is stored + here. + + + + + + Helper implementation of the interface + + + + + Flag indicating if child loggers inherit their parents appenders + + + + Additivity is set to true by default, that is children inherit + the appenders of their ancestors by default. If this variable is + set to false then the appenders found in the + ancestors of this logger are not used. However, the children + of this logger will inherit its appenders, unless the children + have their additivity flag set to false too. See + the user manual for more details. + + + + + + Lock to protect AppenderAttachedImpl variable m_appenderAttachedImpl + + + + + Gets or sets the parent logger in the hierarchy. + + + The parent logger in the hierarchy. + + + + Part of the Composite pattern that makes the hierarchy. + The hierarchy is parent linked rather than child linked. + + + + + + Gets or sets a value indicating if child loggers inherit their parent's appenders. + + + true if child loggers inherit their parent's appenders. + + + + Additivity is set to true by default, that is children inherit + the appenders of their ancestors by default. If this variable is + set to false then the appenders found in the + ancestors of this logger are not used. However, the children + of this logger will inherit its appenders, unless the children + have their additivity flag set to false too. See + the user manual for more details. + + + + + + Gets the effective level for this logger. + + The nearest level in the logger hierarchy. + + + Starting from this logger, searches the logger hierarchy for a + non-null level and returns it. Otherwise, returns the level of the + root logger. + + The Logger class is designed so that this method executes as + quickly as possible. + + + + + Gets or sets the where this + Logger instance is attached to. + + The hierarchy that this logger belongs to. + + + This logger must be attached to a single . + + + + + + Gets or sets the assigned , if any, for this Logger. + + + The of this logger. + + + + The assigned can be null. + + + + + + Get the appenders contained in this logger as an + . + + A collection of the appenders in this logger + + + Get the appenders contained in this logger as an + . If no appenders + can be found, then a is returned. + + + + + + Gets the logger name. + + + The name of the logger. + + + + The name of this logger + + + + + + Gets the where this + Logger instance is attached to. + + + The that this logger belongs to. + + + + Gets the where this + Logger instance is attached to. + + + + + + Construct a new Logger + + the name of the logger + + + Initializes a new instance of the class + with the specified name. + + + + + + Delegate used to handle logger creation event notifications. + + The in which the has been created. + The event args that hold the instance that has been created. + + + Delegate used to handle logger creation event notifications. + + + + + + Provides data for the event. + + + + A event is raised every time a + is created. + + + + + + The created + + + + + Constructor + + The that has been created. + + + Initializes a new instance of the event argument + class,with the specified . + + + + + + Gets the that has been created. + + + The that has been created. + + + + The that has been created. + + + + + + Hierarchical organization of loggers + + + + The casual user should not have to deal with this class + directly. + + + This class is specialized in retrieving loggers by name and + also maintaining the logger hierarchy. Implements the + interface. + + + The structure of the logger hierarchy is maintained by the + method. The hierarchy is such that children + link to their parent but parents do not have any references to their + children. Moreover, loggers can be instantiated in any order, in + particular descendant before ancestor. + + + In case a descendant is created before a particular ancestor, + then it creates a provision node for the ancestor and adds itself + to the provision node. Other descendants of the same ancestor add + themselves to the previously created provision node. + + + Nicko Cadell + Gert Driesen + + + + Base implementation of + + + + Default abstract implementation of the interface. + + + Skeleton implementation of the interface. + All types can extend this type. + + + Nicko Cadell + Gert Driesen + + + + Interface implemented by logger repositories. + + + + This interface is implemented by logger repositories. e.g. + . + + + This interface is used by the + to obtain interfaces. + + + Nicko Cadell + Gert Driesen + + + + Check if the named logger exists in the repository. If so return + its reference, otherwise returns null. + + The name of the logger to lookup + The Logger object with the name specified + + + If the names logger exists it is returned, otherwise + null is returned. + + + + + + Returns all the currently defined loggers as an Array. + + All the defined loggers + + + Returns all the currently defined loggers as an Array. + + + + + + Returns a named logger instance + + The name of the logger to retrieve + The logger object with the name specified + + + Returns a named logger instance. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + + + Shutdown the repository + + + Shutting down a repository will safely close and remove + all appenders in all loggers including the root logger. + + + Some appenders need to be closed before the + application exists. Otherwise, pending logging events might be + lost. + + + The method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Reset the repositories configuration to a default state + + + + Reset all values contained in this instance to their + default state. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the through this repository. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Returns all the Appenders that are configured as an Array. + + All the Appenders + + + Returns all the Appenders that are configured as an Array. + + + + + + The name of the repository + + + The name of the repository + + + + The name of the repository. + + + + + + RendererMap accesses the object renderer map for this repository. + + + RendererMap accesses the object renderer map for this repository. + + + + RendererMap accesses the object renderer map for this repository. + + + The RendererMap holds a mapping between types and + objects. + + + + + + The plugin map for this repository. + + + The plugin map for this repository. + + + + The plugin map holds the instances + that have been attached to this repository. + + + + + + Get the level map for the Repository. + + + + Get the level map for the Repository. + + + The level map defines the mappings between + level names and objects in + this repository. + + + + + + The threshold for all events in this repository + + + The threshold for all events in this repository + + + + The threshold for all events in this repository. + + + + + + Flag indicates if this repository has been configured. + + + Flag indicates if this repository has been configured. + + + + Flag indicates if this repository has been configured. + + + + + + Collection of internal messages captured during the most + recent configuration process. + + + + + Event to notify that the repository has been shutdown. + + + Event to notify that the repository has been shutdown. + + + + Event raised when the repository has been shutdown. + + + + + + Event to notify that the repository has had its configuration reset. + + + Event to notify that the repository has had its configuration reset. + + + + Event raised when the repository's configuration has been + reset to default. + + + + + + Event to notify that the repository has had its configuration changed. + + + Event to notify that the repository has had its configuration changed. + + + + Event raised when the repository's configuration has been changed. + + + + + + Repository specific properties + + + Repository specific properties + + + + These properties can be specified on a repository specific basis. + + + + + + Default Constructor + + + + Initializes the repository with default (empty) properties. + + + + + + Construct the repository using specific properties + + the properties to set for this repository + + + Initializes the repository with specified properties. + + + + + + Test if logger exists + + The name of the logger to lookup + The Logger object with the name specified + + + Check if the named logger exists in the repository. If so return + its reference, otherwise returns null. + + + + + + Returns all the currently defined loggers in the repository + + All the defined loggers + + + Returns all the currently defined loggers in the repository as an Array. + + + + + + Return a new logger instance + + The name of the logger to retrieve + The logger object with the name specified + + + Return a new logger instance. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + + + + Shutdown the repository + + + + Shutdown the repository. Can be overridden in a subclass. + This base class implementation notifies the + listeners and all attached plugins of the shutdown event. + + + + + + Reset the repositories configuration to a default state + + + + Reset all values contained in this instance to their + default state. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the logEvent through this repository. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Returns all the Appenders that are configured as an Array. + + All the Appenders + + + Returns all the Appenders that are configured as an Array. + + + + + + The fully qualified type of the LoggerRepositorySkeleton class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Adds an object renderer for a specific class. + + The type that will be rendered by the renderer supplied. + The object renderer used to render the object. + + + Adds an object renderer for a specific class. + + + + + + Notify the registered listeners that the repository is shutting down + + Empty EventArgs + + + Notify any listeners that this repository is shutting down. + + + + + + Notify the registered listeners that the repository has had its configuration reset + + Empty EventArgs + + + Notify any listeners that this repository's configuration has been reset. + + + + + + Notify the registered listeners that the repository has had its configuration changed + + Empty EventArgs + + + Notify any listeners that this repository's configuration has changed. + + + + + + Raise a configuration changed event on this repository + + EventArgs.Empty + + + Applications that programmatically change the configuration of the repository should + raise this event notification to notify listeners. + + + + + + Flushes all configured Appenders that implement . + + The maximum time in milliseconds to wait for logging events from asycnhronous appenders to be flushed, + or to wait indefinitely. + True if all logging events were flushed successfully, else false. + + + + The name of the repository + + + The string name of the repository + + + + The name of this repository. The name is + used to store and lookup the repositories + stored by the . + + + + + + The threshold for all events in this repository + + + The threshold for all events in this repository + + + + The threshold for all events in this repository + + + + + + RendererMap accesses the object renderer map for this repository. + + + RendererMap accesses the object renderer map for this repository. + + + + RendererMap accesses the object renderer map for this repository. + + + The RendererMap holds a mapping between types and + objects. + + + + + + The plugin map for this repository. + + + The plugin map for this repository. + + + + The plugin map holds the instances + that have been attached to this repository. + + + + + + Get the level map for the Repository. + + + + Get the level map for the Repository. + + + The level map defines the mappings between + level names and objects in + this repository. + + + + + + Flag indicates if this repository has been configured. + + + Flag indicates if this repository has been configured. + + + + Flag indicates if this repository has been configured. + + + + + + Contains a list of internal messages captures during the + last configuration. + + + + + Event to notify that the repository has been shutdown. + + + Event to notify that the repository has been shutdown. + + + + Event raised when the repository has been shutdown. + + + + + + Event to notify that the repository has had its configuration reset. + + + Event to notify that the repository has had its configuration reset. + + + + Event raised when the repository's configuration has been + reset to default. + + + + + + Event to notify that the repository has had its configuration changed. + + + Event to notify that the repository has had its configuration changed. + + + + Event raised when the repository's configuration has been changed. + + + + + + Repository specific properties + + + Repository specific properties + + + These properties can be specified on a repository specific basis + + + + + Basic Configurator interface for repositories + + + + Interface used by basic configurator to configure a + with a default . + + + A should implement this interface to support + configuration by the . + + + Nicko Cadell + Gert Driesen + + + + Initialize the repository using the specified appender + + the appender to use to log all logging events + + + Configure the repository to route all logging events to the + specified appender. + + + + + + Initialize the repository using the specified appenders + + the appenders to use to log all logging events + + + Configure the repository to route all logging events to the + specified appenders. + + + + + + Configure repository using XML + + + + Interface used by Xml configurator to configure a . + + + A should implement this interface to support + configuration by the . + + + Nicko Cadell + Gert Driesen + + + + Initialize the repository using the specified config + + the element containing the root of the config + + + The schema for the XML configuration data is defined by + the implementation. + + + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Construct with properties + + The properties to pass to this repository. + + + Initializes a new instance of the class. + + + + + + Construct with a logger factory + + The factory to use to create new logger instances. + + + Initializes a new instance of the class with + the specified . + + + + + + Construct with properties and a logger factory + + The properties to pass to this repository. + The factory to use to create new logger instances. + + + Initializes a new instance of the class with + the specified . + + + + + + Test if a logger exists + + The name of the logger to lookup + The Logger object with the name specified + + + Check if the named logger exists in the hierarchy. If so return + its reference, otherwise returns null. + + + + + + Returns all the currently defined loggers in the hierarchy as an Array + + All the defined loggers + + + Returns all the currently defined loggers in the hierarchy as an Array. + The root logger is not included in the returned + enumeration. + + + + + + Return a new logger instance named as the first parameter using + the default factory. + + + + Return a new logger instance named as the first parameter using + the default factory. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + The name of the logger to retrieve + The logger object with the name specified + + + + Shutting down a hierarchy will safely close and remove + all appenders in all loggers including the root logger. + + + + Shutting down a hierarchy will safely close and remove + all appenders in all loggers including the root logger. + + + Some appenders need to be closed before the + application exists. Otherwise, pending logging events might be + lost. + + + The Shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Reset all values contained in this hierarchy instance to their default. + + + + Reset all values contained in this hierarchy instance to their + default. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the logEvent through this hierarchy. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Returns all the Appenders that are currently configured + + An array containing all the currently configured appenders + + + Returns all the instances that are currently configured. + All the loggers are searched for appenders. The appenders may also be containers + for appenders and these are also searched for additional loggers. + + + The list returned is unordered but does not contain duplicates. + + + + + + Collect the appenders from an . + The appender may also be a container. + + + + + + + Collect the appenders from an container + + + + + + + Initialize the log4net system using the specified appender + + the appender to use to log all logging events + + + + Initialize the log4net system using the specified appenders + + the appenders to use to log all logging events + + + + Initialize the log4net system using the specified appenders + + the appenders to use to log all logging events + + + This method provides the same functionality as the + method implemented + on this object, but it is protected and therefore can be called by subclasses. + + + + + + Initialize the log4net system using the specified config + + the element containing the root of the config + + + + Initialize the log4net system using the specified config + + the element containing the root of the config + + + This method provides the same functionality as the + method implemented + on this object, but it is protected and therefore can be called by subclasses. + + + + + + Test if this hierarchy is disabled for the specified . + + The level to check against. + + true if the repository is disabled for the level argument, false otherwise. + + + + If this hierarchy has not been configured then this method will + always return true. + + + This method will return true if this repository is + disabled for level object passed as parameter and + false otherwise. + + + See also the property. + + + + + + Clear all logger definitions from the internal hashtable + + + + This call will clear all logger definitions from the internal + hashtable. Invoking this method will irrevocably mess up the + logger hierarchy. + + + You should really know what you are doing before + invoking this method. + + + + + + Return a new logger instance named as the first parameter using + . + + The name of the logger to retrieve + The factory that will make the new logger instance + The logger object with the name specified + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated by the + parameter and linked with its existing + ancestors as well as children. + + + + + + Sends a logger creation event to all registered listeners + + The newly created logger + + Raises the logger creation event. + + + + + Updates all the parents of the specified logger + + The logger to update the parents for + + + This method loops through all the potential parents of + . There 3 possible cases: + + + + No entry for the potential parent of exists + + We create a ProvisionNode for this potential + parent and insert in that provision node. + + + + The entry is of type Logger for the potential parent. + + The entry is 's nearest existing parent. We + update 's parent field with this entry. We also break from + he loop because updating our parent's parent is our parent's + responsibility. + + + + The entry is of type ProvisionNode for this potential parent. + + We add to the list of children for this + potential parent. + + + + + + + + Replace a with a in the hierarchy. + + + + + + We update the links for all the children that placed themselves + in the provision node 'pn'. The second argument 'log' is a + reference for the newly created Logger, parent of all the + children in 'pn'. + + + We loop on all the children 'c' in 'pn'. + + + If the child 'c' has been already linked to a child of + 'log' then there is no need to update 'c'. + + + Otherwise, we set log's parent field to c's parent and set + c's parent field to log. + + + + + + Define or redefine a Level using the values in the argument + + the level values + + + Define or redefine a Level using the values in the argument + + + Supports setting levels via the configuration file. + + + + + + Set a Property using the values in the argument + + the property value + + + Set a Property using the values in the argument. + + + Supports setting property values via the configuration file. + + + + + + The fully qualified type of the Hierarchy class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Event used to notify that a logger has been created. + + + + Event raised when a logger is created. + + + + + + Has no appender warning been emitted + + + + Flag to indicate if we have already issued a warning + about not having an appender warning. + + + + + + Get the root of this hierarchy + + + + Get the root of this hierarchy. + + + + + + Gets or sets the default instance. + + The default + + + The logger factory is used to create logger instances. + + + + + + A class to hold the value, name and display name for a level + + + + A class to hold the value, name and display name for a level + + + + + + Override Object.ToString to return sensible debug info + + string info about this object + + + + Value of the level + + + + If the value is not set (defaults to -1) the value will be looked + up for the current level with the same name. + + + + + + Name of the level + + + The name of the level + + + + The name of the level. + + + + + + Display name for the level + + + The display name of the level + + + + The display name of the level. + + + + + + Used internally to accelerate hash table searches. + + + + Internal class used to improve performance of + string keyed hashtables. + + + The hashcode of the string is cached for reuse. + The string is stored as an interned value. + When comparing two objects for equality + the reference equality of the interned strings is compared. + + + Nicko Cadell + Gert Driesen + + + + Construct key with string name + + + + Initializes a new instance of the class + with the specified name. + + + Stores the hashcode of the string and interns + the string key to optimize comparisons. + + + The Compact Framework 1.0 the + method does not work. On the Compact Framework + the string keys are not interned nor are they + compared by reference. + + + The name of the logger. + + + + Returns a hash code for the current instance. + + A hash code for the current instance. + + + Returns the cached hashcode. + + + + + + Determines whether two instances + are equal. + + The to compare with the current . + + true if the specified is equal to the current ; otherwise, false. + + + + Compares the references of the interned strings. + + + + + + Provision nodes are used where no logger instance has been specified + + + + instances are used in the + when there is no specified + for that node. + + + A provision node holds a list of child loggers on behalf of + a logger that does not exist. + + + Nicko Cadell + Gert Driesen + + + + Create a new provision node with child node + + A child logger to add to this node. + + + Initializes a new instance of the class + with the specified child logger. + + + + + + The sits at the root of the logger hierarchy tree. + + + + The is a regular except + that it provides several guarantees. + + + First, it cannot be assigned a null + level. Second, since the root logger cannot have a parent, the + property always returns the value of the + level field without walking the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Construct a + + The level to assign to the root logger. + + + Initializes a new instance of the class with + the specified logging level. + + + The root logger names itself as "root". However, the root + logger cannot be retrieved by name. + + + + + + The fully qualified type of the RootLogger class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the assigned level value without walking the logger hierarchy. + + The assigned level value without walking the logger hierarchy. + + + Because the root logger cannot have a parent and its level + must not be null this property just returns the + value of . + + + + + + Gets or sets the assigned for the root logger. + + + The of the root logger. + + + + Setting the level of the root logger to a null reference + may have catastrophic results. We prevent this here. + + + + + + Initializes the log4net environment using an XML DOM. + + + + Configures a using an XML DOM. + + + Nicko Cadell + Gert Driesen + + + + Construct the configurator for a hierarchy + + The hierarchy to build. + + + Initializes a new instance of the class + with the specified . + + + + + + Configure the hierarchy by parsing a DOM tree of XML elements. + + The root element to parse. + + + Configure the hierarchy by parsing a DOM tree of XML elements. + + + + + + Parse appenders by IDREF. + + The appender ref element. + The instance of the appender that the ref refers to. + + + Parse an XML element that represents an appender and return + the appender. + + + + + + Parses an appender element. + + The appender element. + The appender instance or null when parsing failed. + + + Parse an XML element that represents an appender and return + the appender instance. + + + + + + Parses a logger element. + + The logger element. + + + Parse an XML element that represents a logger. + + + + + + Parses the root logger element. + + The root element. + + + Parse an XML element that represents the root logger. + + + + + + Parses the children of a logger element. + + The category element. + The logger instance. + Flag to indicate if the logger is the root logger. + + + Parse the child elements of a <logger> element. + + + + + + Parses an object renderer. + + The renderer element. + + + Parse an XML element that represents a renderer. + + + + + + Parses a level element. + + The level element. + The logger object to set the level on. + Flag to indicate if the logger is the root logger. + + + Parse an XML element that represents a level. + + + + + + Sets a parameter on an object. + + The parameter element. + The object to set the parameter on. + + The parameter name must correspond to a writable property + on the object. The value of the parameter is a string, + therefore this function will attempt to set a string + property first. If unable to set a string property it + will inspect the property and its argument type. It will + attempt to call a static method called Parse on the + type of the property. This method will take a single + string argument and return a value that can be used to + set the property. + + + + + Test if an element has no attributes or child elements + + the element to inspect + true if the element has any attributes or child elements, false otherwise + + + + Test if a is constructible with Activator.CreateInstance. + + the type to inspect + true if the type is creatable using a default constructor, false otherwise + + + + Look for a method on the that matches the supplied + + the type that has the method + the name of the method + the method info found + + + The method must be a public instance method on the . + The method must be named or "Add" followed by . + The method must take a single parameter. + + + + + + Converts a string value to a target type. + + The type of object to convert the string to. + The string value to use as the value of the object. + + + An object of type with value or + null when the conversion could not be performed. + + + + + + Creates an object as specified in XML. + + The XML element that contains the definition of the object. + The object type to use if not explicitly specified. + The type that the returned object must be or must inherit from. + The object or null + + + Parse an XML element and create an object instance based on the configuration + data. + + + The type of the instance may be specified in the XML. If not + specified then the is used + as the type. However the type is specified it must support the + type. + + + + + + key: appenderName, value: appender. + + + + + The Hierarchy being configured. + + + + + The fully qualified type of the XmlHierarchyConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + + + + + + + + + + + + + + + + + Delegate used to handle logger repository shutdown event notifications + + The that is shutting down. + Empty event args + + + Delegate used to handle logger repository shutdown event notifications. + + + + + + Delegate used to handle logger repository configuration reset event notifications + + The that has had its configuration reset. + Empty event args + + + Delegate used to handle logger repository configuration reset event notifications. + + + + + + Delegate used to handle event notifications for logger repository configuration changes. + + The that has had its configuration changed. + Empty event arguments. + + + Delegate used to handle event notifications for logger repository configuration changes. + + + + + + Write the name of the current AppDomain to the output + + + + Write the name of the current AppDomain to the output writer + + + Nicko Cadell + + + + Write the name of the current AppDomain to the output + + the writer to write to + null, state is not set + + + Writes name of the current AppDomain to the output . + + + + + + AppSetting pattern converter + + + + This pattern converter reads appSettings from the application configuration file. + + + If the is specified then that will be used to + lookup a single appSettings value. If no is specified + then all appSettings will be dumped as a list of key value pairs. + + + A typical use is to specify a base directory for log files, e.g. + + + + + ... + + + ]]> + + + + + + + Write the property value to the output + + that will receive the formatted result. + null, state is not set + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + Write the current date to the output + + + + Date pattern converter, uses a to format + the current date and time to the writer as a string. + + + The value of the determines + the formatting of the date. The following values are allowed: + + + Option value + Output + + + ISO8601 + + Uses the formatter. + Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. + + + + DATE + + Uses the formatter. + Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". + + + + ABSOLUTE + + Uses the formatter. + Formats using the "HH:mm:ss,fff" for example, "15:49:37,459". + + + + other + + Any other pattern string uses the formatter. + This formatter passes the pattern string to the + method. + For details on valid patterns see + DateTimeFormatInfo Class. + + + + + + The date and time is in the local time zone and is rendered in that zone. + To output the time in Universal time see . + + + Nicko Cadell + + + + The used to render the date to a string + + + + The used to render the date to a string + + + + + + Initialize the converter options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the current date to the output + + that will receive the formatted result. + null, state is not set + + + Pass the current date and time to the + for it to render it to the writer. + + + The date and time passed is in the local time zone. + + + + + + The fully qualified type of the DatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write an folder path to the output + + + + Write an special path environment folder path to the output writer. + The value of the determines + the name of the variable to output. + should be a value in the enumeration. + + + Ron Grabowski + + + + Write an special path environment folder path to the output + + the writer to write to + null, state is not set + + + Writes the special path environment folder path to the output . + The name of the special path environment folder path to output must be set + using the + property. + + + + + + The fully qualified type of the EnvironmentFolderPathPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write an environment variable to the output + + + + Write an environment variable to the output writer. + The value of the determines + the name of the variable to output. + + + Nicko Cadell + + + + Write an environment variable to the output + + the writer to write to + null, state is not set + + + Writes the environment variable to the output . + The name of the environment variable to output must be set + using the + property. + + + + + + The fully qualified type of the EnvironmentPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the current thread identity to the output + + + + Write the current thread identity to the output writer + + + Nicko Cadell + + + + Write the current thread identity to the output + + the writer to write to + null, state is not set + + + Writes the current thread identity to the output . + + + + + + The fully qualified type of the IdentityPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Pattern converter for literal string instances in the pattern + + + + Writes the literal string value specified in the + property to + the output. + + + Nicko Cadell + + + + Set the next converter in the chain + + The next pattern converter in the chain + The next pattern converter + + + Special case the building of the pattern converter chain + for instances. Two adjacent + literals in the pattern can be represented by a single combined + pattern converter. This implementation detects when a + is added to the chain + after this converter and combines its value with this converter's + literal value. + + + + + + Write the literal to the output + + the writer to write to + null, not set + + + Override the formatting behavior to ignore the FormattingInfo + because we have a literal instead. + + + Writes the value of + to the output . + + + + + + Convert this pattern into the rendered message + + that will receive the formatted result. + null, not set + + + This method is not used. + + + + + + Writes a newline to the output + + + + Writes the system dependent line terminator to the output. + This behavior can be overridden by setting the : + + + + Option Value + Output + + + DOS + DOS or Windows line terminator "\r\n" + + + UNIX + UNIX line terminator "\n" + + + + Nicko Cadell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the current process ID to the output + + + + Write the current process ID to the output writer + + + Nicko Cadell + + + + Write the current process ID to the output + + the writer to write to + null, state is not set + + + Write the current process ID to the output . + + + + + + The fully qualified type of the ProcessIdPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Property pattern converter + + + + This pattern converter reads the thread and global properties. + The thread properties take priority over global properties. + See for details of the + thread properties. See for + details of the global properties. + + + If the is specified then that will be used to + lookup a single property. If no is specified + then all properties will be dumped as a list of key value pairs. + + + Nicko Cadell + + + + Write the property value to the output + + that will receive the formatted result. + null, state is not set + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + A Pattern converter that generates a string of random characters + + + + The converter generates a string of random characters. By default + the string is length 4. This can be changed by setting the + to the string value of the length required. + + + The random characters in the string are limited to uppercase letters + and numbers only. + + + The random number generator used by this class is not cryptographically secure. + + + Nicko Cadell + + + + Shared random number generator + + + + + Length of random string to generate. Default length 4. + + + + + Initialize the converter options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write a randoim string to the output + + the writer to write to + null, state is not set + + + Write a randoim string to the output . + + + + + + The fully qualified type of the RandomStringPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the current threads username to the output + + + + Write the current threads username to the output writer + + + Nicko Cadell + + + + Write the current threads username to the output + + the writer to write to + null, state is not set + + + Write the current threads username to the output . + + + + + + The fully qualified type of the UserNamePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the UTC date time to the output + + + + Date pattern converter, uses a to format + the current date and time in Universal time. + + + See the for details on the date pattern syntax. + + + + Nicko Cadell + + + + Write the current date and time to the output + + that will receive the formatted result. + null, state is not set + + + Pass the current date and time to the + for it to render it to the writer. + + + The date is in Universal time when it is rendered. + + + + + + + The fully qualified type of the UtcDatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Type converter for Boolean. + + + + Supports conversion from string to bool type. + + + + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Convert the source object to the type supported by this object + + the object to convert + the converted object + + + Uses the method to convert the + argument to a . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Exception base type for conversion errors. + + + + This type extends . It + does not add any new functionality but does differentiate the + type of exception being thrown. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + A message to include with the exception. + + + Initializes a new instance of the class + with the specified message. + + + + + + Constructor + + A message to include with the exception. + A nested exception to include. + + + Initializes a new instance of the class + with the specified message and inner exception. + + + + + + Serialization constructor + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Creates a new instance of the class. + + The conversion destination type. + The value to convert. + An instance of the . + + + Creates a new instance of the class. + + + + + + Creates a new instance of the class. + + The conversion destination type. + The value to convert. + A nested exception to include. + An instance of the . + + + Creates a new instance of the class. + + + + + + Register of type converters for specific types. + + + + Maintains a registry of type converters used to convert between + types. + + + Use the and + methods to register new converters. + The and methods + lookup appropriate converters to use. + + + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + Initializes a new instance of the class. + + + + + Static constructor. + + + + This constructor defines the intrinsic type converters. + + + + + + Adds a converter for a specific type. + + The type being converted to. + The type converter to use to convert to the destination type. + + + Adds a converter instance for a specific type. + + + + + + Adds a converter for a specific type. + + The type being converted to. + The type of the type converter to use to convert to the destination type. + + + Adds a converter for a specific type. + + + + + + Gets the type converter to use to convert values to the destination type. + + The type being converted from. + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + Gets the type converter to use to convert values to the destination type. + + + + + + Gets the type converter to use to convert values to the destination type. + + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + Gets the type converter to use to convert values to the destination type. + + + + + + Lookups the type converter to use as specified by the attributes on the + destination type. + + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + + Creates the instance of the type converter. + + The type of the type converter. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + The type specified for the type converter must implement + the or interfaces + and must have a public default (no argument) constructor. + + + + + + The fully qualified type of the ConverterRegistry class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Mapping from to type converter. + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to an encoding + the encoding + + + Uses the method to + convert the argument to an . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Interface supported by type converters + + + + This interface supports conversion from a single type to arbitrary types. + See . + + + Nicko Cadell + + + + Returns whether this converter can convert the object to the specified type + + A Type that represents the type you want to convert to + true if the conversion is possible + + + Test if the type supported by this converter can be converted to the + . + + + + + + Converts the given value object to the specified type, using the arguments + + the object to convert + The Type to convert the value parameter to + the converted object + + + Converts the (which must be of the type supported + by this converter) to the specified.. + + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to an IPAddress + the IPAddress + + + Uses the method to convert the + argument to an . + If that fails then the string is resolved as a DNS hostname. + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Valid characters in an IPv4 or IPv6 address string. (Does not support subnets) + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + The string is used as the + of the . + + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a PatternLayout + the PatternLayout + + + Creates and returns a new using + the as the + . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Convert between string and + + + + Supports conversion from string to type, + and from a type to a string. + + + The string is used as the + of the . + + + + + + Nicko Cadell + + + + Can the target type be converted to the type supported by this object + + A that represents the type you want to convert to + true if the conversion is possible + + + Returns true if the is + assignable from a type. + + + + + + Converts the given value object to the specified type, using the arguments + + the object to convert + The Type to convert the value parameter to + the converted object + + + Uses the method to convert the + argument to a . + + + + The object cannot be converted to the + . To check for this condition use the + method. + + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a PatternString + the PatternString + + + Creates and returns a new using + the as the + . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a Type + the Type + + + Uses the method to convert the + argument to a . + Additional effort is made to locate partially specified types + by searching the loaded assemblies. + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Attribute used to associate a type converter + + + + Class and Interface level attribute that specifies a type converter + to use with the associated type. + + + To associate a type converter with a target type apply a + TypeConverterAttribute to the target type. Specify the + type of the type converter on the attribute. + + + Nicko Cadell + Gert Driesen + + + + The string type name of the type converter + + + + + Default constructor + + + + Default constructor + + + + + + Create a new type converter attribute for the specified type name + + The string type name of the type converter + + + The type specified must implement the + or the interfaces. + + + + + + Create a new type converter attribute for the specified type + + The type of the type converter + + + The type specified must implement the + or the interfaces. + + + + + + The string type name of the type converter + + + The string type name of the type converter + + + + The type specified must implement the + or the interfaces. + + + + + + A straightforward implementation of the interface. + + + + This is the default implementation of the + interface. Implementors of the interface + should aggregate an instance of this type. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Append on on all attached appenders. + + The event being logged. + The number of appenders called. + + + Calls the method on all + attached appenders. + + + + + + Append on on all attached appenders. + + The array of events being logged. + The number of appenders called. + + + Calls the method on all + attached appenders. + + + + + + Calls the DoAppende method on the with + the objects supplied. + + The appender + The events + + + If the supports the + interface then the will be passed + through using that interface. Otherwise the + objects in the array will be passed one at a time. + + + + + + Attaches an appender. + + The appender to add. + + + If the appender is already in the list it won't be added again. + + + + + + Gets an attached appender with the specified name. + + The name of the appender to get. + + The appender with the name specified, or null if no appender with the + specified name is found. + + + + Lookup an attached appender by name. + + + + + + Removes all attached appenders. + + + + Removes and closes all attached appenders + + + + + + Removes the specified appender from the list of attached appenders. + + The appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + List of appenders + + + + + Array of appenders, used to cache the m_appenderList + + + + + The fully qualified type of the AppenderAttachedImpl class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets all attached appenders. + + + A collection of attached appenders, or null if there + are no attached appenders. + + + + The read only collection of all currently attached appenders. + + + + + + This class aggregates several PropertiesDictionary collections together. + + + + Provides a dictionary style lookup over an ordered list of + collections. + + + Nicko Cadell + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Add a Properties Dictionary to this composite collection + + the properties to add + + + Properties dictionaries added first take precedence over dictionaries added + later. + + + + + + Flatten this composite collection into a single properties dictionary + + the flattened dictionary + + + Reduces the collection of ordered dictionaries to a single dictionary + containing the resultant values for the keys. + + + + + + Gets the value of a property + + + The value for the property with the specified key + + + + Looks up the value for the specified. + The collections are searched + in the order in which they were added to this collection. The value + returned is the value held by the first collection that contains + the specified key. + + + If none of the collections contain the specified key then + null is returned. + + + + + + Base class for Context Properties implementations + + + + This class defines a basic property get set accessor + + + Nicko Cadell + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Gets or sets the value of a property + + + + + + Wrapper class used to map converter names to converter types + + + + Pattern converter info class used during configuration by custom + PatternString and PatternLayer converters. + + + + + + default constructor + + + + + + + + + + + Gets or sets the name of the conversion pattern + + + + The name of the pattern in the format string + + + + + + Gets or sets the type of the converter + + + + The value specified must extend the + type. + + + + + + + + + + + Subclass of that maintains a count of + the number of bytes written. + + + + This writer counts the number of bytes written. + + + Nicko Cadell + Gert Driesen + + + + that does not leak exceptions + + + + does not throw exceptions when things go wrong. + Instead, it delegates error handling to its . + + + Nicko Cadell + Gert Driesen + + + + Adapter that extends and forwards all + messages to an instance of . + + + + Adapter that extends and forwards all + messages to an instance of . + + + Nicko Cadell + + + + The writer to forward messages to + + + + + Create an instance of that forwards all + messages to a . + + The to forward to + + + Create an instance of that forwards all + messages to a . + + + + + + Closes the writer and releases any system resources associated with the writer + + + + + + + + + Dispose this writer + + flag indicating if we are being disposed + + + Dispose this writer + + + + + + Flushes any buffered output + + + + Clears all buffers for the writer and causes any buffered data to be written + to the underlying device + + + + + + Writes a character to the wrapped TextWriter + + the value to write to the TextWriter + + + Writes a character to the wrapped TextWriter + + + + + + Writes a character buffer to the wrapped TextWriter + + the data buffer + the start index + the number of characters to write + + + Writes a character buffer to the wrapped TextWriter + + + + + + Writes a string to the wrapped TextWriter + + the value to write to the TextWriter + + + Writes a string to the wrapped TextWriter + + + + + + Gets or sets the underlying . + + + The underlying . + + + + Gets or sets the underlying . + + + + + + The Encoding in which the output is written + + + The + + + + The Encoding in which the output is written + + + + + + Gets an object that controls formatting + + + The format provider + + + + Gets an object that controls formatting + + + + + + Gets or sets the line terminator string used by the TextWriter + + + The line terminator to use + + + + Gets or sets the line terminator string used by the TextWriter + + + + + + Constructor + + the writer to actually write to + the error handler to report error to + + + Create a new QuietTextWriter using a writer and error handler + + + + + + Writes a character to the underlying writer + + the char to write + + + Writes a character to the underlying writer + + + + + + Writes a buffer to the underlying writer + + the buffer to write + the start index to write from + the number of characters to write + + + Writes a buffer to the underlying writer + + + + + + Writes a string to the output. + + The string data to write to the output. + + + Writes a string to the output. + + + + + + Closes the underlying output writer. + + + + Closes the underlying output writer. + + + + + + The error handler instance to pass all errors to + + + + + Flag to indicate if this writer is closed + + + + + Gets or sets the error handler that all errors are passed to. + + + The error handler that all errors are passed to. + + + + Gets or sets the error handler that all errors are passed to. + + + + + + Gets a value indicating whether this writer is closed. + + + true if this writer is closed, otherwise false. + + + + Gets a value indicating whether this writer is closed. + + + + + + Constructor + + The to actually write to. + The to report errors to. + + + Creates a new instance of the class + with the specified and . + + + + + + Writes a character to the underlying writer and counts the number of bytes written. + + the char to write + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Writes a buffer to the underlying writer and counts the number of bytes written. + + the buffer to write + the start index to write from + the number of characters to write + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Writes a string to the output and counts the number of bytes written. + + The string data to write to the output. + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Total number of bytes written. + + + + + Gets or sets the total number of bytes written. + + + The total number of bytes written. + + + + Gets or sets the total number of bytes written. + + + + + + A fixed size rolling buffer of logging events. + + + + An array backed fixed size leaky bucket. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The maximum number of logging events in the buffer. + + + Initializes a new instance of the class with + the specified maximum number of buffered logging events. + + + The argument is not a positive integer. + + + + Appends a to the buffer. + + The event to append to the buffer. + The event discarded from the buffer, if the buffer is full, otherwise null. + + + Append an event to the buffer. If the buffer still contains free space then + null is returned. If the buffer is full then an event will be dropped + to make space for the new event, the event dropped is returned. + + + + + + Get and remove the oldest event in the buffer. + + The oldest logging event in the buffer + + + Gets the oldest (first) logging event in the buffer and removes it + from the buffer. + + + + + + Pops all the logging events from the buffer into an array. + + An array of all the logging events in the buffer. + + + Get all the events in the buffer and clear the buffer. + + + + + + Clear the buffer + + + + Clear the buffer of all events. The events in the buffer are lost. + + + + + + Gets the th oldest event currently in the buffer. + + The th oldest event currently in the buffer. + + + If is outside the range 0 to the number of events + currently in the buffer, then null is returned. + + + + + + Gets the maximum size of the buffer. + + The maximum size of the buffer. + + + Gets the maximum size of the buffer + + + + + + Gets the number of logging events in the buffer. + + The number of logging events in the buffer. + + + This number is guaranteed to be in the range 0 to + (inclusive). + + + + + + An always empty . + + + + A singleton implementation of the + interface that always represents an empty collection. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Copies the elements of the to an + , starting at a particular Array index. + + The one-dimensional + that is the destination of the elements copied from + . The Array must have zero-based + indexing. + The zero-based index in array at which + copying begins. + + + As the collection is empty no values are copied into the array. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + The singleton instance of the empty collection. + + + + + Gets the singleton instance of the empty collection. + + The singleton instance of the empty collection. + + + Gets the singleton instance of the empty collection. + + + + + + Gets a value indicating if access to the is synchronized (thread-safe). + + + true if access to the is synchronized (thread-safe); otherwise, false. + + + + For the this property is always true. + + + + + + Gets the number of elements contained in the . + + + The number of elements contained in the . + + + + As the collection is empty the is always 0. + + + + + + Gets an object that can be used to synchronize access to the . + + + An object that can be used to synchronize access to the . + + + + As the collection is empty and thread safe and synchronized this instance is also + the object. + + + + + + An always empty . + + + + A singleton implementation of the + interface that always represents an empty collection. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Copies the elements of the to an + , starting at a particular Array index. + + The one-dimensional + that is the destination of the elements copied from + . The Array must have zero-based + indexing. + The zero-based index in array at which + copying begins. + + + As the collection is empty no values are copied into the array. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + Adds an element with the provided key and value to the + . + + The to use as the key of the element to add. + The to use as the value of the element to add. + + + As the collection is empty no new values can be added. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + Removes all elements from the . + + + + As the collection is empty no values can be removed. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + Determines whether the contains an element + with the specified key. + + The key to locate in the . + false + + + As the collection is empty the method always returns false. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + Removes the element with the specified key from the . + + The key of the element to remove. + + + As the collection is empty no values can be removed. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + The singleton instance of the empty dictionary. + + + + + Gets the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets a value indicating if access to the is synchronized (thread-safe). + + + true if access to the is synchronized (thread-safe); otherwise, false. + + + + For the this property is always true. + + + + + + Gets the number of elements contained in the + + + The number of elements contained in the . + + + + As the collection is empty the is always 0. + + + + + + Gets an object that can be used to synchronize access to the . + + + An object that can be used to synchronize access to the . + + + + As the collection is empty and thread safe and synchronized this instance is also + the object. + + + + + + Gets a value indicating whether the has a fixed size. + + true + + + As the collection is empty always returns true. + + + + + + Gets a value indicating whether the is read-only. + + true + + + As the collection is empty always returns true. + + + + + + Gets an containing the keys of the . + + An containing the keys of the . + + + As the collection is empty a is returned. + + + + + + Gets an containing the values of the . + + An containing the values of the . + + + As the collection is empty a is returned. + + + + + + Gets or sets the element with the specified key. + + The key of the element to get or set. + null + + + As the collection is empty no values can be looked up or stored. + If the index getter is called then null is returned. + A is thrown if the setter is called. + + + This dictionary is always empty and cannot be modified. + + + + Contain the information obtained when parsing formatting modifiers + in conversion modifiers. + + + + Holds the formatting information extracted from the format string by + the . This is used by the + objects when rendering the output. + + + Nicko Cadell + Gert Driesen + + + + Defaut Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + + + Initializes a new instance of the class + with the specified parameters. + + + + + + Gets or sets the minimum value. + + + The minimum value. + + + + Gets or sets the minimum value. + + + + + + Gets or sets the maximum value. + + + The maximum value. + + + + Gets or sets the maximum value. + + + + + + Gets or sets a flag indicating whether left align is enabled + or not. + + + A flag indicating whether left align is enabled or not. + + + + Gets or sets a flag indicating whether left align is enabled or not. + + + + + + Implementation of Properties collection for the + + + + This class implements a properties collection that is thread safe and supports both + storing properties and capturing a read only copy of the current propertied. + + + This class is optimized to the scenario where the properties are read frequently + and are modified infrequently. + + + Nicko Cadell + + + + The read only copy of the properties. + + + + This variable is declared volatile to prevent the compiler and JIT from + reordering reads and writes of this thread performed on different threads. + + + + + + Lock object used to synchronize updates within this instance + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Remove a property from the global context + + the key for the entry to remove + + + Removing an entry from the global context properties is relatively expensive compared + with reading a value. + + + + + + Clear the global context properties + + + + + Get a readonly immutable copy of the properties + + the current global context properties + + + This implementation is fast because the GlobalContextProperties class + stores a readonly copy of the properties. + + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Reading the value for a key is faster than setting the value. + When the value is written a new read only copy of + the properties is created. + + + + + + The static class ILogExtensions contains a set of widely used + methods that ease the interaction with the ILog interface implementations. + + + + This class contains methods for logging at different levels and checks the + properties for determining if those logging levels are enabled in the current + configuration. + + + Simple example of logging messages + + using log4net.Util; + + ILog log = LogManager.GetLogger("application-log"); + + log.InfoExt("Application Start"); + log.DebugExt("This is a debug message"); + + + + + + The fully qualified type of the Logger class. + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is WARN + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is WARN enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is WARN + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is WARN enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is ERROR + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is ERROR enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is ERROR + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is ERROR enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is FATAL + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is FATAL enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is FATAL + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is FATAL enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Manages a mapping from levels to + + + + Manages an ordered mapping from instances + to subclasses. + + + Nicko Cadell + + + + Default constructor + + + + Initialise a new instance of . + + + + + + Add a to this mapping + + the entry to add + + + If a has previously been added + for the same then that entry will be + overwritten. + + + + + + Lookup the mapping for the specified level + + the level to lookup + the for the level or null if no mapping found + + + Lookup the value for the specified level. Finds the nearest + mapping value for the level that is equal to or less than the + specified. + + + If no mapping could be found then null is returned. + + + + + + Initialize options + + + + Caches the sorted list of in an array + + + + + + Implementation of Properties collection for the + + + + Class implements a collection of properties that is specific to each thread. + The class is not synchronized as each thread has its own . + + + This class stores its properties in a slot on the named + log4net.Util.LogicalThreadContextProperties. + + + For .NET Standard 1.3 this class uses + System.Threading.AsyncLocal rather than . + + + The requires a link time + for the + . + If the calling code does not have this permission then this context will be disabled. + It will not store any property values set on it. + + + Nicko Cadell + + + + Flag used to disable this context if we don't have permission to access the CallContext. + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Remove a property + + the key for the entry to remove + + + Remove the value for the specified from the context. + + + + + + Clear all the context properties + + + + Clear all the context properties + + + + + + Get the PropertiesDictionary stored in the LocalDataStoreSlot for this thread. + + create the dictionary if it does not exist, otherwise return null if is does not exist + the properties for this thread + + + The collection returned is only to be used on the calling thread. If the + caller needs to share the collection between different threads then the + caller must clone the collection before doings so. + + + + + + Gets the call context get data. + + The peroperties dictionary stored in the call context + + The method has a + security link demand, therfore we must put the method call in a seperate method + that we can wrap in an exception handler. + + + + + Sets the call context data. + + The properties. + + The method has a + security link demand, therfore we must put the method call in a seperate method + that we can wrap in an exception handler. + + + + + The fully qualified type of the LogicalThreadContextProperties class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Get or set the property value for the specified. + + + + + + Delegate type used for LogicalThreadContextStack's callbacks. + + + + + Implementation of Stack for the + + + + Implementation of Stack for the + + + Nicko Cadell + + + + The stack store. + + + + + The name of this within the + . + + + + + The callback used to let the register a + new instance of a . + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Clears all the contextual information held in this stack. + + + + Clears all the contextual information held in this stack. + Only call this if you think that this thread is being reused after + a previous call execution which may not have completed correctly. + You do not need to use this method if you always guarantee to call + the method of the + returned from even in exceptional circumstances, + for example by using the using(log4net.LogicalThreadContext.Stacks["NDC"].Push("Stack_Message")) + syntax. + + + + + + Removes the top context from this stack. + + The message in the context that was removed from the top of this stack. + + + Remove the top context from this stack, and return + it to the caller. If this stack is empty then an + empty string (not ) is returned. + + + + + + Pushes a new context message into this stack. + + The new context message. + + An that can be used to clean up the context stack. + + + + Pushes a new context onto this stack. An + is returned that can be used to clean up this stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.LogicalThreadContext.Stacks["NDC"].Push("Stack_Message")) + { + log.Warn("This should have an ThreadContext Stack message"); + } + + + + + + Gets the current context information for this stack. + + The current context information. + + + + Gets the current context information for this stack. + + Gets the current context information + + + Gets the current context information for this stack. + + + + + + Get a portable version of this object + + the portable instance of this object + + + Get a cross thread portable version of this object + + + + + + The number of messages in the stack + + + The current number of messages in the stack + + + + The current number of messages in the stack. That is + the number of times has been called + minus the number of times has been called. + + + + + + Gets and sets the internal stack used by this + + The internal storage stack + + + This property is provided only to support backward compatability + of the . Tytpically the internal stack should not + be modified. + + + + + + Inner class used to represent a single context frame in the stack. + + + + Inner class used to represent a single context frame in the stack. + + + + + + Constructor + + The message for this context. + The parent context in the chain. + + + Initializes a new instance of the class + with the specified message and parent context. + + + + + + Get the message. + + The message. + + + Get the message. + + + + + + Gets the full text of the context down to the root level. + + + The full text of the context down to the root level. + + + + Gets the full text of the context down to the root level. + + + + + + Struct returned from the method. + + + + This struct implements the and is designed to be used + with the pattern to remove the stack frame at the end of the scope. + + + + + + The depth to trim the stack to when this instance is disposed + + + + + The outer LogicalThreadContextStack. + + + + + Constructor + + The internal stack used by the ThreadContextStack. + The depth to return the stack to when this object is disposed. + + + Initializes a new instance of the class with + the specified stack and return depth. + + + + + + Returns the stack to the correct depth. + + + + Returns the stack to the correct depth. + + + + + + Implementation of Stacks collection for the + + + + Implementation of Stacks collection for the + + + Nicko Cadell + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + The fully qualified type of the ThreadContextStacks class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the named thread context stack + + + The named stack + + + + Gets the named thread context stack + + + + + + + + + + + + + Outputs log statements from within the log4net assembly. + + + + Log4net components cannot make log4net logging calls. However, it is + sometimes useful for the user to learn about what log4net is + doing. + + + All log4net internal debug calls go to the standard output stream + whereas internal error messages are sent to the standard error output + stream. + + + Nicko Cadell + Gert Driesen + + + + Formats Prefix, Source, and Message in the same format as the value + sent to Console.Out and Trace.Write. + + + + + + Initializes a new instance of the class. + + + + + + + + + Static constructor that initializes logging by reading + settings from the application configuration file. + + + + The log4net.Internal.Debug application setting + controls internal debugging. This setting should be set + to true to enable debugging. + + + The log4net.Internal.Quiet application setting + suppresses all internal logging including error messages. + This setting should be set to true to enable message + suppression. + + + + + + Raises the LogReceived event when an internal messages is received. + + + + + + + + + Writes log4net internal debug messages to the + standard output stream. + + + The message to log. + + + All internal debug messages are prepended with + the string "log4net: ". + + + + + + Writes log4net internal debug messages to the + standard output stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal debug messages are prepended with + the string "log4net: ". + + + + + + Writes log4net internal warning messages to the + standard error stream. + + The Type that generated this message. + The message to log. + + + All internal warning messages are prepended with + the string "log4net:WARN ". + + + + + + Writes log4net internal warning messages to the + standard error stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal warning messages are prepended with + the string "log4net:WARN ". + + + + + + Writes log4net internal error messages to the + standard error stream. + + The Type that generated this message. + The message to log. + + + All internal error messages are prepended with + the string "log4net:ERROR ". + + + + + + Writes log4net internal error messages to the + standard error stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal debug messages are prepended with + the string "log4net:ERROR ". + + + + + + Writes output to the standard output stream. + + The message to log. + + + Writes to both Console.Out and System.Diagnostics.Trace. + Note that the System.Diagnostics.Trace is not supported + on the Compact Framework. + + + If the AppDomain is not configured with a config file then + the call to System.Diagnostics.Trace may fail. This is only + an issue if you are programmatically creating your own AppDomains. + + + + + + Writes output to the standard error stream. + + The message to log. + + + Writes to both Console.Error and System.Diagnostics.Trace. + Note that the System.Diagnostics.Trace is not supported + on the Compact Framework. + + + If the AppDomain is not configured with a config file then + the call to System.Diagnostics.Trace may fail. This is only + an issue if you are programmatically creating your own AppDomains. + + + + + + Default debug level + + + + + In quietMode not even errors generate any output. + + + + + The event raised when an internal message has been received. + + + + + The Type that generated the internal message. + + + + + The DateTime stamp of when the internal message was received. + + + + + The UTC DateTime stamp of when the internal message was received. + + + + + A string indicating the severity of the internal message. + + + "log4net: ", + "log4net:ERROR ", + "log4net:WARN " + + + + + The internal log message. + + + + + The Exception related to the message. + + + Optional. Will be null if no Exception was passed. + + + + + Gets or sets a value indicating whether log4net internal logging + is enabled or disabled. + + + true if log4net internal logging is enabled, otherwise + false. + + + + When set to true, internal debug level logging will be + displayed. + + + This value can be set by setting the application setting + log4net.Internal.Debug in the application configuration + file. + + + The default value is false, i.e. debugging is + disabled. + + + + + The following example enables internal debugging using the + application configuration file : + + + + + + + + + + + + + Gets or sets a value indicating whether log4net should generate no output + from internal logging, not even for errors. + + + true if log4net should generate no output at all from internal + logging, otherwise false. + + + + When set to true will cause internal logging at all levels to be + suppressed. This means that no warning or error reports will be logged. + This option overrides the setting and + disables all debug also. + + This value can be set by setting the application setting + log4net.Internal.Quiet in the application configuration file. + + + The default value is false, i.e. internal logging is not + disabled. + + + + The following example disables internal logging using the + application configuration file : + + + + + + + + + + + + + + + + + Test if LogLog.Debug is enabled for output. + + + true if Debug is enabled + + + + Test if LogLog.Debug is enabled for output. + + + + + + Test if LogLog.Warn is enabled for output. + + + true if Warn is enabled + + + + Test if LogLog.Warn is enabled for output. + + + + + + Test if LogLog.Error is enabled for output. + + + true if Error is enabled + + + + Test if LogLog.Error is enabled for output. + + + + + + Subscribes to the LogLog.LogReceived event and stores messages + to the supplied IList instance. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a native error code and message. + + + + Represents a Win32 platform native error. + + + Nicko Cadell + Gert Driesen + + + + Create an instance of the class with the specified + error number and message. + + The number of the native error. + The message of the native error. + + + Create an instance of the class with the specified + error number and message. + + + + + + Create a new instance of the class for the last Windows error. + + + An instance of the class for the last windows error. + + + + The message for the error number is lookup up using the + native Win32 FormatMessage function. + + + + + + Create a new instance of the class. + + the error number for the native error + + An instance of the class for the specified + error number. + + + + The message for the specified error number is lookup up using the + native Win32 FormatMessage function. + + + + + + Retrieves the message corresponding with a Win32 message identifier. + + Message identifier for the requested message. + + The message corresponding with the specified message identifier. + + + + The message will be searched for in system message-table resource(s) + using the native FormatMessage function. + + + + + + Return error information string + + error information string + + + Return error information string + + + + + + Formats a message string. + + Formatting options, and how to interpret the parameter. + Location of the message definition. + Message identifier for the requested message. + Language identifier for the requested message. + If includes FORMAT_MESSAGE_ALLOCATE_BUFFER, the function allocates a buffer using the LocalAlloc function, and places the pointer to the buffer at the address specified in . + If the FORMAT_MESSAGE_ALLOCATE_BUFFER flag is not set, this parameter specifies the maximum number of TCHARs that can be stored in the output buffer. If FORMAT_MESSAGE_ALLOCATE_BUFFER is set, this parameter specifies the minimum number of TCHARs to allocate for an output buffer. + Pointer to an array of values that are used as insert values in the formatted message. + + + The function requires a message definition as input. The message definition can come from a + buffer passed into the function. It can come from a message table resource in an + already-loaded module. Or the caller can ask the function to search the system's message + table resource(s) for the message definition. The function finds the message definition + in a message table resource based on a message identifier and a language identifier. + The function copies the formatted message text to an output buffer, processing any embedded + insert sequences if requested. + + + To prevent the usage of unsafe code, this stub does not support inserting values in the formatted message. + + + + + If the function succeeds, the return value is the number of TCHARs stored in the output + buffer, excluding the terminating null character. + + + If the function fails, the return value is zero. To get extended error information, + call . + + + + + + Gets the number of the native error. + + + The number of the native error. + + + + Gets the number of the native error. + + + + + + Gets the message of the native error. + + + The message of the native error. + + + + + Gets the message of the native error. + + + + + An always empty . + + + + A singleton implementation of the over a collection + that is empty and not modifiable. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Test if the enumerator can advance, if so advance. + + false as the cannot advance. + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will always return false. + + + + + + Resets the enumerator back to the start. + + + + As the enumerator is over an empty collection does nothing. + + + + + + The singleton instance of the . + + + + + Gets the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets the current object from the enumerator. + + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current key from the enumerator. + + + Throws an exception because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current value from the enumerator. + + The current value from the enumerator. + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current entry from the enumerator. + + + Throws an because the + never has a current entry. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + An always empty . + + + + A singleton implementation of the over a collection + that is empty and not modifiable. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Test if the enumerator can advance, if so advance + + false as the cannot advance. + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will always return false. + + + + + + Resets the enumerator back to the start. + + + + As the enumerator is over an empty collection does nothing. + + + + + + The singleton instance of the . + + + + + Get the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets the current object from the enumerator. + + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + A SecurityContext used when a SecurityContext is not required + + + + The is a no-op implementation of the + base class. It is used where a + is required but one has not been provided. + + + Nicko Cadell + + + + Singleton instance of + + + + Singleton instance of + + + + + + Private constructor + + + + Private constructor for singleton pattern. + + + + + + Impersonate this SecurityContext + + State supplied by the caller + null + + + No impersonation is done and null is always returned. + + + + + + Implements log4net's default error handling policy which consists + of emitting a message for the first error in an appender and + ignoring all subsequent errors. + + + + The error message is processed using the LogLog sub-system by default. + + + This policy aims at protecting an otherwise working application + from being flooded with error messages when logging fails. + + + Nicko Cadell + Gert Driesen + Ron Grabowski + + + + Default Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + The prefix to use for each message. + + + Initializes a new instance of the class + with the specified prefix. + + + + + + Reset the error handler back to its initial disabled state. + + + + + Log an Error + + The error message. + The exception. + The internal error code. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + Log the very first error + + The error message. + The exception. + The internal error code. + + + Sends the error information to 's Error method. + + + + + + Log an Error + + The error message. + The exception. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + Log an error + + The error message. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + The UTC date the error was recorded. + + + + + Flag to indicate if it is the first error + + + + + The message recorded during the first error. + + + + + The exception recorded during the first error. + + + + + The error code recorded during the first error. + + + + + String to prefix each message with + + + + + The fully qualified type of the OnlyOnceErrorHandler class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Is error logging enabled + + + + Is error logging enabled. Logging is only enabled for the + first error delivered to the . + + + + + + The date the first error that trigged this error handler occurred, or if it has not been triggered. + + + + + The UTC date the first error that trigged this error handler occured, or if it has not been triggered. + + + + + The message from the first error that trigged this error handler. + + + + + The exception from the first error that trigged this error handler. + + + May be . + + + + + The error code from the first error that trigged this error handler. + + + Defaults to + + + + + A convenience class to convert property values to specific types. + + + + Utility functions for converting types and parsing values. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Converts a string to a value. + + String to convert. + The default value. + The value of . + + + If is "true", then true is returned. + If is "false", then false is returned. + Otherwise, is returned. + + + + + + Parses a file size into a number. + + String to parse. + The default value. + The value of . + + + Parses a file size of the form: number[KB|MB|GB] into a + long value. It is scaled with the appropriate multiplier. + + + is returned when + cannot be converted to a value. + + + + + + Converts a string to an object. + + The target type to convert to. + The string to convert to an object. + + The object converted from a string or null when the + conversion failed. + + + + Converts a string to an object. Uses the converter registry to try + to convert the string value into the specified target type. + + + + + + Checks if there is an appropriate type conversion from the source type to the target type. + + The type to convert from. + The type to convert to. + true if there is a conversion from the source type to the target type. + + Checks if there is an appropriate type conversion from the source type to the target type. + + + + + + + Converts an object to the target type. + + The object to convert to the target type. + The type to convert to. + The converted object. + + + Converts an object to the target type. + + + + + + Instantiates an object given a class name. + + The fully qualified class name of the object to instantiate. + The class to which the new object should belong. + The object to return in case of non-fulfillment. + + An instance of the or + if the object could not be instantiated. + + + + Checks that the is a subclass of + . If that test fails or the object could + not be instantiated, then is returned. + + + + + + Performs variable substitution in string from the + values of keys found in . + + The string on which variable substitution is performed. + The dictionary to use to lookup variables. + The result of the substitutions. + + + The variable substitution delimiters are ${ and }. + + + For example, if props contains key=value, then the call + + + + string s = OptionConverter.SubstituteVariables("Value of key is ${key}."); + + + + will set the variable s to "Value of key is value.". + + + If no value could be found for the specified key, then substitution + defaults to an empty string. + + + For example, if system properties contains no value for the key + "nonExistentKey", then the call + + + + string s = OptionConverter.SubstituteVariables("Value of nonExistentKey is [${nonExistentKey}]"); + + + + will set s to "Value of nonExistentKey is []". + + + An Exception is thrown if contains a start + delimiter "${" which is not balanced by a stop delimiter "}". + + + + + + Converts the string representation of the name or numeric value of one or + more enumerated constants to an equivalent enumerated object. + + The type to convert to. + The enum string value. + If true, ignore case; otherwise, regard case. + An object of type whose value is represented by . + + + + The fully qualified type of the OptionConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Most of the work of the class + is delegated to the PatternParser class. + + + + The PatternParser processes a pattern string and + returns a chain of objects. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The pattern to parse. + + + Initializes a new instance of the class + with the specified pattern string. + + + + + + Parses the pattern into a chain of pattern converters. + + The head of a chain of pattern converters. + + + Parses the pattern into a chain of pattern converters. + + + + + + Build the unified cache of converters from the static and instance maps + + the list of all the converter names + + + Build the unified cache of converters from the static and instance maps + + + + + + Internal method to parse the specified pattern to find specified matches + + the pattern to parse + the converter names to match in the pattern + + + The matches param must be sorted such that longer strings come before shorter ones. + + + + + + Process a parsed literal + + the literal text + + + + Process a parsed converter pattern + + the name of the converter + the optional option for the converter + the formatting info for the converter + + + + Resets the internal state of the parser and adds the specified pattern converter + to the chain. + + The pattern converter to add. + + + + The first pattern converter in the chain + + + + + the last pattern converter in the chain + + + + + The pattern + + + + + Internal map of converter identifiers to converter types + + + + This map overrides the static s_globalRulesRegistry map. + + + + + + The fully qualified type of the PatternParser class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Get the converter registry used by this parser + + + The converter registry used by this parser + + + + Get the converter registry used by this parser + + + + + + Sort strings by length + + + + that orders strings by string length. + The longest strings are placed first + + + + + + This class implements a patterned string. + + + + This string has embedded patterns that are resolved and expanded + when the string is formatted. + + + This class functions similarly to the + in that it accepts a pattern and renders it to a string. Unlike the + however the PatternString + does not render the properties of a specific but + of the process in general. + + + The recognized conversion pattern names are: + + + + Conversion Pattern Name + Effect + + + appdomain + + + Used to output the friendly name of the current AppDomain. + + + + + appsetting + + + Used to output the value of a specific appSetting key in the application + configuration file. + + + + + date + + + Used to output the current date and time in the local time zone. + To output the date in universal time use the %utcdate pattern. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %date{HH:mm:ss,fff} or + %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %date{ISO8601} or %date{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + env + + + Used to output the a specific environment variable. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %env{COMPUTERNAME} would include the value + of the COMPUTERNAME environment variable. + + + The env pattern is not supported on the .NET Compact Framework. + + + + + identity + + + Used to output the user name for the currently active user + (Principal.Identity.Name). + + + + + newline + + + Outputs the platform dependent line separator character or + characters. + + + This conversion pattern name offers the same performance as using + non-portable line separator strings such as "\n", or "\r\n". + Thus, it is the preferred way of specifying a line separator. + + + + + processid + + + Used to output the system process ID for the current process. + + + + + property + + + Used to output a specific context property. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %property{user} would include the value + from the property that is keyed by the string 'user'. Each property value + that is to be included in the log must be specified separately. + Properties are stored in logging contexts. By default + the log4net:HostName property is set to the name of machine on + which the event was originally logged. + + + If no key is specified, e.g. %property then all the keys and their + values are printed in a comma separated list. + + + The properties of an event are combined from a number of different + contexts. These are listed below in the order in which they are searched. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + random + + + Used to output a random string of characters. The string is made up of + uppercase letters and numbers. By default the string is 4 characters long. + The length of the string can be specified within braces directly following the + pattern specifier, e.g. %random{8} would output an 8 character string. + + + + + username + + + Used to output the WindowsIdentity for the currently + active user. + + + + + utcdate + + + Used to output the date of the logging event in universal time. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %utcdate{HH:mm:ss,fff} or + %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %utcdate{ISO8601} or %utcdate{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + % + + + The sequence %% outputs a single percent sign. + + + + + + Additional pattern converters may be registered with a specific + instance using or + . + + + See the for details on the + format modifiers supported by the patterns. + + + Nicko Cadell + + + + Internal map of converter identifiers to converter types. + + + + + the pattern + + + + + the head of the pattern converter chain + + + + + patterns defined on this PatternString only + + + + + Initialize the global registry + + + + + Default constructor + + + + Initialize a new instance of + + + + + + Constructs a PatternString + + The pattern to use with this PatternString + + + Initialize a new instance of with the pattern specified. + + + + + + Initialize object options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Create the used to parse the pattern + + the pattern to parse + The + + + Returns PatternParser used to parse the conversion string. Subclasses + may override this to return a subclass of PatternParser which recognize + custom conversion pattern name. + + + + + + Produces a formatted string as specified by the conversion pattern. + + The TextWriter to write the formatted event to + + + Format the pattern to the . + + + + + + Format the pattern as a string + + the pattern formatted as a string + + + Format the pattern to a string. + + + + + + Add a converter to this PatternString + + the converter info + + + This version of the method is used by the configurator. + Programmatic users should use the alternative method. + + + + + + Add a converter to this PatternString + + the name of the conversion pattern for this converter + the type of the converter + + + Add a converter to this PatternString + + + + + + Gets or sets the pattern formatting string + + + The pattern formatting string + + + + The ConversionPattern option. This is the string which + controls formatting and consists of a mix of literal content and + conversion specifiers. + + + + + + String keyed object map. + + + + While this collection is serializable only member + objects that are serializable will + be serialized along with this collection. + + + Nicko Cadell + Gert Driesen + + + + String keyed object map that is read only. + + + + This collection is readonly and cannot be modified. + + + While this collection is serializable only member + objects that are serializable will + be serialized along with this collection. + + + Nicko Cadell + Gert Driesen + + + + The Hashtable used to store the properties data + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Copy Constructor + + properties to copy + + + Initializes a new instance of the class. + + + + + + Deserialization constructor + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Gets the key names. + + An array of all the keys. + + + Gets the key names. + + + + + + Test if the dictionary contains a specified key + + the key to look for + true if the dictionary contains the specified key + + + Test if the dictionary contains a specified key + + + + + + Serializes this object into the provided. + + The to populate with data. + The destination for this serialization. + + + Serializes this object into the provided. + + + + + + See + + + + + See + + + + + + See + + + + + + + Remove all properties from the properties collection + + + + + See + + + + + + + See + + + + + + + See + + + + + Gets or sets the value of the property with the specified key. + + + The value of the property with the specified key. + + The key of the property to get or set. + + + The property value will only be serialized if it is serializable. + If it cannot be serialized it will be silently ignored if + a serialization operation is performed. + + + + + + The hashtable used to store the properties + + + The internal collection used to store the properties + + + + The hashtable used to store the properties + + + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + The number of properties in this collection + + + + + See + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + properties to copy + + + Initializes a new instance of the class. + + + + + + Initializes a new instance of the class + with serialized data. + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Because this class is sealed the serialization constructor is private. + + + + + + Remove the entry with the specified key from this dictionary + + the key for the entry to remove + + + Remove the entry with the specified key from this dictionary + + + + + + See + + an enumerator + + + Returns a over the contest of this collection. + + + + + + See + + the key to remove + + + Remove the entry with the specified key from this dictionary + + + + + + See + + the key to lookup in the collection + true if the collection contains the specified key + + + Test if this collection contains a specified key. + + + + + + Remove all properties from the properties collection + + + + Remove all properties from the properties collection + + + + + + See + + the key + the value to store for the key + + + Store a value for the specified . + + + Thrown if the is not a string + + + + See + + + + + + + See + + + + + Gets or sets the value of the property with the specified key. + + + The value of the property with the specified key. + + The key of the property to get or set. + + + The property value will only be serialized if it is serializable. + If it cannot be serialized it will be silently ignored if + a serialization operation is performed. + + + + + + See + + + false + + + + This collection is modifiable. This property always + returns false. + + + + + + See + + + The value for the key specified. + + + + Get or set a value for the specified . + + + Thrown if the is not a string + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + A class to hold the key and data for a property set in the config file + + + + A class to hold the key and data for a property set in the config file + + + + + + Override Object.ToString to return sensible debug info + + string info about this object + + + + Property Key + + + Property Key + + + + Property Key. + + + + + + Property Value + + + Property Value + + + + Property Value. + + + + + + A that ignores the message + + + + This writer is used in special cases where it is necessary + to protect a writer from being closed by a client. + + + Nicko Cadell + + + + Constructor + + the writer to actually write to + + + Create a new ProtectCloseTextWriter using a writer + + + + + + Attach this instance to a different underlying + + the writer to attach to + + + Attach this instance to a different underlying + + + + + + Does not close the underlying output writer. + + + + Does not close the underlying output writer. + This method does nothing. + + + + + + Defines a lock that supports single writers and multiple readers + + + + ReaderWriterLock is used to synchronize access to a resource. + At any given time, it allows either concurrent read access for + multiple threads, or write access for a single thread. In a + situation where a resource is changed infrequently, a + ReaderWriterLock provides better throughput than a simple + one-at-a-time lock, such as . + + + If a platform does not support a System.Threading.ReaderWriterLock + implementation then all readers and writers are serialized. Therefore + the caller must not rely on multiple simultaneous readers. + + + Nicko Cadell + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Acquires a reader lock + + + + blocks if a different thread has the writer + lock, or if at least one thread is waiting for the writer lock. + + + + + + Decrements the lock count + + + + decrements the lock count. When the count + reaches zero, the lock is released. + + + + + + Acquires the writer lock + + + + This method blocks if another thread has a reader lock or writer lock. + + + + + + Decrements the lock count on the writer lock + + + + ReleaseWriterLock decrements the writer lock count. + When the count reaches zero, the writer lock is released. + + + + + + A that can be and reused + + + + A that can be and reused. + This uses a single buffer for string operations. + + + Nicko Cadell + + + + Create an instance of + + the format provider to use + + + Create an instance of + + + + + + Override Dispose to prevent closing of writer + + flag + + + Override Dispose to prevent closing of writer + + + + + + Reset this string writer so that it can be reused. + + the maximum buffer capacity before it is trimmed + the default size to make the buffer + + + Reset this string writer so that it can be reused. + The internal buffers are cleared and reset. + + + + + + Utility class for system specific information. + + + + Utility class of static methods for system specific information. + + + Nicko Cadell + Gert Driesen + Alexey Solofnenko + + + + Private constructor to prevent instances. + + + + Only static methods are exposed from this type. + + + + + + Initialize default values for private static fields. + + + + Only static methods are exposed from this type. + + + + + + Gets the assembly location path for the specified assembly. + + The assembly to get the location for. + The location of the assembly. + + + This method does not guarantee to return the correct path + to the assembly. If only tries to give an indication as to + where the assembly was loaded from. + + + + + + Gets the fully qualified name of the , including + the name of the assembly from which the was + loaded. + + The to get the fully qualified name for. + The fully qualified name for the . + + + This is equivalent to the Type.AssemblyQualifiedName property, + but this method works on the .NET Compact Framework 1.0 as well as + the full .NET runtime. + + + + + + Gets the short name of the . + + The to get the name for. + The short name of the . + + + The short name of the assembly is the + without the version, culture, or public key. i.e. it is just the + assembly's file name without the extension. + + + Use this rather than Assembly.GetName().Name because that + is not available on the Compact Framework. + + + Because of a FileIOPermission security demand we cannot do + the obvious Assembly.GetName().Name. We are allowed to get + the of the assembly so we + start from there and strip out just the assembly name. + + + + + + Gets the file name portion of the , including the extension. + + The to get the file name for. + The file name of the assembly. + + + Gets the file name portion of the , including the extension. + + + + + + Loads the type specified in the type string. + + A sibling type to use to load the type. + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified, it will be loaded from the assembly + containing the specified relative type. If the type is not found in the assembly + then all the loaded assemblies will be searched for the type. + + + + + + Loads the type specified in the type string. + + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified it will be loaded from the + assembly that is directly calling this method. If the type is not found + in the assembly then all the loaded assemblies will be searched for the type. + + + + + + Loads the type specified in the type string. + + An assembly to load the type from. + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified it will be loaded from the specified + assembly. If the type is not found in the assembly then all the loaded assemblies + will be searched for the type. + + + + + + Generate a new guid + + A new Guid + + + Generate a new guid + + + + + + Create an + + The name of the parameter that caused the exception + The value of the argument that causes this exception + The message that describes the error + the ArgumentOutOfRangeException object + + + Create a new instance of the class + with a specified error message, the parameter name, and the value + of the argument. + + + The Compact Framework does not support the 3 parameter constructor for the + type. This method provides an + implementation that works for all platforms. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Lookup an application setting + + the application settings key to lookup + the value for the key, or null + + + Configuration APIs are not supported under the Compact Framework + + + + + + Convert a path into a fully qualified local file path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + The path specified must be a local file path, a URI is not supported. + + + + + + Creates a new case-insensitive instance of the class with the default initial capacity. + + A new case-insensitive instance of the class with the default initial capacity + + + The new Hashtable instance uses the default load factor, the CaseInsensitiveHashCodeProvider, and the CaseInsensitiveComparer. + + + + + + Tests two strings for equality, the ignoring case. + + + If the platform permits, culture information is ignored completely (ordinal comparison). + The aim of this method is to provide a fast comparison that deals with null and ignores different casing. + It is not supposed to deal with various, culture-specific habits. + Use it to compare against pure ASCII constants, like keywords etc. + + The one string. + The other string. + true if the strings are equal, false otherwise. + + + + Gets an empty array of types. + + + + The Type.EmptyTypes field is not available on + the .NET Compact Framework 1.0. + + + + + + The fully qualified type of the SystemInfo class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Cache the host name for the current machine + + + + + Cache the application friendly name + + + + + Text to output when a null is encountered. + + + + + Text to output when an unsupported feature is requested. + + + + + Start time for the current process. + + + + + Gets the system dependent line terminator. + + + The system dependent line terminator. + + + + Gets the system dependent line terminator. + + + + + + Gets the base directory for this . + + The base directory path for the current . + + + Gets the base directory for this . + + + The value returned may be either a local file path or a URI. + + + + + + Gets the path to the configuration file for the current . + + The path to the configuration file for the current . + + + The .NET Compact Framework 1.0 does not have a concept of a configuration + file. For this runtime, we use the entry assembly location as the root for + the configuration file name. + + + The value returned may be either a local file path or a URI. + + + + + + Gets the path to the file that first executed in the current . + + The path to the entry assembly. + + + Gets the path to the file that first executed in the current . + + + + + + Gets the ID of the current thread. + + The ID of the current thread. + + + On the .NET framework, the AppDomain.GetCurrentThreadId method + is used to obtain the thread ID for the current thread. This is the + operating system ID for the thread. + + + On the .NET Compact Framework 1.0 it is not possible to get the + operating system thread ID for the current thread. The native method + GetCurrentThreadId is implemented inline in a header file + and cannot be called. + + + On the .NET Framework 2.0 the Thread.ManagedThreadId is used as this + gives a stable id unrelated to the operating system thread ID which may + change if the runtime is using fibers. + + + + + + Get the host name or machine name for the current machine + + + The hostname or machine name + + + + Get the host name or machine name for the current machine + + + The host name () or + the machine name (Environment.MachineName) for + the current machine, or if neither of these are available + then NOT AVAILABLE is returned. + + + + + + Get this application's friendly name + + + The friendly name of this application as a string + + + + If available the name of the application is retrieved from + the AppDomain using AppDomain.CurrentDomain.FriendlyName. + + + Otherwise the file name of the entry assembly is used. + + + + + + Get the start time for the current process. + + + + This is the time at which the log4net library was loaded into the + AppDomain. Due to reports of a hang in the call to System.Diagnostics.Process.StartTime + this is not the start time for the current process. + + + The log4net library should be loaded by an application early during its + startup, therefore this start time should be a good approximation for + the actual start time. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating, however this start time + will be set per AppDomain. + + + + + + Get the UTC start time for the current process. + + + + This is the UTC time at which the log4net library was loaded into the + AppDomain. Due to reports of a hang in the call to System.Diagnostics.Process.StartTime + this is not the start time for the current process. + + + The log4net library should be loaded by an application early during its + startup, therefore this start time should be a good approximation for + the actual start time. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating, however this start time + will be set per AppDomain. + + + + + + Text to output when a null is encountered. + + + + Use this value to indicate a null has been encountered while + outputting a string representation of an item. + + + The default value is (null). This value can be overridden by specifying + a value for the log4net.NullText appSetting in the application's + .config file. + + + + + + Text to output when an unsupported feature is requested. + + + + Use this value when an unsupported feature is requested. + + + The default value is NOT AVAILABLE. This value can be overridden by specifying + a value for the log4net.NotAvailableText appSetting in the application's + .config file. + + + + + + Utility class that represents a format string. + + + + Utility class that represents a format string. + + + Nicko Cadell + + + + Initialise the + + An that supplies culture-specific formatting information. + A containing zero or more format items. + An array containing zero or more objects to format. + + + + Format the string and arguments + + the formatted string + + + + Replaces the format item in a specified with the text equivalent + of the value of a corresponding instance in a specified array. + A specified parameter supplies culture-specific formatting information. + + An that supplies culture-specific formatting information. + A containing zero or more format items. + An array containing zero or more objects to format. + + A copy of format in which the format items have been replaced by the + equivalent of the corresponding instances of in args. + + + + This method does not throw exceptions. If an exception thrown while formatting the result the + exception and arguments are returned in the result string. + + + + + + Process an error during StringFormat + + + + + Dump the contents of an array into a string builder + + + + + Dump an object to a string + + + + + The fully qualified type of the SystemStringFormat class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Implementation of Properties collection for the + + + + Class implements a collection of properties that is specific to each thread. + The class is not synchronized as each thread has its own . + + + Nicko Cadell + + + + Each thread will automatically have its instance. + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Remove a property + + the key for the entry to remove + + + Remove a property + + + + + + Get the keys stored in the properties. + + + Gets the keys stored in the properties. + + a set of the defined keys + + + + Clear all properties + + + + Clear all properties + + + + + + Get the PropertiesDictionary for this thread. + + create the dictionary if it does not exist, otherwise return null if does not exist + the properties for this thread + + + The collection returned is only to be used on the calling thread. If the + caller needs to share the collection between different threads then the + caller must clone the collection before doing so. + + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Gets or sets the value of a property + + + + + + Implementation of Stack for the + + + + Implementation of Stack for the + + + Nicko Cadell + + + + The stack store. + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Clears all the contextual information held in this stack. + + + + Clears all the contextual information held in this stack. + Only call this if you think that this tread is being reused after + a previous call execution which may not have completed correctly. + You do not need to use this method if you always guarantee to call + the method of the + returned from even in exceptional circumstances, + for example by using the using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) + syntax. + + + + + + Removes the top context from this stack. + + The message in the context that was removed from the top of this stack. + + + Remove the top context from this stack, and return + it to the caller. If this stack is empty then an + empty string (not ) is returned. + + + + + + Pushes a new context message into this stack. + + The new context message. + + An that can be used to clean up the context stack. + + + + Pushes a new context onto this stack. An + is returned that can be used to clean up this stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) + { + log.Warn("This should have an ThreadContext Stack message"); + } + + + + + + Gets the current context information for this stack. + + The current context information. + + + + Gets the current context information for this stack. + + Gets the current context information + + + Gets the current context information for this stack. + + + + + + Get a portable version of this object + + the portable instance of this object + + + Get a cross thread portable version of this object + + + + + + The number of messages in the stack + + + The current number of messages in the stack + + + + The current number of messages in the stack. That is + the number of times has been called + minus the number of times has been called. + + + + + + Gets and sets the internal stack used by this + + The internal storage stack + + + This property is provided only to support backward compatability + of the . Tytpically the internal stack should not + be modified. + + + + + + Inner class used to represent a single context frame in the stack. + + + + Inner class used to represent a single context frame in the stack. + + + + + + Constructor + + The message for this context. + The parent context in the chain. + + + Initializes a new instance of the class + with the specified message and parent context. + + + + + + Get the message. + + The message. + + + Get the message. + + + + + + Gets the full text of the context down to the root level. + + + The full text of the context down to the root level. + + + + Gets the full text of the context down to the root level. + + + + + + Struct returned from the method. + + + + This struct implements the and is designed to be used + with the pattern to remove the stack frame at the end of the scope. + + + + + + The ThreadContextStack internal stack + + + + + The depth to trim the stack to when this instance is disposed + + + + + Constructor + + The internal stack used by the ThreadContextStack. + The depth to return the stack to when this object is disposed. + + + Initializes a new instance of the class with + the specified stack and return depth. + + + + + + Returns the stack to the correct depth. + + + + Returns the stack to the correct depth. + + + + + + Implementation of Stacks collection for the + + + + Implementation of Stacks collection for the + + + Nicko Cadell + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + The fully qualified type of the ThreadContextStacks class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the named thread context stack + + + The named stack + + + + Gets the named thread context stack + + + + + + Utility class for transforming strings. + + + + Utility class for transforming strings. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Write a string to an + + the writer to write to + the string to write + The string to replace non XML compliant chars with + + + The test is escaped either using XML escape entities + or using CDATA sections. + + + + + + Replace invalid XML characters in text string + + the XML text input string + the string to use in place of invalid characters + A string that does not contain invalid XML characters. + + + Certain Unicode code points are not allowed in the XML InfoSet, for + details see: http://www.w3.org/TR/REC-xml/#charsets. + + + This method replaces any illegal characters in the input string + with the mask string specified. + + + + + + Count the number of times that the substring occurs in the text + + the text to search + the substring to find + the number of times the substring occurs in the text + + + The substring is assumed to be non repeating within itself. + + + + + + Characters illegal in XML 1.0 + + + + + Impersonate a Windows Account + + + + This impersonates a Windows account. + + + How the impersonation is done depends on the value of . + This allows the context to either impersonate a set of user credentials specified + using username, domain name and password or to revert to the process credentials. + + + + + + Default constructor + + + + Default constructor + + + + + + Initialize the SecurityContext based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The security context will try to Logon the specified user account and + capture a primary token for impersonation. + + + The required , + or properties were not specified. + + + + Impersonate the Windows account specified by the and properties. + + caller provided state + + An instance that will revoke the impersonation of this SecurityContext + + + + Depending on the property either + impersonate a user using credentials supplied or revert + to the process credentials. + + + + + + Create a given the userName, domainName and password. + + the user name + the domain name + the password + the for the account specified + + + Uses the Windows API call LogonUser to get a principal token for the account. This + token is used to initialize the WindowsIdentity. + + + + + + Gets or sets the impersonation mode for this security context + + + The impersonation mode for this security context + + + + Impersonate either a user with user credentials or + revert this thread to the credentials of the process. + The value is one of the + enum. + + + The default value is + + + When the mode is set to + the user's credentials are established using the + , and + values. + + + When the mode is set to + no other properties need to be set. If the calling thread is + impersonating then it will be reverted back to the process credentials. + + + + + + Gets or sets the Windows username for this security context + + + The Windows username for this security context + + + + This property must be set if + is set to (the default setting). + + + + + + Gets or sets the Windows domain name for this security context + + + The Windows domain name for this security context + + + + The default value for is the local machine name + taken from the property. + + + This property must be set if + is set to (the default setting). + + + + + + Sets the password for the Windows account specified by the and properties. + + + The password for the Windows account specified by the and properties. + + + + This property must be set if + is set to (the default setting). + + + + + + The impersonation modes for the + + + + See the property for + details. + + + + + + Impersonate a user using the credentials supplied + + + + + Revert this the thread to the credentials of the process + + + + + Adds to + + + + Helper class to expose the + through the interface. + + + + + + Constructor + + the impersonation context being wrapped + + + Constructor + + + + + + Revert the impersonation + + + + Revert the impersonation + + + + + + The log4net Global Context. + + + + The GlobalContext provides a location for global debugging + information to be stored. + + + The global context has a properties map and these properties can + be included in the output of log messages. The + supports selecting and outputing these properties. + + + By default the log4net:HostName property is set to the name of + the current machine. + + + + + GlobalContext.Properties["hostname"] = Environment.MachineName; + + + + Nicko Cadell + + + + Private Constructor. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + The global context properties instance + + + + + The global properties map. + + + The global properties map. + + + + The global properties map. + + + + + + Provides information about the environment the assembly has + been built for. + + + + Version of the assembly + + + Version of the framework targeted + + + Type of framework targeted + + + Does it target a client profile? + + + + Identifies the version and target for this assembly. + + + + + The log4net Logical Thread Context. + + + + The LogicalThreadContext provides a location for specific debugging + information to be stored. + The LogicalThreadContext properties override any or + properties with the same name. + + + For .NET Standard 1.3 this class uses + System.Threading.AsyncLocal rather than . + + + The Logical Thread Context has a properties map and a stack. + The properties and stack can + be included in the output of log messages. The + supports selecting and outputting these properties. + + + The Logical Thread Context provides a diagnostic context for the current call context. + This is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The Logical Thread Context is managed on a per basis. + + + The requires a link time + for the + . + If the calling code does not have this permission then this context will be disabled. + It will not store any property values set on it. + + + Example of using the thread context properties to store a username. + + LogicalThreadContext.Properties["user"] = userName; + log.Info("This log message has a LogicalThreadContext Property called 'user'"); + + + Example of how to push a message into the context stack + + using(LogicalThreadContext.Stacks["LDC"].Push("my context message")) + { + log.Info("This log message has a LogicalThreadContext Stack message that includes 'my context message'"); + + } // at the end of the using block the message is automatically popped + + + + Nicko Cadell + + + + Private Constructor. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + The thread context properties instance + + + + + The thread context stacks instance + + + + + The thread properties map + + + The thread properties map + + + + The LogicalThreadContext properties override any + or properties with the same name. + + + + + + The thread stacks + + + stack map + + + + The logical thread stacks. + + + + + + This class is used by client applications to request logger instances. + + + + This class has static methods that are used by a client to request + a logger instance. The method is + used to retrieve a logger. + + + See the interface for more details. + + + Simple example of logging messages + + ILog log = LogManager.GetLogger("application-log"); + + log.Info("Application Start"); + log.Debug("This is a debug message"); + + if (log.IsDebugEnabled) + { + log.Debug("This is another debug message"); + } + + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + Returns the named logger if it exists. + + Returns the named logger if it exists. + + + + If the named logger exists (in the default repository) then it + returns a reference to the logger, otherwise it returns null. + + + The fully qualified logger name to look for. + The logger found, or null if no logger could be found. + + + Get the currently defined loggers. + + Returns all the currently defined loggers in the default repository. + + + The root logger is not included in the returned array. + + All the defined loggers. + + + Get or create a logger. + + Retrieves or creates a named logger. + + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The name of the logger to retrieve. + The logger with the name specified. + + + + Returns the named logger if it exists. + + + + If the named logger exists (in the specified repository) then it + returns a reference to the logger, otherwise it returns + null. + + + The repository to lookup in. + The fully qualified logger name to look for. + + The logger found, or null if the logger doesn't exist in the specified + repository. + + + + + Returns the named logger if it exists. + + + + If the named logger exists (in the repository for the specified assembly) then it + returns a reference to the logger, otherwise it returns + null. + + + The assembly to use to lookup the repository. + The fully qualified logger name to look for. + + The logger, or null if the logger doesn't exist in the specified + assembly's repository. + + + + + Returns all the currently defined loggers in the specified repository. + + The repository to lookup in. + + The root logger is not included in the returned array. + + All the defined loggers. + + + + Returns all the currently defined loggers in the specified assembly's repository. + + The assembly to use to lookup the repository. + + The root logger is not included in the returned array. + + All the defined loggers. + + + + Retrieves or creates a named logger. + + + + Retrieve a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The repository to lookup in. + The name of the logger to retrieve. + The logger with the name specified. + + + + Retrieves or creates a named logger. + + + + Retrieve a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The assembly to use to lookup the repository. + The name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Get the logger for the fully qualified name of the type specified. + + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Gets the logger for the fully qualified name of the type specified. + + The repository to lookup in. + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Gets the logger for the fully qualified name of the type specified. + + The assembly to use to lookup the repository. + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shuts down the log4net system. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in all the + default repositories. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + Shutdown a logger repository. + + Shuts down the default repository. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + default repository. + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + The repository to shutdown. + + + + Shuts down the repository specified. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository. The repository is looked up using + the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + The assembly to use to lookup the repository. + + + Reset the configuration of a repository + + Resets all values contained in this repository instance to their defaults. + + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + + + + Resets all values contained in this repository instance to their defaults. + + + + Reset all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + The repository to reset. + + + + Resets all values contained in this repository instance to their defaults. + + + + Reset all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + The assembly to use to lookup the repository to reset. + + + Get the logger repository. + + Returns the default instance. + + + + Gets the for the repository specified + by the callers assembly (). + + + The instance for the default repository. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The repository to lookup in. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The assembly to use to lookup the repository. + + + Get a logger repository. + + Returns the default instance. + + + + Gets the for the repository specified + by the callers assembly (). + + + The instance for the default repository. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The repository to lookup in. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The assembly to use to lookup the repository. + + + Create a domain + + Creates a repository with the specified repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to will return + the same repository instance. + + + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + Create a logger repository. + + Creates a repository with the specified repository type. + + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The created will be associated with the repository + specified such that a call to will return + the same repository instance. + + + + + + Creates a repository with the specified name. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name. + + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + The specified repository already exists. + + + + Creates a repository for the specified assembly and repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + + Creates a repository for the specified assembly and repository type. + + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + + Gets the list of currently defined repositories. + + + + Get an array of all the objects that have been created. + + + An array of all the known objects. + + + + Flushes logging events buffered in all configured appenders in the default repository. + + The maximum time in milliseconds to wait for logging events from asycnhronous appenders to be flushed. + True if all logging events were flushed successfully, else false. + + + + Looks up the wrapper object for the logger specified. + + The logger to get the wrapper for. + The wrapper for the logger specified. + + + + Looks up the wrapper objects for the loggers specified. + + The loggers to get the wrappers for. + The wrapper objects for the loggers specified. + + + + Create the objects used by + this manager. + + The logger to wrap. + The wrapper for the logger specified. + + + + The wrapper map to use to hold the objects. + + + + + Implementation of Mapped Diagnostic Contexts. + + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + The MDC class is similar to the class except that it is + based on a map instead of a stack. It provides mapped + diagnostic contexts. A Mapped Diagnostic Context, or + MDC in short, is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The MDC is managed on a per thread basis. + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + Gets the context value identified by the parameter. + + The key to lookup in the MDC. + The string value held for the key, or a null reference if no corresponding value is found. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + If the parameter does not look up to a + previously defined context then null will be returned. + + + + + + Add an entry to the MDC + + The key to store the value under. + The value to store. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Puts a context value (the parameter) as identified + with the parameter into the current thread's + context map. + + + If a value is already defined for the + specified then the value will be replaced. If the + is specified as null then the key value mapping will be removed. + + + + + + Removes the key value mapping for the key specified. + + The key to remove. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Remove the specified entry from this thread's MDC + + + + + + Clear all entries in the MDC + + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Remove all the entries from this thread's MDC + + + + + + Implementation of Nested Diagnostic Contexts. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + A Nested Diagnostic Context, or NDC in short, is an instrument + to distinguish interleaved log output from different sources. Log + output is typically interleaved when a server handles multiple + clients near-simultaneously. + + + Interleaved log output can still be meaningful if each log entry + from different contexts had a distinctive stamp. This is where NDCs + come into play. + + + Note that NDCs are managed on a per thread basis. The NDC class + is made up of static methods that operate on the context of the + calling thread. + + + How to push a message into the context + + using(NDC.Push("my context message")) + { + ... all log calls will have 'my context message' included ... + + } // at the end of the using block the message is automatically removed + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + Clears all the contextual information held on the current thread. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Clears the stack of NDC data held on the current thread. + + + + + + Creates a clone of the stack of context information. + + A clone of the context info for this thread. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + The results of this method can be passed to the + method to allow child threads to inherit the context of their + parent thread. + + + + + + Inherits the contextual information from another thread. + + The context stack to inherit. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + This thread will use the context information from the stack + supplied. This can be used to initialize child threads with + the same contextual information as their parent threads. These + contexts will NOT be shared. Any further contexts that + are pushed onto the stack will not be visible to the other. + Call to obtain a stack to pass to + this method. + + + + + + Removes the top context from the stack. + + + The message in the context that was removed from the top + of the stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Remove the top context from the stack, and return + it to the caller. If the stack is empty then an + empty string (not null) is returned. + + + + + + Pushes a new context message. + + The new context message. + + An that can be used to clean up + the context stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Pushes a new context onto the context stack. An + is returned that can be used to clean up the context stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.NDC.Push("NDC_Message")) + { + log.Warn("This should have an NDC message"); + } + + + + + + Pushes a new context message. + + The new context message string format. + Arguments to be passed into messageFormat. + + An that can be used to clean up + the context stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Pushes a new context onto the context stack. An + is returned that can be used to clean up the context stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + var someValue = "ExampleContext" + using(log4net.NDC.PushFormat("NDC_Message {0}", someValue)) + { + log.Warn("This should have an NDC message"); + } + + + + + + Removes the context information for this thread. It is + not required to call this method. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + This method is not implemented. + + + + + + Forces the stack depth to be at most . + + The maximum depth of the stack + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Forces the stack depth to be at most . + This may truncate the head of the stack. This only affects the + stack in the current thread. Also it does not prevent it from + growing, it only sets the maximum depth at the time of the + call. This can be used to return to a known context depth. + + + + + + Gets the current context depth. + + The current context depth. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + The number of context values pushed onto the context stack. + + + Used to record the current depth of the context. This can then + be restored using the method. + + + + + + + The log4net Thread Context. + + + + The ThreadContext provides a location for thread specific debugging + information to be stored. + The ThreadContext properties override any + properties with the same name. + + + The thread context has a properties map and a stack. + The properties and stack can + be included in the output of log messages. The + supports selecting and outputting these properties. + + + The Thread Context provides a diagnostic context for the current thread. + This is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The Thread Context is managed on a per thread basis. + + + Example of using the thread context properties to store a username. + + ThreadContext.Properties["user"] = userName; + log.Info("This log message has a ThreadContext Property called 'user'"); + + + Example of how to push a message into the context stack + + using(ThreadContext.Stacks["NDC"].Push("my context message")) + { + log.Info("This log message has a ThreadContext Stack message that includes 'my context message'"); + + } // at the end of the using block the message is automatically popped + + + + Nicko Cadell + + + + Private Constructor. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + The thread context properties instance + + + + + The thread context stacks instance + + + + + The thread properties map + + + The thread properties map + + + + The ThreadContext properties override any + properties with the same name. + + + + + + The thread stacks + + + stack map + + + + The thread local stacks. + + + + + diff --git a/packages/log4net.2.0.8/lib/net45-full/log4net.dll b/packages/log4net.2.0.8/lib/net45-full/log4net.dll new file mode 100644 index 0000000..93fb476 Binary files /dev/null and b/packages/log4net.2.0.8/lib/net45-full/log4net.dll differ diff --git a/packages/log4net.2.0.8/lib/net45-full/log4net.xml b/packages/log4net.2.0.8/lib/net45-full/log4net.xml new file mode 100644 index 0000000..df56743 --- /dev/null +++ b/packages/log4net.2.0.8/lib/net45-full/log4net.xml @@ -0,0 +1,32464 @@ + + + + log4net + + + + + Appender that logs to a database. + + + + appends logging events to a table within a + database. The appender can be configured to specify the connection + string by setting the property. + The connection type (provider) can be specified by setting the + property. For more information on database connection strings for + your specific database see http://www.connectionstrings.com/. + + + Records are written into the database either using a prepared + statement or a stored procedure. The property + is set to (System.Data.CommandType.Text) to specify a prepared statement + or to (System.Data.CommandType.StoredProcedure) to specify a stored + procedure. + + + The prepared statement text or the name of the stored procedure + must be set in the property. + + + The prepared statement or stored procedure can take a number + of parameters. Parameters are added using the + method. This adds a single to the + ordered list of parameters. The + type may be subclassed if required to provide database specific + functionality. The specifies + the parameter name, database type, size, and how the value should + be generated using a . + + + + An example of a SQL Server table that could be logged to: + + CREATE TABLE [dbo].[Log] ( + [ID] [int] IDENTITY (1, 1) NOT NULL , + [Date] [datetime] NOT NULL , + [Thread] [varchar] (255) NOT NULL , + [Level] [varchar] (20) NOT NULL , + [Logger] [varchar] (255) NOT NULL , + [Message] [varchar] (4000) NOT NULL + ) ON [PRIMARY] + + + + An example configuration to log to the above table: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Julian Biddle + Nicko Cadell + Gert Driesen + Lance Nehring + + + + Abstract base class implementation of that + buffers events in a fixed size buffer. + + + + This base class should be used by appenders that need to buffer a + number of events before logging them. For example the + buffers events and then submits the entire contents of the buffer to + the underlying database in one go. + + + Subclasses should override the + method to deliver the buffered events. + + The BufferingAppenderSkeleton maintains a fixed size cyclic + buffer of events. The size of the buffer is set using + the property. + + A is used to inspect + each event as it arrives in the appender. If the + triggers, then the current buffer is sent immediately + (see ). Otherwise the event + is stored in the buffer. For example, an evaluator can be used to + deliver the events immediately when an ERROR event arrives. + + + The buffering appender can be configured in a mode. + By default the appender is NOT lossy. When the buffer is full all + the buffered events are sent with . + If the property is set to true then the + buffer will not be sent when it is full, and new events arriving + in the appender will overwrite the oldest event in the buffer. + In lossy mode the buffer will only be sent when the + triggers. This can be useful behavior when you need to know about + ERROR events but not about events with a lower level, configure an + evaluator that will trigger when an ERROR event arrives, the whole + buffer will be sent which gives a history of events leading up to + the ERROR event. + + + Nicko Cadell + Gert Driesen + + + + Abstract base class implementation of . + + + + This class provides the code for common functionality, such + as support for threshold filtering and support for general filters. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + Implement this interface for your own strategies for printing log statements. + + + + Implementors should consider extending the + class which provides a default implementation of this interface. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Log the logging event in Appender specific way. + + The event to log + + + This method is called to log a message into this appender. + + + + + + Gets or sets the name of this appender. + + The name of the appender. + + The name uniquely identifies the appender. + + + + + Interface for appenders that support bulk logging. + + + + This interface extends the interface to + support bulk logging of objects. Appenders + should only implement this interface if they can bulk log efficiently. + + + Nicko Cadell + + + + Log the array of logging events in Appender specific way. + + The events to log + + + This method is called to log an array of events into this appender. + + + + + + Interface used to delay activate a configured object. + + + + This allows an object to defer activation of its options until all + options have been set. This is required for components which have + related options that remain ambiguous until all are set. + + + If a component implements this interface then the method + must be called by the container after its all the configured properties have been set + and before the component can be used. + + + Nicko Cadell + + + + Activate the options that were previously set with calls to properties. + + + + This allows an object to defer activation of its options until all + options have been set. This is required for components which have + related options that remain ambiguous until all are set. + + + If a component implements this interface then this method must be called + after its properties have been set before the component can be used. + + + + + + Interface that can be implemented by Appenders that buffer logging data and expose a method. + + + + + Flushes any buffered log data. + + + Appenders that implement the method must do so in a thread-safe manner: it can be called concurrently with + the method. + + Typically this is done by locking on the Appender instance, e.g.: + + + + + + The parameter is only relevant for appenders that process logging events asynchronously, + such as . + + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + Default constructor + + + Empty default constructor + + + + + Finalizes this appender by calling the implementation's + method. + + + + If this appender has not been closed then the Finalize method + will call . + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Closes the appender and release resources. + + + + Release any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + This method cannot be overridden by subclasses. This method + delegates the closing of the appender to the + method which must be overridden in the subclass. + + + + + + Performs threshold checks and invokes filters before + delegating actual logging to the subclasses specific + method. + + The event to log. + + + This method cannot be overridden by derived classes. A + derived class should override the method + which is called by this method. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + Calls and checks that + it returns true. + + + + + If all of the above steps succeed then the + will be passed to the abstract method. + + + + + + Performs threshold checks and invokes filters before + delegating actual logging to the subclasses specific + method. + + The array of events to log. + + + This method cannot be overridden by derived classes. A + derived class should override the method + which is called by this method. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + Calls and checks that + it returns true. + + + + + If all of the above steps succeed then the + will be passed to the method. + + + + + + Test if the logging event should we output by this appender + + the event to test + true if the event should be output, false if the event should be ignored + + + This method checks the logging event against the threshold level set + on this appender and also against the filters specified on this + appender. + + + The implementation of this method is as follows: + + + + + + Checks that the severity of the + is greater than or equal to the of this + appender. + + + + Checks that the chain accepts the + . + + + + + + + + + Adds a filter to the end of the filter chain. + + the filter to add to this appender + + + The Filters are organized in a linked list. + + + Setting this property causes the new filter to be pushed onto the + back of the filter chain. + + + + + + Clears the filter list for this appender. + + + + Clears the filter list for this appender. + + + + + + Checks if the message level is below this appender's threshold. + + to test against. + + + If there is no threshold set, then the return value is always true. + + + + true if the meets the + requirements of this appender. + + + + + Is called when the appender is closed. Derived classes should override + this method if resources need to be released. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Subclasses of should implement this method + to perform actual logging. + + The event to append. + + + A subclass must implement this method to perform + logging of the . + + This method will be called by + if all the conditions listed for that method are met. + + + To restrict the logging of events in the appender + override the method. + + + + + + Append a bulk array of logging events. + + the array of logging events + + + This base class implementation calls the + method for each element in the bulk array. + + + A sub class that can better process a bulk array of events should + override this method in addition to . + + + + + + Called before as a precondition. + + + + This method is called by + before the call to the abstract method. + + + This method can be overridden in a subclass to extend the checks + made before the event is passed to the method. + + + A subclass should ensure that they delegate this call to + this base class if it is overridden. + + + true if the call to should proceed. + + + + Renders the to a string. + + The event to render. + The event rendered as a string. + + + Helper method to render a to + a string. This appender must have a + set to render the to + a string. + + If there is exception data in the logging event and + the layout does not process the exception, this method + will append the exception text to the rendered string. + + + Where possible use the alternative version of this method + . + That method streams the rendering onto an existing Writer + which can give better performance if the caller already has + a open and ready for writing. + + + + + + Renders the to a string. + + The event to render. + The TextWriter to write the formatted event to + + + Helper method to render a to + a string. This appender must have a + set to render the to + a string. + + If there is exception data in the logging event and + the layout does not process the exception, this method + will append the exception text to the rendered string. + + + Use this method in preference to + where possible. If, however, the caller needs to render the event + to a string then does + provide an efficient mechanism for doing so. + + + + + + Flushes any buffered log data. + + + This implementation doesn't flush anything and always returns true + + True if all logging events were flushed successfully, else false. + + + + The layout of this appender. + + + See for more information. + + + + + The name of this appender. + + + See for more information. + + + + + The level threshold of this appender. + + + + There is no level threshold filtering by default. + + + See for more information. + + + + + + It is assumed and enforced that errorHandler is never null. + + + + It is assumed and enforced that errorHandler is never null. + + + See for more information. + + + + + + The first filter in the filter chain. + + + + Set to null initially. + + + See for more information. + + + + + + The last filter in the filter chain. + + + See for more information. + + + + + Flag indicating if this appender is closed. + + + See for more information. + + + + + The guard prevents an appender from repeatedly calling its own DoAppend method + + + + + StringWriter used to render events + + + + + The fully qualified type of the AppenderSkeleton class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the threshold of this appender. + + + The threshold of the appender. + + + + All log events with lower level than the threshold level are ignored + by the appender. + + + In configuration files this option is specified by setting the + value of the option to a level + string, such as "DEBUG", "INFO" and so on. + + + + + + Gets or sets the for this appender. + + The of the appender + + + The provides a default + implementation for the property. + + + + + + The filter chain. + + The head of the filter chain filter chain. + + + Returns the head Filter. The Filters are organized in a linked list + and so all Filters on this Appender are available through the result. + + + + + + Gets or sets the for this appender. + + The layout of the appender. + + + See for more information. + + + + + + + Gets or sets the name of this appender. + + The name of the appender. + + + The name uniquely identifies the appender. + + + + + + Tests if this appender requires a to be set. + + + + In the rather exceptional case, where the appender + implementation admits a layout but can also work without it, + then the appender should return true. + + + This default implementation always returns false. + + + + true if the appender requires a layout object, otherwise false. + + + + + The default buffer size. + + + The default size of the cyclic buffer used to store events. + This is set to 512 by default. + + + + + Initializes a new instance of the class. + + + + Protected default constructor to allow subclassing. + + + + + + Initializes a new instance of the class. + + the events passed through this appender must be + fixed by the time that they arrive in the derived class' SendBuffer method. + + + Protected constructor to allow subclassing. + + + The should be set if the subclass + expects the events delivered to be fixed even if the + is set to zero, i.e. when no buffering occurs. + + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Flush the currently buffered events + + + + Flushes any events that have been buffered. + + + If the appender is buffering in mode then the contents + of the buffer will NOT be flushed to the appender. + + + + + + Flush the currently buffered events + + set to true to flush the buffer of lossy events + + + Flushes events that have been buffered. If is + false then events will only be flushed if this buffer is non-lossy mode. + + + If the appender is buffering in mode then the contents + of the buffer will only be flushed if is true. + In this case the contents of the buffer will be tested against the + and if triggering will be output. All other buffered + events will be discarded. + + + If is true then the buffer will always + be emptied by calling this method. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Close this appender instance. + + + + Close this appender instance. If this appender is marked + as not then the remaining events in + the buffer must be sent when the appender is closed. + + + + + + This method is called by the method. + + the event to log + + + Stores the in the cyclic buffer. + + + The buffer will be sent (i.e. passed to the + method) if one of the following conditions is met: + + + + The cyclic buffer is full and this appender is + marked as not lossy (see ) + + + An is set and + it is triggered for the + specified. + + + + Before the event is stored in the buffer it is fixed + (see ) to ensure that + any data referenced by the event will be valid when the buffer + is processed. + + + + + + Sends the contents of the buffer. + + The first logging event. + The buffer containing the events that need to be send. + + + The subclass must override . + + + + + + Sends the events. + + The events that need to be send. + + + The subclass must override this method to process the buffered events. + + + + + + The size of the cyclic buffer used to hold the logging events. + + + Set to by default. + + + + + The cyclic buffer used to store the logging events. + + + + + The triggering event evaluator that causes the buffer to be sent immediately. + + + The object that is used to determine if an event causes the entire + buffer to be sent immediately. This field can be null, which + indicates that event triggering is not to be done. The evaluator + can be set using the property. If this appender + has the ( property) set to + true then an must be set. + + + + + Indicates if the appender should overwrite events in the cyclic buffer + when it becomes full, or if the buffer should be flushed when the + buffer is full. + + + If this field is set to true then an must + be set. + + + + + The triggering event evaluator filters discarded events. + + + The object that is used to determine if an event that is discarded should + really be discarded or if it should be sent to the appenders. + This field can be null, which indicates that all discarded events will + be discarded. + + + + + Value indicating which fields in the event should be fixed + + + By default all fields are fixed + + + + + The events delivered to the subclass must be fixed. + + + + + Gets or sets a value that indicates whether the appender is lossy. + + + true if the appender is lossy, otherwise false. The default is false. + + + + This appender uses a buffer to store logging events before + delivering them. A triggering event causes the whole buffer + to be send to the remote sink. If the buffer overruns before + a triggering event then logging events could be lost. Set + to false to prevent logging events + from being lost. + + If is set to true then an + must be specified. + + + + + Gets or sets the size of the cyclic buffer used to hold the + logging events. + + + The size of the cyclic buffer used to hold the logging events. + + + + The option takes a positive integer + representing the maximum number of logging events to collect in + a cyclic buffer. When the is reached, + oldest events are deleted as new events are added to the + buffer. By default the size of the cyclic buffer is 512 events. + + + If the is set to a value less than + or equal to 1 then no buffering will occur. The logging event + will be delivered synchronously (depending on the + and properties). Otherwise the event will + be buffered. + + + + + + Gets or sets the that causes the + buffer to be sent immediately. + + + The that causes the buffer to be + sent immediately. + + + + The evaluator will be called for each event that is appended to this + appender. If the evaluator triggers then the current buffer will + immediately be sent (see ). + + If is set to true then an + must be specified. + + + + + Gets or sets the value of the to use. + + + The value of the to use. + + + + The evaluator will be called for each event that is discarded from this + appender. If the evaluator triggers then the current buffer will immediately + be sent (see ). + + + + + + Gets or sets a value indicating if only part of the logging event data + should be fixed. + + + true if the appender should only fix part of the logging event + data, otherwise false. The default is false. + + + + Setting this property to true will cause only part of the + event data to be fixed and serialized. This will improve performance. + + + See for more information. + + + + + + Gets or sets a the fields that will be fixed in the event + + + The event fields that will be fixed before the event is buffered + + + + The logging event needs to have certain thread specific values + captured before it can be buffered. See + for details. + + + + + + + Initializes a new instance of the class. + + + Public default constructor to initialize a new instance of this class. + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Override the parent method to close the database + + + + Closes the database command and database connection. + + + + + + Inserts the events into the database. + + The events to insert into the database. + + + Insert all the events specified in the + array into the database. + + + + + + Adds a parameter to the command. + + The parameter to add to the command. + + + Adds a parameter to the ordered list of command parameters. + + + + + + Writes the events to the database using the transaction specified. + + The transaction that the events will be executed under. + The array of events to insert into the database. + + + The transaction argument can be null if the appender has been + configured not to use transactions. See + property for more information. + + + + + + Formats the log message into database statement text. + + The event being logged. + + This method can be overridden by subclasses to provide + more control over the format of the database statement. + + + Text that can be passed to a . + + + + + Creates an instance used to connect to the database. + + + This method is called whenever a new IDbConnection is needed (i.e. when a reconnect is necessary). + + The of the object. + The connectionString output from the ResolveConnectionString method. + An instance with a valid connection string. + + + + Resolves the connection string from the ConnectionString, ConnectionStringName, or AppSettingsKey + property. + + + ConnectiongStringName is only supported on .NET 2.0 and higher. + + Additional information describing the connection string. + A connection string used to connect to the database. + + + + Retrieves the class type of the ADO.NET provider. + + + + Gets the Type of the ADO.NET provider to use to connect to the + database. This method resolves the type specified in the + property. + + + Subclasses can override this method to return a different type + if necessary. + + + The of the ADO.NET provider + + + + Connects to the database. + + + + + Cleanup the existing connection. + + + Calls the IDbConnection's method. + + + + + The list of objects. + + + + The list of objects. + + + + + + The security context to use for privileged calls + + + + + The that will be used + to insert logging events into a database. + + + + + Database connection string. + + + + + The appSettings key from App.Config that contains the connection string. + + + + + The connectionStrings key from App.Config that contains the connection string. + + + + + String type name of the type name. + + + + + The text of the command. + + + + + The command type. + + + + + Indicates whether to use transactions when writing to the database. + + + + + Indicates whether to reconnect when a connection is lost. + + + + + The fully qualified type of the AdoNetAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the database connection string that is used to connect to + the database. + + + The database connection string used to connect to the database. + + + + The connections string is specific to the connection type. + See for more information. + + + Connection string for MS Access via ODBC: + "DSN=MS Access Database;UID=admin;PWD=;SystemDB=C:\data\System.mdw;SafeTransactions = 0;FIL=MS Access;DriverID = 25;DBQ=C:\data\train33.mdb" + + Another connection string for MS Access via ODBC: + "Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\Work\cvs_root\log4net-1.2\access.mdb;UID=;PWD=;" + + Connection string for MS Access via OLE DB: + "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Work\cvs_root\log4net-1.2\access.mdb;User Id=;Password=;" + + + + + The appSettings key from App.Config that contains the connection string. + + + + + The connectionStrings key from App.Config that contains the connection string. + + + This property requires at least .NET 2.0. + + + + + Gets or sets the type name of the connection + that should be created. + + + The type name of the connection. + + + + The type name of the ADO.NET provider to use. + + + The default is to use the OLE DB provider. + + + Use the OLE DB Provider. This is the default value. + System.Data.OleDb.OleDbConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Use the MS SQL Server Provider. + System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Use the ODBC Provider. + Microsoft.Data.Odbc.OdbcConnection,Microsoft.Data.Odbc,version=1.0.3300.0,publicKeyToken=b77a5c561934e089,culture=neutral + This is an optional package that you can download from + http://msdn.microsoft.com/downloads + search for ODBC .NET Data Provider. + + Use the Oracle Provider. + System.Data.OracleClient.OracleConnection, System.Data.OracleClient, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + This is an optional package that you can download from + http://msdn.microsoft.com/downloads + search for .NET Managed Provider for Oracle. + + + + + Gets or sets the command text that is used to insert logging events + into the database. + + + The command text used to insert logging events into the database. + + + + Either the text of the prepared statement or the + name of the stored procedure to execute to write into + the database. + + + The property determines if + this text is a prepared statement or a stored procedure. + + + If this property is not set, the command text is retrieved by invoking + . + + + + + + Gets or sets the command type to execute. + + + The command type to execute. + + + + This value may be either (System.Data.CommandType.Text) to specify + that the is a prepared statement to execute, + or (System.Data.CommandType.StoredProcedure) to specify that the + property is the name of a stored procedure + to execute. + + + The default value is (System.Data.CommandType.Text). + + + + + + Should transactions be used to insert logging events in the database. + + + true if transactions should be used to insert logging events in + the database, otherwise false. The default value is true. + + + + Gets or sets a value that indicates whether transactions should be used + to insert logging events in the database. + + + When set a single transaction will be used to insert the buffered events + into the database. Otherwise each event will be inserted without using + an explicit transaction. + + + + + + Gets or sets the used to call the NetSend method. + + + The used to call the NetSend method. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Should this appender try to reconnect to the database on error. + + + true if the appender should try to reconnect to the database after an + error has occurred, otherwise false. The default value is false, + i.e. not to try to reconnect. + + + + The default behaviour is for the appender not to try to reconnect to the + database if an error occurs. Subsequent logging events are discarded. + + + To force the appender to attempt to reconnect to the database set this + property to true. + + + When the appender attempts to connect to the database there may be a + delay of up to the connection timeout specified in the connection string. + This delay will block the calling application's thread. + Until the connection can be reestablished this potential delay may occur multiple times. + + + + + + Gets or sets the underlying . + + + The underlying . + + + creates a to insert + logging events into a database. Classes deriving from + can use this property to get or set this . Use the + underlying returned from if + you require access beyond that which provides. + + + + + Parameter type used by the . + + + + This class provides the basic database parameter properties + as defined by the interface. + + This type can be subclassed to provide database specific + functionality. The two methods that are called externally are + and . + + + + + + Initializes a new instance of the class. + + + Default constructor for the AdoNetAppenderParameter class. + + + + + Prepare the specified database command object. + + The command to prepare. + + + Prepares the database command object by adding + this parameter to its collection of parameters. + + + + + + Renders the logging event and set the parameter value in the command. + + The command containing the parameter. + The event to be rendered. + + + Renders the logging event using this parameters layout + object. Sets the value of the parameter on the command object. + + + + + + The name of this parameter. + + + + + The database type for this parameter. + + + + + Flag to infer type rather than use the DbType + + + + + The precision for this parameter. + + + + + The scale for this parameter. + + + + + The size for this parameter. + + + + + The to use to render the + logging event into an object for this parameter. + + + + + Gets or sets the name of this parameter. + + + The name of this parameter. + + + + The name of this parameter. The parameter name + must match up to a named parameter to the SQL stored procedure + or prepared statement. + + + + + + Gets or sets the database type for this parameter. + + + The database type for this parameter. + + + + The database type for this parameter. This property should + be set to the database type from the + enumeration. See . + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the type from the value. + + + + + + + Gets or sets the precision for this parameter. + + + The precision for this parameter. + + + + The maximum number of digits used to represent the Value. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the precision from the value. + + + + + + + Gets or sets the scale for this parameter. + + + The scale for this parameter. + + + + The number of decimal places to which Value is resolved. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the scale from the value. + + + + + + + Gets or sets the size for this parameter. + + + The size for this parameter. + + + + The maximum size, in bytes, of the data within the column. + + + This property is optional. If not specified the ADO.NET provider + will attempt to infer the size from the value. + + + For BLOB data types like VARCHAR(max) it may be impossible to infer the value automatically, use -1 as the size in this case. + + + + + + + Gets or sets the to use to + render the logging event into an object for this + parameter. + + + The used to render the + logging event into an object for this parameter. + + + + The that renders the value for this + parameter. + + + The can be used to adapt + any into a + for use in the property. + + + + + + Appends logging events to the terminal using ANSI color escape sequences. + + + + AnsiColorTerminalAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific level of message to be set. + + + This appender expects the terminal to understand the VT100 control set + in order to interpret the color codes. If the terminal or console does not + understand the control codes the behavior is not defined. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes each message to the System.Console.Out or + System.Console.Error that is set at the time the event is appended. + Therefore it is possible to programmatically redirect the output of this appender + (for example NUnit does this to capture program output). While this is the desired + behavior of this appender it may have security implications in your application. + + + When configuring the ANSI colored terminal appender, a mapping should be + specified to map a logging level to a color. For example: + + + + + + + + + + + + + + + The Level is the standard log4net logging level and ForeColor and BackColor can be any + of the following values: + + Blue + Green + Red + White + Yellow + Purple + Cyan + + These color values cannot be combined together to make new colors. + + + The attributes can be any combination of the following: + + Brightforeground is brighter + Dimforeground is dimmer + Underscoremessage is underlined + Blinkforeground is blinking (does not work on all terminals) + Reverseforeground and background are reversed + Hiddenoutput is hidden + Strikethroughmessage has a line through it + + While any of these attributes may be combined together not all combinations + work well together, for example setting both Bright and Dim attributes makes + no sense. + + + Patrick Wagstrom + Nicko Cadell + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Ansi code to reset terminal + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Add a mapping of level to color + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colours + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + Target is the value of the console output stream. + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + The enum of possible display attributes + + + + The following flags can be combined together to + form the ANSI color attributes. + + + + + + + text is bright + + + + + text is dim + + + + + text is underlined + + + + + text is blinking + + + Not all terminals support this attribute + + + + + text and background colors are reversed + + + + + text is hidden + + + + + text is displayed with a strikethrough + + + + + text color is light + + + + + The enum of possible foreground or background color values for + use with the color mapping method + + + + The output can be in one for the following ANSI colors. + + + + + + + color is black + + + + + color is red + + + + + color is green + + + + + color is yellow + + + + + color is blue + + + + + color is magenta + + + + + color is cyan + + + + + color is white + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + An entry in the + + + + This is an abstract base class for types that are stored in the + object. + + + Nicko Cadell + + + + Default protected constructor + + + + Default protected constructor + + + + + + Initialize any options defined on this entry + + + + Should be overridden by any classes that need to initialise based on their options + + + + + + The level that is the key for this mapping + + + The that is the key for this mapping + + + + Get or set the that is the key for this + mapping subclass. + + + + + + Initialize the options for the object + + + + Combine the and together + and append the attributes. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level + + + + + + The color attributes for the specified level + + + + Required property. + The color attributes for the specified level + + + + + + The combined , and + suitable for setting the ansi terminal color. + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Creates a read-only wrapper for a AppenderCollection instance. + + list to create a readonly wrapper arround + + An AppenderCollection wrapper that is read-only. + + + + + An empty readonly static AppenderCollection + + + + + Initializes a new instance of the AppenderCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the AppenderCollection class + that has the specified initial capacity. + + + The number of elements that the new AppenderCollection is initially capable of storing. + + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified AppenderCollection. + + The AppenderCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the AppenderCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Allow subclasses to avoid our default constructors + + + + + + + Copies the entire AppenderCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire AppenderCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Adds a to the end of the AppenderCollection. + + The to be added to the end of the AppenderCollection. + The index at which the value has been added. + + + + Removes all elements from the AppenderCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the AppenderCollection. + + The to check for. + true if is found in the AppenderCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the AppenderCollection. + + The to locate in the AppenderCollection. + + The zero-based index of the first occurrence of + in the entire AppenderCollection, if found; otherwise, -1. + + + + + Inserts an element into the AppenderCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the AppenderCollection. + + The to remove from the AppenderCollection. + + The specified was not found in the AppenderCollection. + + + + + Removes the element at the specified index of the AppenderCollection. + + The zero-based index of the element to remove. + + is less than zero + -or- + is equal to or greater than . + + + + + Returns an enumerator that can iterate through the AppenderCollection. + + An for the entire AppenderCollection. + + + + Adds the elements of another AppenderCollection to the current AppenderCollection. + + The AppenderCollection whose elements should be added to the end of the current AppenderCollection. + The new of the AppenderCollection. + + + + Adds the elements of a array to the current AppenderCollection. + + The array whose elements should be added to the end of the AppenderCollection. + The new of the AppenderCollection. + + + + Adds the elements of a collection to the current AppenderCollection. + + The collection whose elements should be added to the end of the AppenderCollection. + The new of the AppenderCollection. + + + + Sets the capacity to the actual number of elements. + + + + + Return the collection elements as an array + + the array + + + + is less than zero + -or- + is equal to or greater than . + + + + + is less than zero + -or- + is equal to or greater than . + + + + + Gets the number of elements actually contained in the AppenderCollection. + + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + The zero-based index of the element to get or set. + + is less than zero + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false + + + + Gets or sets the number of elements the AppenderCollection can contain. + + + + + Supports type-safe iteration over a . + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + + A value + + + + + Supports simple iteration over a . + + + + + + Initializes a new instance of the Enumerator class. + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + + + + + Appends log events to the ASP.NET system. + + + + + Diagnostic information and tracing messages that you specify are appended to the output + of the page that is sent to the requesting browser. Optionally, you can view this information + from a separate trace viewer (Trace.axd) that displays trace information for every page in a + given application. + + + Trace statements are processed and displayed only when tracing is enabled. You can control + whether tracing is displayed to a page, to the trace viewer, or both. + + + The logging event is passed to the or + method depending on the level of the logging event. + The event's logger name is the default value for the category parameter of the Write/Warn method. + + + Nicko Cadell + Gert Driesen + Ron Grabowski + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Write the logging event to the ASP.NET trace + + the event to log + + + Write the logging event to the ASP.NET trace + HttpContext.Current.Trace + (). + + + + + + Defaults to %logger + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + The category parameter sent to the Trace method. + + + + Defaults to %logger which will use the logger name of the current + as the category parameter. + + + + + + + + Buffers events and then forwards them to attached appenders. + + + + The events are buffered in this appender until conditions are + met to allow the appender to deliver the events to the attached + appenders. See for the + conditions that cause the buffer to be sent. + + The forwarding appender can be used to specify different + thresholds and filters for the same appender at different locations + within the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Interface for attaching appenders to objects. + + + + Interface for attaching, removing and retrieving appenders. + + + Nicko Cadell + Gert Driesen + + + + Attaches an appender. + + The appender to add. + + + Add the specified appender. The implementation may + choose to allow or deny duplicate appenders. + + + + + + Gets an attached appender with the specified name. + + The name of the appender to get. + + The appender with the name specified, or null if no appender with the + specified name is found. + + + + Returns an attached appender with the specified. + If no appender with the specified name is found null will be + returned. + + + + + + Removes all attached appenders. + + + + Removes and closes all attached appenders + + + + + + Removes the specified appender from the list of attached appenders. + + The appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Gets all attached appenders. + + + A collection of attached appenders. + + + + Gets a collection of attached appenders. + If there are no attached appenders the + implementation should return an empty + collection rather than null. + + + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Send the events. + + The events that need to be send. + + + Forwards the events to the attached appenders. + + + + + + Adds an to the list of appenders of this + instance. + + The to add to this appender. + + + If the specified is already in the list of + appenders, then it won't be added again. + + + + + + Looks for the appender with the specified name. + + The name of the appender to lookup. + + The appender with the specified name, or null. + + + + Get the named appender attached to this buffering appender. + + + + + + Removes all previously added appenders from this appender. + + + + This is useful when re-reading configuration information. + + + + + + Removes the specified appender from the list of appenders. + + The appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Implementation of the interface + + + + + Gets the appenders contained in this appender as an + . + + + If no appenders can be found, then an + is returned. + + + A collection of the appenders in this appender. + + + + + Appends logging events to the console. + + + + ColoredConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific type of message to be set. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes directly to the application's attached console + not to the System.Console.Out or System.Console.Error TextWriter. + The System.Console.Out and System.Console.Error streams can be + programmatically redirected (for example NUnit does this to capture program output). + This appender will ignore these redirections because it needs to use Win32 + API calls to colorize the output. To respect these redirections the + must be used. + + + When configuring the colored console appender, mapping should be + specified to map a logging level to a color. For example: + + + + + + + + + + + + + + The Level is the standard log4net logging level and ForeColor and BackColor can be any + combination of the following values: + + Blue + Green + Red + White + Yellow + Purple + Cyan + HighIntensity + + + + Rick Hobbs + Nicko Cadell + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + flag set to true to write to the console error stream + + When is set to true, output is written to + the standard error output stream. Otherwise, output is written to the standard + output stream. + + + + + Add a mapping of level to color - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colors + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + The console output stream writer to write to + + + + This writer is not thread safe. + + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + The enum of possible color values for use with the color mapping method + + + + The following flags can be combined together to + form the colors. + + + + + + + color is blue + + + + + color is green + + + + + color is red + + + + + color is white + + + + + color is yellow + + + + + color is purple + + + + + color is cyan + + + + + color is intensified + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + Initialize the options for the object + + + + Combine the and together. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level. + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level. + + + + + + The combined and suitable for + setting the console color. + + + + + Appends logging events to the console. + + + + ConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + NOTE: This appender writes each message to the System.Console.Out or + System.Console.Error that is set at the time the event is appended. + Therefore it is possible to programmatically redirect the output of this appender + (for example NUnit does this to capture program output). While this is the desired + behavior of this appender it may have security implications in your application. + + + Nicko Cadell + Gert Driesen + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + + The instance of the class is set up to write + to the standard output stream. + + + + + Initializes a new instance of the class + with the specified layout. + + the layout to use for this appender + flag set to true to write to the console error stream + + When is set to true, output is written to + the standard error output stream. Otherwise, output is written to the standard + output stream. + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Appends log events to the system. + + + + The application configuration file can be used to control what listeners + are actually used. See the MSDN documentation for the + class for details on configuring the + debug system. + + + Events are written using the + method. The event's logger name is passed as the value for the category name to the Write method. + + + Nicko Cadell + + + + Initializes a new instance of the . + + + + Default constructor. + + + + + + Initializes a new instance of the + with a specified layout. + + The layout to use with this appender. + + + Obsolete constructor. + + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Writes the logging event to the system. + + The event to log. + + + Writes the logging event to the system. + If is true then the + is called. + + + + + + Immediate flush means that the underlying writer or output stream + will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logs events are not actually written to persistent media if and + when the application crashes. + + + The default value is true. + + + + + Defaults to a with %logger as the pattern. + + + + + Gets or sets a value that indicates whether the appender will + flush at the end of each write. + + + The default behavior is to flush at the end of each + write. If the option is set tofalse, then the underlying + stream can defer writing to physical medium to a later time. + + + Avoiding the flush operation at the end of each append results + in a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + + Formats the category parameter sent to the Debug method. + + + + Defaults to a with %logger as the pattern which will use the logger name of the current + as the category parameter. + + + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Writes events to the system event log. + + + + The appender will fail if you try to write using an event source that doesn't exist unless it is running with local administrator privileges. + See also http://logging.apache.org/log4net/release/faq.html#trouble-EventLog + + + The EventID of the event log entry can be + set using the EventID property () + on the . + + + The Category of the event log entry can be + set using the Category property () + on the . + + + There is a limit of 32K characters for an event log message + + + When configuring the EventLogAppender a mapping can be + specified to map a logging level to an event log entry type. For example: + + + <mapping> + <level value="ERROR" /> + <eventLogEntryType value="Error" /> + </mapping> + <mapping> + <level value="DEBUG" /> + <eventLogEntryType value="Information" /> + </mapping> + + + The Level is the standard log4net logging level and eventLogEntryType can be any value + from the enum, i.e.: + + Erroran error event + Warninga warning event + Informationan informational event + + + + Aspi Havewala + Douglas de la Torre + Nicko Cadell + Gert Driesen + Thomas Voss + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initializes a new instance of the class + with the specified . + + The to use with this appender. + + + Obsolete constructor. + + + + + + Add a mapping of level to - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the event log entry type for a level. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Create an event log source + + + Uses different API calls under NET_2_0 + + + + + This method is called by the + method. + + the event to log + + Writes the event to the system event log using the + . + + If the event has an EventID property (see ) + set then this integer will be used as the event log event id. + + + There is a limit of 32K characters for an event log message + + + + + + Get the equivalent for a + + the Level to convert to an EventLogEntryType + The equivalent for a + + Because there are fewer applicable + values to use in logging levels than there are in the + this is a one way mapping. There is + a loss of information during the conversion. + + + + + The log name is the section in the event logs where the messages + are stored. + + + + + Name of the application to use when logging. This appears in the + application column of the event log named by . + + + + + The name of the machine which holds the event log. This is + currently only allowed to be '.' i.e. the current machine. + + + + + Mapping from level object to EventLogEntryType + + + + + The security context to use for privileged calls + + + + + The event ID to use unless one is explicitly specified via the LoggingEvent's properties. + + + + + The event category to use unless one is explicitly specified via the LoggingEvent's properties. + + + + + The fully qualified type of the EventLogAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + The maximum size supported by default. + + + http://msdn.microsoft.com/en-us/library/xzwc042w(v=vs.100).aspx + The 32766 documented max size is two bytes shy of 32K (I'm assuming 32766 + may leave space for a two byte null terminator of #0#0). The 32766 max + length is what the .NET 4.0 source code checks for, but this is WRONG! + Strings with a length > 31839 on Windows Vista or higher can CORRUPT + the event log! See: System.Diagnostics.EventLogInternal.InternalWriteEvent() + for the use of the 32766 max size. + + + + + The maximum size supported by a windows operating system that is vista + or newer. + + + See ReportEvent API: + http://msdn.microsoft.com/en-us/library/aa363679(VS.85).aspx + ReportEvent's lpStrings parameter: + "A pointer to a buffer containing an array of + null-terminated strings that are merged into the message before Event Viewer + displays the string to the user. This parameter must be a valid pointer + (or NULL), even if wNumStrings is zero. Each string is limited to 31,839 characters." + + Going beyond the size of 31839 will (at some point) corrupt the event log on Windows + Vista or higher! It may succeed for a while...but you will eventually run into the + error: "System.ComponentModel.Win32Exception : A device attached to the system is + not functioning", and the event log will then be corrupt (I was able to corrupt + an event log using a length of 31877 on Windows 7). + + The max size for Windows Vista or higher is documented here: + http://msdn.microsoft.com/en-us/library/xzwc042w(v=vs.100).aspx. + Going over this size may succeed a few times but the buffer will overrun and + eventually corrupt the log (based on testing). + + The maxEventMsgSize size is based on the max buffer size of the lpStrings parameter of the ReportEvent API. + The documented max size for EventLog.WriteEntry for Windows Vista and higher is 31839, but I'm leaving room for a + terminator of #0#0, as we cannot see the source of ReportEvent (though we could use an API monitor to examine the + buffer, given enough time). + + + + + The maximum size that the operating system supports for + a event log message. + + + Used to determine the maximum string length that can be written + to the operating system event log and eventually truncate a string + that exceeds the limits. + + + + + This method determines the maximum event log message size allowed for + the current environment. + + + + + + The name of the log where messages will be stored. + + + The string name of the log where messages will be stored. + + + This is the name of the log as it appears in the Event Viewer + tree. The default value is to log into the Application + log, this is where most applications write their events. However + if you need a separate log for your application (or applications) + then you should set the appropriately. + This should not be used to distinguish your event log messages + from those of other applications, the + property should be used to distinguish events. This property should be + used to group together events into a single log. + + + + + + Property used to set the Application name. This appears in the + event logs when logging. + + + The string used to distinguish events from different sources. + + + Sets the event log source property. + + + + + This property is used to return the name of the computer to use + when accessing the event logs. Currently, this is the current + computer, denoted by a dot "." + + + The string name of the machine holding the event log that + will be logged into. + + + This property cannot be changed. It is currently set to '.' + i.e. the local machine. This may be changed in future. + + + + + Gets or sets the used to write to the EventLog. + + + The used to write to the EventLog. + + + + The system security context used to write to the EventLog. + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Gets or sets the EventId to use unless one is explicitly specified via the LoggingEvent's properties. + + + + The EventID of the event log entry will normally be + set using the EventID property () + on the . + This property provides the fallback value which defaults to 0. + + + + + + Gets or sets the Category to use unless one is explicitly specified via the LoggingEvent's properties. + + + + The Category of the event log entry will normally be + set using the Category property () + on the . + This property provides the fallback value which defaults to 0. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and its event log entry type. + + + + + + The for this entry + + + + Required property. + The for this entry + + + + + + Appends logging events to a file. + + + + Logging events are sent to the file specified by + the property. + + + The file can be opened in either append or overwrite mode + by specifying the property. + If the file path is relative it is taken as relative from + the application base directory. The file encoding can be + specified by setting the property. + + + The layout's and + values will be written each time the file is opened and closed + respectively. If the property is + then the file may contain multiple copies of the header and footer. + + + This appender will first try to open the file for writing when + is called. This will typically be during configuration. + If the file cannot be opened for writing the appender will attempt + to open the file again each time a message is logged to the appender. + If the file cannot be opened for writing when a message is logged then + the message will be discarded by this appender. + + + The supports pluggable file locking models via + the property. + The default behavior, implemented by + is to obtain an exclusive write lock on the file until this appender is closed. + The alternative models only hold a + write lock while the appender is writing a logging event () + or synchronize by using a named system wide Mutex (). + + + All locking strategies have issues and you should seriously consider using a different strategy that + avoids having multiple processes logging to the same file. + + + Nicko Cadell + Gert Driesen + Rodrigo B. de Oliveira + Douglas de la Torre + Niall Daley + + + + Sends logging events to a . + + + + An Appender that writes to a . + + + This appender may be used stand alone if initialized with an appropriate + writer, however it is typically used as a base class for an appender that + can open a to write to. + + + Nicko Cadell + Gert Driesen + Douglas de la Torre + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initializes a new instance of the class and + sets the output destination to a new initialized + with the specified . + + The layout to use with this appender. + The to output to. + + + Obsolete constructor. + + + + + + Initializes a new instance of the class and sets + the output destination to the specified . + + The layout to use with this appender + The to output to + + The must have been previously opened. + + + + Obsolete constructor. + + + + + + This method determines if there is a sense in attempting to append. + + + + This method checks if an output target has been set and if a + layout has been set. + + + false if any of the preconditions fail. + + + + This method is called by the + method. + + The event to log. + + + Writes a log statement to the output stream if the output stream exists + and is writable. + + + The format of the output will depend on the appender's layout. + + + + + + This method is called by the + method. + + The array of events to log. + + + This method writes all the bulk logged events to the output writer + before flushing the stream. + + + + + + Close this appender instance. The underlying stream or writer is also closed. + + + Closed appenders cannot be reused. + + + + + Writes the footer and closes the underlying . + + + + Writes the footer and closes the underlying . + + + + + + Closes the underlying . + + + + Closes the underlying . + + + + + + Clears internal references to the underlying + and other variables. + + + + Subclasses can override this method for an alternate closing behavior. + + + + + + Writes a footer as produced by the embedded layout's property. + + + + Writes a footer as produced by the embedded layout's property. + + + + + + Writes a header produced by the embedded layout's property. + + + + Writes a header produced by the embedded layout's property. + + + + + + Called to allow a subclass to lazily initialize the writer + + + + This method is called when an event is logged and the or + have not been set. This allows a subclass to + attempt to initialize the writer multiple times. + + + + + + This is the where logging events + will be written to. + + + + + Immediate flush means that the underlying + or output stream will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logging events are not actually persisted if and when the application + crashes. + + + The default value is true. + + + + + + The fully qualified type of the TextWriterAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Gets or set whether the appender will flush at the end + of each append operation. + + + + The default behavior is to flush at the end of each + append operation. + + + If this option is set to false, then the underlying + stream can defer persisting the logging event to a later + time. + + + + Avoiding the flush operation at the end of each append results in + a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + Sets the where the log output will go. + + + + The specified must be open and writable. + + + The will be closed when the appender + instance is closed. + + + Note: Logging to an unopened will fail. + + + + + + Gets or set the and the underlying + , if any, for this appender. + + + The for this appender. + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Gets or sets the where logging events + will be written to. + + + The where logging events are written. + + + + This is the where logging events + will be written to. + + + + + + Default constructor + + + + Default constructor + + + + + + Construct a new appender using the layout, file and append mode. + + the layout to use with this appender + the full path to the file to write to + flag to indicate if the file should be appended to + + + Obsolete constructor. + + + + + + Construct a new appender using the layout and file specified. + The file will be appended to. + + the layout to use with this appender + the full path to the file to write to + + + Obsolete constructor. + + + + + + Activate the options on the file appender. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + This will cause the file to be opened. + + + + + + Closes any previously opened file and calls the parent's . + + + + Resets the filename and the file stream. + + + + + + Close this appender instance. The underlying stream or writer is also closed. + + + + + Called to initialize the file writer + + + + Will be called for each logged message until the file is + successfully opened. + + + + + + This method is called by the + method. + + The event to log. + + + Writes a log statement to the output stream if the output stream exists + and is writable. + + + The format of the output will depend on the appender's layout. + + + + + + This method is called by the + method. + + The array of events to log. + + + Acquires the output file locks once before writing all the events to + the stream. + + + + + + Writes a footer as produced by the embedded layout's property. + + + + Writes a footer as produced by the embedded layout's property. + + + + + + Writes a header produced by the embedded layout's property. + + + + Writes a header produced by the embedded layout's property. + + + + + + Closes the underlying . + + + + Closes the underlying . + + + + + + Closes the previously opened file. + + + + Writes the to the file and then + closes the file. + + + + + + Sets and opens the file where the log output will go. The specified file must be writable. + + The path to the log file. Must be a fully qualified path. + If true will append to fileName. Otherwise will truncate fileName + + + Calls but guarantees not to throw an exception. + Errors are passed to the . + + + + + + Sets and opens the file where the log output will go. The specified file must be writable. + + The path to the log file. Must be a fully qualified path. + If true will append to fileName. Otherwise will truncate fileName + + + If there was already an opened file, then the previous file + is closed first. + + + This method will ensure that the directory structure + for the specified exists. + + + + + + Sets the quiet writer used for file output + + the file stream that has been opened for writing + + + This implementation of creates a + over the and passes it to the + method. + + + This method can be overridden by sub classes that want to wrap the + in some way, for example to encrypt the output + data using a System.Security.Cryptography.CryptoStream. + + + + + + Sets the quiet writer being used. + + the writer over the file stream that has been opened for writing + + + This method can be overridden by sub classes that want to + wrap the in some way. + + + + + + Convert a path into a fully qualified path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + + + + Flag to indicate if we should append to the file + or overwrite the file. The default is to append. + + + + + The name of the log file. + + + + + The encoding to use for the file stream. + + + + + The security context to use for privileged calls + + + + + The stream to log to. Has added locking semantics + + + + + The locking model to use + + + + + The fully qualified type of the FileAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the path to the file that logging will be written to. + + + The path to the file that logging will be written to. + + + + If the path is relative it is taken as relative from + the application base directory. + + + + + + Gets or sets a flag that indicates whether the file should be + appended to or overwritten. + + + Indicates whether the file should be appended to or overwritten. + + + + If the value is set to false then the file will be overwritten, if + it is set to true then the file will be appended to. + + The default value is true. + + + + + Gets or sets used to write to the file. + + + The used to write to the file. + + + + The default encoding set is + which is the encoding for the system's current ANSI code page. + + + + + + Gets or sets the used to write to the file. + + + The used to write to the file. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + Gets or sets the used to handle locking of the file. + + + The used to lock the file. + + + + Gets or sets the used to handle locking of the file. + + + There are three built in locking models, , and . + The first locks the file from the start of logging to the end, the + second locks only for the minimal amount of time when logging each message + and the last synchronizes processes using a named system wide Mutex. + + + The default locking model is the . + + + + + + Write only that uses the + to manage access to an underlying resource. + + + + + True asynchronous writes are not supported, the implementation forces a synchronous write. + + + + + Exception base type for log4net. + + + + This type extends . It + does not add any new functionality but does differentiate the + type of exception being thrown. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + A message to include with the exception. + + + Initializes a new instance of the class with + the specified message. + + + + + + Constructor + + A message to include with the exception. + A nested exception to include. + + + Initializes a new instance of the class + with the specified message and inner exception. + + + + + + Serialization constructor + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Locking model base class + + + + Base class for the locking models available to the derived loggers. + + + + + + Open the output file + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Acquire the lock on the file in preparation for writing to it. + Return a stream pointing to the file. + must be called to release the lock on the output file. + + + + + + Release the lock on the file + + + + Release the lock on the file. No further writes will be made to the + stream until is called again. + + + + + + Helper method that creates a FileStream under CurrentAppender's SecurityContext. + + + + Typically called during OpenFile or AcquireLock. + + + If the directory portion of the does not exist, it is created + via Directory.CreateDirecctory. + + + + + + + + + + Helper method to close under CurrentAppender's SecurityContext. + + + Does not set to null. + + + + + + Gets or sets the for this LockingModel + + + The for this LockingModel + + + + The file appender this locking model is attached to and working on + behalf of. + + + The file appender is used to locate the security context and the error handler to use. + + + The value of this property will be set before is + called. + + + + + + Hold an exclusive lock on the output file + + + + Open the file once for writing and hold it open until is called. + Maintains an exclusive lock on the file during this time. + + + + + + Open the file specified and prepare for logging. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Does nothing. The lock is already taken + + + + + + Release the lock on the file + + + + Does nothing. The lock will be released when the file is closed. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Acquires the file lock for each write + + + + Opens the file once for each / cycle, + thus holding the lock for the minimal amount of time. This method of locking + is considerably slower than but allows + other processes to move/delete the log file whilst logging continues. + + + + + + Prepares to open the file when the first message is logged. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Acquire the lock on the file in preparation for writing to it. + Return a stream pointing to the file. + must be called to release the lock on the output file. + + + + + + Release the lock on the file + + + + Release the lock on the file. No further writes will be made to the + stream until is called again. + + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + Provides cross-process file locking. + + Ron Grabowski + Steve Wranovsky + + + + Open the file specified and prepare for logging. + + The filename to use + Whether to append to the file, or overwrite + The encoding to use + + + Open the file specified and prepare for logging. + No writes will be made until is called. + Must be called before any calls to , + - and . + + + + + + Close the file + + + + Close the file. No further writes will be made. + + + + + + Acquire the lock on the file + + A stream that is ready to be written to. + + + Does nothing. The lock is already taken + + + + + + Releases the lock and allows others to acquire a lock. + + + + + Initializes all resources used by this locking model. + + + + + Disposes all resources that were initialized by this locking model. + + + + + This appender forwards logging events to attached appenders. + + + + The forwarding appender can be used to specify different thresholds + and filters for the same appender at different locations within the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Closes the appender and releases resources. + + + + Releases any resources allocated within the appender such as file handles, + network connections, etc. + + + It is a programming error to append to a closed appender. + + + + + + Forward the logging event to the attached appenders + + The event to log. + + + Delivers the logging event to all the attached appenders. + + + + + + Forward the logging events to the attached appenders + + The array of events to log. + + + Delivers the logging events to all the attached appenders. + + + + + + Adds an to the list of appenders of this + instance. + + The to add to this appender. + + + If the specified is already in the list of + appenders, then it won't be added again. + + + + + + Looks for the appender with the specified name. + + The name of the appender to lookup. + + The appender with the specified name, or null. + + + + Get the named appender attached to this appender. + + + + + + Removes all previously added appenders from this appender. + + + + This is useful when re-reading configuration information. + + + + + + Removes the specified appender from the list of appenders. + + The appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + Implementation of the interface + + + + + Gets the appenders contained in this appender as an + . + + + If no appenders can be found, then an + is returned. + + + A collection of the appenders in this appender. + + + + + Logs events to a local syslog service. + + + + This appender uses the POSIX libc library functions openlog, syslog, and closelog. + If these functions are not available on the local system then this appender will not work! + + + The functions openlog, syslog, and closelog are specified in SUSv2 and + POSIX 1003.1-2001 standards. These are used to log messages to the local syslog service. + + + This appender talks to a local syslog service. If you need to log to a remote syslog + daemon and you cannot configure your local syslog service to do this you may be + able to use the to log via UDP. + + + Syslog messages must have a facility and and a severity. The severity + is derived from the Level of the logging event. + The facility must be chosen from the set of defined syslog + values. The facilities list is predefined + and cannot be extended. + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + Rob Lyon + Nicko Cadell + + + + Initializes a new instance of the class. + + + This instance of the class is set up to write + to a local syslog service. + + + + + Add a mapping of level to severity + + The mapping to add + + + Adds a to this appender. + + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to a remote syslog daemon. + + + The format of the output will depend on the appender's layout. + + + + + + Close the syslog when the appender is closed + + + + Close the syslog when the appender is closed + + + + + + Translates a log4net level to a syslog severity. + + A log4net level. + A syslog severity. + + + Translates a log4net level to a syslog severity. + + + + + + Generate a syslog priority. + + The syslog facility. + The syslog severity. + A syslog priority. + + + + The facility. The default facility is . + + + + + The message identity + + + + + Marshaled handle to the identity string. We have to hold on to the + string as the openlog and syslog APIs just hold the + pointer to the ident and dereference it for each log message. + + + + + Mapping from level object to syslog severity + + + + + Open connection to system logger. + + + + + Generate a log message. + + + + The libc syslog method takes a format string and a variable argument list similar + to the classic printf function. As this type of vararg list is not supported + by C# we need to specify the arguments explicitly. Here we have specified the + format string with a single message argument. The caller must set the format + string to "%s". + + + + + + Close descriptor used to write to system logger. + + + + + Message identity + + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + + + + Syslog facility + + + Set to one of the values. The list of + facilities is predefined and cannot be extended. The default value + is . + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + syslog severities + + + + The log4net Level maps to a syslog severity using the + method and the + class. The severity is set on . + + + + + + system is unusable + + + + + action must be taken immediately + + + + + critical conditions + + + + + error conditions + + + + + warning conditions + + + + + normal but significant condition + + + + + informational + + + + + debug-level messages + + + + + syslog facilities + + + + The syslog facility defines which subsystem the logging comes from. + This is set on the property. + + + + + + kernel messages + + + + + random user-level messages + + + + + mail system + + + + + system daemons + + + + + security/authorization messages + + + + + messages generated internally by syslogd + + + + + line printer subsystem + + + + + network news subsystem + + + + + UUCP subsystem + + + + + clock (cron/at) daemon + + + + + security/authorization messages (private) + + + + + ftp daemon + + + + + NTP subsystem + + + + + log audit + + + + + log alert + + + + + clock daemon + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + + + The mapped syslog severity for the specified level + + + + Required property. + The mapped syslog severity for the specified level + + + + + + Appends colorful logging events to the console, using the .NET 2 + built-in capabilities. + + + + ManagedColoredConsoleAppender appends log events to the standard output stream + or the error output stream using a layout specified by the + user. It also allows the color of a specific type of message to be set. + + + By default, all output is written to the console's standard output stream. + The property can be set to direct the output to the + error stream. + + + When configuring the colored console appender, mappings should be + specified to map logging levels to colors. For example: + + + + + + + + + + + + + + + + + + + + + + The Level is the standard log4net logging level while + ForeColor and BackColor are the values of + enumeration. + + + Based on the ColoredConsoleAppender + + + Rick Hobbs + Nicko Cadell + Pavlos Touboulidis + + + + The to use when writing to the Console + standard output stream. + + + + The to use when writing to the Console + standard output stream. + + + + + + The to use when writing to the Console + standard error output stream. + + + + The to use when writing to the Console + standard error output stream. + + + + + + Initializes a new instance of the class. + + + The instance of the class is set up to write + to the standard output stream. + + + + + Add a mapping of level to color - done by the config file + + The mapping to add + + + Add a mapping to this appender. + Each mapping defines the foreground and background colors + for a level. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to the console. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to color mappings set on this appender. + + + + + + Flag to write output to the error stream rather than the standard output stream + + + + + Mapping from level object to color value + + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + Target is the value of the console output stream. + This is either "Console.Out" or "Console.Error". + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + A class to act as a mapping between the level that a logging call is made at and + the color it should be displayed as. + + + + Defines the mapping between a level and the color it should be displayed in. + + + + + + The mapped foreground color for the specified level + + + + Required property. + The mapped foreground color for the specified level. + + + + + + The mapped background color for the specified level + + + + Required property. + The mapped background color for the specified level. + + + + + + Stores logging events in an array. + + + + The memory appender stores all the logging events + that are appended in an in-memory array. + + + Use the method to get + and clear the current list of events that have been appended. + + + Use the method to get the current + list of events that have been appended. Note there is a + race-condition when calling and + in pairs, you better use in that case. + + + Use the method to clear the + current list of events. Note there is a + race-condition when calling and + in pairs, you better use in that case. + + + Julian Biddle + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Gets the events that have been logged. + + The events that have been logged + + + Gets the events that have been logged. + + + + + + This method is called by the method. + + the event to log + + Stores the in the events list. + + + + + Clear the list of events + + + Clear the list of events + + + + + Gets the events that have been logged and clears the list of events. + + The events that have been logged + + + Gets the events that have been logged and clears the list of events. + + + + + + The list of events that have been appended. + + + + + Value indicating which fields in the event should be fixed + + + By default all fields are fixed + + + + + Gets or sets a value indicating whether only part of the logging event + data should be fixed. + + + true if the appender should only fix part of the logging event + data, otherwise false. The default is false. + + + + Setting this property to true will cause only part of the event + data to be fixed and stored in the appender, hereby improving performance. + + + See for more information. + + + + + + Gets or sets the fields that will be fixed in the event + + + + The logging event needs to have certain thread specific values + captured before it can be buffered. See + for details. + + + + + + Logs entries by sending network messages using the + native function. + + + + You can send messages only to names that are active + on the network. If you send the message to a user name, + that user must be logged on and running the Messenger + service to receive the message. + + + The receiver will get a top most window displaying the + messages one at a time, therefore this appender should + not be used to deliver a high volume of messages. + + + The following table lists some possible uses for this appender : + + + + + Action + Property Value(s) + + + Send a message to a user account on the local machine + + + = <name of the local machine> + + + = <user name> + + + + + Send a message to a user account on a remote machine + + + = <name of the remote machine> + + + = <user name> + + + + + Send a message to a domain user account + + + = <name of a domain controller | uninitialized> + + + = <user name> + + + + + Send a message to all the names in a workgroup or domain + + + = <workgroup name | domain name>* + + + + + Send a message from the local machine to a remote machine + + + = <name of the local machine | uninitialized> + + + = <name of the remote machine> + + + + + + + Note : security restrictions apply for sending + network messages, see + for more information. + + + + + An example configuration section to log information + using this appender from the local machine, named + LOCAL_PC, to machine OPERATOR_PC : + + + + + + + + + + Nicko Cadell + Gert Driesen + + + + The DNS or NetBIOS name of the server on which the function is to execute. + + + + + The sender of the network message. + + + + + The message alias to which the message should be sent. + + + + + The security context to use for privileged calls + + + + + Initializes the appender. + + + The default constructor initializes all fields to their default values. + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The appender will be ignored if no was specified. + + + The required property was not specified. + + + + This method is called by the method. + + The event to log. + + + Sends the event using a network message. + + + + + + Sends a buffer of information to a registered message alias. + + The DNS or NetBIOS name of the server on which the function is to execute. + The message alias to which the message buffer should be sent + The originator of the message. + The message text. + The length, in bytes, of the message text. + + + The following restrictions apply for sending network messages: + + + + + Platform + Requirements + + + Windows NT + + + No special group membership is required to send a network message. + + + Admin, Accounts, Print, or Server Operator group membership is required to + successfully send a network message on a remote server. + + + + + Windows 2000 or later + + + If you send a message on a domain controller that is running Active Directory, + access is allowed or denied based on the access control list (ACL) for the securable + object. The default ACL permits only Domain Admins and Account Operators to send a network message. + + + On a member server or workstation, only Administrators and Server Operators can send a network message. + + + + + + + For more information see Security Requirements for the Network Management Functions. + + + + + If the function succeeds, the return value is zero. + + + + + + Gets or sets the sender of the message. + + + The sender of the message. + + + If this property is not specified, the message is sent from the local computer. + + + + + Gets or sets the message alias to which the message should be sent. + + + The recipient of the message. + + + This property should always be specified in order to send a message. + + + + + Gets or sets the DNS or NetBIOS name of the remote server on which the function is to execute. + + + DNS or NetBIOS name of the remote server on which the function is to execute. + + + + For Windows NT 4.0 and earlier, the string should begin with \\. + + + If this property is not specified, the local computer is used. + + + + + + Gets or sets the used to call the NetSend method. + + + The used to call the NetSend method. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Appends log events to the OutputDebugString system. + + + + OutputDebugStringAppender appends log events to the + OutputDebugString system. + + + The string is passed to the native OutputDebugString + function. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Write the logging event to the output debug string API + + the event to log + + + Write the logging event to the output debug string API + + + + + + Stub for OutputDebugString native method + + the string to output + + + Stub for OutputDebugString native method + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Logs events to a remote syslog daemon. + + + + The BSD syslog protocol is used to remotely log to + a syslog daemon. The syslogd listens for for messages + on UDP port 514. + + + The syslog UDP protocol is not authenticated. Most syslog daemons + do not accept remote log messages because of the security implications. + You may be able to use the LocalSyslogAppender to talk to a local + syslog service. + + + There is an RFC 3164 that claims to document the BSD Syslog Protocol. + This RFC can be seen here: http://www.faqs.org/rfcs/rfc3164.html. + This appender generates what the RFC calls an "Original Device Message", + i.e. does not include the TIMESTAMP or HOSTNAME fields. By observation + this format of message will be accepted by all current syslog daemon + implementations. The daemon will attach the current time and the source + hostname or IP address to any messages received. + + + Syslog messages must have a facility and and a severity. The severity + is derived from the Level of the logging event. + The facility must be chosen from the set of defined syslog + values. The facilities list is predefined + and cannot be extended. + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + Rob Lyon + Nicko Cadell + + + + Sends logging events as connectionless UDP datagrams to a remote host or a + multicast group using an . + + + + UDP guarantees neither that messages arrive, nor that they arrive in the correct order. + + + To view the logging results, a custom application can be developed that listens for logging + events. + + + When decoding events send via this appender remember to use the same encoding + to decode the events as was used to send the events. See the + property to specify the encoding to use. + + + + This example shows how to log receive logging events that are sent + on IP address 244.0.0.1 and port 8080 to the console. The event is + encoded in the packet as a unicode string and it is decoded as such. + + IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0); + UdpClient udpClient; + byte[] buffer; + string loggingEvent; + + try + { + udpClient = new UdpClient(8080); + + while(true) + { + buffer = udpClient.Receive(ref remoteEndPoint); + loggingEvent = System.Text.Encoding.Unicode.GetString(buffer); + Console.WriteLine(loggingEvent); + } + } + catch(Exception e) + { + Console.WriteLine(e.ToString()); + } + + + Dim remoteEndPoint as IPEndPoint + Dim udpClient as UdpClient + Dim buffer as Byte() + Dim loggingEvent as String + + Try + remoteEndPoint = new IPEndPoint(IPAddress.Any, 0) + udpClient = new UdpClient(8080) + + While True + buffer = udpClient.Receive(ByRef remoteEndPoint) + loggingEvent = System.Text.Encoding.Unicode.GetString(buffer) + Console.WriteLine(loggingEvent) + Wend + Catch e As Exception + Console.WriteLine(e.ToString()) + End Try + + + An example configuration section to log information using this appender to the + IP 224.0.0.1 on port 8080: + + + + + + + + + + Gert Driesen + Nicko Cadell + + + + Initializes a new instance of the class. + + + The default constructor initializes all fields to their default values. + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The appender will be ignored if no was specified or + an invalid remote or local TCP port number was specified. + + + The required property was not specified. + The TCP port number assigned to or is less than or greater than . + + + + This method is called by the method. + + The event to log. + + + Sends the event using an UDP datagram. + + + Exceptions are passed to the . + + + + + + Closes the UDP connection and releases all resources associated with + this instance. + + + + Disables the underlying and releases all managed + and unmanaged resources associated with the . + + + + + + Initializes the underlying connection. + + + + The underlying is initialized and binds to the + port number from which you intend to communicate. + + + Exceptions are passed to the . + + + + + + The IP address of the remote host or multicast group to which + the logging event will be sent. + + + + + The TCP port number of the remote host or multicast group to + which the logging event will be sent. + + + + + The cached remote endpoint to which the logging events will be sent. + + + + + The TCP port number from which the will communicate. + + + + + The instance that will be used for sending the + logging events. + + + + + The encoding to use for the packet. + + + + + Gets or sets the IP address of the remote host or multicast group to which + the underlying should sent the logging event. + + + The IP address of the remote host or multicast group to which the logging event + will be sent. + + + + Multicast addresses are identified by IP class D addresses (in the range 224.0.0.0 to + 239.255.255.255). Multicast packets can pass across different networks through routers, so + it is possible to use multicasts in an Internet scenario as long as your network provider + supports multicasting. + + + Hosts that want to receive particular multicast messages must register their interest by joining + the multicast group. Multicast messages are not sent to networks where no host has joined + the multicast group. Class D IP addresses are used for multicast groups, to differentiate + them from normal host addresses, allowing nodes to easily detect if a message is of interest. + + + Static multicast addresses that are needed globally are assigned by IANA. A few examples are listed in the table below: + + + + + IP Address + Description + + + 224.0.0.1 + + + Sends a message to all system on the subnet. + + + + + 224.0.0.2 + + + Sends a message to all routers on the subnet. + + + + + 224.0.0.12 + + + The DHCP server answers messages on the IP address 224.0.0.12, but only on a subnet. + + + + + + + A complete list of actually reserved multicast addresses and their owners in the ranges + defined by RFC 3171 can be found at the IANA web site. + + + The address range 239.0.0.0 to 239.255.255.255 is reserved for administrative scope-relative + addresses. These addresses can be reused with other local groups. Routers are typically + configured with filters to prevent multicast traffic in this range from flowing outside + of the local network. + + + + + + Gets or sets the TCP port number of the remote host or multicast group to which + the underlying should sent the logging event. + + + An integer value in the range to + indicating the TCP port number of the remote host or multicast group to which the logging event + will be sent. + + + The underlying will send messages to this TCP port number + on the remote host or multicast group. + + The value specified is less than or greater than . + + + + Gets or sets the TCP port number from which the underlying will communicate. + + + An integer value in the range to + indicating the TCP port number from which the underlying will communicate. + + + + The underlying will bind to this port for sending messages. + + + Setting the value to 0 (the default) will cause the udp client not to bind to + a local port. + + + The value specified is less than or greater than . + + + + Gets or sets used to write the packets. + + + The used to write the packets. + + + + The used to write the packets. + + + + + + Gets or sets the underlying . + + + The underlying . + + + creates a to send logging events + over a network. Classes deriving from can use this + property to get or set this . Use the underlying + returned from if you require access beyond that which + provides. + + + + + Gets or sets the cached remote endpoint to which the logging events should be sent. + + + The cached remote endpoint to which the logging events will be sent. + + + The method will initialize the remote endpoint + with the values of the and + properties. + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Syslog port 514 + + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + Initializes a new instance of the class. + + + This instance of the class is set up to write + to a remote syslog daemon. + + + + + Add a mapping of level to severity + + The mapping to add + + + Add a mapping to this appender. + + + + + + This method is called by the method. + + The event to log. + + + Writes the event to a remote syslog daemon. + + + The format of the output will depend on the appender's layout. + + + + + + Initialize the options for this appender + + + + Initialize the level to syslog severity mappings set on this appender. + + + + + + Translates a log4net level to a syslog severity. + + A log4net level. + A syslog severity. + + + Translates a log4net level to a syslog severity. + + + + + + Generate a syslog priority. + + The syslog facility. + The syslog severity. + A syslog priority. + + + Generate a syslog priority. + + + + + + The facility. The default facility is . + + + + + The message identity + + + + + Mapping from level object to syslog severity + + + + + Message identity + + + + An identifier is specified with each log message. This can be specified + by setting the property. The identity (also know + as the tag) must not contain white space. The default value for the + identity is the application name (from ). + + + + + + Syslog facility + + + Set to one of the values. The list of + facilities is predefined and cannot be extended. The default value + is . + + + + + syslog severities + + + + The syslog severities. + + + + + + system is unusable + + + + + action must be taken immediately + + + + + critical conditions + + + + + error conditions + + + + + warning conditions + + + + + normal but significant condition + + + + + informational + + + + + debug-level messages + + + + + syslog facilities + + + + The syslog facilities + + + + + + kernel messages + + + + + random user-level messages + + + + + mail system + + + + + system daemons + + + + + security/authorization messages + + + + + messages generated internally by syslogd + + + + + line printer subsystem + + + + + network news subsystem + + + + + UUCP subsystem + + + + + clock (cron/at) daemon + + + + + security/authorization messages (private) + + + + + ftp daemon + + + + + NTP subsystem + + + + + log audit + + + + + log alert + + + + + clock daemon + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + reserved for local use + + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + A class to act as a mapping between the level that a logging call is made at and + the syslog severity that is should be logged at. + + + + + + The mapped syslog severity for the specified level + + + + Required property. + The mapped syslog severity for the specified level + + + + + + Delivers logging events to a remote logging sink. + + + + This Appender is designed to deliver events to a remote sink. + That is any object that implements the + interface. It delivers the events using .NET remoting. The + object to deliver events to is specified by setting the + appenders property. + + The RemotingAppender buffers events before sending them. This allows it to + make more efficient use of the remoting infrastructure. + + Once the buffer is full the events are still not sent immediately. + They are scheduled to be sent using a pool thread. The effect is that + the send occurs asynchronously. This is very important for a + number of non obvious reasons. The remoting infrastructure will + flow thread local variables (stored in the ), + if they are marked as , across the + remoting boundary. If the server is not contactable then + the remoting infrastructure will clear the + objects from the . To prevent a logging failure from + having side effects on the calling application the remoting call must be made + from a separate thread to the one used by the application. A + thread is used for this. If no thread is available then + the events will block in the thread pool manager until a thread is available. + + Because the events are sent asynchronously using pool threads it is possible to close + this appender before all the queued events have been sent. + When closing the appender attempts to wait until all the queued events have been sent, but + this will timeout after 30 seconds regardless. + + If this appender is being closed because the + event has fired it may not be possible to send all the queued events. During process + exit the runtime limits the time that a + event handler is allowed to run for. If the runtime terminates the threads before + the queued events have been sent then they will be lost. To ensure that all events + are sent the appender must be closed before the application exits. See + for details on how to shutdown + log4net programmatically. + + + Nicko Cadell + Gert Driesen + Daniel Cazzulino + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Send the contents of the buffer to the remote sink. + + + The events are not sent immediately. They are scheduled to be sent + using a pool thread. The effect is that the send occurs asynchronously. + This is very important for a number of non obvious reasons. The remoting + infrastructure will flow thread local variables (stored in the ), + if they are marked as , across the + remoting boundary. If the server is not contactable then + the remoting infrastructure will clear the + objects from the . To prevent a logging failure from + having side effects on the calling application the remoting call must be made + from a separate thread to the one used by the application. A + thread is used for this. If no thread is available then + the events will block in the thread pool manager until a thread is available. + + The events to send. + + + + Override base class close. + + + + This method waits while there are queued work items. The events are + sent asynchronously using work items. These items + will be sent once a thread pool thread is available to send them, therefore + it is possible to close the appender before all the queued events have been + sent. + + This method attempts to wait until all the queued events have been sent, but this + method will timeout after 30 seconds regardless. + + If the appender is being closed because the + event has fired it may not be possible to send all the queued events. During process + exit the runtime limits the time that a + event handler is allowed to run for. + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + A work item is being queued into the thread pool + + + + + A work item from the thread pool has completed + + + + + Send the contents of the buffer to the remote sink. + + + This method is designed to be used with the . + This method expects to be passed an array of + objects in the state param. + + the logging events to send + + + + The URL of the remote sink. + + + + + The local proxy (.NET remoting) for the remote logging sink. + + + + + The number of queued callbacks currently waiting or executing + + + + + Event used to signal when there are no queued work items + + + This event is set when there are no queued work items. In this + state it is safe to close the appender. + + + + + Gets or sets the URL of the well-known object that will accept + the logging events. + + + The well-known URL of the remote sink. + + + + The URL of the remoting sink that will accept logging events. + The sink must implement the + interface. + + + + + + Interface used to deliver objects to a remote sink. + + + This interface must be implemented by a remoting sink + if the is to be used + to deliver logging events to the sink. + + + + + Delivers logging events to the remote sink + + Array of events to log. + + + Delivers logging events to the remote sink + + + + + + Appender that rolls log files based on size or date or both. + + + + RollingFileAppender can roll log files based on size or date or both + depending on the setting of the property. + When set to the log file will be rolled + once its size exceeds the . + When set to the log file will be rolled + once the date boundary specified in the property + is crossed. + When set to the log file will be + rolled once the date boundary specified in the property + is crossed, but within a date boundary the file will also be rolled + once its size exceeds the . + When set to the log file will be rolled when + the appender is configured. This effectively means that the log file can be + rolled once per program execution. + + + A of few additional optional features have been added: + + Attach date pattern for current log file + Backup number increments for newer files + Infinite number of backups by file size + + + + + + For large or infinite numbers of backup files a + greater than zero is highly recommended, otherwise all the backup files need + to be renamed each time a new backup is created. + + + When Date/Time based rolling is used setting + to will reduce the number of file renamings to few or none. + + + + + + Changing or without clearing + the log file directory of backup files will cause unexpected and unwanted side effects. + + + + + If Date/Time based rolling is enabled this appender will attempt to roll existing files + in the directory without a Date/Time tag based on the last write date of the base log file. + The appender only rolls the log file when a message is logged. If Date/Time based rolling + is enabled then the appender will not roll the log file at the Date/Time boundary but + at the point when the next message is logged after the boundary has been crossed. + + + + The extends the and + has the same behavior when opening the log file. + The appender will first try to open the file for writing when + is called. This will typically be during configuration. + If the file cannot be opened for writing the appender will attempt + to open the file again each time a message is logged to the appender. + If the file cannot be opened for writing when a message is logged then + the message will be discarded by this appender. + + + When rolling a backup file necessitates deleting an older backup file the + file to be deleted is moved to a temporary name before being deleted. + + + + + A maximum number of backup files when rolling on date/time boundaries is not supported. + + + + Nicko Cadell + Gert Driesen + Aspi Havewala + Douglas de la Torre + Edward Smit + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Cleans up all resources used by this appender. + + + + + The fully qualified type of the RollingFileAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Sets the quiet writer being used. + + + This method can be overridden by sub classes. + + the writer to set + + + + Write out a logging event. + + the event to write to file. + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Write out an array of logging events. + + the events to write to file. + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Performs any required rolling before outputting the next event + + + + Handles append time behavior for RollingFileAppender. This checks + if a roll over either by date (checked first) or time (checked second) + is need and then appends to the file last. + + + + + + Creates and opens the file for logging. If + is false then the fully qualified name is determined and used. + + the name of the file to open + true to append to existing file + + This method will ensure that the directory structure + for the specified exists. + + + + + Get the current output file name + + the base file name + the output file name + + The output file name is based on the base fileName specified. + If is set then the output + file name is the same as the base file passed in. Otherwise + the output file depends on the date pattern, on the count + direction or both. + + + + + Determines curSizeRollBackups (only within the current roll point) + + + + + Generates a wildcard pattern that can be used to find all files + that are similar to the base file name. + + + + + + + Builds a list of filenames for all files matching the base filename plus a file + pattern. + + + + + + + Initiates a roll over if needed for crossing a date boundary since the last run. + + + + + Initializes based on existing conditions at time of . + + + + Initializes based on existing conditions at time of . + The following is done + + determine curSizeRollBackups (only within the current roll point) + initiates a roll over if needed for crossing a date boundary since the last run. + + + + + + + Does the work of bumping the 'current' file counter higher + to the highest count when an incremental file name is seen. + The highest count is either the first file (when count direction + is greater than 0) or the last file (when count direction less than 0). + In either case, we want to know the highest count that is present. + + + + + + + Attempts to extract a number from the end of the file name that indicates + the number of the times the file has been rolled over. + + + Certain date pattern extensions like yyyyMMdd will be parsed as valid backup indexes. + + + + + + + Takes a list of files and a base file name, and looks for + 'incremented' versions of the base file. Bumps the max + count up to the highest count seen. + + + + + + + Calculates the RollPoint for the datePattern supplied. + + the date pattern to calculate the check period for + The RollPoint that is most accurate for the date pattern supplied + + Essentially the date pattern is examined to determine what the + most suitable roll point is. The roll point chosen is the roll point + with the smallest period that can be detected using the date pattern + supplied. i.e. if the date pattern only outputs the year, month, day + and hour then the smallest roll point that can be detected would be + and hourly roll point as minutes could not be detected. + + + + + Initialize the appender based on the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Sets initial conditions including date/time roll over information, first check, + scheduledFilename, and calls to initialize + the current number of backups. + + + + + + + + + .1, .2, .3, etc. + + + + + Rollover the file(s) to date/time tagged file(s). + + set to true if the file to be rolled is currently open + + + Rollover the file(s) to date/time tagged file(s). + Resets curSizeRollBackups. + If fileIsOpen is set then the new file is opened (through SafeOpenFile). + + + + + + Renames file to file . + + Name of existing file to roll. + New name for file. + + + Renames file to file . It + also checks for existence of target file and deletes if it does. + + + + + + Test if a file exists at a specified path + + the path to the file + true if the file exists + + + Test if a file exists at a specified path + + + + + + Deletes the specified file if it exists. + + The file to delete. + + + Delete a file if is exists. + The file is first moved to a new filename then deleted. + This allows the file to be removed even when it cannot + be deleted, but it still can be moved. + + + + + + Implements file roll base on file size. + + + + If the maximum number of size based backups is reached + (curSizeRollBackups == maxSizeRollBackups) then the oldest + file is deleted -- its index determined by the sign of countDirection. + If countDirection < 0, then files + {File.1, ..., File.curSizeRollBackups -1} + are renamed to {File.2, ..., + File.curSizeRollBackups}. Moreover, File is + renamed File.1 and closed. + + + A new file is created to receive further log output. + + + If maxSizeRollBackups is equal to zero, then the + File is truncated with no backup files created. + + + If maxSizeRollBackups < 0, then File is + renamed if needed and no files are deleted. + + + + + + Implements file roll. + + the base name to rename + + + If the maximum number of size based backups is reached + (curSizeRollBackups == maxSizeRollBackups) then the oldest + file is deleted -- its index determined by the sign of countDirection. + If countDirection < 0, then files + {File.1, ..., File.curSizeRollBackups -1} + are renamed to {File.2, ..., + File.curSizeRollBackups}. + + + If maxSizeRollBackups is equal to zero, then the + File is truncated with no backup files created. + + + If maxSizeRollBackups < 0, then File is + renamed if needed and no files are deleted. + + + This is called by to rename the files. + + + + + + Get the start time of the next window for the current rollpoint + + the current date + the type of roll point we are working with + the start time for the next roll point an interval after the currentDateTime date + + + Returns the date of the next roll point after the currentDateTime date passed to the method. + + + The basic strategy is to subtract the time parts that are less significant + than the rollpoint from the current time. This should roll the time back to + the start of the time window for the current rollpoint. Then we add 1 window + worth of time and get the start time of the next window for the rollpoint. + + + + + + This object supplies the current date/time. Allows test code to plug in + a method to control this class when testing date/time based rolling. The default + implementation uses the underlying value of DateTime.Now. + + + + + The date pattern. By default, the pattern is set to ".yyyy-MM-dd" + meaning daily rollover. + + + + + The actual formatted filename that is currently being written to + or will be the file transferred to on roll over + (based on staticLogFileName). + + + + + The timestamp when we shall next recompute the filename. + + + + + Holds date of last roll over + + + + + The type of rolling done + + + + + The default maximum file size is 10MB + + + + + There is zero backup files by default + + + + + How many sized based backups have been made so far + + + + + The rolling file count direction. + + + + + The rolling mode used in this appender. + + + + + Cache flag set if we are rolling by date. + + + + + Cache flag set if we are rolling by size. + + + + + Value indicating whether to always log to the same file. + + + + + Value indicating whether to preserve the file name extension when rolling. + + + + + FileName provided in configuration. Used for rolling properly + + + + + A mutex that is used to lock rolling of files. + + + + + The 1st of January 1970 in UTC + + + + + Gets or sets the strategy for determining the current date and time. The default + implementation is to use LocalDateTime which internally calls through to DateTime.Now. + DateTime.UtcNow may be used on frameworks newer than .NET 1.0 by specifying + . + + + An implementation of the interface which returns the current date and time. + + + + Gets or sets the used to return the current date and time. + + + There are two built strategies for determining the current date and time, + + and . + + + The default strategy is . + + + + + + Gets or sets the date pattern to be used for generating file names + when rolling over on date. + + + The date pattern to be used for generating file names when rolling + over on date. + + + + Takes a string in the same format as expected by + . + + + This property determines the rollover schedule when rolling over + on date. + + + + + + Gets or sets the maximum number of backup files that are kept before + the oldest is erased. + + + The maximum number of backup files that are kept before the oldest is + erased. + + + + If set to zero, then there will be no backup files and the log file + will be truncated when it reaches . + + + If a negative number is supplied then no deletions will be made. Note + that this could result in very slow performance as a large number of + files are rolled over unless is used. + + + The maximum applies to each time based group of files and + not the total. + + + + + + Gets or sets the maximum size that the output file is allowed to reach + before being rolled over to backup files. + + + The maximum size in bytes that the output file is allowed to reach before being + rolled over to backup files. + + + + This property is equivalent to except + that it is required for differentiating the setter taking a + argument from the setter taking a + argument. + + + The default maximum file size is 10MB (10*1024*1024). + + + + + + Gets or sets the maximum size that the output file is allowed to reach + before being rolled over to backup files. + + + The maximum size that the output file is allowed to reach before being + rolled over to backup files. + + + + This property allows you to specify the maximum size with the + suffixes "KB", "MB" or "GB" so that the size is interpreted being + expressed respectively in kilobytes, megabytes or gigabytes. + + + For example, the value "10KB" will be interpreted as 10240 bytes. + + + The default maximum file size is 10MB. + + + If you have the option to set the maximum file size programmatically + consider using the property instead as this + allows you to set the size in bytes as a . + + + + + + Gets or sets the rolling file count direction. + + + The rolling file count direction. + + + + Indicates if the current file is the lowest numbered file or the + highest numbered file. + + + By default newer files have lower numbers ( < 0), + i.e. log.1 is most recent, log.5 is the 5th backup, etc... + + + >= 0 does the opposite i.e. + log.1 is the first backup made, log.5 is the 5th backup made, etc. + For infinite backups use >= 0 to reduce + rollover costs. + + The default file count direction is -1. + + + + + Gets or sets the rolling style. + + The rolling style. + + + The default rolling style is . + + + When set to this appender's + property is set to false, otherwise + the appender would append to a single file rather than rolling + the file each time it is opened. + + + + + + Gets or sets a value indicating whether to preserve the file name extension when rolling. + + + true if the file name extension should be preserved. + + + + By default file.log is rolled to file.log.yyyy-MM-dd or file.log.curSizeRollBackup. + However, under Windows the new file name will loose any program associations as the + extension is changed. Optionally file.log can be renamed to file.yyyy-MM-dd.log or + file.curSizeRollBackup.log to maintain any program associations. + + + + + + Gets or sets a value indicating whether to always log to + the same file. + + + true if always should be logged to the same file, otherwise false. + + + + By default file.log is always the current file. Optionally + file.log.yyyy-mm-dd for current formatted datePattern can by the currently + logging file (or file.log.curSizeRollBackup or even + file.log.yyyy-mm-dd.curSizeRollBackup). + + + This will make time based rollovers with a large number of backups + much faster as the appender it won't have to rename all the backups! + + + + + + Style of rolling to use + + + + Style of rolling to use + + + + + + Roll files once per program execution + + + + Roll files once per program execution. + Well really once each time this appender is + configured. + + + Setting this option also sets AppendToFile to + false on the RollingFileAppender, otherwise + this appender would just be a normal file appender. + + + + + + Roll files based only on the size of the file + + + + + Roll files based only on the date + + + + + Roll files based on both the size and date of the file + + + + + The code assumes that the following 'time' constants are in a increasing sequence. + + + + The code assumes that the following 'time' constants are in a increasing sequence. + + + + + + Roll the log not based on the date + + + + + Roll the log for each minute + + + + + Roll the log for each hour + + + + + Roll the log twice a day (midday and midnight) + + + + + Roll the log each day (midnight) + + + + + Roll the log each week + + + + + Roll the log each month + + + + + This interface is used to supply Date/Time information to the . + + + This interface is used to supply Date/Time information to the . + Used primarily to allow test classes to plug themselves in so they can + supply test date/times. + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Default implementation of that returns the current time. + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Implementation of that returns the current time as the coordinated universal time (UTC). + + + + + Gets the current time. + + The current time. + + + Gets the current time. + + + + + + Send an e-mail when a specific logging event occurs, typically on errors + or fatal errors. + + + + The number of logging events delivered in this e-mail depend on + the value of option. The + keeps only the last + logging events in its + cyclic buffer. This keeps memory requirements at a reasonable level while + still delivering useful application context. + + + Authentication and setting the server Port are only available on the MS .NET 1.1 runtime. + For these features to be enabled you need to ensure that you are using a version of + the log4net assembly that is built against the MS .NET 1.1 framework and that you are + running the your application on the MS .NET 1.1 runtime. On all other platforms only sending + unauthenticated messages to a server listening on port 25 (the default) is supported. + + + Authentication is supported by setting the property to + either or . + If using authentication then the + and properties must also be set. + + + To set the SMTP server port use the property. The default port is 25. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Default constructor + + + + + + Sends the contents of the cyclic buffer as an e-mail message. + + The logging events to send. + + + + Send the email message + + the body text to include in the mail + + + + trims leading and trailing commas or semicolons + + + + + Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses (use semicolon on .NET 1.1 and comma for later versions). + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + + Gets or sets a comma- or semicolon-delimited list of recipient e-mail addresses + that will be carbon copied (use semicolon on .NET 1.1 and comma for later versions). + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + For .NET 1.1 (System.Web.Mail): A semicolon-delimited list of e-mail addresses. + + + For .NET 2.0 (System.Net.Mail): A comma-delimited list of e-mail addresses. + + + + + + Gets or sets a semicolon-delimited list of recipient e-mail addresses + that will be blind carbon copied. + + + A semicolon-delimited list of e-mail addresses. + + + + A semicolon-delimited list of recipient e-mail addresses. + + + + + + Gets or sets the e-mail address of the sender. + + + The e-mail address of the sender. + + + + The e-mail address of the sender. + + + + + + Gets or sets the subject line of the e-mail message. + + + The subject line of the e-mail message. + + + + The subject line of the e-mail message. + + + + + + Gets or sets the name of the SMTP relay mail server to use to send + the e-mail messages. + + + The name of the e-mail relay server. If SmtpServer is not set, the + name of the local SMTP server is used. + + + + The name of the e-mail relay server. If SmtpServer is not set, the + name of the local SMTP server is used. + + + + + + Obsolete + + + Use the BufferingAppenderSkeleton Fix methods instead + + + + Obsolete property. + + + + + + The mode to use to authentication with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + Valid Authentication mode values are: , + , and . + The default value is . When using + you must specify the + and to use to authenticate. + When using the Windows credentials for the current + thread, if impersonating, or the process will be used to authenticate. + + + + + + The username to use to authenticate with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + A and must be specified when + is set to , + otherwise the username will be ignored. + + + + + + The password to use to authenticate with the SMTP server + + + Authentication is only available on the MS .NET 1.1 runtime. + + A and must be specified when + is set to , + otherwise the password will be ignored. + + + + + + The port on which the SMTP server is listening + + + Server Port is only available on the MS .NET 1.1 runtime. + + The port on which the SMTP server is listening. The default + port is 25. The Port can only be changed when running on + the MS .NET 1.1 runtime. + + + + + + Gets or sets the priority of the e-mail message + + + One of the values. + + + + Sets the priority of the e-mails generated by this + appender. The default priority is . + + + If you are using this appender to report errors then + you may want to set the priority to . + + + + + + Enable or disable use of SSL when sending e-mail message + + + This is available on MS .NET 2.0 runtime and higher + + + + + Gets or sets the reply-to e-mail address. + + + This is available on MS .NET 2.0 runtime and higher + + + + + Gets or sets the subject encoding to be used. + + + The default encoding is the operating system's current ANSI codepage. + + + + + Gets or sets the body encoding to be used. + + + The default encoding is the operating system's current ANSI codepage. + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Values for the property. + + + + SMTP authentication modes. + + + + + + No authentication + + + + + Basic authentication. + + + Requires a username and password to be supplied + + + + + Integrated authentication + + + Uses the Windows credentials from the current thread or process to authenticate. + + + + + Send an email when a specific logging event occurs, typically on errors + or fatal errors. Rather than sending via smtp it writes a file into the + directory specified by . This allows services such + as the IIS SMTP agent to manage sending the messages. + + + + The configuration for this appender is identical to that of the SMTPAppender, + except that instead of specifying the SMTPAppender.SMTPHost you specify + . + + + The number of logging events delivered in this e-mail depend on + the value of option. The + keeps only the last + logging events in its + cyclic buffer. This keeps memory requirements at a reasonable level while + still delivering useful application context. + + + Niall Daley + Nicko Cadell + + + + Default constructor + + + + Default constructor + + + + + + Sends the contents of the cyclic buffer as an e-mail message. + + The logging events to send. + + + Sends the contents of the cyclic buffer as an e-mail message. + + + + + + Activate the options on this appender. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Convert a path into a fully qualified path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + + + + The security context to use for privileged calls + + + + + Gets or sets a semicolon-delimited list of recipient e-mail addresses. + + + A semicolon-delimited list of e-mail addresses. + + + + A semicolon-delimited list of e-mail addresses. + + + + + + Gets or sets the e-mail address of the sender. + + + The e-mail address of the sender. + + + + The e-mail address of the sender. + + + + + + Gets or sets the subject line of the e-mail message. + + + The subject line of the e-mail message. + + + + The subject line of the e-mail message. + + + + + + Gets or sets the path to write the messages to. + + + + Gets or sets the path to write the messages to. This should be the same + as that used by the agent sending the messages. + + + + + + Gets or sets the file extension for the generated files + + + The file extension for the generated files + + + + The file extension for the generated files + + + + + + Gets or sets the used to write to the pickup directory. + + + The used to write to the pickup directory. + + + + Unless a specified here for this appender + the is queried for the + security context to use. The default behavior is to use the security context + of the current thread. + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Appender that allows clients to connect via Telnet to receive log messages + + + + The TelnetAppender accepts socket connections and streams logging messages + back to the client. + The output is provided in a telnet-friendly way so that a log can be monitored + over a TCP/IP socket. + This allows simple remote monitoring of application logging. + + + The default is 23 (the telnet port). + + + Keith Long + Nicko Cadell + + + + Default constructor + + + + Default constructor + + + + + + The fully qualified type of the TelnetAppender class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Overrides the parent method to close the socket handler + + + + Closes all the outstanding connections. + + + + + + Initialize the appender based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Create the socket handler and wait for connections + + + + + + Writes the logging event to each connected client. + + The event to log. + + + Writes the logging event to each connected client. + + + + + + Gets or sets the TCP port number on which this will listen for connections. + + + An integer value in the range to + indicating the TCP port number on which this will listen for connections. + + + + The default value is 23 (the telnet port). + + + The value specified is less than + or greater than . + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Helper class to manage connected clients + + + + The SocketHandler class is used to accept connections from + clients. It is threaded so that clients can connect/disconnect + asynchronously. + + + + + + Opens a new server port on + + the local port to listen on for connections + + + Creates a socket handler on the specified local server port. + + + + + + Sends a string message to each of the connected clients + + the text to send + + + Sends a string message to each of the connected clients + + + + + + Add a client to the internal clients list + + client to add + + + + Remove a client from the internal clients list + + client to remove + + + + Callback used to accept a connection on the server socket + + The result of the asynchronous operation + + + On connection adds to the list of connections + if there are two many open connections you will be disconnected + + + + + + Close all network connections + + + + Make sure we close all network connections + + + + + + Test if this handler has active connections + + + true if this handler has active connections + + + + This property will be true while this handler has + active connections, that is at least one connection that + the handler will attempt to send a message to. + + + + + + Class that represents a client connected to this handler + + + + Class that represents a client connected to this handler + + + + + + Create this for the specified + + the client's socket + + + Opens a stream writer on the socket. + + + + + + Write a string to the client + + string to send + + + Write a string to the client + + + + + + Cleanup the clients connection + + + + Close the socket connection. + + + + + + Appends log events to the system. + + + + The application configuration file can be used to control what listeners + are actually used. See the MSDN documentation for the + class for details on configuring the + trace system. + + + Events are written using the System.Diagnostics.Trace.Write(string,string) + method. The event's logger name is the default value for the category parameter + of the Write method. + + + Compact Framework
+ The Compact Framework does not support the + class for any operation except Assert. When using the Compact Framework this + appender will write to the system rather than + the Trace system. This appender will therefore behave like the . +
+
+ Douglas de la Torre + Nicko Cadell + Gert Driesen + Ron Grabowski +
+ + + Initializes a new instance of the . + + + + Default constructor. + + + + + + Initializes a new instance of the + with a specified layout. + + The layout to use with this appender. + + + Obsolete constructor. + + + + + + Writes the logging event to the system. + + The event to log. + + + Writes the logging event to the system. + + + + + + Immediate flush means that the underlying writer or output stream + will be flushed at the end of each append operation. + + + + Immediate flush is slower but ensures that each append request is + actually written. If is set to + false, then there is a good chance that the last few + logs events are not actually written to persistent media if and + when the application crashes. + + + The default value is true. + + + + + Defaults to %logger + + + + + Flushes any buffered log data. + + The maximum time to wait for logging events to be flushed. + True if all logging events were flushed successfully, else false. + + + + Gets or sets a value that indicates whether the appender will + flush at the end of each write. + + + The default behavior is to flush at the end of each + write. If the option is set tofalse, then the underlying + stream can defer writing to physical medium to a later time. + + + Avoiding the flush operation at the end of each append results + in a performance gain of 10 to 20 percent. However, there is safety + trade-off involved in skipping flushing. Indeed, when flushing is + skipped, then it is likely that the last few log events will not + be recorded on disk when the application exits. This is a high + price to pay even for a 20% performance gain. + + + + + + The category parameter sent to the Trace method. + + + + Defaults to %logger which will use the logger name of the current + as the category parameter. + + + + + + + + This appender requires a to be set. + + true + + + This appender requires a to be set. + + + + + + Assembly level attribute that specifies a domain to alias to this assembly's repository. + + + + AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. + + + An assembly's logger repository is defined by its , + however this can be overridden by an assembly loaded before the target assembly. + + + An assembly can alias another assembly's domain to its repository by + specifying this attribute with the name of the target domain. + + + This attribute can only be specified on the assembly and may be used + as many times as necessary to alias all the required domains. + + + Nicko Cadell + Gert Driesen + + + + Assembly level attribute that specifies a repository to alias to this assembly's repository. + + + + An assembly's logger repository is defined by its , + however this can be overridden by an assembly loaded before the target assembly. + + + An assembly can alias another assembly's repository to its repository by + specifying this attribute with the name of the target repository. + + + This attribute can only be specified on the assembly and may be used + as many times as necessary to alias all the required repositories. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class with + the specified repository to alias to this assembly's repository. + + The repository to alias to this assemby's repository. + + + Initializes a new instance of the class with + the specified repository to alias to this assembly's repository. + + + + + + Gets or sets the repository to alias to this assemby's repository. + + + The repository to alias to this assemby's repository. + + + + The name of the repository to alias to this assemby's repository. + + + + + + Initializes a new instance of the class with + the specified domain to alias to this assembly's repository. + + The domain to alias to this assemby's repository. + + + Obsolete. Use instead of . + + + + + + Use this class to quickly configure a . + + + + Allows very simple programmatic configuration of log4net. + + + Only one appender can be configured using this configurator. + The appender is set at the root of the hierarchy and all logging + events will be delivered to that appender. + + + Appenders can also implement the interface. Therefore + they would require that the method + be called after the appenders properties have been configured. + + + Nicko Cadell + Gert Driesen + + + + The fully qualified type of the BasicConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Initializes the log4net system with a default configuration. + + + + Initializes the log4net logging system using a + that will write to Console.Out. The log messages are + formatted using the layout object + with the + layout style. + + + + + + Initializes the log4net system using the specified appenders. + + The appenders to use to log all logging events. + + + Initializes the log4net system using the specified appenders. + + + + + + Initializes the log4net system using the specified appender. + + The appender to use to log all logging events. + + + Initializes the log4net system using the specified appender. + + + + + + Initializes the with a default configuration. + + The repository to configure. + + + Initializes the specified repository using a + that will write to Console.Out. The log messages are + formatted using the layout object + with the + layout style. + + + + + + Initializes the using the specified appender. + + The repository to configure. + The appender to use to log all logging events. + + + Initializes the using the specified appender. + + + + + + Initializes the using the specified appenders. + + The repository to configure. + The appenders to use to log all logging events. + + + Initializes the using the specified appender. + + + + + + Base class for all log4net configuration attributes. + + + This is an abstract class that must be extended by + specific configurators. This attribute allows the + configurator to be parameterized by an assembly level + attribute. + + Nicko Cadell + Gert Driesen + + + + Constructor used by subclasses. + + the ordering priority for this configurator + + + The is used to order the configurator + attributes before they are invoked. Higher priority configurators are executed + before lower priority ones. + + + + + + Configures the for the specified assembly. + + The assembly that this attribute was defined on. + The repository to configure. + + + Abstract method implemented by a subclass. When this method is called + the subclass should configure the . + + + + + + Compare this instance to another ConfiguratorAttribute + + the object to compare to + see + + + Compares the priorities of the two instances. + Sorts by priority in descending order. Objects with the same priority are + randomly ordered. + + + + + + Assembly level attribute that specifies the logging domain for the assembly. + + + + DomainAttribute is obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + Assemblies are mapped to logging domains. Each domain has its own + logging repository. This attribute specified on the assembly controls + the configuration of the domain. The property specifies the name + of the domain that this assembly is a part of. The + specifies the type of the repository objects to create for the domain. If + this attribute is not specified and a is not specified + then the assembly will be part of the default shared logging domain. + + + This attribute can only be specified on the assembly and may only be used + once per assembly. + + + Nicko Cadell + Gert Driesen + + + + Assembly level attribute that specifies the logging repository for the assembly. + + + + Assemblies are mapped to logging repository. This attribute specified + on the assembly controls + the configuration of the repository. The property specifies the name + of the repository that this assembly is a part of. The + specifies the type of the object + to create for the assembly. If this attribute is not specified or a + is not specified then the assembly will be part of the default shared logging repository. + + + This attribute can only be specified on the assembly and may only be used + once per assembly. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Initialize a new instance of the class + with the name of the repository. + + The name of the repository. + + + Initialize the attribute with the name for the assembly's repository. + + + + + + Gets or sets the name of the logging repository. + + + The string name to use as the name of the repository associated with this + assembly. + + + + This value does not have to be unique. Several assemblies can share the + same repository. They will share the logging configuration of the repository. + + + + + + Gets or sets the type of repository to create for this assembly. + + + The type of repository to create for this assembly. + + + + The type of the repository to create for the assembly. + The type must implement the + interface. + + + This will be the type of repository created when + the repository is created. If multiple assemblies reference the + same repository then the repository is only created once using the + of the first assembly to call into the + repository. + + + + + + Initializes a new instance of the class. + + + + Obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + + + + Initialize a new instance of the class + with the name of the domain. + + The name of the domain. + + + Obsolete. Use RepositoryAttribute instead of DomainAttribute. + + + + + + Use this class to initialize the log4net environment using an Xml tree. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + Configures a using an Xml tree. + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + + + Automatically configures the log4net system based on the + application's configuration settings. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + + + Automatically configures the using settings + stored in the application's configuration file. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + The repository to configure. + + + + Configures log4net using a log4net element + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Loads the log4net configuration from the XML element + supplied as . + + The element to parse. + + + + Configures the using the specified XML + element. + + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + Loads the log4net configuration from the XML element + supplied as . + + The repository to configure. + The element to parse. + + + + Configures log4net using the specified configuration file. + + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures log4net using the specified configuration file. + + A stream to load the XML configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The stream to load the XML configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures log4net using the file specified, monitors the file for changes + and reloads the configuration if a change is detected. + + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the using the file specified, + monitors the file for changes and reloads the configuration if a change + is detected. + + The repository to configure. + The XML file to load the configuration from. + + + DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Assembly level attribute to configure the . + + + + AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute. + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + Nicko Cadell + Gert Driesen + + + + Assembly level attribute to configure the . + + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + If neither of the or + properties are set the configuration is loaded from the application's .config file. + If set the property takes priority over the + property. The property + specifies a path to a file to load the config from. The path is relative to the + application's base directory; . + The property is used as a postfix to the assembly file name. + The config file must be located in the application's base directory; . + For example in a console application setting the to + config has the same effect as not specifying the or + properties. + + + The property can be set to cause the + to watch the configuration file for changes. + + + + Log4net will only look for assembly level configuration attributes once. + When using the log4net assembly level attributes to control the configuration + of log4net you must ensure that the first call to any of the + methods is made from the assembly with the configuration + attributes. + + + If you cannot guarantee the order in which log4net calls will be made from + different assemblies you must use programmatic configuration instead, i.e. + call the method directly. + + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Default constructor + + + + + + Configures the for the specified assembly. + + The assembly that this attribute was defined on. + The repository to configure. + + + Configure the repository using the . + The specified must extend the + class otherwise the will not be able to + configure it. + + + The does not extend . + + + + Attempt to load configuration from the local file system + + The assembly that this attribute was defined on. + The repository to configure. + + + + Configure the specified repository using a + + The repository to configure. + the FileInfo pointing to the config file + + + + Attempt to load configuration from a URI + + The assembly that this attribute was defined on. + The repository to configure. + + + + The fully qualified type of the XmlConfiguratorAttribute class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the filename of the configuration file. + + + The filename of the configuration file. + + + + If specified, this is the name of the configuration file to use with + the . This file path is relative to the + application base directory (). + + + The takes priority over the . + + + + + + Gets or sets the extension of the configuration file. + + + The extension of the configuration file. + + + + If specified this is the extension for the configuration file. + The path to the config file is built by using the application + base directory (), + the assembly file name and the config file extension. + + + If the is set to MyExt then + possible config file names would be: MyConsoleApp.exe.MyExt or + MyClassLibrary.dll.MyExt. + + + The takes priority over the . + + + + + + Gets or sets a value indicating whether to watch the configuration file. + + + true if the configuration should be watched, false otherwise. + + + + If this flag is specified and set to true then the framework + will watch the configuration file and will reload the config each time + the file is modified. + + + The config file can only be watched if it is loaded from local disk. + In a No-Touch (Smart Client) deployment where the application is downloaded + from a web server the config file may not reside on the local disk + and therefore it may not be able to watch it. + + + Watching configuration is not supported on the SSCLI. + + + + + + Class to register for the log4net section of the configuration file + + + The log4net section of the configuration file needs to have a section + handler registered. This is the section handler used. It simply returns + the XML element that is the root of the section. + + + Example of registering the log4net section handler : + + + +
+ + + log4net configuration XML goes here + + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Default constructor. + + + + + + Parses the configuration section. + + The configuration settings in a corresponding parent configuration section. + The configuration context when called from the ASP.NET configuration system. Otherwise, this parameter is reserved and is a null reference. + The for the log4net section. + The for the log4net section. + + + Returns the containing the configuration data, + + + + + + Assembly level attribute that specifies a plugin to attach to + the repository. + + + + Specifies the type of a plugin to create and attach to the + assembly's repository. The plugin type must implement the + interface. + + + Nicko Cadell + Gert Driesen + + + + Interface used to create plugins. + + + + Interface used to create a plugin. + + + Nicko Cadell + Gert Driesen + + + + Creates the plugin object. + + the new plugin instance + + + Create and return a new plugin instance. + + + + + + Initializes a new instance of the class + with the specified type. + + The type name of plugin to create. + + + Create the attribute with the plugin type specified. + + + Where possible use the constructor that takes a . + + + + + + Initializes a new instance of the class + with the specified type. + + The type of plugin to create. + + + Create the attribute with the plugin type specified. + + + + + + Creates the plugin object defined by this attribute. + + + + Creates the instance of the object as + specified by this attribute. + + + The plugin object. + + + + Returns a representation of the properties of this object. + + + + Overrides base class method to + return a representation of the properties of this object. + + + A representation of the properties of this object + + + + Gets or sets the type for the plugin. + + + The type for the plugin. + + + + The type for the plugin. + + + + + + Gets or sets the type name for the plugin. + + + The type name for the plugin. + + + + The type name for the plugin. + + + Where possible use the property instead. + + + + + + Assembly level attribute to configure the . + + + + This attribute may only be used at the assembly scope and can only + be used once per assembly. + + + Use this attribute to configure the + without calling one of the + methods. + + + Nicko Cadell + + + + Construct provider attribute with type specified + + the type of the provider to use + + + The provider specified must subclass the + class. + + + + + + Configures the SecurityContextProvider + + The assembly that this attribute was defined on. + The repository to configure. + + + Creates a provider instance from the specified. + Sets this as the default security context provider . + + + + + + The fully qualified type of the SecurityContextProviderAttribute class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the type of the provider to use. + + + the type of the provider to use. + + + + The provider specified must subclass the + class. + + + + + + Use this class to initialize the log4net environment using an Xml tree. + + + + Configures a using an Xml tree. + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + + + Automatically configures the using settings + stored in the application's configuration file. + + + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + To use this method to configure log4net you must specify + the section + handler for the log4net configuration section. See the + for an example. + + + The repository to configure. + + + + Automatically configures the log4net system based on the + application's configuration settings. + + + + Each application has a configuration file. This has the + same name as the application with '.config' appended. + This file is XML and calling this function prompts the + configurator to look in that file for a section called + log4net that contains the configuration data. + + + To use this method to configure log4net you must specify + the section + handler for the log4net configuration section. See the + for an example. + + + + + + + Configures log4net using a log4net element + + + + Loads the log4net configuration from the XML element + supplied as . + + + The element to parse. + + + + Configures log4net using the specified configuration file. + + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The first element matching <configuration> will be read as the + configuration. If this file is also a .NET .config file then you must specify + a configuration section for the log4net element otherwise .NET will + complain. Set the type for the section handler to , for example: + + +
+ + + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures log4net using the specified configuration URI. + + A URI to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + The must support the URI scheme specified. + + + + + + Configures log4net using the specified configuration data stream. + + A stream to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the log4net configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures the using the specified XML + element. + + + Loads the log4net configuration from the XML element + supplied as . + + The repository to configure. + The element to parse. + + + + Configures the using the specified configuration + file. + + The repository to configure. + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The log4net configuration file can possible be specified in the application's + configuration file (either MyAppName.exe.config for a + normal application on Web.config for an ASP.NET application). + + + The first element matching <configuration> will be read as the + configuration. If this file is also a .NET .config file then you must specify + a configuration section for the log4net element otherwise .NET will + complain. Set the type for the section handler to , for example: + + +
+ + + + + The following example configures log4net using a configuration file, of which the + location is stored in the application's configuration file : + + + using log4net.Config; + using System.IO; + using System.Configuration; + + ... + + XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"])); + + + In the .config file, the path to the log4net can be specified like this : + + + + + + + + + + + + + Configures the using the specified configuration + URI. + + The repository to configure. + A URI to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The must support the URI scheme specified. + + + + + + Configures the using the specified configuration + file. + + The repository to configure. + The stream to load the XML configuration from. + + + The configuration data must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + Note that this method will NOT close the stream parameter. + + + + + + Configures log4net using the file specified, monitors the file for changes + and reloads the configuration if a change is detected. + + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the using the file specified, + monitors the file for changes and reloads the configuration if a change + is detected. + + The repository to configure. + The XML file to load the configuration from. + + + The configuration file must be valid XML. It must contain + at least one element called log4net that holds + the configuration data. + + + The configuration file will be monitored using a + and depends on the behavior of that class. + + + For more information on how to configure log4net using + a separate configuration file, see . + + + + + + + Configures the specified repository using a log4net element. + + The hierarchy to configure. + The element to parse. + + + Loads the log4net configuration from the XML element + supplied as . + + + This method is ultimately called by one of the Configure methods + to load the configuration from an . + + + + + + Maps repository names to ConfigAndWatchHandler instances to allow a particular + ConfigAndWatchHandler to dispose of its FileSystemWatcher when a repository is + reconfigured. + + + + + The fully qualified type of the XmlConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Class used to watch config files. + + + + Uses the to monitor + changes to a specified file. Because multiple change notifications + may be raised when the file is modified, a timer is used to + compress the notifications into a single event. The timer + waits for time before delivering + the event notification. If any further + change notifications arrive while the timer is waiting it + is reset and waits again for to + elapse. + + + + + + The default amount of time to wait after receiving notification + before reloading the config file. + + + + + Holds the FileInfo used to configure the XmlConfigurator + + + + + Holds the repository being configured. + + + + + The timer used to compress the notification events. + + + + + Watches file for changes. This object should be disposed when no longer + needed to free system handles on the watched resources. + + + + + Initializes a new instance of the class to + watch a specified config file used to configure a repository. + + The repository to configure. + The configuration file to watch. + + + Initializes a new instance of the class. + + + + + + Event handler used by . + + The firing the event. + The argument indicates the file that caused the event to be fired. + + + This handler reloads the configuration from the file when the event is fired. + + + + + + Event handler used by . + + The firing the event. + The argument indicates the file that caused the event to be fired. + + + This handler reloads the configuration from the file when the event is fired. + + + + + + Called by the timer when the configuration has been updated. + + null + + + + Release the handles held by the watcher and timer. + + + + + The implementation of the interface suitable + for use with the compact framework + + + + This implementation is a simple + mapping between repository name and + object. + + + The .NET Compact Framework 1.0 does not support retrieving assembly + level attributes therefore unlike the DefaultRepositorySelector + this selector does not examine the calling assembly for attributes. + + + Nicko Cadell + + + + Interface used by the to select the . + + + + The uses a + to specify the policy for selecting the correct + to return to the caller. + + + Nicko Cadell + Gert Driesen + + + + Gets the for the specified assembly. + + The assembly to use to lookup to the + The for the assembly. + + + Gets the for the specified assembly. + + + How the association between and + is made is not defined. The implementation may choose any method for + this association. The results of this method must be repeatable, i.e. + when called again with the same arguments the result must be the + save value. + + + + + + Gets the named . + + The name to use to lookup to the . + The named + + Lookup a named . This is the repository created by + calling . + + + + + Creates a new repository for the assembly specified. + + The assembly to use to create the domain to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the domain + specified such that a call to with the + same assembly specified will return the same repository instance. + + + How the association between and + is made is not defined. The implementation may choose any method for + this association. + + + + + + Creates a new repository with the name specified. + + The name to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the name + specified such that a call to with the + same name will return the same repository instance. + + + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets an array of all currently defined repositories. + + + An array of the instances created by + this . + + + Gets an array of all of the repositories created by this selector. + + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + Create a new repository selector + + the type of the repositories to create, must implement + + + Create an new compact repository selector. + The default type for repositories must be specified, + an appropriate value would be . + + + throw if is null + throw if does not implement + + + + Get the for the specified assembly + + not used + The default + + + The argument is not used. This selector does not create a + separate repository for each assembly. + + + As a named repository is not specified the default repository is + returned. The default repository is named log4net-default-repository. + + + + + + Get the named + + the name of the repository to lookup + The named + + + Get the named . The default + repository is log4net-default-repository. Other repositories + must be created using the . + If the named repository does not exist an exception is thrown. + + + throw if is null + throw if the does not exist + + + + Create a new repository for the assembly specified + + not used + the type of repository to create, must implement + the repository created + + + The argument is not used. This selector does not create a + separate repository for each assembly. + + + If the is null then the + default repository type specified to the constructor is used. + + + As a named repository is not specified the default repository is + returned. The default repository is named log4net-default-repository. + + + + + + Create a new repository for the repository specified + + the repository to associate with the + the type of repository to create, must implement . + If this param is null then the default repository type is used. + the repository created + + + The created will be associated with the repository + specified such that a call to with the + same repository specified will return the same repository instance. + + + If the named repository already exists an exception will be thrown. + + + If is null then the default + repository type specified to the constructor is used. + + + throw if is null + throw if the already exists + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets a list of objects + + an array of all known objects + + + Gets an array of all of the repositories created by this selector. + + + + + + The fully qualified type of the CompactRepositorySelector class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Notify the registered listeners that the repository has been created + + The repository that has been created + + + Raises the LoggerRepositoryCreatedEvent + event. + + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + The default implementation of the interface. + + + + Uses attributes defined on the calling assembly to determine how to + configure the hierarchy for the repository. + + + Nicko Cadell + Gert Driesen + + + + Creates a new repository selector. + + The type of the repositories to create, must implement + + + Create an new repository selector. + The default type for repositories must be specified, + an appropriate value would be . + + + is . + does not implement . + + + + Gets the for the specified assembly. + + The assembly use to lookup the . + + + The type of the created and the repository + to create can be overridden by specifying the + attribute on the . + + + The default values are to use the + implementation of the interface and to use the + as the name of the repository. + + + The created will be automatically configured using + any attributes defined on + the . + + + The for the assembly + is . + + + + Gets the for the specified repository. + + The repository to use to lookup the . + The for the specified repository. + + + Returns the named repository. If is null + a is thrown. If the repository + does not exist a is thrown. + + + Use to create a repository. + + + is . + does not exist. + + + + Create a new repository for the assembly specified + + the assembly to use to create the repository to associate with the . + The type of repository to create, must implement . + The repository created. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The type of the created and + the repository to create can be overridden by specifying the + attribute on the + . The default values are to use the + implementation of the + interface and to use the + as the name of the repository. + + + The created will be automatically + configured using any + attributes defined on the . + + + If a repository for the already exists + that repository will be returned. An error will not be raised and that + repository may be of a different type to that specified in . + Also the attribute on the + assembly may be used to override the repository type specified in + . + + + is . + + + + Creates a new repository for the assembly specified. + + the assembly to use to create the repository to associate with the . + The type of repository to create, must implement . + The name to assign to the created repository + Set to true to read and apply the assembly attributes + The repository created. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The type of the created and + the repository to create can be overridden by specifying the + attribute on the + . The default values are to use the + implementation of the + interface and to use the + as the name of the repository. + + + The created will be automatically + configured using any + attributes defined on the . + + + If a repository for the already exists + that repository will be returned. An error will not be raised and that + repository may be of a different type to that specified in . + Also the attribute on the + assembly may be used to override the repository type specified in + . + + + is . + + + + Creates a new repository for the specified repository. + + The repository to associate with the . + The type of repository to create, must implement . + If this param is then the default repository type is used. + The new repository. + + + The created will be associated with the repository + specified such that a call to with the + same repository specified will return the same repository instance. + + + is . + already exists. + + + + Test if a named repository exists + + the named repository to check + true if the repository exists + + + Test if a named repository exists. Use + to create a new repository and to retrieve + a repository. + + + + + + Gets a list of objects + + an array of all known objects + + + Gets an array of all of the repositories created by this selector. + + + + + + Aliases a repository to an existing repository. + + The repository to alias. + The repository that the repository is aliased to. + + + The repository specified will be aliased to the repository when created. + The repository must not already exist. + + + When the repository is created it must utilize the same repository type as + the repository it is aliased to, otherwise the aliasing will fail. + + + + is . + -or- + is . + + + + + Notifies the registered listeners that the repository has been created. + + The repository that has been created. + + + Raises the event. + + + + + + Gets the repository name and repository type for the specified assembly. + + The assembly that has a . + in/out param to hold the repository name to use for the assembly, caller should set this to the default value before calling. + in/out param to hold the type of the repository to create for the assembly, caller should set this to the default value before calling. + is . + + + + Configures the repository using information from the assembly. + + The assembly containing + attributes which define the configuration for the repository. + The repository to configure. + + is . + -or- + is . + + + + + Loads the attribute defined plugins on the assembly. + + The assembly that contains the attributes. + The repository to add the plugins to. + + is . + -or- + is . + + + + + Loads the attribute defined aliases on the assembly. + + The assembly that contains the attributes. + The repository to alias to. + + is . + -or- + is . + + + + + The fully qualified type of the DefaultRepositorySelector class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Event to notify that a logger repository has been created. + + + Event to notify that a logger repository has been created. + + + + Event raised when a new repository is created. + The event source will be this selector. The event args will + be a which + holds the newly created . + + + + + + Defined error codes that can be passed to the method. + + + + Values passed to the method. + + + Nicko Cadell + + + + A general error + + + + + Error while writing output + + + + + Failed to flush file + + + + + Failed to close file + + + + + Unable to open output file + + + + + No layout specified + + + + + Failed to parse address + + + + + An evaluator that triggers on an Exception type + + + + This evaluator will trigger if the type of the Exception + passed to + is equal to a Type in . /// + + + Drew Schaeffer + + + + Test if an triggers an action + + + + Implementations of this interface allow certain appenders to decide + when to perform an appender specific action. + + + The action or behavior triggered is defined by the implementation. + + + Nicko Cadell + + + + Test if this event triggers the action + + The event to check + true if this event triggers the action, otherwise false + + + Return true if this event triggers the action + + + + + + The type that causes the trigger to fire. + + + + + Causes subclasses of to cause the trigger to fire. + + + + + Default ctor to allow dynamic creation through a configurator. + + + + + Constructs an evaluator and initializes to trigger on + + the type that triggers this evaluator. + If true, this evaluator will trigger on subclasses of . + + + + Is this the triggering event? + + The event to check + This method returns true, if the logging event Exception + Type is . + Otherwise it returns false + + + This evaluator will trigger if the Exception Type of the event + passed to + is . + + + + + + The type that triggers this evaluator. + + + + + If true, this evaluator will trigger on subclasses of . + + + + + Appenders may delegate their error handling to an . + + + + Error handling is a particularly tedious to get right because by + definition errors are hard to predict and to reproduce. + + + Nicko Cadell + Gert Driesen + + + + Handles the error and information about the error condition is passed as + a parameter. + + The message associated with the error. + The that was thrown when the error occurred. + The error code associated with the error. + + + Handles the error and information about the error condition is passed as + a parameter. + + + + + + Prints the error message passed as a parameter. + + The message associated with the error. + The that was thrown when the error occurred. + + + See . + + + + + + Prints the error message passed as a parameter. + + The message associated with the error. + + + See . + + + + + + Interface for objects that require fixing. + + + + Interface that indicates that the object requires fixing before it + can be taken outside the context of the appender's + method. + + + When objects that implement this interface are stored + in the context properties maps + and + are fixed + (see ) the + method will be called. + + + Nicko Cadell + + + + Get a portable version of this object + + the portable instance of this object + + + Get a portable instance object that represents the current + state of this object. The portable object can be stored + and logged from any thread with identical results. + + + + + + Interface that all loggers implement + + + + This interface supports logging events and testing if a level + is enabled for logging. + + + These methods will not throw exceptions. Note to implementor, ensure + that the implementation of these methods cannot allow an exception + to be thrown to the caller. + + + Nicko Cadell + Gert Driesen + + + + This generic form is intended to be used by wrappers. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + the exception to log, including its stack trace. Pass null to not log an exception. + + + Generates a logging event for the specified using + the and . + + + + + + This is the most generic printing method that is intended to be used + by wrappers. + + The event being logged. + + + Logs the specified logging event through this logger. + + + + + + Checks if this logger is enabled for a given passed as parameter. + + The level to check. + + true if this logger is enabled for level, otherwise false. + + + + Test if this logger is going to log events of the specified . + + + + + + Gets the name of the logger. + + + The name of the logger. + + + + The name of this logger + + + + + + Gets the where this + Logger instance is attached to. + + + The that this logger belongs to. + + + + Gets the where this + Logger instance is attached to. + + + + + + Base interface for all wrappers + + + + Base interface for all wrappers. + + + All wrappers must implement this interface. + + + Nicko Cadell + + + + Get the implementation behind this wrapper object. + + + The object that in implementing this object. + + + + The object that in implementing this + object. The Logger object may not + be the same object as this object because of logger decorators. + This gets the actual underlying objects that is used to process + the log events. + + + + + + Delegate used to handle logger repository creation event notifications + + The which created the repository. + The event args + that holds the instance that has been created. + + + Delegate used to handle logger repository creation event notifications. + + + + + + Provides data for the event. + + + + A + event is raised every time a is created. + + + + + + The created + + + + + Construct instance using specified + + the that has been created + + + Construct instance using specified + + + + + + The that has been created + + + The that has been created + + + + The that has been created + + + + + + Defines the default set of levels recognized by the system. + + + + Each has an associated . + + + Levels have a numeric that defines the relative + ordering between levels. Two Levels with the same + are deemed to be equivalent. + + + The levels that are recognized by log4net are set for each + and each repository can have different levels defined. The levels are stored + in the on the repository. Levels are + looked up by name from the . + + + When logging at level INFO the actual level used is not but + the value of LoggerRepository.LevelMap["INFO"]. The default value for this is + , but this can be changed by reconfiguring the level map. + + + Each level has a in addition to its . The + is the string that is written into the output log. By default + the display name is the same as the level name, but this can be used to alias levels + or to localize the log output. + + + Some of the predefined levels recognized by the system are: + + + + . + + + . + + + . + + + . + + + . + + + . + + + . + + + + Nicko Cadell + Gert Driesen + + + + Constructor + + Integer value for this level, higher values represent more severe levels. + The string name of this level. + The display name for this level. This may be localized or otherwise different from the name + + + Initializes a new instance of the class with + the specified level name and value. + + + + + + Constructor + + Integer value for this level, higher values represent more severe levels. + The string name of this level. + + + Initializes a new instance of the class with + the specified level name and value. + + + + + + Returns the representation of the current + . + + + A representation of the current . + + + + Returns the level . + + + + + + Compares levels. + + The object to compare against. + true if the objects are equal. + + + Compares the levels of instances, and + defers to base class if the target object is not a + instance. + + + + + + Returns a hash code + + A hash code for the current . + + + Returns a hash code suitable for use in hashing algorithms and data + structures like a hash table. + + + Returns the hash code of the level . + + + + + + Compares this instance to a specified object and returns an + indication of their relative values. + + A instance or to compare with this instance. + + A 32-bit signed integer that indicates the relative order of the + values compared. The return value has these meanings: + + + Value + Meaning + + + Less than zero + This instance is less than . + + + Zero + This instance is equal to . + + + Greater than zero + + This instance is greater than . + -or- + is . + + + + + + + must be an instance of + or ; otherwise, an exception is thrown. + + + is not a . + + + + Returns a value indicating whether a specified + is greater than another specified . + + A + A + + true if is greater than + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is less than another specified . + + A + A + + true if is less than + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is greater than or equal to another specified . + + A + A + + true if is greater than or equal to + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether a specified + is less than or equal to another specified . + + A + A + + true if is less than or equal to + ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether two specified + objects have the same value. + + A or . + A or . + + true if the value of is the same as the + value of ; otherwise, false. + + + + Compares two levels. + + + + + + Returns a value indicating whether two specified + objects have different values. + + A or . + A or . + + true if the value of is different from + the value of ; otherwise, false. + + + + Compares two levels. + + + + + + Compares two specified instances. + + The first to compare. + The second to compare. + + A 32-bit signed integer that indicates the relative order of the + two values compared. The return value has these meanings: + + + Value + Meaning + + + Less than zero + is less than . + + + Zero + is equal to . + + + Greater than zero + is greater than . + + + + + + Compares two levels. + + + + + + The level designates a higher level than all the rest. + + + + + The level designates very severe error events. + System unusable, emergencies. + + + + + The level designates very severe error events. + System unusable, emergencies. + + + + + The level designates very severe error events + that will presumably lead the application to abort. + + + + + The level designates very severe error events. + Take immediate action, alerts. + + + + + The level designates very severe error events. + Critical condition, critical. + + + + + The level designates very severe error events. + + + + + The level designates error events that might + still allow the application to continue running. + + + + + The level designates potentially harmful + situations. + + + + + The level designates informational messages + that highlight the progress of the application at the highest level. + + + + + The level designates informational messages that + highlight the progress of the application at coarse-grained level. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates fine-grained informational + events that are most useful to debug an application. + + + + + The level designates the lowest level possible. + + + + + Gets the name of this level. + + + The name of this level. + + + + Gets the name of this level. + + + + + + Gets the value of this level. + + + The value of this level. + + + + Gets the value of this level. + + + + + + Gets the display name of this level. + + + The display name of this level. + + + + Gets the display name of this level. + + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Creates a read-only wrapper for a LevelCollection instance. + + list to create a readonly wrapper arround + + A LevelCollection wrapper that is read-only. + + + + + Initializes a new instance of the LevelCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the LevelCollection class + that has the specified initial capacity. + + + The number of elements that the new LevelCollection is initially capable of storing. + + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified LevelCollection. + + The LevelCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the LevelCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Allow subclasses to avoid our default constructors + + + + + + Copies the entire LevelCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire LevelCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Adds a to the end of the LevelCollection. + + The to be added to the end of the LevelCollection. + The index at which the value has been added. + + + + Removes all elements from the LevelCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the LevelCollection. + + The to check for. + true if is found in the LevelCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the LevelCollection. + + The to locate in the LevelCollection. + + The zero-based index of the first occurrence of + in the entire LevelCollection, if found; otherwise, -1. + + + + + Inserts an element into the LevelCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the LevelCollection. + + The to remove from the LevelCollection. + + The specified was not found in the LevelCollection. + + + + + Removes the element at the specified index of the LevelCollection. + + The zero-based index of the element to remove. + + is less than zero + -or- + is equal to or greater than . + + + + + Returns an enumerator that can iterate through the LevelCollection. + + An for the entire LevelCollection. + + + + Adds the elements of another LevelCollection to the current LevelCollection. + + The LevelCollection whose elements should be added to the end of the current LevelCollection. + The new of the LevelCollection. + + + + Adds the elements of a array to the current LevelCollection. + + The array whose elements should be added to the end of the LevelCollection. + The new of the LevelCollection. + + + + Adds the elements of a collection to the current LevelCollection. + + The collection whose elements should be added to the end of the LevelCollection. + The new of the LevelCollection. + + + + Sets the capacity to the actual number of elements. + + + + + is less than zero + -or- + is equal to or greater than . + + + + + is less than zero + -or- + is equal to or greater than . + + + + + Gets the number of elements actually contained in the LevelCollection. + + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + The zero-based index of the element to get or set. + + is less than zero + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false + + + + Gets or sets the number of elements the LevelCollection can contain. + + + + + Supports type-safe iteration over a . + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + A value + + + + + Supports simple iteration over a . + + + + + Initializes a new instance of the Enumerator class. + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + An evaluator that triggers at a threshold level + + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + Nicko Cadell + + + + The threshold for triggering + + + + + Create a new evaluator using the threshold. + + + + Create a new evaluator using the threshold. + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Create a new evaluator using the specified threshold. + + the threshold to trigger at + + + Create a new evaluator using the specified threshold. + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Is this the triggering event? + + The event to check + This method returns true, if the event level + is equal or higher than the . + Otherwise it returns false + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + the threshold to trigger at + + + The that will cause this evaluator to trigger + + + + This evaluator will trigger if the level of the event + passed to + is equal to or greater than the + level. + + + + + + Mapping between string name and Level object + + + + Mapping between string name and object. + This mapping is held separately for each . + The level name is case insensitive. + + + Nicko Cadell + + + + Mapping from level name to Level object. The + level name is case insensitive + + + + + Construct the level map + + + + Construct the level map. + + + + + + Clear the internal maps of all levels + + + + Clear the internal maps of all levels + + + + + + Create a new Level and add it to the map + + the string to display for the Level + the level value to give to the Level + + + Create a new Level and add it to the map + + + + + + + Create a new Level and add it to the map + + the string to display for the Level + the level value to give to the Level + the display name to give to the Level + + + Create a new Level and add it to the map + + + + + + Add a Level to the map + + the Level to add + + + Add a Level to the map + + + + + + Lookup a named level from the map + + the name of the level to lookup is taken from this level. + If the level is not set on the map then this level is added + the level in the map with the name specified + + + Lookup a named level from the map. The name of the level to lookup is taken + from the property of the + argument. + + + If no level with the specified name is found then the + argument is added to the level map + and returned. + + + + + + Lookup a by name + + The name of the Level to lookup + a Level from the map with the name specified + + + Returns the from the + map with the name specified. If the no level is + found then null is returned. + + + + + + Return all possible levels as a list of Level objects. + + all possible levels as a list of Level objects + + + Return all possible levels as a list of Level objects. + + + + + + The internal representation of caller location information. + + + + This class uses the System.Diagnostics.StackTrace class to generate + a call stack. The caller's information is then extracted from this stack. + + + The System.Diagnostics.StackTrace class is not supported on the + .NET Compact Framework 1.0 therefore caller location information is not + available on that framework. + + + The System.Diagnostics.StackTrace class has this to say about Release builds: + + + "StackTrace information will be most informative with Debug build configurations. + By default, Debug builds include debug symbols, while Release builds do not. The + debug symbols contain most of the file, method name, line number, and column + information used in constructing StackFrame and StackTrace objects. StackTrace + might not report as many method calls as expected, due to code transformations + that occur during optimization." + + + This means that in a Release build the caller information may be incomplete or may + not exist at all! Therefore caller location information cannot be relied upon in a Release build. + + + Nicko Cadell + Gert Driesen + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + Constructor + + The declaring type of the method that is + the stack boundary into the logging system for this call. + + + Initializes a new instance of the + class based on the current thread. + + + + + + Constructor + + The fully qualified class name. + The method name. + The file name. + The line number of the method within the file. + + + Initializes a new instance of the + class with the specified data. + + + + + + The fully qualified type of the LocationInfo class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the fully qualified class name of the caller making the logging + request. + + + The fully qualified class name of the caller making the logging + request. + + + + Gets the fully qualified class name of the caller making the logging + request. + + + + + + Gets the file name of the caller. + + + The file name of the caller. + + + + Gets the file name of the caller. + + + + + + Gets the line number of the caller. + + + The line number of the caller. + + + + Gets the line number of the caller. + + + + + + Gets the method name of the caller. + + + The method name of the caller. + + + + Gets the method name of the caller. + + + + + + Gets all available caller information + + + All available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + Gets all available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + + + Gets the stack frames from the stack trace of the caller making the log request + + + + + Static manager that controls the creation of repositories + + + + Static manager that controls the creation of repositories + + + This class is used by the wrapper managers (e.g. ) + to provide access to the objects. + + + This manager also holds the that is used to + lookup and create repositories. The selector can be set either programmatically using + the property, or by setting the log4net.RepositorySelector + AppSetting in the applications config file to the fully qualified type name of the + selector to use. + + + Nicko Cadell + Gert Driesen + + + + Private constructor to prevent instances. Only static methods should be used. + + + + Private constructor to prevent instances. Only static methods should be used. + + + + + + Hook the shutdown event + + + + On the full .NET runtime, the static constructor hooks up the + AppDomain.ProcessExit and AppDomain.DomainUnload> events. + These are used to shutdown the log4net system as the application exits. + + + + + + Register for ProcessExit and DomainUnload events on the AppDomain + + + + This needs to be in a separate method because the events make + a LinkDemand for the ControlAppDomain SecurityPermission. Because + this is a LinkDemand it is demanded at JIT time. Therefore we cannot + catch the exception in the method itself, we have to catch it in the + caller. + + + + + + Return the default instance. + + the repository to lookup in + Return the default instance + + + Gets the for the repository specified + by the argument. + + + + + + Returns the default instance. + + The assembly to use to lookup the repository. + The default instance. + + + + Return the default instance. + + the repository to lookup in + Return the default instance + + + Gets the for the repository specified + by the argument. + + + + + + Returns the default instance. + + The assembly to use to lookup the repository. + The default instance. + + + Returns the default instance. + + + + + + Returns the named logger if it exists. + + The repository to lookup in. + The fully qualified logger name to look for. + + The logger found, or null if the named logger does not exist in the + specified repository. + + + + If the named logger exists (in the specified repository) then it + returns a reference to the logger, otherwise it returns + null. + + + + + + Returns the named logger if it exists. + + The assembly to use to lookup the repository. + The fully qualified logger name to look for. + + The logger found, or null if the named logger does not exist in the + specified assembly's repository. + + + + If the named logger exists (in the specified assembly's repository) then it + returns a reference to the logger, otherwise it returns + null. + + + + + + Returns all the currently defined loggers in the specified repository. + + The repository to lookup in. + All the defined loggers. + + + The root logger is not included in the returned array. + + + + + + Returns all the currently defined loggers in the specified assembly's repository. + + The assembly to use to lookup the repository. + All the defined loggers. + + + The root logger is not included in the returned array. + + + + + + Retrieves or creates a named logger. + + The repository to lookup in. + The name of the logger to retrieve. + The logger with the name specified. + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + + + + Retrieves or creates a named logger. + + The assembly to use to lookup the repository. + The name of the logger to retrieve. + The logger with the name specified. + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + + + + Shorthand for . + + The repository to lookup in. + The of which the fullname will be used as the name of the logger to retrieve. + The logger with the name specified. + + + Gets the logger for the fully qualified name of the type specified. + + + + + + Shorthand for . + + the assembly to use to lookup the repository + The of which the fullname will be used as the name of the logger to retrieve. + The logger with the name specified. + + + Gets the logger for the fully qualified name of the type specified. + + + + + + Shuts down the log4net system. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in all the + default repositories. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + The repository to shutdown. + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository for the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + The assembly to use to lookup the repository. + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository for the repository. The repository is looked up using + the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Resets all values contained in this repository instance to their defaults. + + The repository to reset. + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + + + + Resets all values contained in this repository instance to their defaults. + + The assembly to use to lookup the repository to reset. + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + + + + Creates a repository with the specified name. + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name. + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The name must be unique. Repositories cannot be redefined. + An Exception will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The name must be unique. Repositories cannot be redefined. + An Exception will be thrown if the repository already exists. + + + The specified repository already exists. + + + + Creates a repository for the specified assembly and repository type. + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + + + + Creates a repository for the specified assembly and repository type. + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + + + + Gets an array of all currently defined repositories. + + An array of all the known objects. + + + Gets an array of all currently defined repositories. + + + + + + Internal method to get pertinent version info. + + A string of version info. + + + + Called when the event fires + + the that is exiting + null + + + Called when the event fires. + + + When the event is triggered the log4net system is . + + + + + + Called when the event fires + + the that is exiting + null + + + Called when the event fires. + + + When the event is triggered the log4net system is . + + + + + + The fully qualified type of the LoggerManager class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Initialize the default repository selector + + + + + Gets or sets the repository selector used by the . + + + The repository selector used by the . + + + + The repository selector () is used by + the to create and select repositories + (). + + + The caller to supplies either a string name + or an assembly (if not supplied the assembly is inferred using + ). + + + This context is used by the selector to lookup a specific repository. + + + For the full .NET Framework, the default repository is DefaultRepositorySelector; + for the .NET Compact Framework CompactRepositorySelector is the default + repository. + + + + + + Implementation of the interface. + + + + This class should be used as the base for all wrapper implementations. + + + Nicko Cadell + Gert Driesen + + + + Constructs a new wrapper for the specified logger. + + The logger to wrap. + + + Constructs a new wrapper for the specified logger. + + + + + + The logger that this object is wrapping + + + + + Gets the implementation behind this wrapper object. + + + The object that this object is implementing. + + + + The Logger object may not be the same object as this object + because of logger decorators. + + + This gets the actual underlying objects that is used to process + the log events. + + + + + + Portable data structure used by + + + + Portable data structure used by + + + Nicko Cadell + + + + The logger name. + + + + The logger name. + + + + + + Level of logging event. + + + + Level of logging event. Level cannot be Serializable + because it is a flyweight. Due to its special serialization it + cannot be declared final either. + + + + + + The application supplied message. + + + + The application supplied message of logging event. + + + + + + The name of thread + + + + The name of thread in which this logging event was generated + + + + + + Gets or sets the local time the event was logged + + + + Prefer using the setter, since local time can be ambiguous. + + + + + + Location information for the caller. + + + + Location information for the caller. + + + + + + String representation of the user + + + + String representation of the user's windows name, + like DOMAIN\username + + + + + + String representation of the identity. + + + + String representation of the current thread's principal identity. + + + + + + The string representation of the exception + + + + The string representation of the exception + + + + + + String representation of the AppDomain. + + + + String representation of the AppDomain. + + + + + + Additional event specific properties + + + + A logger or an appender may attach additional + properties to specific events. These properties + have a string key and an object value. + + + + + + Gets or sets the UTC time the event was logged + + + + The TimeStamp is stored in the UTC time zone. + + + + + + Flags passed to the property + + + + Flags passed to the property + + + Nicko Cadell + + + + Fix the MDC + + + + + Fix the NDC + + + + + Fix the rendered message + + + + + Fix the thread name + + + + + Fix the callers location information + + + CAUTION: Very slow to generate + + + + + Fix the callers windows user name + + + CAUTION: Slow to generate + + + + + Fix the domain friendly name + + + + + Fix the callers principal name + + + CAUTION: May be slow to generate + + + + + Fix the exception text + + + + + Fix the event properties. Active properties must implement in order to be eligible for fixing. + + + + + No fields fixed + + + + + All fields fixed + + + + + Partial fields fixed + + + + This set of partial fields gives good performance. The following fields are fixed: + + + + + + + + + + + + + The internal representation of logging events. + + + + When an affirmative decision is made to log then a + instance is created. This instance + is passed around to the different log4net components. + + + This class is of concern to those wishing to extend log4net. + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + for incurred by calling but it + is essential to maintaining data consistency. + + + Nicko Cadell + Gert Driesen + Douglas de la Torre + Daniel Cazzulino + + + + The key into the Properties map for the host name value. + + + + + The key into the Properties map for the thread identity value. + + + + + The key into the Properties map for the user name value. + + + + + Initializes a new instance of the class + from the supplied parameters. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + The name of the logger of this event. + The level of this event. + The message of this event. + The exception for this event. + + + Except , and , + all fields of LoggingEvent are filled when actually needed. Call + to cache all data locally + to prevent inconsistencies. + + This method is called by the log4net framework + to create a logging event. + + + + + + Initializes a new instance of the class + using specific data. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + Data used to initialize the logging event. + The fields in the struct that have already been fixed. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + The parameter should be used to specify which fields in the + struct have been preset. Fields not specified in the + will be captured from the environment if requested or fixed. + + + + + + Initializes a new instance of the class + using specific data. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The repository this event is logged in. + Data used to initialize the logging event. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + This constructor sets this objects flags to , + this assumes that all the data relating to this event is passed in via the + parameter and no other data should be captured from the environment. + + + + + + Initializes a new instance of the class + using specific data. + + Data used to initialize the logging event. + + + This constructor is provided to allow a + to be created independently of the log4net framework. This can + be useful if you require a custom serialization scheme. + + + Use the method to obtain an + instance of the class. + + + This constructor sets this objects flags to , + this assumes that all the data relating to this event is passed in via the + parameter and no other data should be captured from the environment. + + + + + + Serialization constructor + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Ensure that the repository is set. + + the value for the repository + + + + Write the rendered message to a TextWriter + + the writer to write the message to + + + Unlike the property this method + does store the message data in the internal cache. Therefore + if called only once this method should be faster than the + property, however if the message is + to be accessed multiple times then the property will be more efficient. + + + + + + Serializes this object into the provided. + + The to populate with data. + The destination for this serialization. + + + The data in this event must be fixed before it can be serialized. + + + The method must be called during the + method call if this event + is to be used outside that method. + + + + + + Gets the portable data for this . + + The for this event. + + + A new can be constructed using a + instance. + + + Does a fix of the data + in the logging event before returning the event data. + + + + + + Gets the portable data for this . + + The set of data to ensure is fixed in the LoggingEventData + The for this event. + + + A new can be constructed using a + instance. + + + + + + Returns this event's exception's rendered using the + . + + + This event's exception's rendered using the . + + + + Obsolete. Use instead. + + + + + + Returns this event's exception's rendered using the + . + + + This event's exception's rendered using the . + + + + Returns this event's exception's rendered using the + . + + + + + + Fix instance fields that hold volatile data. + + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + incurred by calling but it + is essential to maintaining data consistency. + + + Calling is equivalent to + calling passing the parameter + false. + + + See for more + information. + + + + + + Fixes instance fields that hold volatile data. + + Set to true to not fix data that takes a long time to fix. + + + Some of the values in instances of + are considered volatile, that is the values are correct at the + time the event is delivered to appenders, but will not be consistent + at any time afterwards. If an event is to be stored and then processed + at a later time these volatile values must be fixed by calling + . There is a performance penalty + for incurred by calling but it + is essential to maintaining data consistency. + + + The param controls the data that + is fixed. Some of the data that can be fixed takes a long time to + generate, therefore if you do not require those settings to be fixed + they can be ignored by setting the param + to true. This setting will ignore the + and settings. + + + Set to false to ensure that all + settings are fixed. + + + + + + Fix the fields specified by the parameter + + the fields to fix + + + Only fields specified in the will be fixed. + Fields will not be fixed if they have previously been fixed. + It is not possible to 'unfix' a field. + + + + + + Lookup a composite property in this event + + the key for the property to lookup + the value for the property + + + This event has composite properties that combine together properties from + several different contexts in the following order: + + + this events properties + + This event has that can be set. These + properties are specific to this event only. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + + + Get all the composite properties in this event + + the containing all the properties + + + See for details of the composite properties + stored by the event. + + + This method returns a single containing all the + properties defined for this event. + + + + + + The internal logging event data. + + + + + The internal logging event data. + + + + + The internal logging event data. + + + + + The fully qualified Type of the calling + logger class in the stack frame (i.e. the declaring type of the method). + + + + + The application supplied message of logging event. + + + + + The exception that was thrown. + + + This is not serialized. The string representation + is serialized instead. + + + + + The repository that generated the logging event + + + This is not serialized. + + + + + The fix state for this event + + + These flags indicate which fields have been fixed. + Not serialized. + + + + + Indicated that the internal cache is updateable (ie not fixed) + + + This is a seperate flag to m_fixFlags as it allows incrementel fixing and simpler + changes in the caching strategy. + + + + + Gets the time when the current process started. + + + This is the time when this process started. + + + + The TimeStamp is stored internally in UTC and converted to the local time zone for this computer. + + + Tries to get the start time for the current process. + Failing that it returns the time of the first call to + this property. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating and therefore + without the process start time being reset. + + + + + + Gets the UTC time when the current process started. + + + This is the UTC time when this process started. + + + + Tries to get the start time for the current process. + Failing that it returns the time of the first call to + this property. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating and therefore + without the process start time being reset. + + + + + + Gets the of the logging event. + + + The of the logging event. + + + + Gets the of the logging event. + + + + + + Gets the time of the logging event. + + + The time of the logging event. + + + + The TimeStamp is stored in UTC and converted to the local time zone for this computer. + + + + + + Gets UTC the time of the logging event. + + + The UTC time of the logging event. + + + + + Gets the name of the logger that logged the event. + + + The name of the logger that logged the event. + + + + Gets the name of the logger that logged the event. + + + + + + Gets the location information for this logging event. + + + The location information for this logging event. + + + + The collected information is cached for future use. + + + See the class for more information on + supported frameworks and the different behavior in Debug and + Release builds. + + + + + + Gets the message object used to initialize this event. + + + The message object used to initialize this event. + + + + Gets the message object used to initialize this event. + Note that this event may not have a valid message object. + If the event is serialized the message object will not + be transferred. To get the text of the message the + property must be used + not this property. + + + If there is no defined message object for this event then + null will be returned. + + + + + + Gets the exception object used to initialize this event. + + + The exception object used to initialize this event. + + + + Gets the exception object used to initialize this event. + Note that this event may not have a valid exception object. + If the event is serialized the exception object will not + be transferred. To get the text of the exception the + method must be used + not this property. + + + If there is no defined exception object for this event then + null will be returned. + + + + + + The that this event was created in. + + + + The that this event was created in. + + + + + + Gets the message, rendered through the . + + + The message rendered through the . + + + + The collected information is cached for future use. + + + + + + Gets the name of the current thread. + + + The name of the current thread, or the thread ID when + the name is not available. + + + + The collected information is cached for future use. + + + + + + Gets the name of the current user. + + + The name of the current user, or NOT AVAILABLE when the + underlying runtime has no support for retrieving the name of the + current user. + + + + Calls WindowsIdentity.GetCurrent().Name to get the name of + the current windows user. + + + To improve performance, we could cache the string representation of + the name, and reuse that as long as the identity stayed constant. + Once the identity changed, we would need to re-assign and re-render + the string. + + + However, the WindowsIdentity.GetCurrent() call seems to + return different objects every time, so the current implementation + doesn't do this type of caching. + + + Timing for these operations: + + + + Method + Results + + + WindowsIdentity.GetCurrent() + 10000 loops, 00:00:00.2031250 seconds + + + WindowsIdentity.GetCurrent().Name + 10000 loops, 00:00:08.0468750 seconds + + + + This means we could speed things up almost 40 times by caching the + value of the WindowsIdentity.GetCurrent().Name property, since + this takes (8.04-0.20) = 7.84375 seconds. + + + + + + Gets the identity of the current thread principal. + + + The string name of the identity of the current thread principal. + + + + Calls System.Threading.Thread.CurrentPrincipal.Identity.Name to get + the name of the current thread principal. + + + + + + Gets the AppDomain friendly name. + + + The AppDomain friendly name. + + + + Gets the AppDomain friendly name. + + + + + + Additional event specific properties. + + + Additional event specific properties. + + + + A logger or an appender may attach additional + properties to specific events. These properties + have a string key and an object value. + + + This property is for events that have been added directly to + this event. The aggregate properties (which include these + event properties) can be retrieved using + and . + + + Once the properties have been fixed this property + returns the combined cached properties. This ensures that updates to + this property are always reflected in the underlying storage. When + returning the combined properties there may be more keys in the + Dictionary than expected. + + + + + + The fixed fields in this event + + + The set of fields that are fixed in this event + + + + Fields will not be fixed if they have previously been fixed. + It is not possible to 'unfix' a field. + + + + + + Implementation of wrapper interface. + + + + This implementation of the interface + forwards to the held by the base class. + + + This logger has methods to allow the caller to log at the following + levels: + + + + DEBUG + + The and methods log messages + at the DEBUG level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + INFO + + The and methods log messages + at the INFO level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + WARN + + The and methods log messages + at the WARN level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + ERROR + + The and methods log messages + at the ERROR level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + FATAL + + The and methods log messages + at the FATAL level. That is the level with that name defined in the + repositories . The default value + for this level is . The + property tests if this level is enabled for logging. + + + + + The values for these levels and their semantic meanings can be changed by + configuring the for the repository. + + + Nicko Cadell + Gert Driesen + + + + The ILog interface is use by application to log messages into + the log4net framework. + + + + Use the to obtain logger instances + that implement this interface. The + static method is used to get logger instances. + + + This class contains methods for logging at different levels and also + has properties for determining if those logging levels are + enabled in the current configuration. + + + This interface can be implemented in different ways. This documentation + specifies reasonable behavior that a caller can expect from the actual + implementation, however different implementations reserve the right to + do things differently. + + + Simple example of logging messages + + ILog log = LogManager.GetLogger("application-log"); + + log.Info("Application Start"); + log.Debug("This is a debug message"); + + if (log.IsDebugEnabled) + { + log.Debug("This is another debug message"); + } + + + + + Nicko Cadell + Gert Driesen + + + Log a message object with the level. + + Log a message object with the level. + + The message object to log. + + + This method first checks if this logger is DEBUG + enabled by comparing the level of this logger with the + level. If this logger is + DEBUG enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Logs a message object with the level. + + + + This method first checks if this logger is INFO + enabled by comparing the level of this logger with the + level. If this logger is + INFO enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Logs a message object with the INFO level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Log a message object with the level. + + + + This method first checks if this logger is WARN + enabled by comparing the level of this logger with the + level. If this logger is + WARN enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Logs a message object with the level. + + The message object to log. + + + This method first checks if this logger is ERROR + enabled by comparing the level of this logger with the + level. If this logger is + ERROR enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + Log a message object with the level. + + Log a message object with the level. + + + + This method first checks if this logger is FATAL + enabled by comparing the level of this logger with the + level. If this logger is + FATAL enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + The message object to log. + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a formatted message string with the level. + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + + This function is intended to lessen the computational cost of + disabled log debug statements. + + For some ILog interface log, when you write: + + log.Debug("This is entry number: " + i ); + + + You incur the cost constructing the message, string construction and concatenation in + this case, regardless of whether the message is logged or not. + + + If you are worried about speed (who isn't), then you should write: + + + if (log.IsDebugEnabled) + { + log.Debug("This is entry number: " + i ); + } + + + This way you will not incur the cost of parameter + construction if debugging is disabled for log. On + the other hand, if the log is debug enabled, you + will incur the cost of evaluating whether the logger is debug + enabled twice. Once in and once in + the . This is an insignificant overhead + since evaluating a logger takes about 1% of the time it + takes to actually log. This is the preferred style of logging. + + Alternatively if your logger is available statically then the is debug + enabled state can be stored in a static variable like this: + + + private static readonly bool isDebugEnabled = log.IsDebugEnabled; + + + Then when you come to log you can write: + + + if (isDebugEnabled) + { + log.Debug("This is entry number: " + i ); + } + + + This way the debug enabled state is only queried once + when the class is loaded. Using a private static readonly + variable is the most efficient because it is a run time constant + and can be heavily optimized by the JIT compiler. + + + Of course if you use a static readonly variable to + hold the enabled state of the logger then you cannot + change the enabled state at runtime to vary the logging + that is produced. You have to decide if you need absolute + speed or runtime flexibility. + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Checks if this logger is enabled for the level. + + + true if this logger is enabled for events, false otherwise. + + + For more information see . + + + + + + + + Construct a new wrapper for the specified logger. + + The logger to wrap. + + + Construct a new wrapper for the specified logger. + + + + + + Virtual method called when the configuration of the repository changes + + the repository holding the levels + + + Virtual method called when the configuration of the repository changes + + + + + + Logs a message object with the DEBUG level. + + The message object to log. + + + This method first checks if this logger is DEBUG + enabled by comparing the level of this logger with the + DEBUG level. If this logger is + DEBUG enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the DEBUG level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the DEBUG level including + the stack trace of the passed + as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the DEBUG level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the INFO level. + + The message object to log. + + + This method first checks if this logger is INFO + enabled by comparing the level of this logger with the + INFO level. If this logger is + INFO enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the INFO level. + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the INFO level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the INFO level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the WARN level. + + the message object to log + + + This method first checks if this logger is WARN + enabled by comparing the level of this logger with the + WARN level. If this logger is + WARN enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the WARN level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the WARN level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the WARN level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the ERROR level. + + The message object to log. + + + This method first checks if this logger is ERROR + enabled by comparing the level of this logger with the + ERROR level. If this logger is + ERROR enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the ERROR level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the ERROR level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the ERROR level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a message object with the FATAL level. + + The message object to log. + + + This method first checks if this logger is FATAL + enabled by comparing the level of this logger with the + FATAL level. If this logger is + FATAL enabled, then it converts the message object + (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger and + also higher in the hierarchy depending on the value of the + additivity flag. + + + WARNING Note that passing an to this + method will print the name of the but no + stack trace. To print a stack trace use the + form instead. + + + + + + Logs a message object with the FATAL level + + The message object to log. + The exception to log, including its stack trace. + + + Logs a message object with the FATAL level including + the stack trace of the + passed as a parameter. + + + See the form for more detailed information. + + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + The string is formatted using the + format provider. To specify a localized provider use the + method. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Logs a formatted message string with the FATAL level. + + An that supplies culture-specific formatting information + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the method. See + String.Format for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + Event handler for the event + + the repository + Empty + + + + The fully qualified name of this declaring type not the type of any subclass. + + + + + Checks if this logger is enabled for the DEBUG + level. + + + true if this logger is enabled for DEBUG events, + false otherwise. + + + + This function is intended to lessen the computational cost of + disabled log debug statements. + + + For some log Logger object, when you write: + + + log.Debug("This is entry number: " + i ); + + + You incur the cost constructing the message, concatenation in + this case, regardless of whether the message is logged or not. + + + If you are worried about speed, then you should write: + + + if (log.IsDebugEnabled()) + { + log.Debug("This is entry number: " + i ); + } + + + This way you will not incur the cost of parameter + construction if debugging is disabled for log. On + the other hand, if the log is debug enabled, you + will incur the cost of evaluating whether the logger is debug + enabled twice. Once in IsDebugEnabled and once in + the Debug. This is an insignificant overhead + since evaluating a logger takes about 1% of the time it + takes to actually log. + + + + + + Checks if this logger is enabled for the INFO level. + + + true if this logger is enabled for INFO events, + false otherwise. + + + + See for more information and examples + of using this method. + + + + + + + Checks if this logger is enabled for the WARN level. + + + true if this logger is enabled for WARN events, + false otherwise. + + + + See for more information and examples + of using this method. + + + + + + + Checks if this logger is enabled for the ERROR level. + + + true if this logger is enabled for ERROR events, + false otherwise. + + + + See for more information and examples of using this method. + + + + + + + Checks if this logger is enabled for the FATAL level. + + + true if this logger is enabled for FATAL events, + false otherwise. + + + + See for more information and examples of using this method. + + + + + + + provides method information without actually referencing a System.Reflection.MethodBase + as that would require that the containing assembly is loaded. + + + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + constructs a method item for an unknown method. + + + + + constructs a method item from the name of the method. + + + + + + constructs a method item from the name of the method and its parameters. + + + + + + + constructs a method item from a method base by determining the method name and its parameters. + + + + + + The fully qualified type of the StackFrameItem class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the method name of the caller making the logging + request. + + + The method name of the caller making the logging + request. + + + + Gets the method name of the caller making the logging + request. + + + + + + Gets the method parameters of the caller making + the logging request. + + + The method parameters of the caller making + the logging request + + + + Gets the method parameters of the caller making + the logging request. + + + + + + A SecurityContext used by log4net when interacting with protected resources + + + + A SecurityContext used by log4net when interacting with protected resources + for example with operating system services. This can be used to impersonate + a principal that has been granted privileges on the system resources. + + + Nicko Cadell + + + + Impersonate this SecurityContext + + State supplied by the caller + An instance that will + revoke the impersonation of this SecurityContext, or null + + + Impersonate this security context. Further calls on the current + thread should now be made in the security context provided + by this object. When the result + method is called the security + context of the thread should be reverted to the state it was in + before was called. + + + + + + The providers default instances. + + + + A configured component that interacts with potentially protected system + resources uses a to provide the elevated + privileges required. If the object has + been not been explicitly provided to the component then the component + will request one from this . + + + By default the is + an instance of which returns only + objects. This is a reasonable default + where the privileges required are not know by the system. + + + This default behavior can be overridden by subclassing the + and overriding the method to return + the desired objects. The default provider + can be replaced by programmatically setting the value of the + property. + + + An alternative is to use the log4net.Config.SecurityContextProviderAttribute + This attribute can be applied to an assembly in the same way as the + log4net.Config.XmlConfiguratorAttribute". The attribute takes + the type to use as the as an argument. + + + Nicko Cadell + + + + The default provider + + + + + Protected default constructor to allow subclassing + + + + Protected default constructor to allow subclassing + + + + + + Create a SecurityContext for a consumer + + The consumer requesting the SecurityContext + An impersonation context + + + The default implementation is to return a . + + + Subclasses should override this method to provide their own + behavior. + + + + + + Gets or sets the default SecurityContextProvider + + + The default SecurityContextProvider + + + + The default provider is used by configured components that + require a and have not had one + given to them. + + + By default this is an instance of + that returns objects. + + + The default provider can be set programmatically by setting + the value of this property to a sub class of + that has the desired behavior. + + + + + + provides stack frame information without actually referencing a System.Diagnostics.StackFrame + as that would require that the containing assembly is loaded. + + + + + + When location information is not available the constant + NA is returned. Current value of this string + constant is ?. + + + + + returns a stack frame item from a stack frame. This + + + + + + + The fully qualified type of the StackFrameItem class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the fully qualified class name of the caller making the logging + request. + + + The fully qualified class name of the caller making the logging + request. + + + + Gets the fully qualified class name of the caller making the logging + request. + + + + + + Gets the file name of the caller. + + + The file name of the caller. + + + + Gets the file name of the caller. + + + + + + Gets the line number of the caller. + + + The line number of the caller. + + + + Gets the line number of the caller. + + + + + + Gets the method name of the caller. + + + The method name of the caller. + + + + Gets the method name of the caller. + + + + + + Gets all available caller information + + + All available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + Gets all available caller information, in the format + fully.qualified.classname.of.caller.methodName(Filename:line) + + + + + + An evaluator that triggers after specified number of seconds. + + + + This evaluator will trigger if the specified time period + has passed since last check. + + + Robert Sevcik + + + + The default time threshold for triggering in seconds. Zero means it won't trigger at all. + + + + + The time threshold for triggering in seconds. Zero means it won't trigger at all. + + + + + The UTC time of last check. This gets updated when the object is created and when the evaluator triggers. + + + + + Create a new evaluator using the time threshold in seconds. + + + + Create a new evaluator using the time threshold in seconds. + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Create a new evaluator using the specified time threshold in seconds. + + + The time threshold in seconds to trigger after. + Zero means it won't trigger at all. + + + + Create a new evaluator using the specified time threshold in seconds. + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Is this the triggering event? + + The event to check + This method returns true, if the specified time period + has passed since last check.. + Otherwise it returns false + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + The time threshold in seconds to trigger after + + + The time threshold in seconds to trigger after. + Zero means it won't trigger at all. + + + + This evaluator will trigger if the specified time period + has passed since last check. + + + + + + Delegate used to handle creation of new wrappers. + + The logger to wrap in a wrapper. + + + Delegate used to handle creation of new wrappers. This delegate + is called from the + method to construct the wrapper for the specified logger. + + + The delegate to use is supplied to the + constructor. + + + + + + Maps between logger objects and wrapper objects. + + + + This class maintains a mapping between objects and + objects. Use the method to + lookup the for the specified . + + + New wrapper instances are created by the + method. The default behavior is for this method to delegate construction + of the wrapper to the delegate supplied + to the constructor. This allows specialization of the behavior without + requiring subclassing of this type. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the + + The handler to use to create the wrapper objects. + + + Initializes a new instance of the class with + the specified handler to create the wrapper objects. + + + + + + Gets the wrapper object for the specified logger. + + The wrapper object for the specified logger + + + If the logger is null then the corresponding wrapper is null. + + + Looks up the wrapper it it has previously been requested and + returns it. If the wrapper has never been requested before then + the virtual method is + called. + + + + + + Creates the wrapper object for the specified logger. + + The logger to wrap in a wrapper. + The wrapper object for the logger. + + + This implementation uses the + passed to the constructor to create the wrapper. This method + can be overridden in a subclass. + + + + + + Called when a monitored repository shutdown event is received. + + The that is shutting down + + + This method is called when a that this + is holding loggers for has signaled its shutdown + event . The default + behavior of this method is to release the references to the loggers + and their wrappers generated for this repository. + + + + + + Event handler for repository shutdown event. + + The sender of the event. + The event args. + + + + Map of logger repositories to hashtables of ILogger to ILoggerWrapper mappings + + + + + The handler to use to create the extension wrapper objects. + + + + + Internal reference to the delegate used to register for repository shutdown events. + + + + + Gets the map of logger repositories. + + + Map of logger repositories. + + + + Gets the hashtable that is keyed on . The + values are hashtables keyed on with the + value being the corresponding . + + + + + + Formats a as "HH:mm:ss,fff". + + + + Formats a in the format "HH:mm:ss,fff" for example, "15:49:37,459". + + + Nicko Cadell + Gert Driesen + + + + Render a as a string. + + + + Interface to abstract the rendering of a + instance into a string. + + + The method is used to render the + date to a text writer. + + + Nicko Cadell + Gert Driesen + + + + Formats the specified date as a string. + + The date to format. + The writer to write to. + + + Format the as a string and write it + to the provided. + + + + + + String constant used to specify AbsoluteTimeDateFormat in layouts. Current value is ABSOLUTE. + + + + + String constant used to specify DateTimeDateFormat in layouts. Current value is DATE. + + + + + String constant used to specify ISO8601DateFormat in layouts. Current value is ISO8601. + + + + + Renders the date into a string. Format is "HH:mm:ss". + + The date to render into a string. + The string builder to write to. + + + Subclasses should override this method to render the date + into a string using a precision up to the second. This method + will be called at most once per second and the result will be + reused if it is needed again during the same second. + + + + + + Renders the date into a string. Format is "HH:mm:ss,fff". + + The date to render into a string. + The writer to write to. + + + Uses the method to generate the + time string up to the seconds and then appends the current + milliseconds. The results from are + cached and is called at most once + per second. + + + Sub classes should override + rather than . + + + + + + Last stored time with precision up to the second. + + + + + Last stored time with precision up to the second, formatted + as a string. + + + + + Last stored time with precision up to the second, formatted + as a string. + + + + + Formats a as "dd MMM yyyy HH:mm:ss,fff" + + + + Formats a in the format + "dd MMM yyyy HH:mm:ss,fff" for example, + "06 Nov 1994 15:49:37,459". + + + Nicko Cadell + Gert Driesen + Angelika Schnagl + + + + Default constructor. + + + + Initializes a new instance of the class. + + + + + + Formats the date without the milliseconds part + + The date to format. + The string builder to write to. + + + Formats a DateTime in the format "dd MMM yyyy HH:mm:ss" + for example, "06 Nov 1994 15:49:37". + + + The base class will append the ",fff" milliseconds section. + This method will only be called at most once per second. + + + + + + The format info for the invariant culture. + + + + + Formats the as "yyyy-MM-dd HH:mm:ss,fff". + + + + Formats the specified as a string: "yyyy-MM-dd HH:mm:ss,fff". + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Formats the date without the milliseconds part + + The date to format. + The string builder to write to. + + + Formats the date specified as a string: "yyyy-MM-dd HH:mm:ss". + + + The base class will append the ",fff" milliseconds section. + This method will only be called at most once per second. + + + + + + Formats the using the method. + + + + Formats the using the method. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The format string. + + + Initializes a new instance of the class + with the specified format string. + + + The format string must be compatible with the options + that can be supplied to . + + + + + + Formats the date using . + + The date to convert to a string. + The writer to write to. + + + Uses the date format string supplied to the constructor to call + the method to format the date. + + + + + + The format string used to format the . + + + + The format string must be compatible with the options + that can be supplied to . + + + + + + This filter drops all . + + + + You can add this filter to the end of a filter chain to + switch from the default "accept all unless instructed otherwise" + filtering behavior to a "deny all unless instructed otherwise" + behavior. + + + Nicko Cadell + Gert Driesen + + + + Subclass this type to implement customized logging event filtering + + + + Users should extend this class to implement customized logging + event filtering. Note that and + , the parent class of all standard + appenders, have built-in filtering rules. It is suggested that you + first use and understand the built-in rules before rushing to write + your own custom filters. + + + This abstract class assumes and also imposes that filters be + organized in a linear chain. The + method of each filter is called sequentially, in the order of their + addition to the chain. + + + The method must return one + of the integer constants , + or . + + + If the value is returned, then the log event is dropped + immediately without consulting with the remaining filters. + + + If the value is returned, then the next filter + in the chain is consulted. If there are no more filters in the + chain, then the log event is logged. Thus, in the presence of no + filters, the default behavior is to log all logging events. + + + If the value is returned, then the log + event is logged without consulting the remaining filters. + + + The philosophy of log4net filters is largely inspired from the + Linux ipchains. + + + Nicko Cadell + Gert Driesen + + + + Implement this interface to provide customized logging event filtering + + + + Users should implement this interface to implement customized logging + event filtering. Note that and + , the parent class of all standard + appenders, have built-in filtering rules. It is suggested that you + first use and understand the built-in rules before rushing to write + your own custom filters. + + + This abstract class assumes and also imposes that filters be + organized in a linear chain. The + method of each filter is called sequentially, in the order of their + addition to the chain. + + + The method must return one + of the integer constants , + or . + + + If the value is returned, then the log event is dropped + immediately without consulting with the remaining filters. + + + If the value is returned, then the next filter + in the chain is consulted. If there are no more filters in the + chain, then the log event is logged. Thus, in the presence of no + filters, the default behavior is to log all logging events. + + + If the value is returned, then the log + event is logged without consulting the remaining filters. + + + The philosophy of log4net filters is largely inspired from the + Linux ipchains. + + + Nicko Cadell + Gert Driesen + + + + Decide if the logging event should be logged through an appender. + + The LoggingEvent to decide upon + The decision of the filter + + + If the decision is , then the event will be + dropped. If the decision is , then the next + filter, if any, will be invoked. If the decision is then + the event will be logged without consulting with other filters in + the chain. + + + + + + Property to get and set the next filter + + + The next filter in the chain + + + + Filters are typically composed into chains. This property allows the next filter in + the chain to be accessed. + + + + + + Points to the next filter in the filter chain. + + + + See for more information. + + + + + + Initialize the filter with the options set + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Typically filter's options become active immediately on set, + however this method must still be called. + + + + + + Decide if the should be logged through an appender. + + The to decide upon + The decision of the filter + + + If the decision is , then the event will be + dropped. If the decision is , then the next + filter, if any, will be invoked. If the decision is then + the event will be logged without consulting with other filters in + the chain. + + + This method is marked abstract and must be implemented + in a subclass. + + + + + + Property to get and set the next filter + + + The next filter in the chain + + + + Filters are typically composed into chains. This property allows the next filter in + the chain to be accessed. + + + + + + Default constructor + + + + + Always returns the integer constant + + the LoggingEvent to filter + Always returns + + + Ignores the event being logged and just returns + . This can be used to change the default filter + chain behavior from to . This filter + should only be used as the last filter in the chain + as any further filters will be ignored! + + + + + + The return result from + + + + The return result from + + + + + + The log event must be dropped immediately without + consulting with the remaining filters, if any, in the chain. + + + + + This filter is neutral with respect to the log event. + The remaining filters, if any, should be consulted for a final decision. + + + + + The log event must be logged immediately without + consulting with the remaining filters, if any, in the chain. + + + + + This is a very simple filter based on matching. + + + + The filter admits two options and + . If there is an exact match between the value + of the option and the of the + , then the method returns in + case the option value is set + to true, if it is false then + is returned. If the does not match then + the result will be . + + + Nicko Cadell + Gert Driesen + + + + flag to indicate if the filter should on a match + + + + + the to match against + + + + + Default constructor + + + + + Tests if the of the logging event matches that of the filter + + the event to filter + see remarks + + + If the of the event matches the level of the + filter then the result of the function depends on the + value of . If it is true then + the function will return , it it is false then it + will return . If the does not match then + the result will be . + + + + + + when matching + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + The that the filter will match + + + + The level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + This is a simple filter based on matching. + + + + The filter admits three options and + that determine the range of priorities that are matched, and + . If there is a match between the range + of priorities and the of the , then the + method returns in case the + option value is set to true, if it is false + then is returned. If there is no match, is returned. + + + Nicko Cadell + Gert Driesen + + + + Flag to indicate the behavior when matching a + + + + + the minimum value to match + + + + + the maximum value to match + + + + + Default constructor + + + + + Check if the event should be logged. + + the logging event to check + see remarks + + + If the of the logging event is outside the range + matched by this filter then + is returned. If the is matched then the value of + is checked. If it is true then + is returned, otherwise + is returned. + + + + + + when matching and + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + Set the minimum matched + + + + The minimum level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + Sets the maximum matched + + + + The maximum level that this filter will attempt to match against the + level. If a match is found then + the result depends on the value of . + + + + + + Simple filter to match a string in the event's logger name. + + + + The works very similar to the . It admits two + options and . If the + of the starts + with the value of the option, then the + method returns in + case the option value is set to true, + if it is false then is returned. + + + Daniel Cazzulino + + + + Flag to indicate the behavior when we have a match + + + + + The logger name string to substring match against the event + + + + + Default constructor + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The rendered message is matched against the . + If the equals the beginning of + the incoming () + then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + when matching + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + The that the filter will match + + + + This filter will attempt to match this value against logger name in + the following way. The match will be done against the beginning of the + logger name (using ). The match is + case sensitive. If a match is found then + the result depends on the value of . + + + + + + Simple filter to match a keyed string in the + + + + Simple filter to match a keyed string in the + + + As the MDC has been replaced with layered properties the + should be used instead. + + + Nicko Cadell + Gert Driesen + + + + Simple filter to match a string an event property + + + + Simple filter to match a string in the value for a + specific event property + + + Nicko Cadell + + + + Simple filter to match a string in the rendered message + + + + Simple filter to match a string in the rendered message + + + Nicko Cadell + Gert Driesen + + + + Flag to indicate the behavior when we have a match + + + + + The string to substring match against the message + + + + + A string regex to match + + + + + A regex object to match (generated from m_stringRegexToMatch) + + + + + Default constructor + + + + + Initialize and precompile the Regex if required + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The rendered message is matched against the . + If the occurs as a substring within + the message then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + when matching or + + + + The property is a flag that determines + the behavior when a matching is found. If the + flag is set to true then the filter will the + logging event, otherwise it will the event. + + + The default is true i.e. to the event. + + + + + + Sets the static string to match + + + + The string that will be substring matched against + the rendered message. If the message contains this + string then the filter will match. If a match is found then + the result depends on the value of . + + + One of or + must be specified. + + + + + + Sets the regular expression to match + + + + The regular expression pattern that will be matched against + the rendered message. If the message matches this + pattern then the filter will match. If a match is found then + the result depends on the value of . + + + One of or + must be specified. + + + + + + The key to use to lookup the string from the event properties + + + + + Default constructor + + + + + Check if this filter should allow the event to be logged + + the event being logged + see remarks + + + The event property for the is matched against + the . + If the occurs as a substring within + the property value then a match will have occurred. If no match occurs + this function will return + allowing other filters to check the event. If a match occurs then + the value of is checked. If it is + true then is returned otherwise + is returned. + + + + + + The key to lookup in the event properties and then match against. + + + + The key name to use to lookup in the properties map of the + . The match will be performed against + the value of this property if it exists. + + + + + + Simple filter to match a string in the + + + + Simple filter to match a string in the + + + As the MDC has been replaced with named stacks stored in the + properties collections the should + be used instead. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Sets the to "NDC". + + + + + + Write the event appdomain name to the output + + + + Writes the to the output writer. + + + Daniel Cazzulino + Nicko Cadell + + + + Abstract class that provides the formatting functionality that + derived classes need. + + + Conversion specifiers in a conversion patterns are parsed to + individual PatternConverters. Each of which is responsible for + converting a logging event in a converter specific manner. + + Nicko Cadell + + + + Abstract class that provides the formatting functionality that + derived classes need. + + + + Conversion specifiers in a conversion patterns are parsed to + individual PatternConverters. Each of which is responsible for + converting a logging event in a converter specific manner. + + + Nicko Cadell + Gert Driesen + + + + Initial buffer size + + + + + Maximum buffer size before it is recycled + + + + + Protected constructor + + + + Initializes a new instance of the class. + + + + + + Evaluate this pattern converter and write the output to a writer. + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the appropriate way. + + + + + + Set the next pattern converter in the chains + + the pattern converter that should follow this converter in the chain + the next converter + + + The PatternConverter can merge with its neighbor during this method (or a sub class). + Therefore the return value may or may not be the value of the argument passed in. + + + + + + Write the pattern converter to the writer with appropriate formatting + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + This method calls to allow the subclass to perform + appropriate conversion of the pattern converter. If formatting options have + been specified via the then this method will + apply those formattings before writing the output. + + + + + + Fast space padding method. + + to which the spaces will be appended. + The number of spaces to be padded. + + + Fast space padding method. + + + + + + The option string to the converter + + + + + Write an dictionary to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the to a writer in the form: + + + {key1=value1, key2=value2, key3=value3} + + + If the specified + is not null then it is used to render the key and value to text, otherwise + the object's ToString method is called. + + + + + + Write an dictionary to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the to a writer in the form: + + + {key1=value1, key2=value2, key3=value3} + + + If the specified + is not null then it is used to render the key and value to text, otherwise + the object's ToString method is called. + + + + + + Write an object to a + + the writer to write to + a to use for object conversion + the value to write to the writer + + + Writes the Object to a writer. If the specified + is not null then it is used to render the object to text, otherwise + the object's ToString method is called. + + + + + + Get the next pattern converter in the chain + + + the next pattern converter in the chain + + + + Get the next pattern converter in the chain + + + + + + Gets or sets the formatting info for this converter + + + The formatting info for this converter + + + + Gets or sets the formatting info for this converter + + + + + + Gets or sets the option value for this converter + + + The option for this converter + + + + Gets or sets the option value for this converter + + + + + + + + + + + Initializes a new instance of the class. + + + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the correct way. + + that will receive the formatted result. + The on which the pattern converter should be executed. + + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the correct way. + + that will receive the formatted result. + The state object on which the pattern converter should be executed. + + + + Flag indicating if this converter handles exceptions + + + false if this converter handles exceptions + + + + + Flag indicating if this converter handles the logging event exception + + false if this converter handles the logging event exception + + + If this converter handles the exception object contained within + , then this property should be set to + false. Otherwise, if the layout ignores the exception + object, then the property should be set to true. + + + Set this value to override a this default setting. The default + value is true, this converter does not handle the exception. + + + + + + Write the event appdomain name to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output . + + + + + + Converter for items in the ASP.Net Cache. + + + + Outputs an item from the . + + + Ron Grabowski + + + + Abstract class that provides access to the current HttpContext () that + derived classes need. + + + This class handles the case when HttpContext.Current is null by writing + to the writer. + + Ron Grabowski + + + + Derived pattern converters must override this method in order to + convert conversion specifiers in the correct way. + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + + Write the ASP.Net Cache item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. If no property has been set, all key value pairs from the Cache will + be written to the output. + + + + + + Converter for items in the . + + + + Outputs an item from the . + + + Ron Grabowski + + + + Write the ASP.Net HttpContext item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. + + + + + + Converter for items in the ASP.Net Cache. + + + + Outputs an item from the . + + + Ron Grabowski + + + + Write the ASP.Net Cache item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. + + + + + + Converter for items in the ASP.Net Cache. + + + + Outputs an item from the . + + + Ron Grabowski + + + + Write the ASP.Net Cache item to the output + + that will receive the formatted result. + The on which the pattern converter should be executed. + The under which the ASP.Net request is running. + + + Writes out the value of a named property. The property name + should be set in the + property. If no property has been set, all key value pairs from the Session will + be written to the output. + + + + + + Date pattern converter, uses a to format + the date of a . + + + + Render the to the writer as a string. + + + The value of the determines + the formatting of the date. The following values are allowed: + + + Option value + Output + + + ISO8601 + + Uses the formatter. + Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. + + + + DATE + + Uses the formatter. + Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". + + + + ABSOLUTE + + Uses the formatter. + Formats using the "HH:mm:ss,yyyy" for example, "15:49:37,459". + + + + other + + Any other pattern string uses the formatter. + This formatter passes the pattern string to the + method. + For details on valid patterns see + DateTimeFormatInfo Class. + + + + + + The is in the local time zone and is rendered in that zone. + To output the time in Universal time see . + + + Nicko Cadell + + + + The used to render the date to a string + + + + The used to render the date to a string + + + + + + Initialize the converter pattern based on the property. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Convert the pattern into the rendered message + + that will receive the formatted result. + the event being logged + + + Pass the to the + for it to render it to the writer. + + + The passed is in the local time zone. + + + + + + The fully qualified type of the DatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the exception text to the output + + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + + + If there is no exception then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + Nicko Cadell + + + + Default constructor + + + + + Write the exception text to the output + + that will receive the formatted result. + the event being logged + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + + + If there is no exception or the exception property specified + by the Option value does not exist then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + Recognized values for the Option parameter are: + + + + Message + + + Source + + + StackTrace + + + TargetSite + + + HelpLink + + + + + + + Writes the caller location file name to the output + + + + Writes the value of the for + the event to the output writer. + + + Nicko Cadell + + + + Write the caller location file name to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the for + the to the output . + + + + + + Write the caller location info to the output + + + + Writes the to the output writer. + + + Nicko Cadell + + + + Write the caller location info to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output writer. + + + + + + Writes the event identity to the output + + + + Writes the value of the to + the output writer. + + + Daniel Cazzulino + Nicko Cadell + + + + Writes the event identity to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the + to + the output . + + + + + + Write the event level to the output + + + + Writes the display name of the event + to the writer. + + + Nicko Cadell + + + + Write the event level to the output + + that will receive the formatted result. + the event being logged + + + Writes the of the + to the . + + + + + + Write the caller location line number to the output + + + + Writes the value of the for + the event to the output writer. + + + Nicko Cadell + + + + Write the caller location line number to the output + + that will receive the formatted result. + the event being logged + + + Writes the value of the for + the to the output . + + + + + + Converter for logger name + + + + Outputs the of the event. + + + Nicko Cadell + + + + Converter to output and truncate '.' separated strings + + + + This abstract class supports truncating a '.' separated string + to show a specified number of elements from the right hand side. + This is used to truncate class names that are fully qualified. + + + Subclasses should override the method to + return the fully qualified string. + + + Nicko Cadell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Get the fully qualified string data + + the event being logged + the fully qualified name + + + Overridden by subclasses to get the fully qualified name before the + precision is applied to it. + + + Return the fully qualified '.' (dot/period) separated string. + + + + + + Convert the pattern to the rendered message + + that will receive the formatted result. + the event being logged + + Render the to the precision + specified by the property. + + + + + The fully qualified type of the NamedPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the fully qualified name of the logger + + the event being logged + The fully qualified logger name + + + Returns the of the . + + + + + + Writes the event message to the output + + + + Uses the method + to write out the event message. + + + Nicko Cadell + + + + Writes the event message to the output + + that will receive the formatted result. + the event being logged + + + Uses the method + to write out the event message. + + + + + + Write the method name to the output + + + + Writes the caller location to + the output. + + + Nicko Cadell + + + + Write the method name to the output + + that will receive the formatted result. + the event being logged + + + Writes the caller location to + the output. + + + + + + Converter to include event NDC + + + + Outputs the value of the event property named NDC. + + + The should be used instead. + + + Nicko Cadell + + + + Write the event NDC to the output + + that will receive the formatted result. + the event being logged + + + As the thread context stacks are now stored in named event properties + this converter simply looks up the value of the NDC property. + + + The should be used instead. + + + + + + Property pattern converter + + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + Nicko Cadell + + + + Write the property value to the output + + that will receive the formatted result. + the event being logged + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + Converter to output the relative time of the event + + + + Converter to output the time of the event relative to the start of the program. + + + Nicko Cadell + + + + Write the relative time to the output + + that will receive the formatted result. + the event being logged + + + Writes out the relative time of the event in milliseconds. + That is the number of milliseconds between the event + and the . + + + + + + Helper method to get the time difference between two DateTime objects + + start time (in the current local time zone) + end time (in the current local time zone) + the time difference in milliseconds + + + + Write the caller stack frames to the output + + + + Writes the to the output writer, using format: + type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) + + + Adam Davies + + + + Write the caller stack frames to the output + + + + Writes the to the output writer, using format: + type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 + + + Michael Cromwell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the strack frames to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the output writer. + + + + + + Returns the Name of the method + + + This method was created, so this class could be used as a base class for StackTraceDetailPatternConverter + string + + + + The fully qualified type of the StackTracePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + The fully qualified type of the StackTraceDetailPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Converter to include event thread name + + + + Writes the to the output. + + + Nicko Cadell + + + + Write the ThreadName to the output + + that will receive the formatted result. + the event being logged + + + Writes the to the . + + + + + + Pattern converter for the class name + + + + Outputs the of the event. + + + Nicko Cadell + + + + Gets the fully qualified name of the class + + the event being logged + The fully qualified type name for the caller location + + + Returns the of the . + + + + + + Converter to include event user name + + Douglas de la Torre + Nicko Cadell + + + + Convert the pattern to the rendered message + + that will receive the formatted result. + the event being logged + + + + Write the TimeStamp to the output + + + + Date pattern converter, uses a to format + the date of a . + + + Uses a to format the + in Universal time. + + + See the for details on the date pattern syntax. + + + + Nicko Cadell + + + + Write the TimeStamp to the output + + that will receive the formatted result. + the event being logged + + + Pass the to the + for it to render it to the writer. + + + The passed is in the local time zone, this is converted + to Universal time before it is rendered. + + + + + + + The fully qualified type of the UtcDatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + A flexible layout configurable with pattern string that re-evaluates on each call. + + + This class is built on and provides all the + features and capabilities of PatternLayout. PatternLayout is a 'static' class + in that its layout is done once at configuration time. This class will recreate + the layout on each reference. + One important difference between PatternLayout and DynamicPatternLayout is the + treatment of the Header and Footer parameters in the configuration. The Header and Footer + parameters for DynamicPatternLayout must be syntactically in the form of a PatternString, + but should not be marked as type log4net.Util.PatternString. Doing so causes the + pattern to be statically converted at configuration time and causes DynamicPatternLayout + to perform the same as PatternLayout. + Please see for complete documentation. + + <layout type="log4net.Layout.DynamicPatternLayout"> + <param name="Header" value="%newline**** Trace Opened Local: %date{yyyy-MM-dd HH:mm:ss.fff} UTC: %utcdate{yyyy-MM-dd HH:mm:ss.fff} ****%newline" /> + <param name="Footer" value="**** Trace Closed %date{yyyy-MM-dd HH:mm:ss.fff} ****%newline" /> + </layout> + + + + + + A flexible layout configurable with pattern string. + + + + The goal of this class is to a + as a string. The results + depend on the conversion pattern. + + + The conversion pattern is closely related to the conversion + pattern of the printf function in C. A conversion pattern is + composed of literal text and format control expressions called + conversion specifiers. + + + You are free to insert any literal text within the conversion + pattern. + + + Each conversion specifier starts with a percent sign (%) and is + followed by optional format modifiers and a conversion + pattern name. The conversion pattern name specifies the type of + data, e.g. logger, level, date, thread name. The format + modifiers control such things as field width, padding, left and + right justification. The following is a simple example. + + + Let the conversion pattern be "%-5level [%thread]: %message%newline" and assume + that the log4net environment was set to use a PatternLayout. Then the + statements + + + ILog log = LogManager.GetLogger(typeof(TestApp)); + log.Debug("Message 1"); + log.Warn("Message 2"); + + would yield the output + + DEBUG [main]: Message 1 + WARN [main]: Message 2 + + + Note that there is no explicit separator between text and + conversion specifiers. The pattern parser knows when it has reached + the end of a conversion specifier when it reads a conversion + character. In the example above the conversion specifier + %-5level means the level of the logging event should be left + justified to a width of five characters. + + + The recognized conversion pattern names are: + + + + Conversion Pattern Name + Effect + + + a + Equivalent to appdomain + + + appdomain + + Used to output the friendly name of the AppDomain where the + logging event was generated. + + + + aspnet-cache + + + Used to output all cache items in the case of %aspnet-cache or just one named item if used as %aspnet-cache{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-context + + + Used to output all context items in the case of %aspnet-context or just one named item if used as %aspnet-context{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-request + + + Used to output all request parameters in the case of %aspnet-request or just one named param if used as %aspnet-request{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + aspnet-session + + + Used to output all session items in the case of %aspnet-session or just one named item if used as %aspnet-session{key} + + + This pattern is not available for Compact Framework or Client Profile assemblies. + + + + + c + Equivalent to logger + + + C + Equivalent to type + + + class + Equivalent to type + + + d + Equivalent to date + + + date + + + Used to output the date of the logging event in the local time zone. + To output the date in universal time use the %utcdate pattern. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %date{HH:mm:ss,fff} or + %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %date{ISO8601} or %date{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + exception + + + Used to output the exception passed in with the log message. + + + If an exception object is stored in the logging event + it will be rendered into the pattern output with a + trailing newline. + If there is no exception then nothing will be output + and no trailing newline will be appended. + It is typical to put a newline before the exception + and to have the exception as the last data in the pattern. + + + + + F + Equivalent to file + + + file + + + Used to output the file name where the logging request was + issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + identity + + + Used to output the user name for the currently active user + (Principal.Identity.Name). + + + WARNING Generating caller information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + + + l + Equivalent to location + + + L + Equivalent to line + + + location + + + Used to output location information of the caller which generated + the logging event. + + + The location information depends on the CLI implementation but + usually consists of the fully qualified name of the calling + method followed by the callers source the file name and line + number between parentheses. + + + The location information can be very useful. However, its + generation is extremely slow. Its use should be avoided + unless execution speed is not an issue. + + + See the note below on the availability of caller location information. + + + + + level + + + Used to output the level of the logging event. + + + + + line + + + Used to output the line number from where the logging request + was issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + logger + + + Used to output the logger of the logging event. The + logger conversion specifier can be optionally followed by + precision specifier, that is a decimal constant in + brackets. + + + If a precision specifier is given, then only the corresponding + number of right most components of the logger name will be + printed. By default the logger name is printed in full. + + + For example, for the logger name "a.b.c" the pattern + %logger{2} will output "b.c". + + + + + m + Equivalent to message + + + M + Equivalent to method + + + message + + + Used to output the application supplied message associated with + the logging event. + + + + + mdc + + + The MDC (old name for the ThreadContext.Properties) is now part of the + combined event properties. This pattern is supported for compatibility + but is equivalent to property. + + + + + method + + + Used to output the method name where the logging request was + issued. + + + WARNING Generating caller location information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + See the note below on the availability of caller location information. + + + + + n + Equivalent to newline + + + newline + + + Outputs the platform dependent line separator character or + characters. + + + This conversion pattern offers the same performance as using + non-portable line separator strings such as "\n", or "\r\n". + Thus, it is the preferred way of specifying a line separator. + + + + + ndc + + + Used to output the NDC (nested diagnostic context) associated + with the thread that generated the logging event. + + + + + p + Equivalent to level + + + P + Equivalent to property + + + properties + Equivalent to property + + + property + + + Used to output the an event specific property. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %property{user} would include the value + from the property that is keyed by the string 'user'. Each property value + that is to be included in the log must be specified separately. + Properties are added to events by loggers or appenders. By default + the log4net:HostName property is set to the name of machine on + which the event was originally logged. + + + If no key is specified, e.g. %property then all the keys and their + values are printed in a comma separated list. + + + The properties of an event are combined from a number of different + contexts. These are listed below in the order in which they are searched. + + + + the event properties + + The event has that can be set. These + properties are specific to this event only. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + + r + Equivalent to timestamp + + + stacktrace + + + Used to output the stack trace of the logging event + The stack trace level specifier may be enclosed + between braces. For example, %stacktrace{level}. + If no stack trace level specifier is given then 1 is assumed + + + Output uses the format: + type3.MethodCall3 > type2.MethodCall2 > type1.MethodCall1 + + + This pattern is not available for Compact Framework assemblies. + + + + + stacktracedetail + + + Used to output the stack trace of the logging event + The stack trace level specifier may be enclosed + between braces. For example, %stacktracedetail{level}. + If no stack trace level specifier is given then 1 is assumed + + + Output uses the format: + type3.MethodCall3(type param,...) > type2.MethodCall2(type param,...) > type1.MethodCall1(type param,...) + + + This pattern is not available for Compact Framework assemblies. + + + + + t + Equivalent to thread + + + timestamp + + + Used to output the number of milliseconds elapsed since the start + of the application until the creation of the logging event. + + + + + thread + + + Used to output the name of the thread that generated the + logging event. Uses the thread number if no name is available. + + + + + type + + + Used to output the fully qualified type name of the caller + issuing the logging request. This conversion specifier + can be optionally followed by precision specifier, that + is a decimal constant in brackets. + + + If a precision specifier is given, then only the corresponding + number of right most components of the class name will be + printed. By default the class name is output in fully qualified form. + + + For example, for the class name "log4net.Layout.PatternLayout", the + pattern %type{1} will output "PatternLayout". + + + WARNING Generating the caller class information is + slow. Thus, its use should be avoided unless execution speed is + not an issue. + + + See the note below on the availability of caller location information. + + + + + u + Equivalent to identity + + + username + + + Used to output the WindowsIdentity for the currently + active user. + + + WARNING Generating caller WindowsIdentity information is + extremely slow. Its use should be avoided unless execution speed + is not an issue. + + + + + utcdate + + + Used to output the date of the logging event in universal time. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %utcdate{HH:mm:ss,fff} or + %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %utcdate{ISO8601} or %utcdate{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + w + Equivalent to username + + + x + Equivalent to ndc + + + X + Equivalent to mdc + + + % + + + The sequence %% outputs a single percent sign. + + + + + + The single letter patterns are deprecated in favor of the + longer more descriptive pattern names. + + + By default the relevant information is output as is. However, + with the aid of format modifiers it is possible to change the + minimum field width, the maximum field width and justification. + + + The optional format modifier is placed between the percent sign + and the conversion pattern name. + + + The first optional format modifier is the left justification + flag which is just the minus (-) character. Then comes the + optional minimum field width modifier. This is a decimal + constant that represents the minimum number of characters to + output. If the data item requires fewer characters, it is padded on + either the left or the right until the minimum width is + reached. The default is to pad on the left (right justify) but you + can specify right padding with the left justification flag. The + padding character is space. If the data item is larger than the + minimum field width, the field is expanded to accommodate the + data. The value is never truncated. + + + This behavior can be changed using the maximum field + width modifier which is designated by a period followed by a + decimal constant. If the data item is longer than the maximum + field, then the extra characters are removed from the + beginning of the data item and not from the end. For + example, it the maximum field width is eight and the data item is + ten characters long, then the first two characters of the data item + are dropped. This behavior deviates from the printf function in C + where truncation is done from the end. + + + Below are various format modifier examples for the logger + conversion specifier. + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Format modifierleft justifyminimum widthmaximum widthcomment
%20loggerfalse20none + + Left pad with spaces if the logger name is less than 20 + characters long. + +
%-20loggertrue20none + + Right pad with spaces if the logger + name is less than 20 characters long. + +
%.30loggerNAnone30 + + Truncate from the beginning if the logger + name is longer than 30 characters. + +
%20.30loggerfalse2030 + + Left pad with spaces if the logger name is shorter than 20 + characters. However, if logger name is longer than 30 characters, + then truncate from the beginning. + +
%-20.30loggertrue2030 + + Right pad with spaces if the logger name is shorter than 20 + characters. However, if logger name is longer than 30 characters, + then truncate from the beginning. + +
+
+ + Note about caller location information.
+ The following patterns %type %file %line %method %location %class %C %F %L %l %M + all generate caller location information. + Location information uses the System.Diagnostics.StackTrace class to generate + a call stack. The caller's information is then extracted from this stack. +
+ + + The System.Diagnostics.StackTrace class is not supported on the + .NET Compact Framework 1.0 therefore caller location information is not + available on that framework. + + + + + The System.Diagnostics.StackTrace class has this to say about Release builds: + + + "StackTrace information will be most informative with Debug build configurations. + By default, Debug builds include debug symbols, while Release builds do not. The + debug symbols contain most of the file, method name, line number, and column + information used in constructing StackFrame and StackTrace objects. StackTrace + might not report as many method calls as expected, due to code transformations + that occur during optimization." + + + This means that in a Release build the caller information may be incomplete or may + not exist at all! Therefore caller location information cannot be relied upon in a Release build. + + + + Additional pattern converters may be registered with a specific + instance using the method. + +
+ + This is a more detailed pattern. + %timestamp [%thread] %level %logger %ndc - %message%newline + + + A similar pattern except that the relative time is + right padded if less than 6 digits, thread name is right padded if + less than 15 characters and truncated if longer and the logger + name is left padded if shorter than 30 characters and truncated if + longer. + %-6timestamp [%15.15thread] %-5level %30.30logger %ndc - %message%newline + + Nicko Cadell + Gert Driesen + Douglas de la Torre + Daniel Cazzulino +
+ + + Extend this abstract class to create your own log layout format. + + + + This is the base implementation of the + interface. Most layout objects should extend this class. + + + + + + Subclasses must implement the + method. + + + Subclasses should set the in their default + constructor. + + + + Nicko Cadell + Gert Driesen + + + + Interface implemented by layout objects + + + + An object is used to format a + as text. The method is called by an + appender to transform the into a string. + + + The layout can also supply and + text that is appender before any events and after all the events respectively. + + + Nicko Cadell + Gert Driesen + + + + Implement this method to create your own layout format. + + The TextWriter to write the formatted event to + The event to format + + + This method is called by an appender to format + the as text and output to a writer. + + + If the caller does not have a and prefers the + event to be formatted as a then the following + code can be used to format the event into a . + + + StringWriter writer = new StringWriter(); + Layout.Format(writer, loggingEvent); + string formattedEvent = writer.ToString(); + + + + + + The content type output by this layout. + + The content type + + + The content type output by this layout. + + + This is a MIME type e.g. "text/plain". + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + + + + + Flag indicating if this layout handle exceptions + + false if this layout handles exceptions + + + If this layout handles the exception object contained within + , then the layout should return + false. Otherwise, if the layout ignores the exception + object, then the layout should return true. + + + + + + The header text + + + + See for more information. + + + + + + The footer text + + + + See for more information. + + + + + + Flag indicating if this layout handles exceptions + + + + false if this layout handles exceptions + + + + + + Empty default constructor + + + + Empty default constructor + + + + + + Activate component options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + This method must be implemented by the subclass. + + + + + + Implement this method to create your own layout format. + + The TextWriter to write the formatted event to + The event to format + + + This method is called by an appender to format + the as text. + + + + + + Convenience method for easily formatting the logging event into a string variable. + + + + Creates a new StringWriter instance to store the formatted logging event. + + + + + The content type output by this layout. + + The content type is "text/plain" + + + The content type output by this layout. + + + This base class uses the value "text/plain". + To change this value a subclass must override this + property. + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + + + + + Flag indicating if this layout handles exceptions + + false if this layout handles exceptions + + + If this layout handles the exception object contained within + , then the layout should return + false. Otherwise, if the layout ignores the exception + object, then the layout should return true. + + + Set this value to override a this default setting. The default + value is true, this layout does not handle the exception. + + + + + + Default pattern string for log output. + + + + Default pattern string for log output. + Currently set to the string "%message%newline" + which just prints the application supplied message. + + + + + + A detailed conversion pattern + + + + A conversion pattern which includes Time, Thread, Logger, and Nested Context. + Current value is %timestamp [%thread] %level %logger %ndc - %message%newline. + + + + + + Internal map of converter identifiers to converter types. + + + + This static map is overridden by the m_converterRegistry instance map + + + + + + the pattern + + + + + the head of the pattern converter chain + + + + + patterns defined on this PatternLayout only + + + + + Initialize the global registry + + + + Defines the builtin global rules. + + + + + + Constructs a PatternLayout using the DefaultConversionPattern + + + + The default pattern just produces the application supplied message. + + + Note to Inheritors: This constructor calls the virtual method + . If you override this method be + aware that it will be called before your is called constructor. + + + As per the contract the + method must be called after the properties on this object have been + configured. + + + + + + Constructs a PatternLayout using the supplied conversion pattern + + the pattern to use + + + Note to Inheritors: This constructor calls the virtual method + . If you override this method be + aware that it will be called before your is called constructor. + + + When using this constructor the method + need not be called. This may not be the case when using a subclass. + + + + + + Create the pattern parser instance + + the pattern to parse + The that will format the event + + + Creates the used to parse the conversion string. Sets the + global and instance rules on the . + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a formatted string as specified by the conversion pattern. + + the event being logged + The TextWriter to write the formatted event to + + + Parse the using the patter format + specified in the property. + + + + + + Add a converter to this PatternLayout + + the converter info + + + This version of the method is used by the configurator. + Programmatic users should use the alternative method. + + + + + + Add a converter to this PatternLayout + + the name of the conversion pattern for this converter + the type of the converter + + + Add a named pattern converter to this instance. This + converter will be used in the formatting of the event. + This method must be called before . + + + The specified must extend the + type. + + + + + + The pattern formatting string + + + + The ConversionPattern option. This is the string which + controls formatting and consists of a mix of literal content and + conversion specifiers. + + + + + + The header PatternString + + + + + The footer PatternString + + + + + Constructs a DynamicPatternLayout using the DefaultConversionPattern + + + + The default pattern just produces the application supplied message. + + + + + + Constructs a DynamicPatternLayout using the supplied conversion pattern + + the pattern to use + + + + + + The header for the layout format. + + the layout header + + + The Header text will be appended before any logging events + are formatted and appended. + + The pattern will be formatted on each get operation. + + + + + The footer for the layout format. + + the layout footer + + + The Footer text will be appended after all the logging events + have been formatted and appended. + + The pattern will be formatted on each get operation. + + + + + A Layout that renders only the Exception text from the logging event + + + + A Layout that renders only the Exception text from the logging event. + + + This Layout should only be used with appenders that utilize multiple + layouts (e.g. ). + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Constructs a ExceptionLayout + + + + + + Activate component options + + + + Part of the component activation + framework. + + + This method does nothing as options become effective immediately. + + + + + + Gets the exception text from the logging event + + The TextWriter to write the formatted event to + the event being logged + + + Write the exception string to the . + The exception string is retrieved from . + + + + + + Interface for raw layout objects + + + + Interface used to format a + to an object. + + + This interface should not be confused with the + interface. This interface is used in + only certain specialized situations where a raw object is + required rather than a formatted string. The + is not generally useful than this interface. + + + Nicko Cadell + Gert Driesen + + + + Implement this method to create your own layout format. + + The event to format + returns the formatted event + + + Implement this method to create your own layout format. + + + + + + Adapts any to a + + + + Where an is required this adapter + allows a to be specified. + + + Nicko Cadell + Gert Driesen + + + + The layout to adapt + + + + + Construct a new adapter + + the layout to adapt + + + Create the adapter for the specified . + + + + + + Format the logging event as an object. + + The event to format + returns the formatted event + + + Format the logging event as an object. + + + Uses the object supplied to + the constructor to perform the formatting. + + + + + + Type converter for the interface + + + + Used to convert objects to the interface. + Supports converting from the interface to + the interface using the . + + + Nicko Cadell + Gert Driesen + + + + Interface supported by type converters + + + + This interface supports conversion from arbitrary types + to a single target type. See . + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Test if the can be converted to the + type supported by this converter. + + + + + + Convert the source object to the type supported by this object + + the object to convert + the converted object + + + Converts the to the type supported + by this converter. + + + + + + Can the sourceType be converted to an + + the source to be to be converted + true if the source type can be converted to + + + Test if the can be converted to a + . Only is supported + as the . + + + + + + Convert the value to a object + + the value to convert + the object + + + Convert the object to a + object. If the object + is a then the + is used to adapt between the two interfaces, otherwise an + exception is thrown. + + + + + + Extract the value of a property from the + + + + Extract the value of a property from the + + + Nicko Cadell + + + + Constructs a RawPropertyLayout + + + + + Lookup the property for + + The event to format + returns property value + + + Looks up and returns the object value of the property + named . If there is no property defined + with than name then null will be returned. + + + + + + The name of the value to lookup in the LoggingEvent Properties collection. + + + Value to lookup in the LoggingEvent Properties collection + + + + String name of the property to lookup in the . + + + + + + Extract the date from the + + + + Extract the date from the + + + Nicko Cadell + Gert Driesen + + + + Constructs a RawTimeStampLayout + + + + + Gets the as a . + + The event to format + returns the time stamp + + + Gets the as a . + + + The time stamp is in local time. To format the time stamp + in universal time use . + + + + + + Extract the date from the + + + + Extract the date from the + + + Nicko Cadell + Gert Driesen + + + + Constructs a RawUtcTimeStampLayout + + + + + Gets the as a . + + The event to format + returns the time stamp + + + Gets the as a . + + + The time stamp is in universal time. To format the time stamp + in local time use . + + + + + + A very simple layout + + + + SimpleLayout consists of the level of the log statement, + followed by " - " and then the log message itself. For example, + + DEBUG - Hello world + + + + Nicko Cadell + Gert Driesen + + + + Constructs a SimpleLayout + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a simple formatted output. + + the event being logged + The TextWriter to write the formatted event to + + + Formats the event as the level of the even, + followed by " - " and then the log message itself. The + output is terminated by a newline. + + + + + + Layout that formats the log events as XML elements. + + + + The output of the consists of a series of + log4net:event elements. It does not output a complete well-formed XML + file. The output is designed to be included as an external entity + in a separate file to form a correct XML file. + + + For example, if abc is the name of the file where + the output goes, then a well-formed XML file would + be: + + + <?xml version="1.0" ?> + + <!DOCTYPE log4net:events SYSTEM "log4net-events.dtd" [<!ENTITY data SYSTEM "abc">]> + + <log4net:events version="1.2" xmlns:log4net="http://logging.apache.org/log4net/schemas/log4net-events-1.2> + &data; + </log4net:events> + + + This approach enforces the independence of the + and the appender where it is embedded. + + + The version attribute helps components to correctly + interpret output generated by . The value of + this attribute should be "1.2" for release 1.2 and later. + + + Alternatively the Header and Footer properties can be + configured to output the correct XML header, open tag and close tag. + When setting the Header and Footer properties it is essential + that the underlying data store not be appendable otherwise the data + will become invalid XML. + + + Nicko Cadell + Gert Driesen + + + + Layout that formats the log events as XML elements. + + + + This is an abstract class that must be subclassed by an implementation + to conform to a specific schema. + + + Deriving classes must implement the method. + + + Nicko Cadell + Gert Driesen + + + + Protected constructor to support subclasses + + + + Initializes a new instance of the class + with no location info. + + + + + + Protected constructor to support subclasses + + + + The parameter determines whether + location information will be output by the layout. If + is set to true, then the + file name and line number of the statement at the origin of the log + statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Produces a formatted string. + + The event being logged. + The TextWriter to write the formatted event to + + + Format the and write it to the . + + + This method creates an that writes to the + . The is passed + to the method. Subclasses should override the + method rather than this method. + + + + + + Does the actual writing of the XML. + + The writer to use to output the event to. + The event to write. + + + Subclasses should override this method to format + the as XML. + + + + + + Flag to indicate if location information should be included in + the XML events. + + + + + The string to replace invalid chars with + + + + + Gets a value indicating whether to include location information in + the XML events. + + + true if location information should be included in the XML + events; otherwise, false. + + + + If is set to true, then the file + name and line number of the statement at the origin of the log + statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + The string to replace characters that can not be expressed in XML with. + + + Not all characters may be expressed in XML. This property contains the + string to replace those that can not with. This defaults to a ?. Set it + to the empty string to simply remove offending characters. For more + details on the allowed character ranges see http://www.w3.org/TR/REC-xml/#charsets + Character replacement will occur in the log message, the property names + and the property values. + + + + + + + Gets the content type output by this layout. + + + As this is the XML layout, the value is always "text/xml". + + + + As this is the XML layout, the value is always "text/xml". + + + + + + Constructs an XmlLayout + + + + + Constructs an XmlLayout. + + + + The LocationInfo option takes a boolean value. By + default, it is set to false which means there will be no location + information output by this layout. If the the option is set to + true, then the file name and line number of the statement + at the origin of the log statement will be output. + + + If you are embedding this layout within an SmtpAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + Initialize layout options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + Builds a cache of the element names + + + + + + Does the actual writing of the XML. + + The writer to use to output the event to. + The event to write. + + + Override the base class method + to write the to the . + + + + + + The prefix to use for all generated element names + + + + + The prefix to use for all element names + + + + The default prefix is log4net. Set this property + to change the prefix. If the prefix is set to an empty string + then no prefix will be written. + + + + + + Set whether or not to base64 encode the message. + + + + By default the log message will be written as text to the xml + output. This can cause problems when the message contains binary + data. By setting this to true the contents of the message will be + base64 encoded. If this is set then invalid character replacement + (see ) will not be performed + on the log message. + + + + + + Set whether or not to base64 encode the property values. + + + + By default the properties will be written as text to the xml + output. This can cause problems when one or more properties contain + binary data. By setting this to true the values of the properties + will be base64 encoded. If this is set then invalid character replacement + (see ) will not be performed + on the property values. + + + + + + Layout that formats the log events as XML elements compatible with the log4j schema + + + + Formats the log events according to the http://logging.apache.org/log4j schema. + + + Nicko Cadell + + + + The 1st of January 1970 in UTC + + + + + Constructs an XMLLayoutSchemaLog4j + + + + + Constructs an XMLLayoutSchemaLog4j. + + + + The LocationInfo option takes a boolean value. By + default, it is set to false which means there will be no location + information output by this layout. If the the option is set to + true, then the file name and line number of the statement + at the origin of the log statement will be output. + + + If you are embedding this layout within an SMTPAppender + then make sure to set the LocationInfo option of that + appender as well. + + + + + + Actually do the writing of the xml + + the writer to use + the event to write + + + Generate XML that is compatible with the log4j schema. + + + + + + The version of the log4j schema to use. + + + + Only version 1.2 of the log4j schema is supported. + + + + + + The default object Renderer. + + + + The default renderer supports rendering objects and collections to strings. + + + See the method for details of the output. + + + Nicko Cadell + Gert Driesen + + + + Implement this interface in order to render objects as strings + + + + Certain types require special case conversion to + string form. This conversion is done by an object renderer. + Object renderers implement the + interface. + + + Nicko Cadell + Gert Driesen + + + + Render the object to a string + + The map used to lookup renderers + The object to render + The writer to render to + + + Render the object to a + string. + + + The parameter is + provided to lookup and render other objects. This is + very useful where contains + nested objects of unknown type. The + method can be used to render these objects. + + + + + + Default constructor + + + + Default constructor + + + + + + Render the object to a string + + The map used to lookup renderers + The object to render + The writer to render to + + + Render the object to a string. + + + The parameter is + provided to lookup and render other objects. This is + very useful where contains + nested objects of unknown type. The + method can be used to render these objects. + + + The default renderer supports rendering objects to strings as follows: + + + + Value + Rendered String + + + null + + "(null)" + + + + + + + For a one dimensional array this is the + array type name, an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. + + + For example: int[] {1, 2, 3}. + + + If the array is not one dimensional the + Array.ToString() is returned. + + + + + , & + + + Rendered as an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. + + + For example: {a, b, c}. + + + All collection classes that implement its subclasses, + or generic equivalents all implement the interface. + + + + + + + + Rendered as the key, an equals sign ('='), and the value (using the appropriate + renderer). + + + For example: key=value. + + + + + other + + Object.ToString() + + + + + + + + Render the array argument into a string + + The map used to lookup renderers + the array to render + The writer to render to + + + For a one dimensional array this is the + array type name, an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. For example: + int[] {1, 2, 3}. + + + If the array is not one dimensional the + Array.ToString() is returned. + + + + + + Render the enumerator argument into a string + + The map used to lookup renderers + the enumerator to render + The writer to render to + + + Rendered as an open brace, followed by a comma + separated list of the elements (using the appropriate + renderer), followed by a close brace. For example: + {a, b, c}. + + + + + + Render the DictionaryEntry argument into a string + + The map used to lookup renderers + the DictionaryEntry to render + The writer to render to + + + Render the key, an equals sign ('='), and the value (using the appropriate + renderer). For example: key=value. + + + + + + Map class objects to an . + + + + Maintains a mapping between types that require special + rendering and the that + is used to render them. + + + The method is used to render an + object using the appropriate renderers defined in this map. + + + Nicko Cadell + Gert Driesen + + + + Default Constructor + + + + Default constructor. + + + + + + Render using the appropriate renderer. + + the object to render to a string + the object rendered as a string + + + This is a convenience method used to render an object to a string. + The alternative method + should be used when streaming output to a . + + + + + + Render using the appropriate renderer. + + the object to render to a string + The writer to render to + + + Find the appropriate renderer for the type of the + parameter. This is accomplished by calling the + method. Once a renderer is found, it is + applied on the object and the result is returned + as a . + + + + + + Gets the renderer for the specified object type + + the object to lookup the renderer for + the renderer for + + + Gets the renderer for the specified object type. + + + Syntactic sugar method that calls + with the type of the object parameter. + + + + + + Gets the renderer for the specified type + + the type to lookup the renderer for + the renderer for the specified type + + + Returns the renderer for the specified type. + If no specific renderer has been defined the + will be returned. + + + + + + Internal function to recursively search interfaces + + the type to lookup the renderer for + the renderer for the specified type + + + + Clear the map of renderers + + + + Clear the custom renderers defined by using + . The + cannot be removed. + + + + + + Register an for . + + the type that will be rendered by + the renderer for + + + Register an object renderer for a specific source type. + This renderer will be returned from a call to + specifying the same as an argument. + + + + + + Get the default renderer instance + + the default renderer + + + Get the default renderer + + + + + + Interface implemented by logger repository plugins. + + + + Plugins define additional behavior that can be associated + with a . + The held by the + property is used to store the plugins for a repository. + + + The log4net.Config.PluginAttribute can be used to + attach plugins to repositories created using configuration + attributes. + + + Nicko Cadell + Gert Driesen + + + + Attaches the plugin to the specified . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + This method is called to notify the plugin that + it should stop operating and should detach from + the repository. + + + + + + Gets the name of the plugin. + + + The name of the plugin. + + + + Plugins are stored in the + keyed by name. Each plugin instance attached to a + repository must be a unique name. + + + + + + A strongly-typed collection of objects. + + Nicko Cadell + + + + Creates a read-only wrapper for a PluginCollection instance. + + list to create a readonly wrapper arround + + A PluginCollection wrapper that is read-only. + + + + + Initializes a new instance of the PluginCollection class + that is empty and has the default initial capacity. + + + + + Initializes a new instance of the PluginCollection class + that has the specified initial capacity. + + + The number of elements that the new PluginCollection is initially capable of storing. + + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified PluginCollection. + + The PluginCollection whose elements are copied to the new collection. + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified array. + + The array whose elements are copied to the new list. + + + + Initializes a new instance of the PluginCollection class + that contains elements copied from the specified collection. + + The collection whose elements are copied to the new list. + + + + Allow subclasses to avoid our default constructors + + + + + + + Copies the entire PluginCollection to a one-dimensional + array. + + The one-dimensional array to copy to. + + + + Copies the entire PluginCollection to a one-dimensional + array, starting at the specified index of the target array. + + The one-dimensional array to copy to. + The zero-based index in at which copying begins. + + + + Adds a to the end of the PluginCollection. + + The to be added to the end of the PluginCollection. + The index at which the value has been added. + + + + Removes all elements from the PluginCollection. + + + + + Creates a shallow copy of the . + + A new with a shallow copy of the collection data. + + + + Determines whether a given is in the PluginCollection. + + The to check for. + true if is found in the PluginCollection; otherwise, false. + + + + Returns the zero-based index of the first occurrence of a + in the PluginCollection. + + The to locate in the PluginCollection. + + The zero-based index of the first occurrence of + in the entire PluginCollection, if found; otherwise, -1. + + + + + Inserts an element into the PluginCollection at the specified index. + + The zero-based index at which should be inserted. + The to insert. + + is less than zero + -or- + is equal to or greater than . + + + + + Removes the first occurrence of a specific from the PluginCollection. + + The to remove from the PluginCollection. + + The specified was not found in the PluginCollection. + + + + + Removes the element at the specified index of the PluginCollection. + + The zero-based index of the element to remove. + + is less than zero. + -or- + is equal to or greater than . + + + + + Returns an enumerator that can iterate through the PluginCollection. + + An for the entire PluginCollection. + + + + Adds the elements of another PluginCollection to the current PluginCollection. + + The PluginCollection whose elements should be added to the end of the current PluginCollection. + The new of the PluginCollection. + + + + Adds the elements of a array to the current PluginCollection. + + The array whose elements should be added to the end of the PluginCollection. + The new of the PluginCollection. + + + + Adds the elements of a collection to the current PluginCollection. + + The collection whose elements should be added to the end of the PluginCollection. + The new of the PluginCollection. + + + + Sets the capacity to the actual number of elements. + + + + + is less than zero. + -or- + is equal to or greater than . + + + + + is less than zero. + -or- + is equal to or greater than . + + + + + Gets the number of elements actually contained in the PluginCollection. + + + + + Gets a value indicating whether access to the collection is synchronized (thread-safe). + + false, because the backing type is an array, which is never thread-safe. + + + + Gets an object that can be used to synchronize access to the collection. + + + An object that can be used to synchronize access to the collection. + + + + + Gets or sets the at the specified index. + + + The at the specified index. + + The zero-based index of the element to get or set. + + is less than zero. + -or- + is equal to or greater than . + + + + + Gets a value indicating whether the collection has a fixed size. + + true if the collection has a fixed size; otherwise, false. The default is false. + + + + Gets a value indicating whether the IList is read-only. + + true if the collection is read-only; otherwise, false. The default is false. + + + + Gets or sets the number of elements the PluginCollection can contain. + + + The number of elements the PluginCollection can contain. + + + + + Supports type-safe iteration over a . + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + + + Type visible only to our subclasses + Used to access protected constructor + + + + + + A value + + + + + Supports simple iteration over a . + + + + + + Initializes a new instance of the Enumerator class. + + + + + + Advances the enumerator to the next element in the collection. + + + true if the enumerator was successfully advanced to the next element; + false if the enumerator has passed the end of the collection. + + + The collection was modified after the enumerator was created. + + + + + Sets the enumerator to its initial position, before the first element in the collection. + + + + + Gets the current element in the collection. + + + The current element in the collection. + + + + + + + + Map of repository plugins. + + + + This class is a name keyed map of the plugins that are + attached to a repository. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The repository that the plugins should be attached to. + + + Initialize a new instance of the class with a + repository that the plugins should be attached to. + + + + + + Adds a to the map. + + The to add to the map. + + + The will be attached to the repository when added. + + + If there already exists a plugin with the same name + attached to the repository then the old plugin will + be and replaced with + the new plugin. + + + + + + Removes a from the map. + + The to remove from the map. + + + Remove a specific plugin from this map. + + + + + + Gets a by name. + + The name of the to lookup. + + The from the map with the name specified, or + null if no plugin is found. + + + + Lookup a plugin by name. If the plugin is not found null + will be returned. + + + + + + Gets all possible plugins as a list of objects. + + All possible plugins as a list of objects. + + + Get a collection of all the plugins defined in this map. + + + + + + Base implementation of + + + + Default abstract implementation of the + interface. This base class can be used by implementors + of the interface. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + the name of the plugin + + Initializes a new Plugin with the specified name. + + + + + Attaches this plugin to a . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + This method is called to notify the plugin that + it should stop operating and should detach from + the repository. + + + + + + The name of this plugin. + + + + + The repository this plugin is attached to. + + + + + Gets or sets the name of the plugin. + + + The name of the plugin. + + + + Plugins are stored in the + keyed by name. Each plugin instance attached to a + repository must be a unique name. + + + The name of the plugin must not change one the + plugin has been attached to a repository. + + + + + + The repository for this plugin + + + The that this plugin is attached to. + + + + Gets or sets the that this plugin is + attached to. + + + + + + Plugin that listens for events from the + + + + This plugin publishes an instance of + on a specified . This listens for logging events delivered from + a remote . + + + When an event is received it is relogged within the attached repository + as if it had been raised locally. + + + Nicko Cadell + Gert Driesen + + + + Default constructor + + + + Initializes a new instance of the class. + + + The property must be set. + + + + + + Construct with sink Uri. + + The name to publish the sink under in the remoting infrastructure. + See for more details. + + + Initializes a new instance of the class + with specified name. + + + + + + Attaches this plugin to a . + + The that this plugin should be attached to. + + + A plugin may only be attached to a single repository. + + + This method is called when the plugin is attached to the repository. + + + + + + Is called when the plugin is to shutdown. + + + + When the plugin is shutdown the remote logging + sink is disconnected. + + + + + + The fully qualified type of the RemoteLoggingServerPlugin class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the URI of this sink. + + + The URI of this sink. + + + + This is the name under which the object is marshaled. + + + + + + + Delivers objects to a remote sink. + + + + Internal class used to listen for logging events + and deliver them to the local repository. + + + + + + Constructor + + The repository to log to. + + + Initializes a new instance of the for the + specified . + + + + + + Logs the events to the repository. + + The events to log. + + + The events passed are logged to the + + + + + + Obtains a lifetime service object to control the lifetime + policy for this instance. + + null to indicate that this instance should live forever. + + + Obtains a lifetime service object to control the lifetime + policy for this instance. This object should live forever + therefore this implementation returns null. + + + + + + The underlying that events should + be logged to. + + + + + Default implementation of + + + + This default implementation of the + interface is used to create the default subclass + of the object. + + + Nicko Cadell + Gert Driesen + + + + Interface abstracts creation of instances + + + + This interface is used by the to + create new objects. + + + The method is called + to create a named . + + + Implement this interface to create new subclasses of . + + + Nicko Cadell + Gert Driesen + + + + Create a new instance + + The that will own the . + The name of the . + The instance for the specified name. + + + Create a new instance with the + specified name. + + + Called by the to create + new named instances. + + + If the is null then the root logger + must be returned. + + + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Create a new instance + + The that will own the . + The name of the . + The instance for the specified name. + + + Create a new instance with the + specified name. + + + Called by the to create + new named instances. + + + If the is null then the root logger + must be returned. + + + + + + Default internal subclass of + + + + This subclass has no additional behavior over the + class but does allow instances + to be created. + + + + + + Implementation of used by + + + + Internal class used to provide implementation of + interface. Applications should use to get + logger instances. + + + This is one of the central classes in the log4net implementation. One of the + distinctive features of log4net are hierarchical loggers and their + evaluation. The organizes the + instances into a rooted tree hierarchy. + + + The class is abstract. Only concrete subclasses of + can be created. The + is used to create instances of this type for the . + + + Nicko Cadell + Gert Driesen + Aspi Havewala + Douglas de la Torre + + + + This constructor created a new instance and + sets its name. + + The name of the . + + + This constructor is protected and designed to be used by + a subclass that is not abstract. + + + Loggers are constructed by + objects. See for the default + logger creator. + + + + + + Add to the list of appenders of this + Logger instance. + + An appender to add to this logger + + + Add to the list of appenders of this + Logger instance. + + + If is already in the list of + appenders, then it won't be added again. + + + + + + Look for the appender named as name + + The name of the appender to lookup + The appender with the name specified, or null. + + + Returns the named appender, or null if the appender is not found. + + + + + + Remove all previously added appenders from this Logger instance. + + + + Remove all previously added appenders from this Logger instance. + + + This is useful when re-reading configuration information. + + + + + + Remove the appender passed as parameter form the list of appenders. + + The appender to remove + The appender removed from the list + + + Remove the appender passed as parameter form the list of appenders. + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Remove the appender passed as parameter form the list of appenders. + + The name of the appender to remove + The appender removed from the list + + + Remove the named appender passed as parameter form the list of appenders. + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + This generic form is intended to be used by wrappers. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generate a logging event for the specified using + the and . + + + This method must not throw any exception to the caller. + + + + + + This is the most generic printing method that is intended to be used + by wrappers. + + The event being logged. + + + Logs the specified logging event through this logger. + + + This method must not throw any exception to the caller. + + + + + + Checks if this logger is enabled for a given passed as parameter. + + The level to check. + + true if this logger is enabled for level, otherwise false. + + + + Test if this logger is going to log events of the specified . + + + This method must not throw any exception to the caller. + + + + + + Deliver the to the attached appenders. + + The event to log. + + + Call the appenders in the hierarchy starting at + this. If no appenders could be found, emit a + warning. + + + This method calls all the appenders inherited from the + hierarchy circumventing any evaluation of whether to log or not + to log the particular log request. + + + + + + Closes all attached appenders implementing the interface. + + + + Used to ensure that the appenders are correctly shutdown. + + + + + + This is the most generic printing method. This generic form is intended to be used by wrappers + + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generate a logging event for the specified using + the . + + + + + + Creates a new logging event and logs the event without further checks. + + The declaring type of the method that is + the stack boundary into the logging system for this call. + The level of the message to be logged. + The message object to log. + The exception to log, including its stack trace. + + + Generates a logging event and delivers it to the attached + appenders. + + + + + + Creates a new logging event and logs the event without further checks. + + The event being logged. + + + Delivers the logging event to the attached appenders. + + + + + + The fully qualified type of the Logger class. + + + + + The name of this logger. + + + + + The assigned level of this logger. + + + + The level variable need not be + assigned a value in which case it is inherited + form the hierarchy. + + + + + + The parent of this logger. + + + + The parent of this logger. + All loggers have at least one ancestor which is the root logger. + + + + + + Loggers need to know what Hierarchy they are in. + + + + Loggers need to know what Hierarchy they are in. + The hierarchy that this logger is a member of is stored + here. + + + + + + Helper implementation of the interface + + + + + Flag indicating if child loggers inherit their parents appenders + + + + Additivity is set to true by default, that is children inherit + the appenders of their ancestors by default. If this variable is + set to false then the appenders found in the + ancestors of this logger are not used. However, the children + of this logger will inherit its appenders, unless the children + have their additivity flag set to false too. See + the user manual for more details. + + + + + + Lock to protect AppenderAttachedImpl variable m_appenderAttachedImpl + + + + + Gets or sets the parent logger in the hierarchy. + + + The parent logger in the hierarchy. + + + + Part of the Composite pattern that makes the hierarchy. + The hierarchy is parent linked rather than child linked. + + + + + + Gets or sets a value indicating if child loggers inherit their parent's appenders. + + + true if child loggers inherit their parent's appenders. + + + + Additivity is set to true by default, that is children inherit + the appenders of their ancestors by default. If this variable is + set to false then the appenders found in the + ancestors of this logger are not used. However, the children + of this logger will inherit its appenders, unless the children + have their additivity flag set to false too. See + the user manual for more details. + + + + + + Gets the effective level for this logger. + + The nearest level in the logger hierarchy. + + + Starting from this logger, searches the logger hierarchy for a + non-null level and returns it. Otherwise, returns the level of the + root logger. + + The Logger class is designed so that this method executes as + quickly as possible. + + + + + Gets or sets the where this + Logger instance is attached to. + + The hierarchy that this logger belongs to. + + + This logger must be attached to a single . + + + + + + Gets or sets the assigned , if any, for this Logger. + + + The of this logger. + + + + The assigned can be null. + + + + + + Get the appenders contained in this logger as an + . + + A collection of the appenders in this logger + + + Get the appenders contained in this logger as an + . If no appenders + can be found, then a is returned. + + + + + + Gets the logger name. + + + The name of the logger. + + + + The name of this logger + + + + + + Gets the where this + Logger instance is attached to. + + + The that this logger belongs to. + + + + Gets the where this + Logger instance is attached to. + + + + + + Construct a new Logger + + the name of the logger + + + Initializes a new instance of the class + with the specified name. + + + + + + Delegate used to handle logger creation event notifications. + + The in which the has been created. + The event args that hold the instance that has been created. + + + Delegate used to handle logger creation event notifications. + + + + + + Provides data for the event. + + + + A event is raised every time a + is created. + + + + + + The created + + + + + Constructor + + The that has been created. + + + Initializes a new instance of the event argument + class,with the specified . + + + + + + Gets the that has been created. + + + The that has been created. + + + + The that has been created. + + + + + + Hierarchical organization of loggers + + + + The casual user should not have to deal with this class + directly. + + + This class is specialized in retrieving loggers by name and + also maintaining the logger hierarchy. Implements the + interface. + + + The structure of the logger hierarchy is maintained by the + method. The hierarchy is such that children + link to their parent but parents do not have any references to their + children. Moreover, loggers can be instantiated in any order, in + particular descendant before ancestor. + + + In case a descendant is created before a particular ancestor, + then it creates a provision node for the ancestor and adds itself + to the provision node. Other descendants of the same ancestor add + themselves to the previously created provision node. + + + Nicko Cadell + Gert Driesen + + + + Base implementation of + + + + Default abstract implementation of the interface. + + + Skeleton implementation of the interface. + All types can extend this type. + + + Nicko Cadell + Gert Driesen + + + + Interface implemented by logger repositories. + + + + This interface is implemented by logger repositories. e.g. + . + + + This interface is used by the + to obtain interfaces. + + + Nicko Cadell + Gert Driesen + + + + Check if the named logger exists in the repository. If so return + its reference, otherwise returns null. + + The name of the logger to lookup + The Logger object with the name specified + + + If the names logger exists it is returned, otherwise + null is returned. + + + + + + Returns all the currently defined loggers as an Array. + + All the defined loggers + + + Returns all the currently defined loggers as an Array. + + + + + + Returns a named logger instance + + The name of the logger to retrieve + The logger object with the name specified + + + Returns a named logger instance. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + + + Shutdown the repository + + + Shutting down a repository will safely close and remove + all appenders in all loggers including the root logger. + + + Some appenders need to be closed before the + application exists. Otherwise, pending logging events might be + lost. + + + The method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Reset the repositories configuration to a default state + + + + Reset all values contained in this instance to their + default state. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the through this repository. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Returns all the Appenders that are configured as an Array. + + All the Appenders + + + Returns all the Appenders that are configured as an Array. + + + + + + The name of the repository + + + The name of the repository + + + + The name of the repository. + + + + + + RendererMap accesses the object renderer map for this repository. + + + RendererMap accesses the object renderer map for this repository. + + + + RendererMap accesses the object renderer map for this repository. + + + The RendererMap holds a mapping between types and + objects. + + + + + + The plugin map for this repository. + + + The plugin map for this repository. + + + + The plugin map holds the instances + that have been attached to this repository. + + + + + + Get the level map for the Repository. + + + + Get the level map for the Repository. + + + The level map defines the mappings between + level names and objects in + this repository. + + + + + + The threshold for all events in this repository + + + The threshold for all events in this repository + + + + The threshold for all events in this repository. + + + + + + Flag indicates if this repository has been configured. + + + Flag indicates if this repository has been configured. + + + + Flag indicates if this repository has been configured. + + + + + + Collection of internal messages captured during the most + recent configuration process. + + + + + Event to notify that the repository has been shutdown. + + + Event to notify that the repository has been shutdown. + + + + Event raised when the repository has been shutdown. + + + + + + Event to notify that the repository has had its configuration reset. + + + Event to notify that the repository has had its configuration reset. + + + + Event raised when the repository's configuration has been + reset to default. + + + + + + Event to notify that the repository has had its configuration changed. + + + Event to notify that the repository has had its configuration changed. + + + + Event raised when the repository's configuration has been changed. + + + + + + Repository specific properties + + + Repository specific properties + + + + These properties can be specified on a repository specific basis. + + + + + + Default Constructor + + + + Initializes the repository with default (empty) properties. + + + + + + Construct the repository using specific properties + + the properties to set for this repository + + + Initializes the repository with specified properties. + + + + + + Test if logger exists + + The name of the logger to lookup + The Logger object with the name specified + + + Check if the named logger exists in the repository. If so return + its reference, otherwise returns null. + + + + + + Returns all the currently defined loggers in the repository + + All the defined loggers + + + Returns all the currently defined loggers in the repository as an Array. + + + + + + Return a new logger instance + + The name of the logger to retrieve + The logger object with the name specified + + + Return a new logger instance. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + + + + Shutdown the repository + + + + Shutdown the repository. Can be overridden in a subclass. + This base class implementation notifies the + listeners and all attached plugins of the shutdown event. + + + + + + Reset the repositories configuration to a default state + + + + Reset all values contained in this instance to their + default state. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the logEvent through this repository. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Returns all the Appenders that are configured as an Array. + + All the Appenders + + + Returns all the Appenders that are configured as an Array. + + + + + + The fully qualified type of the LoggerRepositorySkeleton class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Adds an object renderer for a specific class. + + The type that will be rendered by the renderer supplied. + The object renderer used to render the object. + + + Adds an object renderer for a specific class. + + + + + + Notify the registered listeners that the repository is shutting down + + Empty EventArgs + + + Notify any listeners that this repository is shutting down. + + + + + + Notify the registered listeners that the repository has had its configuration reset + + Empty EventArgs + + + Notify any listeners that this repository's configuration has been reset. + + + + + + Notify the registered listeners that the repository has had its configuration changed + + Empty EventArgs + + + Notify any listeners that this repository's configuration has changed. + + + + + + Raise a configuration changed event on this repository + + EventArgs.Empty + + + Applications that programmatically change the configuration of the repository should + raise this event notification to notify listeners. + + + + + + Flushes all configured Appenders that implement . + + The maximum time in milliseconds to wait for logging events from asycnhronous appenders to be flushed, + or to wait indefinitely. + True if all logging events were flushed successfully, else false. + + + + The name of the repository + + + The string name of the repository + + + + The name of this repository. The name is + used to store and lookup the repositories + stored by the . + + + + + + The threshold for all events in this repository + + + The threshold for all events in this repository + + + + The threshold for all events in this repository + + + + + + RendererMap accesses the object renderer map for this repository. + + + RendererMap accesses the object renderer map for this repository. + + + + RendererMap accesses the object renderer map for this repository. + + + The RendererMap holds a mapping between types and + objects. + + + + + + The plugin map for this repository. + + + The plugin map for this repository. + + + + The plugin map holds the instances + that have been attached to this repository. + + + + + + Get the level map for the Repository. + + + + Get the level map for the Repository. + + + The level map defines the mappings between + level names and objects in + this repository. + + + + + + Flag indicates if this repository has been configured. + + + Flag indicates if this repository has been configured. + + + + Flag indicates if this repository has been configured. + + + + + + Contains a list of internal messages captures during the + last configuration. + + + + + Event to notify that the repository has been shutdown. + + + Event to notify that the repository has been shutdown. + + + + Event raised when the repository has been shutdown. + + + + + + Event to notify that the repository has had its configuration reset. + + + Event to notify that the repository has had its configuration reset. + + + + Event raised when the repository's configuration has been + reset to default. + + + + + + Event to notify that the repository has had its configuration changed. + + + Event to notify that the repository has had its configuration changed. + + + + Event raised when the repository's configuration has been changed. + + + + + + Repository specific properties + + + Repository specific properties + + + These properties can be specified on a repository specific basis + + + + + Basic Configurator interface for repositories + + + + Interface used by basic configurator to configure a + with a default . + + + A should implement this interface to support + configuration by the . + + + Nicko Cadell + Gert Driesen + + + + Initialize the repository using the specified appender + + the appender to use to log all logging events + + + Configure the repository to route all logging events to the + specified appender. + + + + + + Initialize the repository using the specified appenders + + the appenders to use to log all logging events + + + Configure the repository to route all logging events to the + specified appenders. + + + + + + Configure repository using XML + + + + Interface used by Xml configurator to configure a . + + + A should implement this interface to support + configuration by the . + + + Nicko Cadell + Gert Driesen + + + + Initialize the repository using the specified config + + the element containing the root of the config + + + The schema for the XML configuration data is defined by + the implementation. + + + + + + Default constructor + + + + Initializes a new instance of the class. + + + + + + Construct with properties + + The properties to pass to this repository. + + + Initializes a new instance of the class. + + + + + + Construct with a logger factory + + The factory to use to create new logger instances. + + + Initializes a new instance of the class with + the specified . + + + + + + Construct with properties and a logger factory + + The properties to pass to this repository. + The factory to use to create new logger instances. + + + Initializes a new instance of the class with + the specified . + + + + + + Test if a logger exists + + The name of the logger to lookup + The Logger object with the name specified + + + Check if the named logger exists in the hierarchy. If so return + its reference, otherwise returns null. + + + + + + Returns all the currently defined loggers in the hierarchy as an Array + + All the defined loggers + + + Returns all the currently defined loggers in the hierarchy as an Array. + The root logger is not included in the returned + enumeration. + + + + + + Return a new logger instance named as the first parameter using + the default factory. + + + + Return a new logger instance named as the first parameter using + the default factory. + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated and + then linked with its existing ancestors as well as children. + + + The name of the logger to retrieve + The logger object with the name specified + + + + Shutting down a hierarchy will safely close and remove + all appenders in all loggers including the root logger. + + + + Shutting down a hierarchy will safely close and remove + all appenders in all loggers including the root logger. + + + Some appenders need to be closed before the + application exists. Otherwise, pending logging events might be + lost. + + + The Shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Reset all values contained in this hierarchy instance to their default. + + + + Reset all values contained in this hierarchy instance to their + default. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set its default "off" value. + + + Existing loggers are not removed. They are just reset. + + + This method should be used sparingly and with care as it will + block all logging until it is completed. + + + + + + Log the logEvent through this hierarchy. + + the event to log + + + This method should not normally be used to log. + The interface should be used + for routine logging. This interface can be obtained + using the method. + + + The logEvent is delivered to the appropriate logger and + that logger is then responsible for logging the event. + + + + + + Returns all the Appenders that are currently configured + + An array containing all the currently configured appenders + + + Returns all the instances that are currently configured. + All the loggers are searched for appenders. The appenders may also be containers + for appenders and these are also searched for additional loggers. + + + The list returned is unordered but does not contain duplicates. + + + + + + Collect the appenders from an . + The appender may also be a container. + + + + + + + Collect the appenders from an container + + + + + + + Initialize the log4net system using the specified appender + + the appender to use to log all logging events + + + + Initialize the log4net system using the specified appenders + + the appenders to use to log all logging events + + + + Initialize the log4net system using the specified appenders + + the appenders to use to log all logging events + + + This method provides the same functionality as the + method implemented + on this object, but it is protected and therefore can be called by subclasses. + + + + + + Initialize the log4net system using the specified config + + the element containing the root of the config + + + + Initialize the log4net system using the specified config + + the element containing the root of the config + + + This method provides the same functionality as the + method implemented + on this object, but it is protected and therefore can be called by subclasses. + + + + + + Test if this hierarchy is disabled for the specified . + + The level to check against. + + true if the repository is disabled for the level argument, false otherwise. + + + + If this hierarchy has not been configured then this method will + always return true. + + + This method will return true if this repository is + disabled for level object passed as parameter and + false otherwise. + + + See also the property. + + + + + + Clear all logger definitions from the internal hashtable + + + + This call will clear all logger definitions from the internal + hashtable. Invoking this method will irrevocably mess up the + logger hierarchy. + + + You should really know what you are doing before + invoking this method. + + + + + + Return a new logger instance named as the first parameter using + . + + The name of the logger to retrieve + The factory that will make the new logger instance + The logger object with the name specified + + + If a logger of that name already exists, then it will be + returned. Otherwise, a new logger will be instantiated by the + parameter and linked with its existing + ancestors as well as children. + + + + + + Sends a logger creation event to all registered listeners + + The newly created logger + + Raises the logger creation event. + + + + + Updates all the parents of the specified logger + + The logger to update the parents for + + + This method loops through all the potential parents of + . There 3 possible cases: + + + + No entry for the potential parent of exists + + We create a ProvisionNode for this potential + parent and insert in that provision node. + + + + The entry is of type Logger for the potential parent. + + The entry is 's nearest existing parent. We + update 's parent field with this entry. We also break from + he loop because updating our parent's parent is our parent's + responsibility. + + + + The entry is of type ProvisionNode for this potential parent. + + We add to the list of children for this + potential parent. + + + + + + + + Replace a with a in the hierarchy. + + + + + + We update the links for all the children that placed themselves + in the provision node 'pn'. The second argument 'log' is a + reference for the newly created Logger, parent of all the + children in 'pn'. + + + We loop on all the children 'c' in 'pn'. + + + If the child 'c' has been already linked to a child of + 'log' then there is no need to update 'c'. + + + Otherwise, we set log's parent field to c's parent and set + c's parent field to log. + + + + + + Define or redefine a Level using the values in the argument + + the level values + + + Define or redefine a Level using the values in the argument + + + Supports setting levels via the configuration file. + + + + + + Set a Property using the values in the argument + + the property value + + + Set a Property using the values in the argument. + + + Supports setting property values via the configuration file. + + + + + + The fully qualified type of the Hierarchy class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Event used to notify that a logger has been created. + + + + Event raised when a logger is created. + + + + + + Has no appender warning been emitted + + + + Flag to indicate if we have already issued a warning + about not having an appender warning. + + + + + + Get the root of this hierarchy + + + + Get the root of this hierarchy. + + + + + + Gets or sets the default instance. + + The default + + + The logger factory is used to create logger instances. + + + + + + A class to hold the value, name and display name for a level + + + + A class to hold the value, name and display name for a level + + + + + + Override Object.ToString to return sensible debug info + + string info about this object + + + + Value of the level + + + + If the value is not set (defaults to -1) the value will be looked + up for the current level with the same name. + + + + + + Name of the level + + + The name of the level + + + + The name of the level. + + + + + + Display name for the level + + + The display name of the level + + + + The display name of the level. + + + + + + Used internally to accelerate hash table searches. + + + + Internal class used to improve performance of + string keyed hashtables. + + + The hashcode of the string is cached for reuse. + The string is stored as an interned value. + When comparing two objects for equality + the reference equality of the interned strings is compared. + + + Nicko Cadell + Gert Driesen + + + + Construct key with string name + + + + Initializes a new instance of the class + with the specified name. + + + Stores the hashcode of the string and interns + the string key to optimize comparisons. + + + The Compact Framework 1.0 the + method does not work. On the Compact Framework + the string keys are not interned nor are they + compared by reference. + + + The name of the logger. + + + + Returns a hash code for the current instance. + + A hash code for the current instance. + + + Returns the cached hashcode. + + + + + + Determines whether two instances + are equal. + + The to compare with the current . + + true if the specified is equal to the current ; otherwise, false. + + + + Compares the references of the interned strings. + + + + + + Provision nodes are used where no logger instance has been specified + + + + instances are used in the + when there is no specified + for that node. + + + A provision node holds a list of child loggers on behalf of + a logger that does not exist. + + + Nicko Cadell + Gert Driesen + + + + Create a new provision node with child node + + A child logger to add to this node. + + + Initializes a new instance of the class + with the specified child logger. + + + + + + The sits at the root of the logger hierarchy tree. + + + + The is a regular except + that it provides several guarantees. + + + First, it cannot be assigned a null + level. Second, since the root logger cannot have a parent, the + property always returns the value of the + level field without walking the hierarchy. + + + Nicko Cadell + Gert Driesen + + + + Construct a + + The level to assign to the root logger. + + + Initializes a new instance of the class with + the specified logging level. + + + The root logger names itself as "root". However, the root + logger cannot be retrieved by name. + + + + + + The fully qualified type of the RootLogger class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the assigned level value without walking the logger hierarchy. + + The assigned level value without walking the logger hierarchy. + + + Because the root logger cannot have a parent and its level + must not be null this property just returns the + value of . + + + + + + Gets or sets the assigned for the root logger. + + + The of the root logger. + + + + Setting the level of the root logger to a null reference + may have catastrophic results. We prevent this here. + + + + + + Initializes the log4net environment using an XML DOM. + + + + Configures a using an XML DOM. + + + Nicko Cadell + Gert Driesen + + + + Construct the configurator for a hierarchy + + The hierarchy to build. + + + Initializes a new instance of the class + with the specified . + + + + + + Configure the hierarchy by parsing a DOM tree of XML elements. + + The root element to parse. + + + Configure the hierarchy by parsing a DOM tree of XML elements. + + + + + + Parse appenders by IDREF. + + The appender ref element. + The instance of the appender that the ref refers to. + + + Parse an XML element that represents an appender and return + the appender. + + + + + + Parses an appender element. + + The appender element. + The appender instance or null when parsing failed. + + + Parse an XML element that represents an appender and return + the appender instance. + + + + + + Parses a logger element. + + The logger element. + + + Parse an XML element that represents a logger. + + + + + + Parses the root logger element. + + The root element. + + + Parse an XML element that represents the root logger. + + + + + + Parses the children of a logger element. + + The category element. + The logger instance. + Flag to indicate if the logger is the root logger. + + + Parse the child elements of a <logger> element. + + + + + + Parses an object renderer. + + The renderer element. + + + Parse an XML element that represents a renderer. + + + + + + Parses a level element. + + The level element. + The logger object to set the level on. + Flag to indicate if the logger is the root logger. + + + Parse an XML element that represents a level. + + + + + + Sets a parameter on an object. + + The parameter element. + The object to set the parameter on. + + The parameter name must correspond to a writable property + on the object. The value of the parameter is a string, + therefore this function will attempt to set a string + property first. If unable to set a string property it + will inspect the property and its argument type. It will + attempt to call a static method called Parse on the + type of the property. This method will take a single + string argument and return a value that can be used to + set the property. + + + + + Test if an element has no attributes or child elements + + the element to inspect + true if the element has any attributes or child elements, false otherwise + + + + Test if a is constructible with Activator.CreateInstance. + + the type to inspect + true if the type is creatable using a default constructor, false otherwise + + + + Look for a method on the that matches the supplied + + the type that has the method + the name of the method + the method info found + + + The method must be a public instance method on the . + The method must be named or "Add" followed by . + The method must take a single parameter. + + + + + + Converts a string value to a target type. + + The type of object to convert the string to. + The string value to use as the value of the object. + + + An object of type with value or + null when the conversion could not be performed. + + + + + + Creates an object as specified in XML. + + The XML element that contains the definition of the object. + The object type to use if not explicitly specified. + The type that the returned object must be or must inherit from. + The object or null + + + Parse an XML element and create an object instance based on the configuration + data. + + + The type of the instance may be specified in the XML. If not + specified then the is used + as the type. However the type is specified it must support the + type. + + + + + + key: appenderName, value: appender. + + + + + The Hierarchy being configured. + + + + + The fully qualified type of the XmlHierarchyConfigurator class. + + + Used by the internal logger to record the Type of the + log message. + + + + + + + + + + + + + + + + + + + + + Delegate used to handle logger repository shutdown event notifications + + The that is shutting down. + Empty event args + + + Delegate used to handle logger repository shutdown event notifications. + + + + + + Delegate used to handle logger repository configuration reset event notifications + + The that has had its configuration reset. + Empty event args + + + Delegate used to handle logger repository configuration reset event notifications. + + + + + + Delegate used to handle event notifications for logger repository configuration changes. + + The that has had its configuration changed. + Empty event arguments. + + + Delegate used to handle event notifications for logger repository configuration changes. + + + + + + Write the name of the current AppDomain to the output + + + + Write the name of the current AppDomain to the output writer + + + Nicko Cadell + + + + Write the name of the current AppDomain to the output + + the writer to write to + null, state is not set + + + Writes name of the current AppDomain to the output . + + + + + + AppSetting pattern converter + + + + This pattern converter reads appSettings from the application configuration file. + + + If the is specified then that will be used to + lookup a single appSettings value. If no is specified + then all appSettings will be dumped as a list of key value pairs. + + + A typical use is to specify a base directory for log files, e.g. + + + + + ... + + + ]]> + + + + + + + Write the property value to the output + + that will receive the formatted result. + null, state is not set + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + Write the current date to the output + + + + Date pattern converter, uses a to format + the current date and time to the writer as a string. + + + The value of the determines + the formatting of the date. The following values are allowed: + + + Option value + Output + + + ISO8601 + + Uses the formatter. + Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern. + + + + DATE + + Uses the formatter. + Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459". + + + + ABSOLUTE + + Uses the formatter. + Formats using the "HH:mm:ss,fff" for example, "15:49:37,459". + + + + other + + Any other pattern string uses the formatter. + This formatter passes the pattern string to the + method. + For details on valid patterns see + DateTimeFormatInfo Class. + + + + + + The date and time is in the local time zone and is rendered in that zone. + To output the time in Universal time see . + + + Nicko Cadell + + + + The used to render the date to a string + + + + The used to render the date to a string + + + + + + Initialize the converter options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the current date to the output + + that will receive the formatted result. + null, state is not set + + + Pass the current date and time to the + for it to render it to the writer. + + + The date and time passed is in the local time zone. + + + + + + The fully qualified type of the DatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write an folder path to the output + + + + Write an special path environment folder path to the output writer. + The value of the determines + the name of the variable to output. + should be a value in the enumeration. + + + Ron Grabowski + + + + Write an special path environment folder path to the output + + the writer to write to + null, state is not set + + + Writes the special path environment folder path to the output . + The name of the special path environment folder path to output must be set + using the + property. + + + + + + The fully qualified type of the EnvironmentFolderPathPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write an environment variable to the output + + + + Write an environment variable to the output writer. + The value of the determines + the name of the variable to output. + + + Nicko Cadell + + + + Write an environment variable to the output + + the writer to write to + null, state is not set + + + Writes the environment variable to the output . + The name of the environment variable to output must be set + using the + property. + + + + + + The fully qualified type of the EnvironmentPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the current thread identity to the output + + + + Write the current thread identity to the output writer + + + Nicko Cadell + + + + Write the current thread identity to the output + + the writer to write to + null, state is not set + + + Writes the current thread identity to the output . + + + + + + The fully qualified type of the IdentityPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Pattern converter for literal string instances in the pattern + + + + Writes the literal string value specified in the + property to + the output. + + + Nicko Cadell + + + + Set the next converter in the chain + + The next pattern converter in the chain + The next pattern converter + + + Special case the building of the pattern converter chain + for instances. Two adjacent + literals in the pattern can be represented by a single combined + pattern converter. This implementation detects when a + is added to the chain + after this converter and combines its value with this converter's + literal value. + + + + + + Write the literal to the output + + the writer to write to + null, not set + + + Override the formatting behavior to ignore the FormattingInfo + because we have a literal instead. + + + Writes the value of + to the output . + + + + + + Convert this pattern into the rendered message + + that will receive the formatted result. + null, not set + + + This method is not used. + + + + + + Writes a newline to the output + + + + Writes the system dependent line terminator to the output. + This behavior can be overridden by setting the : + + + + Option Value + Output + + + DOS + DOS or Windows line terminator "\r\n" + + + UNIX + UNIX line terminator "\n" + + + + Nicko Cadell + + + + Initialize the converter + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write the current process ID to the output + + + + Write the current process ID to the output writer + + + Nicko Cadell + + + + Write the current process ID to the output + + the writer to write to + null, state is not set + + + Write the current process ID to the output . + + + + + + The fully qualified type of the ProcessIdPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Property pattern converter + + + + This pattern converter reads the thread and global properties. + The thread properties take priority over global properties. + See for details of the + thread properties. See for + details of the global properties. + + + If the is specified then that will be used to + lookup a single property. If no is specified + then all properties will be dumped as a list of key value pairs. + + + Nicko Cadell + + + + Write the property value to the output + + that will receive the formatted result. + null, state is not set + + + Writes out the value of a named property. The property name + should be set in the + property. + + + If the is set to null + then all the properties are written as key value pairs. + + + + + + A Pattern converter that generates a string of random characters + + + + The converter generates a string of random characters. By default + the string is length 4. This can be changed by setting the + to the string value of the length required. + + + The random characters in the string are limited to uppercase letters + and numbers only. + + + The random number generator used by this class is not cryptographically secure. + + + Nicko Cadell + + + + Shared random number generator + + + + + Length of random string to generate. Default length 4. + + + + + Initialize the converter options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Write a randoim string to the output + + the writer to write to + null, state is not set + + + Write a randoim string to the output . + + + + + + The fully qualified type of the RandomStringPatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the current threads username to the output + + + + Write the current threads username to the output writer + + + Nicko Cadell + + + + Write the current threads username to the output + + the writer to write to + null, state is not set + + + Write the current threads username to the output . + + + + + + The fully qualified type of the UserNamePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Write the UTC date time to the output + + + + Date pattern converter, uses a to format + the current date and time in Universal time. + + + See the for details on the date pattern syntax. + + + + Nicko Cadell + + + + Write the current date and time to the output + + that will receive the formatted result. + null, state is not set + + + Pass the current date and time to the + for it to render it to the writer. + + + The date is in Universal time when it is rendered. + + + + + + + The fully qualified type of the UtcDatePatternConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Type converter for Boolean. + + + + Supports conversion from string to bool type. + + + + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Convert the source object to the type supported by this object + + the object to convert + the converted object + + + Uses the method to convert the + argument to a . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Exception base type for conversion errors. + + + + This type extends . It + does not add any new functionality but does differentiate the + type of exception being thrown. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + A message to include with the exception. + + + Initializes a new instance of the class + with the specified message. + + + + + + Constructor + + A message to include with the exception. + A nested exception to include. + + + Initializes a new instance of the class + with the specified message and inner exception. + + + + + + Serialization constructor + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Creates a new instance of the class. + + The conversion destination type. + The value to convert. + An instance of the . + + + Creates a new instance of the class. + + + + + + Creates a new instance of the class. + + The conversion destination type. + The value to convert. + A nested exception to include. + An instance of the . + + + Creates a new instance of the class. + + + + + + Register of type converters for specific types. + + + + Maintains a registry of type converters used to convert between + types. + + + Use the and + methods to register new converters. + The and methods + lookup appropriate converters to use. + + + + + Nicko Cadell + Gert Driesen + + + + Private constructor + + + Initializes a new instance of the class. + + + + + Static constructor. + + + + This constructor defines the intrinsic type converters. + + + + + + Adds a converter for a specific type. + + The type being converted to. + The type converter to use to convert to the destination type. + + + Adds a converter instance for a specific type. + + + + + + Adds a converter for a specific type. + + The type being converted to. + The type of the type converter to use to convert to the destination type. + + + Adds a converter for a specific type. + + + + + + Gets the type converter to use to convert values to the destination type. + + The type being converted from. + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + Gets the type converter to use to convert values to the destination type. + + + + + + Gets the type converter to use to convert values to the destination type. + + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + Gets the type converter to use to convert values to the destination type. + + + + + + Lookups the type converter to use as specified by the attributes on the + destination type. + + The type being converted to. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + + Creates the instance of the type converter. + + The type of the type converter. + + The type converter instance to use for type conversions or null + if no type converter is found. + + + + The type specified for the type converter must implement + the or interfaces + and must have a public default (no argument) constructor. + + + + + + The fully qualified type of the ConverterRegistry class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Mapping from to type converter. + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + + Nicko Cadell + Gert Driesen + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to an encoding + the encoding + + + Uses the method to + convert the argument to an . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Interface supported by type converters + + + + This interface supports conversion from a single type to arbitrary types. + See . + + + Nicko Cadell + + + + Returns whether this converter can convert the object to the specified type + + A Type that represents the type you want to convert to + true if the conversion is possible + + + Test if the type supported by this converter can be converted to the + . + + + + + + Converts the given value object to the specified type, using the arguments + + the object to convert + The Type to convert the value parameter to + the converted object + + + Converts the (which must be of the type supported + by this converter) to the specified.. + + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to an IPAddress + the IPAddress + + + Uses the method to convert the + argument to an . + If that fails then the string is resolved as a DNS hostname. + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Valid characters in an IPv4 or IPv6 address string. (Does not support subnets) + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + The string is used as the + of the . + + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a PatternLayout + the PatternLayout + + + Creates and returns a new using + the as the + . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Convert between string and + + + + Supports conversion from string to type, + and from a type to a string. + + + The string is used as the + of the . + + + + + + Nicko Cadell + + + + Can the target type be converted to the type supported by this object + + A that represents the type you want to convert to + true if the conversion is possible + + + Returns true if the is + assignable from a type. + + + + + + Converts the given value object to the specified type, using the arguments + + the object to convert + The Type to convert the value parameter to + the converted object + + + Uses the method to convert the + argument to a . + + + + The object cannot be converted to the + . To check for this condition use the + method. + + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a PatternString + the PatternString + + + Creates and returns a new using + the as the + . + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Supports conversion from string to type. + + + + Supports conversion from string to type. + + + + + + Nicko Cadell + + + + Can the source type be converted to the type supported by this object + + the type to convert + true if the conversion is possible + + + Returns true if the is + the type. + + + + + + Overrides the ConvertFrom method of IConvertFrom. + + the object to convert to a Type + the Type + + + Uses the method to convert the + argument to a . + Additional effort is made to locate partially specified types + by searching the loaded assemblies. + + + + The object cannot be converted to the + target type. To check for this condition use the + method. + + + + + Attribute used to associate a type converter + + + + Class and Interface level attribute that specifies a type converter + to use with the associated type. + + + To associate a type converter with a target type apply a + TypeConverterAttribute to the target type. Specify the + type of the type converter on the attribute. + + + Nicko Cadell + Gert Driesen + + + + The string type name of the type converter + + + + + Default constructor + + + + Default constructor + + + + + + Create a new type converter attribute for the specified type name + + The string type name of the type converter + + + The type specified must implement the + or the interfaces. + + + + + + Create a new type converter attribute for the specified type + + The type of the type converter + + + The type specified must implement the + or the interfaces. + + + + + + The string type name of the type converter + + + The string type name of the type converter + + + + The type specified must implement the + or the interfaces. + + + + + + A straightforward implementation of the interface. + + + + This is the default implementation of the + interface. Implementors of the interface + should aggregate an instance of this type. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Append on on all attached appenders. + + The event being logged. + The number of appenders called. + + + Calls the method on all + attached appenders. + + + + + + Append on on all attached appenders. + + The array of events being logged. + The number of appenders called. + + + Calls the method on all + attached appenders. + + + + + + Calls the DoAppende method on the with + the objects supplied. + + The appender + The events + + + If the supports the + interface then the will be passed + through using that interface. Otherwise the + objects in the array will be passed one at a time. + + + + + + Attaches an appender. + + The appender to add. + + + If the appender is already in the list it won't be added again. + + + + + + Gets an attached appender with the specified name. + + The name of the appender to get. + + The appender with the name specified, or null if no appender with the + specified name is found. + + + + Lookup an attached appender by name. + + + + + + Removes all attached appenders. + + + + Removes and closes all attached appenders + + + + + + Removes the specified appender from the list of attached appenders. + + The appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + Removes the appender with the specified name from the list of appenders. + + The name of the appender to remove. + The appender removed from the list + + + The appender removed is not closed. + If you are discarding the appender you must call + on the appender removed. + + + + + + List of appenders + + + + + Array of appenders, used to cache the m_appenderList + + + + + The fully qualified type of the AppenderAttachedImpl class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets all attached appenders. + + + A collection of attached appenders, or null if there + are no attached appenders. + + + + The read only collection of all currently attached appenders. + + + + + + This class aggregates several PropertiesDictionary collections together. + + + + Provides a dictionary style lookup over an ordered list of + collections. + + + Nicko Cadell + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Add a Properties Dictionary to this composite collection + + the properties to add + + + Properties dictionaries added first take precedence over dictionaries added + later. + + + + + + Flatten this composite collection into a single properties dictionary + + the flattened dictionary + + + Reduces the collection of ordered dictionaries to a single dictionary + containing the resultant values for the keys. + + + + + + Gets the value of a property + + + The value for the property with the specified key + + + + Looks up the value for the specified. + The collections are searched + in the order in which they were added to this collection. The value + returned is the value held by the first collection that contains + the specified key. + + + If none of the collections contain the specified key then + null is returned. + + + + + + Base class for Context Properties implementations + + + + This class defines a basic property get set accessor + + + Nicko Cadell + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Gets or sets the value of a property + + + + + + Wrapper class used to map converter names to converter types + + + + Pattern converter info class used during configuration by custom + PatternString and PatternLayer converters. + + + + + + default constructor + + + + + + + + + + + Gets or sets the name of the conversion pattern + + + + The name of the pattern in the format string + + + + + + Gets or sets the type of the converter + + + + The value specified must extend the + type. + + + + + + + + + + + Subclass of that maintains a count of + the number of bytes written. + + + + This writer counts the number of bytes written. + + + Nicko Cadell + Gert Driesen + + + + that does not leak exceptions + + + + does not throw exceptions when things go wrong. + Instead, it delegates error handling to its . + + + Nicko Cadell + Gert Driesen + + + + Adapter that extends and forwards all + messages to an instance of . + + + + Adapter that extends and forwards all + messages to an instance of . + + + Nicko Cadell + + + + The writer to forward messages to + + + + + Create an instance of that forwards all + messages to a . + + The to forward to + + + Create an instance of that forwards all + messages to a . + + + + + + Closes the writer and releases any system resources associated with the writer + + + + + + + + + Dispose this writer + + flag indicating if we are being disposed + + + Dispose this writer + + + + + + Flushes any buffered output + + + + Clears all buffers for the writer and causes any buffered data to be written + to the underlying device + + + + + + Writes a character to the wrapped TextWriter + + the value to write to the TextWriter + + + Writes a character to the wrapped TextWriter + + + + + + Writes a character buffer to the wrapped TextWriter + + the data buffer + the start index + the number of characters to write + + + Writes a character buffer to the wrapped TextWriter + + + + + + Writes a string to the wrapped TextWriter + + the value to write to the TextWriter + + + Writes a string to the wrapped TextWriter + + + + + + Gets or sets the underlying . + + + The underlying . + + + + Gets or sets the underlying . + + + + + + The Encoding in which the output is written + + + The + + + + The Encoding in which the output is written + + + + + + Gets an object that controls formatting + + + The format provider + + + + Gets an object that controls formatting + + + + + + Gets or sets the line terminator string used by the TextWriter + + + The line terminator to use + + + + Gets or sets the line terminator string used by the TextWriter + + + + + + Constructor + + the writer to actually write to + the error handler to report error to + + + Create a new QuietTextWriter using a writer and error handler + + + + + + Writes a character to the underlying writer + + the char to write + + + Writes a character to the underlying writer + + + + + + Writes a buffer to the underlying writer + + the buffer to write + the start index to write from + the number of characters to write + + + Writes a buffer to the underlying writer + + + + + + Writes a string to the output. + + The string data to write to the output. + + + Writes a string to the output. + + + + + + Closes the underlying output writer. + + + + Closes the underlying output writer. + + + + + + The error handler instance to pass all errors to + + + + + Flag to indicate if this writer is closed + + + + + Gets or sets the error handler that all errors are passed to. + + + The error handler that all errors are passed to. + + + + Gets or sets the error handler that all errors are passed to. + + + + + + Gets a value indicating whether this writer is closed. + + + true if this writer is closed, otherwise false. + + + + Gets a value indicating whether this writer is closed. + + + + + + Constructor + + The to actually write to. + The to report errors to. + + + Creates a new instance of the class + with the specified and . + + + + + + Writes a character to the underlying writer and counts the number of bytes written. + + the char to write + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Writes a buffer to the underlying writer and counts the number of bytes written. + + the buffer to write + the start index to write from + the number of characters to write + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Writes a string to the output and counts the number of bytes written. + + The string data to write to the output. + + + Overrides implementation of . Counts + the number of bytes written. + + + + + + Total number of bytes written. + + + + + Gets or sets the total number of bytes written. + + + The total number of bytes written. + + + + Gets or sets the total number of bytes written. + + + + + + A fixed size rolling buffer of logging events. + + + + An array backed fixed size leaky bucket. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The maximum number of logging events in the buffer. + + + Initializes a new instance of the class with + the specified maximum number of buffered logging events. + + + The argument is not a positive integer. + + + + Appends a to the buffer. + + The event to append to the buffer. + The event discarded from the buffer, if the buffer is full, otherwise null. + + + Append an event to the buffer. If the buffer still contains free space then + null is returned. If the buffer is full then an event will be dropped + to make space for the new event, the event dropped is returned. + + + + + + Get and remove the oldest event in the buffer. + + The oldest logging event in the buffer + + + Gets the oldest (first) logging event in the buffer and removes it + from the buffer. + + + + + + Pops all the logging events from the buffer into an array. + + An array of all the logging events in the buffer. + + + Get all the events in the buffer and clear the buffer. + + + + + + Clear the buffer + + + + Clear the buffer of all events. The events in the buffer are lost. + + + + + + Gets the th oldest event currently in the buffer. + + The th oldest event currently in the buffer. + + + If is outside the range 0 to the number of events + currently in the buffer, then null is returned. + + + + + + Gets the maximum size of the buffer. + + The maximum size of the buffer. + + + Gets the maximum size of the buffer + + + + + + Gets the number of logging events in the buffer. + + The number of logging events in the buffer. + + + This number is guaranteed to be in the range 0 to + (inclusive). + + + + + + An always empty . + + + + A singleton implementation of the + interface that always represents an empty collection. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Copies the elements of the to an + , starting at a particular Array index. + + The one-dimensional + that is the destination of the elements copied from + . The Array must have zero-based + indexing. + The zero-based index in array at which + copying begins. + + + As the collection is empty no values are copied into the array. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + The singleton instance of the empty collection. + + + + + Gets the singleton instance of the empty collection. + + The singleton instance of the empty collection. + + + Gets the singleton instance of the empty collection. + + + + + + Gets a value indicating if access to the is synchronized (thread-safe). + + + true if access to the is synchronized (thread-safe); otherwise, false. + + + + For the this property is always true. + + + + + + Gets the number of elements contained in the . + + + The number of elements contained in the . + + + + As the collection is empty the is always 0. + + + + + + Gets an object that can be used to synchronize access to the . + + + An object that can be used to synchronize access to the . + + + + As the collection is empty and thread safe and synchronized this instance is also + the object. + + + + + + An always empty . + + + + A singleton implementation of the + interface that always represents an empty collection. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Copies the elements of the to an + , starting at a particular Array index. + + The one-dimensional + that is the destination of the elements copied from + . The Array must have zero-based + indexing. + The zero-based index in array at which + copying begins. + + + As the collection is empty no values are copied into the array. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + Adds an element with the provided key and value to the + . + + The to use as the key of the element to add. + The to use as the value of the element to add. + + + As the collection is empty no new values can be added. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + Removes all elements from the . + + + + As the collection is empty no values can be removed. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + Determines whether the contains an element + with the specified key. + + The key to locate in the . + false + + + As the collection is empty the method always returns false. + + + + + + Returns an enumerator that can iterate through a collection. + + + An that can be used to + iterate through the collection. + + + + As the collection is empty a is returned. + + + + + + Removes the element with the specified key from the . + + The key of the element to remove. + + + As the collection is empty no values can be removed. A + is thrown if this method is called. + + + This dictionary is always empty and cannot be modified. + + + + The singleton instance of the empty dictionary. + + + + + Gets the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets a value indicating if access to the is synchronized (thread-safe). + + + true if access to the is synchronized (thread-safe); otherwise, false. + + + + For the this property is always true. + + + + + + Gets the number of elements contained in the + + + The number of elements contained in the . + + + + As the collection is empty the is always 0. + + + + + + Gets an object that can be used to synchronize access to the . + + + An object that can be used to synchronize access to the . + + + + As the collection is empty and thread safe and synchronized this instance is also + the object. + + + + + + Gets a value indicating whether the has a fixed size. + + true + + + As the collection is empty always returns true. + + + + + + Gets a value indicating whether the is read-only. + + true + + + As the collection is empty always returns true. + + + + + + Gets an containing the keys of the . + + An containing the keys of the . + + + As the collection is empty a is returned. + + + + + + Gets an containing the values of the . + + An containing the values of the . + + + As the collection is empty a is returned. + + + + + + Gets or sets the element with the specified key. + + The key of the element to get or set. + null + + + As the collection is empty no values can be looked up or stored. + If the index getter is called then null is returned. + A is thrown if the setter is called. + + + This dictionary is always empty and cannot be modified. + + + + Contain the information obtained when parsing formatting modifiers + in conversion modifiers. + + + + Holds the formatting information extracted from the format string by + the . This is used by the + objects when rendering the output. + + + Nicko Cadell + Gert Driesen + + + + Defaut Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + + + Initializes a new instance of the class + with the specified parameters. + + + + + + Gets or sets the minimum value. + + + The minimum value. + + + + Gets or sets the minimum value. + + + + + + Gets or sets the maximum value. + + + The maximum value. + + + + Gets or sets the maximum value. + + + + + + Gets or sets a flag indicating whether left align is enabled + or not. + + + A flag indicating whether left align is enabled or not. + + + + Gets or sets a flag indicating whether left align is enabled or not. + + + + + + Implementation of Properties collection for the + + + + This class implements a properties collection that is thread safe and supports both + storing properties and capturing a read only copy of the current propertied. + + + This class is optimized to the scenario where the properties are read frequently + and are modified infrequently. + + + Nicko Cadell + + + + The read only copy of the properties. + + + + This variable is declared volatile to prevent the compiler and JIT from + reordering reads and writes of this thread performed on different threads. + + + + + + Lock object used to synchronize updates within this instance + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Remove a property from the global context + + the key for the entry to remove + + + Removing an entry from the global context properties is relatively expensive compared + with reading a value. + + + + + + Clear the global context properties + + + + + Get a readonly immutable copy of the properties + + the current global context properties + + + This implementation is fast because the GlobalContextProperties class + stores a readonly copy of the properties. + + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Reading the value for a key is faster than setting the value. + When the value is written a new read only copy of + the properties is created. + + + + + + The static class ILogExtensions contains a set of widely used + methods that ease the interaction with the ILog interface implementations. + + + + This class contains methods for logging at different levels and checks the + properties for determining if those logging levels are enabled in the current + configuration. + + + Simple example of logging messages + + using log4net.Util; + + ILog log = LogManager.GetLogger("application-log"); + + log.InfoExt("Application Start"); + log.DebugExt("This is a debug message"); + + + + + + The fully qualified type of the Logger class. + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is INFO + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is INFO enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is WARN + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is WARN enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is WARN + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is WARN enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is ERROR + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is ERROR enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is ERROR + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is ERROR enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Log a message object with the level. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + + + This method first checks if this logger is FATAL + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is FATAL enabled, then it converts + the message object (retrieved by invocation of the provided callback) to a + string by invoking the appropriate . + It then proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The lambda expression that gets the object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + Log a message object with the level. //TODO + + Log a message object with the level. + + The logger on which the message is logged. + The message object to log. + + + This method first checks if this logger is FATAL + enabled by reading the value property. + This check happens always and does not depend on the + implementation. If this logger is FATAL enabled, then it converts + the message object (passed as parameter) to a string by invoking the appropriate + . It then + proceeds to call all the registered appenders in this logger + and also higher in the hierarchy depending on the value of + the additivity flag. + + WARNING Note that passing an + to this method will print the name of the + but no stack trace. To print a stack trace use the + form instead. + + + + + + + + Log a message object with the level including + the stack trace of the passed + as a parameter. + + The logger on which the message is logged. + The message object to log. + The exception to log, including its stack trace. + + + See the form for more detailed information. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + An that supplies culture-specific formatting information + The logger on which the message is logged. + A String containing zero or more format items + An Object array containing zero or more objects to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Logs a formatted message string with the level. + + The logger on which the message is logged. + A String containing zero or more format items + An Object to format + An Object to format + An Object to format + + + The message is formatted using the String.Format method. See + for details of the syntax of the format string and the behavior + of the formatting. + + + This method does not take an object to include in the + log event. To pass an use one of the + methods instead. + + + + + + + + Manages a mapping from levels to + + + + Manages an ordered mapping from instances + to subclasses. + + + Nicko Cadell + + + + Default constructor + + + + Initialise a new instance of . + + + + + + Add a to this mapping + + the entry to add + + + If a has previously been added + for the same then that entry will be + overwritten. + + + + + + Lookup the mapping for the specified level + + the level to lookup + the for the level or null if no mapping found + + + Lookup the value for the specified level. Finds the nearest + mapping value for the level that is equal to or less than the + specified. + + + If no mapping could be found then null is returned. + + + + + + Initialize options + + + + Caches the sorted list of in an array + + + + + + Implementation of Properties collection for the + + + + Class implements a collection of properties that is specific to each thread. + The class is not synchronized as each thread has its own . + + + This class stores its properties in a slot on the named + log4net.Util.LogicalThreadContextProperties. + + + For .NET Standard 1.3 this class uses + System.Threading.AsyncLocal rather than . + + + The requires a link time + for the + . + If the calling code does not have this permission then this context will be disabled. + It will not store any property values set on it. + + + Nicko Cadell + + + + Flag used to disable this context if we don't have permission to access the CallContext. + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Remove a property + + the key for the entry to remove + + + Remove the value for the specified from the context. + + + + + + Clear all the context properties + + + + Clear all the context properties + + + + + + Get the PropertiesDictionary stored in the LocalDataStoreSlot for this thread. + + create the dictionary if it does not exist, otherwise return null if is does not exist + the properties for this thread + + + The collection returned is only to be used on the calling thread. If the + caller needs to share the collection between different threads then the + caller must clone the collection before doings so. + + + + + + Gets the call context get data. + + The peroperties dictionary stored in the call context + + The method has a + security link demand, therfore we must put the method call in a seperate method + that we can wrap in an exception handler. + + + + + Sets the call context data. + + The properties. + + The method has a + security link demand, therfore we must put the method call in a seperate method + that we can wrap in an exception handler. + + + + + The fully qualified type of the LogicalThreadContextProperties class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Get or set the property value for the specified. + + + + + + Delegate type used for LogicalThreadContextStack's callbacks. + + + + + Implementation of Stack for the + + + + Implementation of Stack for the + + + Nicko Cadell + + + + The stack store. + + + + + The name of this within the + . + + + + + The callback used to let the register a + new instance of a . + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Clears all the contextual information held in this stack. + + + + Clears all the contextual information held in this stack. + Only call this if you think that this thread is being reused after + a previous call execution which may not have completed correctly. + You do not need to use this method if you always guarantee to call + the method of the + returned from even in exceptional circumstances, + for example by using the using(log4net.LogicalThreadContext.Stacks["NDC"].Push("Stack_Message")) + syntax. + + + + + + Removes the top context from this stack. + + The message in the context that was removed from the top of this stack. + + + Remove the top context from this stack, and return + it to the caller. If this stack is empty then an + empty string (not ) is returned. + + + + + + Pushes a new context message into this stack. + + The new context message. + + An that can be used to clean up the context stack. + + + + Pushes a new context onto this stack. An + is returned that can be used to clean up this stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.LogicalThreadContext.Stacks["NDC"].Push("Stack_Message")) + { + log.Warn("This should have an ThreadContext Stack message"); + } + + + + + + Gets the current context information for this stack. + + The current context information. + + + + Gets the current context information for this stack. + + Gets the current context information + + + Gets the current context information for this stack. + + + + + + Get a portable version of this object + + the portable instance of this object + + + Get a cross thread portable version of this object + + + + + + The number of messages in the stack + + + The current number of messages in the stack + + + + The current number of messages in the stack. That is + the number of times has been called + minus the number of times has been called. + + + + + + Gets and sets the internal stack used by this + + The internal storage stack + + + This property is provided only to support backward compatability + of the . Tytpically the internal stack should not + be modified. + + + + + + Inner class used to represent a single context frame in the stack. + + + + Inner class used to represent a single context frame in the stack. + + + + + + Constructor + + The message for this context. + The parent context in the chain. + + + Initializes a new instance of the class + with the specified message and parent context. + + + + + + Get the message. + + The message. + + + Get the message. + + + + + + Gets the full text of the context down to the root level. + + + The full text of the context down to the root level. + + + + Gets the full text of the context down to the root level. + + + + + + Struct returned from the method. + + + + This struct implements the and is designed to be used + with the pattern to remove the stack frame at the end of the scope. + + + + + + The depth to trim the stack to when this instance is disposed + + + + + The outer LogicalThreadContextStack. + + + + + Constructor + + The internal stack used by the ThreadContextStack. + The depth to return the stack to when this object is disposed. + + + Initializes a new instance of the class with + the specified stack and return depth. + + + + + + Returns the stack to the correct depth. + + + + Returns the stack to the correct depth. + + + + + + Implementation of Stacks collection for the + + + + Implementation of Stacks collection for the + + + Nicko Cadell + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + The fully qualified type of the ThreadContextStacks class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the named thread context stack + + + The named stack + + + + Gets the named thread context stack + + + + + + + + + + + + + Outputs log statements from within the log4net assembly. + + + + Log4net components cannot make log4net logging calls. However, it is + sometimes useful for the user to learn about what log4net is + doing. + + + All log4net internal debug calls go to the standard output stream + whereas internal error messages are sent to the standard error output + stream. + + + Nicko Cadell + Gert Driesen + + + + Formats Prefix, Source, and Message in the same format as the value + sent to Console.Out and Trace.Write. + + + + + + Initializes a new instance of the class. + + + + + + + + + Static constructor that initializes logging by reading + settings from the application configuration file. + + + + The log4net.Internal.Debug application setting + controls internal debugging. This setting should be set + to true to enable debugging. + + + The log4net.Internal.Quiet application setting + suppresses all internal logging including error messages. + This setting should be set to true to enable message + suppression. + + + + + + Raises the LogReceived event when an internal messages is received. + + + + + + + + + Writes log4net internal debug messages to the + standard output stream. + + + The message to log. + + + All internal debug messages are prepended with + the string "log4net: ". + + + + + + Writes log4net internal debug messages to the + standard output stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal debug messages are prepended with + the string "log4net: ". + + + + + + Writes log4net internal warning messages to the + standard error stream. + + The Type that generated this message. + The message to log. + + + All internal warning messages are prepended with + the string "log4net:WARN ". + + + + + + Writes log4net internal warning messages to the + standard error stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal warning messages are prepended with + the string "log4net:WARN ". + + + + + + Writes log4net internal error messages to the + standard error stream. + + The Type that generated this message. + The message to log. + + + All internal error messages are prepended with + the string "log4net:ERROR ". + + + + + + Writes log4net internal error messages to the + standard error stream. + + The Type that generated this message. + The message to log. + An exception to log. + + + All internal debug messages are prepended with + the string "log4net:ERROR ". + + + + + + Writes output to the standard output stream. + + The message to log. + + + Writes to both Console.Out and System.Diagnostics.Trace. + Note that the System.Diagnostics.Trace is not supported + on the Compact Framework. + + + If the AppDomain is not configured with a config file then + the call to System.Diagnostics.Trace may fail. This is only + an issue if you are programmatically creating your own AppDomains. + + + + + + Writes output to the standard error stream. + + The message to log. + + + Writes to both Console.Error and System.Diagnostics.Trace. + Note that the System.Diagnostics.Trace is not supported + on the Compact Framework. + + + If the AppDomain is not configured with a config file then + the call to System.Diagnostics.Trace may fail. This is only + an issue if you are programmatically creating your own AppDomains. + + + + + + Default debug level + + + + + In quietMode not even errors generate any output. + + + + + The event raised when an internal message has been received. + + + + + The Type that generated the internal message. + + + + + The DateTime stamp of when the internal message was received. + + + + + The UTC DateTime stamp of when the internal message was received. + + + + + A string indicating the severity of the internal message. + + + "log4net: ", + "log4net:ERROR ", + "log4net:WARN " + + + + + The internal log message. + + + + + The Exception related to the message. + + + Optional. Will be null if no Exception was passed. + + + + + Gets or sets a value indicating whether log4net internal logging + is enabled or disabled. + + + true if log4net internal logging is enabled, otherwise + false. + + + + When set to true, internal debug level logging will be + displayed. + + + This value can be set by setting the application setting + log4net.Internal.Debug in the application configuration + file. + + + The default value is false, i.e. debugging is + disabled. + + + + + The following example enables internal debugging using the + application configuration file : + + + + + + + + + + + + + Gets or sets a value indicating whether log4net should generate no output + from internal logging, not even for errors. + + + true if log4net should generate no output at all from internal + logging, otherwise false. + + + + When set to true will cause internal logging at all levels to be + suppressed. This means that no warning or error reports will be logged. + This option overrides the setting and + disables all debug also. + + This value can be set by setting the application setting + log4net.Internal.Quiet in the application configuration file. + + + The default value is false, i.e. internal logging is not + disabled. + + + + The following example disables internal logging using the + application configuration file : + + + + + + + + + + + + + + + + + Test if LogLog.Debug is enabled for output. + + + true if Debug is enabled + + + + Test if LogLog.Debug is enabled for output. + + + + + + Test if LogLog.Warn is enabled for output. + + + true if Warn is enabled + + + + Test if LogLog.Warn is enabled for output. + + + + + + Test if LogLog.Error is enabled for output. + + + true if Error is enabled + + + + Test if LogLog.Error is enabled for output. + + + + + + Subscribes to the LogLog.LogReceived event and stores messages + to the supplied IList instance. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents a native error code and message. + + + + Represents a Win32 platform native error. + + + Nicko Cadell + Gert Driesen + + + + Create an instance of the class with the specified + error number and message. + + The number of the native error. + The message of the native error. + + + Create an instance of the class with the specified + error number and message. + + + + + + Create a new instance of the class for the last Windows error. + + + An instance of the class for the last windows error. + + + + The message for the error number is lookup up using the + native Win32 FormatMessage function. + + + + + + Create a new instance of the class. + + the error number for the native error + + An instance of the class for the specified + error number. + + + + The message for the specified error number is lookup up using the + native Win32 FormatMessage function. + + + + + + Retrieves the message corresponding with a Win32 message identifier. + + Message identifier for the requested message. + + The message corresponding with the specified message identifier. + + + + The message will be searched for in system message-table resource(s) + using the native FormatMessage function. + + + + + + Return error information string + + error information string + + + Return error information string + + + + + + Formats a message string. + + Formatting options, and how to interpret the parameter. + Location of the message definition. + Message identifier for the requested message. + Language identifier for the requested message. + If includes FORMAT_MESSAGE_ALLOCATE_BUFFER, the function allocates a buffer using the LocalAlloc function, and places the pointer to the buffer at the address specified in . + If the FORMAT_MESSAGE_ALLOCATE_BUFFER flag is not set, this parameter specifies the maximum number of TCHARs that can be stored in the output buffer. If FORMAT_MESSAGE_ALLOCATE_BUFFER is set, this parameter specifies the minimum number of TCHARs to allocate for an output buffer. + Pointer to an array of values that are used as insert values in the formatted message. + + + The function requires a message definition as input. The message definition can come from a + buffer passed into the function. It can come from a message table resource in an + already-loaded module. Or the caller can ask the function to search the system's message + table resource(s) for the message definition. The function finds the message definition + in a message table resource based on a message identifier and a language identifier. + The function copies the formatted message text to an output buffer, processing any embedded + insert sequences if requested. + + + To prevent the usage of unsafe code, this stub does not support inserting values in the formatted message. + + + + + If the function succeeds, the return value is the number of TCHARs stored in the output + buffer, excluding the terminating null character. + + + If the function fails, the return value is zero. To get extended error information, + call . + + + + + + Gets the number of the native error. + + + The number of the native error. + + + + Gets the number of the native error. + + + + + + Gets the message of the native error. + + + The message of the native error. + + + + + Gets the message of the native error. + + + + + An always empty . + + + + A singleton implementation of the over a collection + that is empty and not modifiable. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Test if the enumerator can advance, if so advance. + + false as the cannot advance. + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will always return false. + + + + + + Resets the enumerator back to the start. + + + + As the enumerator is over an empty collection does nothing. + + + + + + The singleton instance of the . + + + + + Gets the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets the current object from the enumerator. + + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current key from the enumerator. + + + Throws an exception because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current value from the enumerator. + + The current value from the enumerator. + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + Gets the current entry from the enumerator. + + + Throws an because the + never has a current entry. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + An always empty . + + + + A singleton implementation of the over a collection + that is empty and not modifiable. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to enforce the singleton pattern. + + + + + + Test if the enumerator can advance, if so advance + + false as the cannot advance. + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will always return false. + + + + + + Resets the enumerator back to the start. + + + + As the enumerator is over an empty collection does nothing. + + + + + + The singleton instance of the . + + + + + Get the singleton instance of the . + + The singleton instance of the . + + + Gets the singleton instance of the . + + + + + + Gets the current object from the enumerator. + + + Throws an because the + never has a current value. + + + + As the enumerator is over an empty collection its + value cannot be moved over a valid position, therefore + will throw an . + + + The collection is empty and + cannot be positioned over a valid location. + + + + A SecurityContext used when a SecurityContext is not required + + + + The is a no-op implementation of the + base class. It is used where a + is required but one has not been provided. + + + Nicko Cadell + + + + Singleton instance of + + + + Singleton instance of + + + + + + Private constructor + + + + Private constructor for singleton pattern. + + + + + + Impersonate this SecurityContext + + State supplied by the caller + null + + + No impersonation is done and null is always returned. + + + + + + Implements log4net's default error handling policy which consists + of emitting a message for the first error in an appender and + ignoring all subsequent errors. + + + + The error message is processed using the LogLog sub-system by default. + + + This policy aims at protecting an otherwise working application + from being flooded with error messages when logging fails. + + + Nicko Cadell + Gert Driesen + Ron Grabowski + + + + Default Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + The prefix to use for each message. + + + Initializes a new instance of the class + with the specified prefix. + + + + + + Reset the error handler back to its initial disabled state. + + + + + Log an Error + + The error message. + The exception. + The internal error code. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + Log the very first error + + The error message. + The exception. + The internal error code. + + + Sends the error information to 's Error method. + + + + + + Log an Error + + The error message. + The exception. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + Log an error + + The error message. + + + Invokes if and only if this is the first error or the first error after has been called. + + + + + + The UTC date the error was recorded. + + + + + Flag to indicate if it is the first error + + + + + The message recorded during the first error. + + + + + The exception recorded during the first error. + + + + + The error code recorded during the first error. + + + + + String to prefix each message with + + + + + The fully qualified type of the OnlyOnceErrorHandler class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Is error logging enabled + + + + Is error logging enabled. Logging is only enabled for the + first error delivered to the . + + + + + + The date the first error that trigged this error handler occurred, or if it has not been triggered. + + + + + The UTC date the first error that trigged this error handler occured, or if it has not been triggered. + + + + + The message from the first error that trigged this error handler. + + + + + The exception from the first error that trigged this error handler. + + + May be . + + + + + The error code from the first error that trigged this error handler. + + + Defaults to + + + + + A convenience class to convert property values to specific types. + + + + Utility functions for converting types and parsing values. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Converts a string to a value. + + String to convert. + The default value. + The value of . + + + If is "true", then true is returned. + If is "false", then false is returned. + Otherwise, is returned. + + + + + + Parses a file size into a number. + + String to parse. + The default value. + The value of . + + + Parses a file size of the form: number[KB|MB|GB] into a + long value. It is scaled with the appropriate multiplier. + + + is returned when + cannot be converted to a value. + + + + + + Converts a string to an object. + + The target type to convert to. + The string to convert to an object. + + The object converted from a string or null when the + conversion failed. + + + + Converts a string to an object. Uses the converter registry to try + to convert the string value into the specified target type. + + + + + + Checks if there is an appropriate type conversion from the source type to the target type. + + The type to convert from. + The type to convert to. + true if there is a conversion from the source type to the target type. + + Checks if there is an appropriate type conversion from the source type to the target type. + + + + + + + Converts an object to the target type. + + The object to convert to the target type. + The type to convert to. + The converted object. + + + Converts an object to the target type. + + + + + + Instantiates an object given a class name. + + The fully qualified class name of the object to instantiate. + The class to which the new object should belong. + The object to return in case of non-fulfillment. + + An instance of the or + if the object could not be instantiated. + + + + Checks that the is a subclass of + . If that test fails or the object could + not be instantiated, then is returned. + + + + + + Performs variable substitution in string from the + values of keys found in . + + The string on which variable substitution is performed. + The dictionary to use to lookup variables. + The result of the substitutions. + + + The variable substitution delimiters are ${ and }. + + + For example, if props contains key=value, then the call + + + + string s = OptionConverter.SubstituteVariables("Value of key is ${key}."); + + + + will set the variable s to "Value of key is value.". + + + If no value could be found for the specified key, then substitution + defaults to an empty string. + + + For example, if system properties contains no value for the key + "nonExistentKey", then the call + + + + string s = OptionConverter.SubstituteVariables("Value of nonExistentKey is [${nonExistentKey}]"); + + + + will set s to "Value of nonExistentKey is []". + + + An Exception is thrown if contains a start + delimiter "${" which is not balanced by a stop delimiter "}". + + + + + + Converts the string representation of the name or numeric value of one or + more enumerated constants to an equivalent enumerated object. + + The type to convert to. + The enum string value. + If true, ignore case; otherwise, regard case. + An object of type whose value is represented by . + + + + The fully qualified type of the OptionConverter class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Most of the work of the class + is delegated to the PatternParser class. + + + + The PatternParser processes a pattern string and + returns a chain of objects. + + + Nicko Cadell + Gert Driesen + + + + Constructor + + The pattern to parse. + + + Initializes a new instance of the class + with the specified pattern string. + + + + + + Parses the pattern into a chain of pattern converters. + + The head of a chain of pattern converters. + + + Parses the pattern into a chain of pattern converters. + + + + + + Build the unified cache of converters from the static and instance maps + + the list of all the converter names + + + Build the unified cache of converters from the static and instance maps + + + + + + Internal method to parse the specified pattern to find specified matches + + the pattern to parse + the converter names to match in the pattern + + + The matches param must be sorted such that longer strings come before shorter ones. + + + + + + Process a parsed literal + + the literal text + + + + Process a parsed converter pattern + + the name of the converter + the optional option for the converter + the formatting info for the converter + + + + Resets the internal state of the parser and adds the specified pattern converter + to the chain. + + The pattern converter to add. + + + + The first pattern converter in the chain + + + + + the last pattern converter in the chain + + + + + The pattern + + + + + Internal map of converter identifiers to converter types + + + + This map overrides the static s_globalRulesRegistry map. + + + + + + The fully qualified type of the PatternParser class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Get the converter registry used by this parser + + + The converter registry used by this parser + + + + Get the converter registry used by this parser + + + + + + Sort strings by length + + + + that orders strings by string length. + The longest strings are placed first + + + + + + This class implements a patterned string. + + + + This string has embedded patterns that are resolved and expanded + when the string is formatted. + + + This class functions similarly to the + in that it accepts a pattern and renders it to a string. Unlike the + however the PatternString + does not render the properties of a specific but + of the process in general. + + + The recognized conversion pattern names are: + + + + Conversion Pattern Name + Effect + + + appdomain + + + Used to output the friendly name of the current AppDomain. + + + + + appsetting + + + Used to output the value of a specific appSetting key in the application + configuration file. + + + + + date + + + Used to output the current date and time in the local time zone. + To output the date in universal time use the %utcdate pattern. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %date{HH:mm:ss,fff} or + %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %date{ISO8601} or %date{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + env + + + Used to output the a specific environment variable. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %env{COMPUTERNAME} would include the value + of the COMPUTERNAME environment variable. + + + The env pattern is not supported on the .NET Compact Framework. + + + + + identity + + + Used to output the user name for the currently active user + (Principal.Identity.Name). + + + + + newline + + + Outputs the platform dependent line separator character or + characters. + + + This conversion pattern name offers the same performance as using + non-portable line separator strings such as "\n", or "\r\n". + Thus, it is the preferred way of specifying a line separator. + + + + + processid + + + Used to output the system process ID for the current process. + + + + + property + + + Used to output a specific context property. The key to + lookup must be specified within braces and directly following the + pattern specifier, e.g. %property{user} would include the value + from the property that is keyed by the string 'user'. Each property value + that is to be included in the log must be specified separately. + Properties are stored in logging contexts. By default + the log4net:HostName property is set to the name of machine on + which the event was originally logged. + + + If no key is specified, e.g. %property then all the keys and their + values are printed in a comma separated list. + + + The properties of an event are combined from a number of different + contexts. These are listed below in the order in which they are searched. + + + + the thread properties + + The that are set on the current + thread. These properties are shared by all events logged on this thread. + + + + the global properties + + The that are set globally. These + properties are shared by all the threads in the AppDomain. + + + + + + + random + + + Used to output a random string of characters. The string is made up of + uppercase letters and numbers. By default the string is 4 characters long. + The length of the string can be specified within braces directly following the + pattern specifier, e.g. %random{8} would output an 8 character string. + + + + + username + + + Used to output the WindowsIdentity for the currently + active user. + + + + + utcdate + + + Used to output the date of the logging event in universal time. + The date conversion + specifier may be followed by a date format specifier enclosed + between braces. For example, %utcdate{HH:mm:ss,fff} or + %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is + given then ISO8601 format is + assumed (). + + + The date format specifier admits the same syntax as the + time pattern string of the . + + + For better results it is recommended to use the log4net date + formatters. These can be specified using one of the strings + "ABSOLUTE", "DATE" and "ISO8601" for specifying + , + and respectively + . For example, + %utcdate{ISO8601} or %utcdate{ABSOLUTE}. + + + These dedicated date formatters perform significantly + better than . + + + + + % + + + The sequence %% outputs a single percent sign. + + + + + + Additional pattern converters may be registered with a specific + instance using or + . + + + See the for details on the + format modifiers supported by the patterns. + + + Nicko Cadell + + + + Internal map of converter identifiers to converter types. + + + + + the pattern + + + + + the head of the pattern converter chain + + + + + patterns defined on this PatternString only + + + + + Initialize the global registry + + + + + Default constructor + + + + Initialize a new instance of + + + + + + Constructs a PatternString + + The pattern to use with this PatternString + + + Initialize a new instance of with the pattern specified. + + + + + + Initialize object options + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + + + + Create the used to parse the pattern + + the pattern to parse + The + + + Returns PatternParser used to parse the conversion string. Subclasses + may override this to return a subclass of PatternParser which recognize + custom conversion pattern name. + + + + + + Produces a formatted string as specified by the conversion pattern. + + The TextWriter to write the formatted event to + + + Format the pattern to the . + + + + + + Format the pattern as a string + + the pattern formatted as a string + + + Format the pattern to a string. + + + + + + Add a converter to this PatternString + + the converter info + + + This version of the method is used by the configurator. + Programmatic users should use the alternative method. + + + + + + Add a converter to this PatternString + + the name of the conversion pattern for this converter + the type of the converter + + + Add a converter to this PatternString + + + + + + Gets or sets the pattern formatting string + + + The pattern formatting string + + + + The ConversionPattern option. This is the string which + controls formatting and consists of a mix of literal content and + conversion specifiers. + + + + + + String keyed object map. + + + + While this collection is serializable only member + objects that are serializable will + be serialized along with this collection. + + + Nicko Cadell + Gert Driesen + + + + String keyed object map that is read only. + + + + This collection is readonly and cannot be modified. + + + While this collection is serializable only member + objects that are serializable will + be serialized along with this collection. + + + Nicko Cadell + Gert Driesen + + + + The Hashtable used to store the properties data + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Copy Constructor + + properties to copy + + + Initializes a new instance of the class. + + + + + + Deserialization constructor + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Initializes a new instance of the class + with serialized data. + + + + + + Gets the key names. + + An array of all the keys. + + + Gets the key names. + + + + + + Test if the dictionary contains a specified key + + the key to look for + true if the dictionary contains the specified key + + + Test if the dictionary contains a specified key + + + + + + Serializes this object into the provided. + + The to populate with data. + The destination for this serialization. + + + Serializes this object into the provided. + + + + + + See + + + + + See + + + + + + See + + + + + + + Remove all properties from the properties collection + + + + + See + + + + + + + See + + + + + + + See + + + + + Gets or sets the value of the property with the specified key. + + + The value of the property with the specified key. + + The key of the property to get or set. + + + The property value will only be serialized if it is serializable. + If it cannot be serialized it will be silently ignored if + a serialization operation is performed. + + + + + + The hashtable used to store the properties + + + The internal collection used to store the properties + + + + The hashtable used to store the properties + + + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + The number of properties in this collection + + + + + See + + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Constructor + + properties to copy + + + Initializes a new instance of the class. + + + + + + Initializes a new instance of the class + with serialized data. + + The that holds the serialized object data. + The that contains contextual information about the source or destination. + + + Because this class is sealed the serialization constructor is private. + + + + + + Remove the entry with the specified key from this dictionary + + the key for the entry to remove + + + Remove the entry with the specified key from this dictionary + + + + + + See + + an enumerator + + + Returns a over the contest of this collection. + + + + + + See + + the key to remove + + + Remove the entry with the specified key from this dictionary + + + + + + See + + the key to lookup in the collection + true if the collection contains the specified key + + + Test if this collection contains a specified key. + + + + + + Remove all properties from the properties collection + + + + Remove all properties from the properties collection + + + + + + See + + the key + the value to store for the key + + + Store a value for the specified . + + + Thrown if the is not a string + + + + See + + + + + + + See + + + + + Gets or sets the value of the property with the specified key. + + + The value of the property with the specified key. + + The key of the property to get or set. + + + The property value will only be serialized if it is serializable. + If it cannot be serialized it will be silently ignored if + a serialization operation is performed. + + + + + + See + + + false + + + + This collection is modifiable. This property always + returns false. + + + + + + See + + + The value for the key specified. + + + + Get or set a value for the specified . + + + Thrown if the is not a string + + + + See + + + + + See + + + + + See + + + + + See + + + + + See + + + + + A class to hold the key and data for a property set in the config file + + + + A class to hold the key and data for a property set in the config file + + + + + + Override Object.ToString to return sensible debug info + + string info about this object + + + + Property Key + + + Property Key + + + + Property Key. + + + + + + Property Value + + + Property Value + + + + Property Value. + + + + + + A that ignores the message + + + + This writer is used in special cases where it is necessary + to protect a writer from being closed by a client. + + + Nicko Cadell + + + + Constructor + + the writer to actually write to + + + Create a new ProtectCloseTextWriter using a writer + + + + + + Attach this instance to a different underlying + + the writer to attach to + + + Attach this instance to a different underlying + + + + + + Does not close the underlying output writer. + + + + Does not close the underlying output writer. + This method does nothing. + + + + + + Defines a lock that supports single writers and multiple readers + + + + ReaderWriterLock is used to synchronize access to a resource. + At any given time, it allows either concurrent read access for + multiple threads, or write access for a single thread. In a + situation where a resource is changed infrequently, a + ReaderWriterLock provides better throughput than a simple + one-at-a-time lock, such as . + + + If a platform does not support a System.Threading.ReaderWriterLock + implementation then all readers and writers are serialized. Therefore + the caller must not rely on multiple simultaneous readers. + + + Nicko Cadell + + + + Constructor + + + + Initializes a new instance of the class. + + + + + + Acquires a reader lock + + + + blocks if a different thread has the writer + lock, or if at least one thread is waiting for the writer lock. + + + + + + Decrements the lock count + + + + decrements the lock count. When the count + reaches zero, the lock is released. + + + + + + Acquires the writer lock + + + + This method blocks if another thread has a reader lock or writer lock. + + + + + + Decrements the lock count on the writer lock + + + + ReleaseWriterLock decrements the writer lock count. + When the count reaches zero, the writer lock is released. + + + + + + A that can be and reused + + + + A that can be and reused. + This uses a single buffer for string operations. + + + Nicko Cadell + + + + Create an instance of + + the format provider to use + + + Create an instance of + + + + + + Override Dispose to prevent closing of writer + + flag + + + Override Dispose to prevent closing of writer + + + + + + Reset this string writer so that it can be reused. + + the maximum buffer capacity before it is trimmed + the default size to make the buffer + + + Reset this string writer so that it can be reused. + The internal buffers are cleared and reset. + + + + + + Utility class for system specific information. + + + + Utility class of static methods for system specific information. + + + Nicko Cadell + Gert Driesen + Alexey Solofnenko + + + + Private constructor to prevent instances. + + + + Only static methods are exposed from this type. + + + + + + Initialize default values for private static fields. + + + + Only static methods are exposed from this type. + + + + + + Gets the assembly location path for the specified assembly. + + The assembly to get the location for. + The location of the assembly. + + + This method does not guarantee to return the correct path + to the assembly. If only tries to give an indication as to + where the assembly was loaded from. + + + + + + Gets the fully qualified name of the , including + the name of the assembly from which the was + loaded. + + The to get the fully qualified name for. + The fully qualified name for the . + + + This is equivalent to the Type.AssemblyQualifiedName property, + but this method works on the .NET Compact Framework 1.0 as well as + the full .NET runtime. + + + + + + Gets the short name of the . + + The to get the name for. + The short name of the . + + + The short name of the assembly is the + without the version, culture, or public key. i.e. it is just the + assembly's file name without the extension. + + + Use this rather than Assembly.GetName().Name because that + is not available on the Compact Framework. + + + Because of a FileIOPermission security demand we cannot do + the obvious Assembly.GetName().Name. We are allowed to get + the of the assembly so we + start from there and strip out just the assembly name. + + + + + + Gets the file name portion of the , including the extension. + + The to get the file name for. + The file name of the assembly. + + + Gets the file name portion of the , including the extension. + + + + + + Loads the type specified in the type string. + + A sibling type to use to load the type. + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified, it will be loaded from the assembly + containing the specified relative type. If the type is not found in the assembly + then all the loaded assemblies will be searched for the type. + + + + + + Loads the type specified in the type string. + + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified it will be loaded from the + assembly that is directly calling this method. If the type is not found + in the assembly then all the loaded assemblies will be searched for the type. + + + + + + Loads the type specified in the type string. + + An assembly to load the type from. + The name of the type to load. + Flag set to true to throw an exception if the type cannot be loaded. + true to ignore the case of the type name; otherwise, false + The type loaded or null if it could not be loaded. + + + If the type name is fully qualified, i.e. if contains an assembly name in + the type name, the type will be loaded from the system using + . + + + If the type name is not fully qualified it will be loaded from the specified + assembly. If the type is not found in the assembly then all the loaded assemblies + will be searched for the type. + + + + + + Generate a new guid + + A new Guid + + + Generate a new guid + + + + + + Create an + + The name of the parameter that caused the exception + The value of the argument that causes this exception + The message that describes the error + the ArgumentOutOfRangeException object + + + Create a new instance of the class + with a specified error message, the parameter name, and the value + of the argument. + + + The Compact Framework does not support the 3 parameter constructor for the + type. This method provides an + implementation that works for all platforms. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Parse a string into an value + + the string to parse + out param where the parsed value is placed + true if the string was able to be parsed into an integer + + + Attempts to parse the string into an integer. If the string cannot + be parsed then this method returns false. The method does not throw an exception. + + + + + + Lookup an application setting + + the application settings key to lookup + the value for the key, or null + + + Configuration APIs are not supported under the Compact Framework + + + + + + Convert a path into a fully qualified local file path. + + The path to convert. + The fully qualified path. + + + Converts the path specified to a fully + qualified path. If the path is relative it is + taken as relative from the application base + directory. + + + The path specified must be a local file path, a URI is not supported. + + + + + + Creates a new case-insensitive instance of the class with the default initial capacity. + + A new case-insensitive instance of the class with the default initial capacity + + + The new Hashtable instance uses the default load factor, the CaseInsensitiveHashCodeProvider, and the CaseInsensitiveComparer. + + + + + + Tests two strings for equality, the ignoring case. + + + If the platform permits, culture information is ignored completely (ordinal comparison). + The aim of this method is to provide a fast comparison that deals with null and ignores different casing. + It is not supposed to deal with various, culture-specific habits. + Use it to compare against pure ASCII constants, like keywords etc. + + The one string. + The other string. + true if the strings are equal, false otherwise. + + + + Gets an empty array of types. + + + + The Type.EmptyTypes field is not available on + the .NET Compact Framework 1.0. + + + + + + The fully qualified type of the SystemInfo class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Cache the host name for the current machine + + + + + Cache the application friendly name + + + + + Text to output when a null is encountered. + + + + + Text to output when an unsupported feature is requested. + + + + + Start time for the current process. + + + + + Gets the system dependent line terminator. + + + The system dependent line terminator. + + + + Gets the system dependent line terminator. + + + + + + Gets the base directory for this . + + The base directory path for the current . + + + Gets the base directory for this . + + + The value returned may be either a local file path or a URI. + + + + + + Gets the path to the configuration file for the current . + + The path to the configuration file for the current . + + + The .NET Compact Framework 1.0 does not have a concept of a configuration + file. For this runtime, we use the entry assembly location as the root for + the configuration file name. + + + The value returned may be either a local file path or a URI. + + + + + + Gets the path to the file that first executed in the current . + + The path to the entry assembly. + + + Gets the path to the file that first executed in the current . + + + + + + Gets the ID of the current thread. + + The ID of the current thread. + + + On the .NET framework, the AppDomain.GetCurrentThreadId method + is used to obtain the thread ID for the current thread. This is the + operating system ID for the thread. + + + On the .NET Compact Framework 1.0 it is not possible to get the + operating system thread ID for the current thread. The native method + GetCurrentThreadId is implemented inline in a header file + and cannot be called. + + + On the .NET Framework 2.0 the Thread.ManagedThreadId is used as this + gives a stable id unrelated to the operating system thread ID which may + change if the runtime is using fibers. + + + + + + Get the host name or machine name for the current machine + + + The hostname or machine name + + + + Get the host name or machine name for the current machine + + + The host name () or + the machine name (Environment.MachineName) for + the current machine, or if neither of these are available + then NOT AVAILABLE is returned. + + + + + + Get this application's friendly name + + + The friendly name of this application as a string + + + + If available the name of the application is retrieved from + the AppDomain using AppDomain.CurrentDomain.FriendlyName. + + + Otherwise the file name of the entry assembly is used. + + + + + + Get the start time for the current process. + + + + This is the time at which the log4net library was loaded into the + AppDomain. Due to reports of a hang in the call to System.Diagnostics.Process.StartTime + this is not the start time for the current process. + + + The log4net library should be loaded by an application early during its + startup, therefore this start time should be a good approximation for + the actual start time. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating, however this start time + will be set per AppDomain. + + + + + + Get the UTC start time for the current process. + + + + This is the UTC time at which the log4net library was loaded into the + AppDomain. Due to reports of a hang in the call to System.Diagnostics.Process.StartTime + this is not the start time for the current process. + + + The log4net library should be loaded by an application early during its + startup, therefore this start time should be a good approximation for + the actual start time. + + + Note that AppDomains may be loaded and unloaded within the + same process without the process terminating, however this start time + will be set per AppDomain. + + + + + + Text to output when a null is encountered. + + + + Use this value to indicate a null has been encountered while + outputting a string representation of an item. + + + The default value is (null). This value can be overridden by specifying + a value for the log4net.NullText appSetting in the application's + .config file. + + + + + + Text to output when an unsupported feature is requested. + + + + Use this value when an unsupported feature is requested. + + + The default value is NOT AVAILABLE. This value can be overridden by specifying + a value for the log4net.NotAvailableText appSetting in the application's + .config file. + + + + + + Utility class that represents a format string. + + + + Utility class that represents a format string. + + + Nicko Cadell + + + + Initialise the + + An that supplies culture-specific formatting information. + A containing zero or more format items. + An array containing zero or more objects to format. + + + + Format the string and arguments + + the formatted string + + + + Replaces the format item in a specified with the text equivalent + of the value of a corresponding instance in a specified array. + A specified parameter supplies culture-specific formatting information. + + An that supplies culture-specific formatting information. + A containing zero or more format items. + An array containing zero or more objects to format. + + A copy of format in which the format items have been replaced by the + equivalent of the corresponding instances of in args. + + + + This method does not throw exceptions. If an exception thrown while formatting the result the + exception and arguments are returned in the result string. + + + + + + Process an error during StringFormat + + + + + Dump the contents of an array into a string builder + + + + + Dump an object to a string + + + + + The fully qualified type of the SystemStringFormat class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Implementation of Properties collection for the + + + + Class implements a collection of properties that is specific to each thread. + The class is not synchronized as each thread has its own . + + + Nicko Cadell + + + + Each thread will automatically have its instance. + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Remove a property + + the key for the entry to remove + + + Remove a property + + + + + + Get the keys stored in the properties. + + + Gets the keys stored in the properties. + + a set of the defined keys + + + + Clear all properties + + + + Clear all properties + + + + + + Get the PropertiesDictionary for this thread. + + create the dictionary if it does not exist, otherwise return null if does not exist + the properties for this thread + + + The collection returned is only to be used on the calling thread. If the + caller needs to share the collection between different threads then the + caller must clone the collection before doing so. + + + + + + Gets or sets the value of a property + + + The value for the property with the specified key + + + + Gets or sets the value of a property + + + + + + Implementation of Stack for the + + + + Implementation of Stack for the + + + Nicko Cadell + + + + The stack store. + + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + Clears all the contextual information held in this stack. + + + + Clears all the contextual information held in this stack. + Only call this if you think that this tread is being reused after + a previous call execution which may not have completed correctly. + You do not need to use this method if you always guarantee to call + the method of the + returned from even in exceptional circumstances, + for example by using the using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) + syntax. + + + + + + Removes the top context from this stack. + + The message in the context that was removed from the top of this stack. + + + Remove the top context from this stack, and return + it to the caller. If this stack is empty then an + empty string (not ) is returned. + + + + + + Pushes a new context message into this stack. + + The new context message. + + An that can be used to clean up the context stack. + + + + Pushes a new context onto this stack. An + is returned that can be used to clean up this stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.ThreadContext.Stacks["NDC"].Push("Stack_Message")) + { + log.Warn("This should have an ThreadContext Stack message"); + } + + + + + + Gets the current context information for this stack. + + The current context information. + + + + Gets the current context information for this stack. + + Gets the current context information + + + Gets the current context information for this stack. + + + + + + Get a portable version of this object + + the portable instance of this object + + + Get a cross thread portable version of this object + + + + + + The number of messages in the stack + + + The current number of messages in the stack + + + + The current number of messages in the stack. That is + the number of times has been called + minus the number of times has been called. + + + + + + Gets and sets the internal stack used by this + + The internal storage stack + + + This property is provided only to support backward compatability + of the . Tytpically the internal stack should not + be modified. + + + + + + Inner class used to represent a single context frame in the stack. + + + + Inner class used to represent a single context frame in the stack. + + + + + + Constructor + + The message for this context. + The parent context in the chain. + + + Initializes a new instance of the class + with the specified message and parent context. + + + + + + Get the message. + + The message. + + + Get the message. + + + + + + Gets the full text of the context down to the root level. + + + The full text of the context down to the root level. + + + + Gets the full text of the context down to the root level. + + + + + + Struct returned from the method. + + + + This struct implements the and is designed to be used + with the pattern to remove the stack frame at the end of the scope. + + + + + + The ThreadContextStack internal stack + + + + + The depth to trim the stack to when this instance is disposed + + + + + Constructor + + The internal stack used by the ThreadContextStack. + The depth to return the stack to when this object is disposed. + + + Initializes a new instance of the class with + the specified stack and return depth. + + + + + + Returns the stack to the correct depth. + + + + Returns the stack to the correct depth. + + + + + + Implementation of Stacks collection for the + + + + Implementation of Stacks collection for the + + + Nicko Cadell + + + + Internal constructor + + + + Initializes a new instance of the class. + + + + + + The fully qualified type of the ThreadContextStacks class. + + + Used by the internal logger to record the Type of the + log message. + + + + + Gets the named thread context stack + + + The named stack + + + + Gets the named thread context stack + + + + + + Utility class for transforming strings. + + + + Utility class for transforming strings. + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + Write a string to an + + the writer to write to + the string to write + The string to replace non XML compliant chars with + + + The test is escaped either using XML escape entities + or using CDATA sections. + + + + + + Replace invalid XML characters in text string + + the XML text input string + the string to use in place of invalid characters + A string that does not contain invalid XML characters. + + + Certain Unicode code points are not allowed in the XML InfoSet, for + details see: http://www.w3.org/TR/REC-xml/#charsets. + + + This method replaces any illegal characters in the input string + with the mask string specified. + + + + + + Count the number of times that the substring occurs in the text + + the text to search + the substring to find + the number of times the substring occurs in the text + + + The substring is assumed to be non repeating within itself. + + + + + + Characters illegal in XML 1.0 + + + + + Impersonate a Windows Account + + + + This impersonates a Windows account. + + + How the impersonation is done depends on the value of . + This allows the context to either impersonate a set of user credentials specified + using username, domain name and password or to revert to the process credentials. + + + + + + Default constructor + + + + Default constructor + + + + + + Initialize the SecurityContext based on the options set. + + + + This is part of the delayed object + activation scheme. The method must + be called on this object after the configuration properties have + been set. Until is called this + object is in an undefined state and must not be used. + + + If any of the configuration properties are modified then + must be called again. + + + The security context will try to Logon the specified user account and + capture a primary token for impersonation. + + + The required , + or properties were not specified. + + + + Impersonate the Windows account specified by the and properties. + + caller provided state + + An instance that will revoke the impersonation of this SecurityContext + + + + Depending on the property either + impersonate a user using credentials supplied or revert + to the process credentials. + + + + + + Create a given the userName, domainName and password. + + the user name + the domain name + the password + the for the account specified + + + Uses the Windows API call LogonUser to get a principal token for the account. This + token is used to initialize the WindowsIdentity. + + + + + + Gets or sets the impersonation mode for this security context + + + The impersonation mode for this security context + + + + Impersonate either a user with user credentials or + revert this thread to the credentials of the process. + The value is one of the + enum. + + + The default value is + + + When the mode is set to + the user's credentials are established using the + , and + values. + + + When the mode is set to + no other properties need to be set. If the calling thread is + impersonating then it will be reverted back to the process credentials. + + + + + + Gets or sets the Windows username for this security context + + + The Windows username for this security context + + + + This property must be set if + is set to (the default setting). + + + + + + Gets or sets the Windows domain name for this security context + + + The Windows domain name for this security context + + + + The default value for is the local machine name + taken from the property. + + + This property must be set if + is set to (the default setting). + + + + + + Sets the password for the Windows account specified by the and properties. + + + The password for the Windows account specified by the and properties. + + + + This property must be set if + is set to (the default setting). + + + + + + The impersonation modes for the + + + + See the property for + details. + + + + + + Impersonate a user using the credentials supplied + + + + + Revert this the thread to the credentials of the process + + + + + Adds to + + + + Helper class to expose the + through the interface. + + + + + + Constructor + + the impersonation context being wrapped + + + Constructor + + + + + + Revert the impersonation + + + + Revert the impersonation + + + + + + The log4net Global Context. + + + + The GlobalContext provides a location for global debugging + information to be stored. + + + The global context has a properties map and these properties can + be included in the output of log messages. The + supports selecting and outputing these properties. + + + By default the log4net:HostName property is set to the name of + the current machine. + + + + + GlobalContext.Properties["hostname"] = Environment.MachineName; + + + + Nicko Cadell + + + + Private Constructor. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + The global context properties instance + + + + + The global properties map. + + + The global properties map. + + + + The global properties map. + + + + + + Provides information about the environment the assembly has + been built for. + + + + Version of the assembly + + + Version of the framework targeted + + + Type of framework targeted + + + Does it target a client profile? + + + + Identifies the version and target for this assembly. + + + + + The log4net Logical Thread Context. + + + + The LogicalThreadContext provides a location for specific debugging + information to be stored. + The LogicalThreadContext properties override any or + properties with the same name. + + + For .NET Standard 1.3 this class uses + System.Threading.AsyncLocal rather than . + + + The Logical Thread Context has a properties map and a stack. + The properties and stack can + be included in the output of log messages. The + supports selecting and outputting these properties. + + + The Logical Thread Context provides a diagnostic context for the current call context. + This is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The Logical Thread Context is managed on a per basis. + + + The requires a link time + for the + . + If the calling code does not have this permission then this context will be disabled. + It will not store any property values set on it. + + + Example of using the thread context properties to store a username. + + LogicalThreadContext.Properties["user"] = userName; + log.Info("This log message has a LogicalThreadContext Property called 'user'"); + + + Example of how to push a message into the context stack + + using(LogicalThreadContext.Stacks["LDC"].Push("my context message")) + { + log.Info("This log message has a LogicalThreadContext Stack message that includes 'my context message'"); + + } // at the end of the using block the message is automatically popped + + + + Nicko Cadell + + + + Private Constructor. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + The thread context properties instance + + + + + The thread context stacks instance + + + + + The thread properties map + + + The thread properties map + + + + The LogicalThreadContext properties override any + or properties with the same name. + + + + + + The thread stacks + + + stack map + + + + The logical thread stacks. + + + + + + This class is used by client applications to request logger instances. + + + + This class has static methods that are used by a client to request + a logger instance. The method is + used to retrieve a logger. + + + See the interface for more details. + + + Simple example of logging messages + + ILog log = LogManager.GetLogger("application-log"); + + log.Info("Application Start"); + log.Debug("This is a debug message"); + + if (log.IsDebugEnabled) + { + log.Debug("This is another debug message"); + } + + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + Returns the named logger if it exists. + + Returns the named logger if it exists. + + + + If the named logger exists (in the default repository) then it + returns a reference to the logger, otherwise it returns null. + + + The fully qualified logger name to look for. + The logger found, or null if no logger could be found. + + + Get the currently defined loggers. + + Returns all the currently defined loggers in the default repository. + + + The root logger is not included in the returned array. + + All the defined loggers. + + + Get or create a logger. + + Retrieves or creates a named logger. + + + + Retrieves a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The name of the logger to retrieve. + The logger with the name specified. + + + + Returns the named logger if it exists. + + + + If the named logger exists (in the specified repository) then it + returns a reference to the logger, otherwise it returns + null. + + + The repository to lookup in. + The fully qualified logger name to look for. + + The logger found, or null if the logger doesn't exist in the specified + repository. + + + + + Returns the named logger if it exists. + + + + If the named logger exists (in the repository for the specified assembly) then it + returns a reference to the logger, otherwise it returns + null. + + + The assembly to use to lookup the repository. + The fully qualified logger name to look for. + + The logger, or null if the logger doesn't exist in the specified + assembly's repository. + + + + + Returns all the currently defined loggers in the specified repository. + + The repository to lookup in. + + The root logger is not included in the returned array. + + All the defined loggers. + + + + Returns all the currently defined loggers in the specified assembly's repository. + + The assembly to use to lookup the repository. + + The root logger is not included in the returned array. + + All the defined loggers. + + + + Retrieves or creates a named logger. + + + + Retrieve a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The repository to lookup in. + The name of the logger to retrieve. + The logger with the name specified. + + + + Retrieves or creates a named logger. + + + + Retrieve a logger named as the + parameter. If the named logger already exists, then the + existing instance will be returned. Otherwise, a new instance is + created. + + + By default, loggers do not have a set level but inherit + it from the hierarchy. This is one of the central features of + log4net. + + + The assembly to use to lookup the repository. + The name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Get the logger for the fully qualified name of the type specified. + + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Gets the logger for the fully qualified name of the type specified. + + The repository to lookup in. + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shorthand for . + + + Gets the logger for the fully qualified name of the type specified. + + The assembly to use to lookup the repository. + The full name of will be used as the name of the logger to retrieve. + The logger with the name specified. + + + + Shuts down the log4net system. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in all the + default repositories. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + Shutdown a logger repository. + + Shuts down the default repository. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + default repository. + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + + + + Shuts down the repository for the repository specified. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + The repository to shutdown. + + + + Shuts down the repository specified. + + + + Calling this method will safely close and remove all + appenders in all the loggers including root contained in the + repository. The repository is looked up using + the specified. + + + Some appenders need to be closed before the application exists. + Otherwise, pending logging events might be lost. + + + The shutdown method is careful to close nested + appenders before closing regular appenders. This is allows + configurations where a regular appender is attached to a logger + and again to a nested appender. + + + The assembly to use to lookup the repository. + + + Reset the configuration of a repository + + Resets all values contained in this repository instance to their defaults. + + + + Resets all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + + + + Resets all values contained in this repository instance to their defaults. + + + + Reset all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + The repository to reset. + + + + Resets all values contained in this repository instance to their defaults. + + + + Reset all values contained in the repository instance to their + defaults. This removes all appenders from all loggers, sets + the level of all non-root loggers to null, + sets their additivity flag to true and sets the level + of the root logger to . Moreover, + message disabling is set to its default "off" value. + + + The assembly to use to lookup the repository to reset. + + + Get the logger repository. + + Returns the default instance. + + + + Gets the for the repository specified + by the callers assembly (). + + + The instance for the default repository. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The repository to lookup in. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The assembly to use to lookup the repository. + + + Get a logger repository. + + Returns the default instance. + + + + Gets the for the repository specified + by the callers assembly (). + + + The instance for the default repository. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The repository to lookup in. + + + + Returns the default instance. + + The default instance. + + + Gets the for the repository specified + by the argument. + + + The assembly to use to lookup the repository. + + + Create a domain + + Creates a repository with the specified repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to will return + the same repository instance. + + + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + Create a logger repository. + + Creates a repository with the specified repository type. + + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + The created will be associated with the repository + specified such that a call to will return + the same repository instance. + + + + + + Creates a repository with the specified name. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name. + + + + Creates the default type of which is a + object. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique amongst repositories. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + The specified repository already exists. + + + + Creates a repository with the specified name and repository type. + + + + The name must be unique. Repositories cannot be redefined. + An will be thrown if the repository already exists. + + + The name of the repository, this must be unique to the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + The specified repository already exists. + + + + Creates a repository for the specified assembly and repository type. + + + + CreateDomain is obsolete. Use CreateRepository instead of CreateDomain. + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + + Creates a repository for the specified assembly and repository type. + + + + The created will be associated with the repository + specified such that a call to with the + same assembly specified will return the same repository instance. + + + The assembly to use to get the name of the repository. + A that implements + and has a no arg constructor. An instance of this type will be created to act + as the for the repository specified. + The created for the repository. + + + + Gets the list of currently defined repositories. + + + + Get an array of all the objects that have been created. + + + An array of all the known objects. + + + + Flushes logging events buffered in all configured appenders in the default repository. + + The maximum time in milliseconds to wait for logging events from asycnhronous appenders to be flushed. + True if all logging events were flushed successfully, else false. + + + + Looks up the wrapper object for the logger specified. + + The logger to get the wrapper for. + The wrapper for the logger specified. + + + + Looks up the wrapper objects for the loggers specified. + + The loggers to get the wrappers for. + The wrapper objects for the loggers specified. + + + + Create the objects used by + this manager. + + The logger to wrap. + The wrapper for the logger specified. + + + + The wrapper map to use to hold the objects. + + + + + Implementation of Mapped Diagnostic Contexts. + + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + The MDC class is similar to the class except that it is + based on a map instead of a stack. It provides mapped + diagnostic contexts. A Mapped Diagnostic Context, or + MDC in short, is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The MDC is managed on a per thread basis. + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + Gets the context value identified by the parameter. + + The key to lookup in the MDC. + The string value held for the key, or a null reference if no corresponding value is found. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + If the parameter does not look up to a + previously defined context then null will be returned. + + + + + + Add an entry to the MDC + + The key to store the value under. + The value to store. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Puts a context value (the parameter) as identified + with the parameter into the current thread's + context map. + + + If a value is already defined for the + specified then the value will be replaced. If the + is specified as null then the key value mapping will be removed. + + + + + + Removes the key value mapping for the key specified. + + The key to remove. + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Remove the specified entry from this thread's MDC + + + + + + Clear all entries in the MDC + + + + + The MDC is deprecated and has been replaced by the . + The current MDC implementation forwards to the ThreadContext.Properties. + + + + Remove all the entries from this thread's MDC + + + + + + Implementation of Nested Diagnostic Contexts. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + A Nested Diagnostic Context, or NDC in short, is an instrument + to distinguish interleaved log output from different sources. Log + output is typically interleaved when a server handles multiple + clients near-simultaneously. + + + Interleaved log output can still be meaningful if each log entry + from different contexts had a distinctive stamp. This is where NDCs + come into play. + + + Note that NDCs are managed on a per thread basis. The NDC class + is made up of static methods that operate on the context of the + calling thread. + + + How to push a message into the context + + using(NDC.Push("my context message")) + { + ... all log calls will have 'my context message' included ... + + } // at the end of the using block the message is automatically removed + + + + Nicko Cadell + Gert Driesen + + + + Initializes a new instance of the class. + + + Uses a private access modifier to prevent instantiation of this class. + + + + + Clears all the contextual information held on the current thread. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Clears the stack of NDC data held on the current thread. + + + + + + Creates a clone of the stack of context information. + + A clone of the context info for this thread. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + The results of this method can be passed to the + method to allow child threads to inherit the context of their + parent thread. + + + + + + Inherits the contextual information from another thread. + + The context stack to inherit. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + This thread will use the context information from the stack + supplied. This can be used to initialize child threads with + the same contextual information as their parent threads. These + contexts will NOT be shared. Any further contexts that + are pushed onto the stack will not be visible to the other. + Call to obtain a stack to pass to + this method. + + + + + + Removes the top context from the stack. + + + The message in the context that was removed from the top + of the stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Remove the top context from the stack, and return + it to the caller. If the stack is empty then an + empty string (not null) is returned. + + + + + + Pushes a new context message. + + The new context message. + + An that can be used to clean up + the context stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Pushes a new context onto the context stack. An + is returned that can be used to clean up the context stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + using(log4net.NDC.Push("NDC_Message")) + { + log.Warn("This should have an NDC message"); + } + + + + + + Pushes a new context message. + + The new context message string format. + Arguments to be passed into messageFormat. + + An that can be used to clean up + the context stack. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Pushes a new context onto the context stack. An + is returned that can be used to clean up the context stack. This + can be easily combined with the using keyword to scope the + context. + + + Simple example of using the Push method with the using keyword. + + var someValue = "ExampleContext" + using(log4net.NDC.PushFormat("NDC_Message {0}", someValue)) + { + log.Warn("This should have an NDC message"); + } + + + + + + Removes the context information for this thread. It is + not required to call this method. + + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + This method is not implemented. + + + + + + Forces the stack depth to be at most . + + The maximum depth of the stack + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + Forces the stack depth to be at most . + This may truncate the head of the stack. This only affects the + stack in the current thread. Also it does not prevent it from + growing, it only sets the maximum depth at the time of the + call. This can be used to return to a known context depth. + + + + + + Gets the current context depth. + + The current context depth. + + + + The NDC is deprecated and has been replaced by the . + The current NDC implementation forwards to the ThreadContext.Stacks["NDC"]. + + + + The number of context values pushed onto the context stack. + + + Used to record the current depth of the context. This can then + be restored using the method. + + + + + + + The log4net Thread Context. + + + + The ThreadContext provides a location for thread specific debugging + information to be stored. + The ThreadContext properties override any + properties with the same name. + + + The thread context has a properties map and a stack. + The properties and stack can + be included in the output of log messages. The + supports selecting and outputting these properties. + + + The Thread Context provides a diagnostic context for the current thread. + This is an instrument for distinguishing interleaved log + output from different sources. Log output is typically interleaved + when a server handles multiple clients near-simultaneously. + + + The Thread Context is managed on a per thread basis. + + + Example of using the thread context properties to store a username. + + ThreadContext.Properties["user"] = userName; + log.Info("This log message has a ThreadContext Property called 'user'"); + + + Example of how to push a message into the context stack + + using(ThreadContext.Stacks["NDC"].Push("my context message")) + { + log.Info("This log message has a ThreadContext Stack message that includes 'my context message'"); + + } // at the end of the using block the message is automatically popped + + + + Nicko Cadell + + + + Private Constructor. + + + + Uses a private access modifier to prevent instantiation of this class. + + + + + + The thread context properties instance + + + + + The thread context stacks instance + + + + + The thread properties map + + + The thread properties map + + + + The ThreadContext properties override any + properties with the same name. + + + + + + The thread stacks + + + stack map + + + + The thread local stacks. + + + + + diff --git a/packages/log4net.2.0.8/lib/netstandard1.3/log4net.dll b/packages/log4net.2.0.8/lib/netstandard1.3/log4net.dll new file mode 100644 index 0000000..0a66f9b Binary files /dev/null and b/packages/log4net.2.0.8/lib/netstandard1.3/log4net.dll differ diff --git a/packages/log4net.2.0.8/log4net.2.0.8.nupkg b/packages/log4net.2.0.8/log4net.2.0.8.nupkg new file mode 100644 index 0000000..fec8e8d Binary files /dev/null and b/packages/log4net.2.0.8/log4net.2.0.8.nupkg differ