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