1 #region Copyright & License
2 //
3 // Copyright 2001-2005 The Apache Software Foundation
4 //
5 // Licensed under the Apache License, Version 2.0 (the "License");
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 // http://www.apache.org/licenses/LICENSE-2.0
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16 //
17 #endregion
18 
19 using System;
20 using System.IO;
21 using System.Text;
22 
23 using log4net.Util;
24 using log4net.Core;
25 
26 namespace log4net.Layout
27 {
28 	/// <summary>
29 	/// A very simple layout
30 	/// </summary>
31 	/// <remarks>
32 	/// <para>
33 	/// SimpleLayout consists of the level of the log statement,
34 	/// followed by " - " and then the log message itself. For example,
35 	/// <code>
36 	/// DEBUG - Hello world
37 	/// </code>
38 	/// </para>
39 	/// </remarks>
40 	/// <author>Nicko Cadell</author>
41 	/// <author>Gert Driesen</author>
42 	public class SimpleLayout : LayoutSkeleton
43 	{
44 		#region Constructors
45 
46 		/// <summary>
47 		/// Constructs a SimpleLayout
48 		/// </summary>
SimpleLayout()49 		public SimpleLayout()
50 		{
51 			IgnoresException = true;
52 		}
53 
54 		#endregion
55 
56 		#region Implementation of IOptionHandler
57 
58 		/// <summary>
59 		/// Initialize layout options
60 		/// </summary>
61 		/// <remarks>
62 		/// <para>
63 		/// This is part of the <see cref="IOptionHandler"/> delayed object
64 		/// activation scheme. The <see cref="ActivateOptions"/> method must
65 		/// be called on this object after the configuration properties have
66 		/// been set. Until <see cref="ActivateOptions"/> is called this
67 		/// object is in an undefined state and must not be used.
68 		/// </para>
69 		/// <para>
70 		/// If any of the configuration properties are modified then
71 		/// <see cref="ActivateOptions"/> must be called again.
72 		/// </para>
73 		/// </remarks>
ActivateOptions()74 		override public void ActivateOptions()
75 		{
76 			// nothing to do.
77 		}
78 
79 		#endregion
80 
81 		#region Override implementation of LayoutSkeleton
82 
83 		/// <summary>
84 		/// Produces a simple formatted output.
85 		/// </summary>
86 		/// <param name="loggingEvent">the event being logged</param>
87 		/// <param name="writer">The TextWriter to write the formatted event to</param>
88 		/// <remarks>
89 		/// <para>
90 		/// Formats the event as the level of the even,
91 		/// followed by " - " and then the log message itself. The
92 		/// output is terminated by a newline.
93 		/// </para>
94 		/// </remarks>
Format(TextWriter writer, LoggingEvent loggingEvent)95 		override public void Format(TextWriter writer, LoggingEvent loggingEvent)
96 		{
97 			if (loggingEvent == null)
98 			{
99 				throw new ArgumentNullException("loggingEvent");
100 			}
101 
102 			writer.Write(loggingEvent.Level.DisplayName);
103 			writer.Write(" - ");
104 			loggingEvent.WriteRenderedMessage(writer);
105 			writer.WriteLine();
106 		}
107 
108 		#endregion
109 	}
110 }
111