You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4net-dev@logging.apache.org by rg...@apache.org on 2009/05/23 23:52:04 UTC
svn commit: r778037 - in
/logging/log4net/trunk/examples/net/1.0/Layouts/SampleLayoutsApp/cs/src/Layout:
LevelConversionPattern.cs LevelPatternLayout.cs
Author: rgrabowski
Date: Sat May 23 21:52:04 2009
New Revision: 778037
URL: http://svn.apache.org/viewvc?rev=778037&view=rev
Log:
Sample layout that can use a conversion pattern per level.
Added:
logging/log4net/trunk/examples/net/1.0/Layouts/SampleLayoutsApp/cs/src/Layout/LevelConversionPattern.cs
logging/log4net/trunk/examples/net/1.0/Layouts/SampleLayoutsApp/cs/src/Layout/LevelPatternLayout.cs
Added: logging/log4net/trunk/examples/net/1.0/Layouts/SampleLayoutsApp/cs/src/Layout/LevelConversionPattern.cs
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/examples/net/1.0/Layouts/SampleLayoutsApp/cs/src/Layout/LevelConversionPattern.cs?rev=778037&view=auto
==============================================================================
--- logging/log4net/trunk/examples/net/1.0/Layouts/SampleLayoutsApp/cs/src/Layout/LevelConversionPattern.cs (added)
+++ logging/log4net/trunk/examples/net/1.0/Layouts/SampleLayoutsApp/cs/src/Layout/LevelConversionPattern.cs Sat May 23 21:52:04 2009
@@ -0,0 +1,41 @@
+#region Apache License
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to you under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#endregion
+
+using log4net.Core;
+
+namespace SampleLayoutsApp.Layout
+{
+ public class LevelConversionPattern
+ {
+ private Level level;
+ private string conversionPattern;
+
+ public Level Level
+ {
+ get { return level; }
+ set { level = value; }
+ }
+
+ public string ConversionPattern
+ {
+ get { return conversionPattern; }
+ set { conversionPattern = value; }
+ }
+ }
+}
\ No newline at end of file
Added: logging/log4net/trunk/examples/net/1.0/Layouts/SampleLayoutsApp/cs/src/Layout/LevelPatternLayout.cs
URL: http://svn.apache.org/viewvc/logging/log4net/trunk/examples/net/1.0/Layouts/SampleLayoutsApp/cs/src/Layout/LevelPatternLayout.cs?rev=778037&view=auto
==============================================================================
--- logging/log4net/trunk/examples/net/1.0/Layouts/SampleLayoutsApp/cs/src/Layout/LevelPatternLayout.cs (added)
+++ logging/log4net/trunk/examples/net/1.0/Layouts/SampleLayoutsApp/cs/src/Layout/LevelPatternLayout.cs Sat May 23 21:52:04 2009
@@ -0,0 +1,50 @@
+#region Apache License
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to you under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+#endregion
+
+using System.Collections;
+using System.IO;
+using log4net.Core;
+using log4net.Layout;
+
+namespace SampleLayoutsApp.Layout
+{
+ public class LevelPatternLayout : PatternLayout
+ {
+ private readonly Hashtable m_levelToPatternLayout = new Hashtable();
+
+ public override void Format(TextWriter writer, LoggingEvent loggingEvent)
+ {
+ PatternLayout patternLayout = m_levelToPatternLayout[loggingEvent.Level] as PatternLayout;
+
+ if (patternLayout == null)
+ {
+ base.Format(writer, loggingEvent);
+ }
+ else
+ {
+ patternLayout.Format(writer, loggingEvent);
+ }
+ }
+
+ public void AddLevelConversionPattern(LevelConversionPattern levelLayout)
+ {
+ m_levelToPatternLayout[levelLayout.Level] = new PatternLayout(levelLayout.ConversionPattern);
+ }
+ }
+}