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);
+        }
+    }
+}