From e63e0b6aa6de8ae08360efe615ce44847ad4d219 Mon Sep 17 00:00:00 2001 From: Andre Rodrigues Date: Fri, 10 Dec 2010 14:24:24 -0800 Subject: [PATCH] Adding Style Frequency option to rollingfileappender to avoid continuous update based on date. --HG-- branch : dev --- src/Orchard.Web/Config/log4net.config | 3 ++- src/Orchard/Logging/OrchardFileAppender.cs | 27 ++++++++++++++++++++++ src/Orchard/Orchard.Framework.csproj | 1 + 3 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 src/Orchard/Logging/OrchardFileAppender.cs diff --git a/src/Orchard.Web/Config/log4net.config b/src/Orchard.Web/Config/log4net.config index 2e6d55f12..0c1c1a8b7 100644 --- a/src/Orchard.Web/Config/log4net.config +++ b/src/Orchard.Web/Config/log4net.config @@ -16,13 +16,14 @@ - + + diff --git a/src/Orchard/Logging/OrchardFileAppender.cs b/src/Orchard/Logging/OrchardFileAppender.cs new file mode 100644 index 000000000..a48177c5c --- /dev/null +++ b/src/Orchard/Logging/OrchardFileAppender.cs @@ -0,0 +1,27 @@ +using log4net.Appender; +using log4net.Util; + +namespace Orchard.Logging { + public class OrchardFileAppender : RollingFileAppender { + public enum RollingStyleFrequencyMode { + Once, + Continuous + } + + public RollingStyleFrequencyMode RollingStyleFrequency { get; set; } + + public bool RollSize { + get { return (RollingStyle == RollingMode.Once || RollingStyle == RollingMode.Size); } + } + + protected override void AdjustFileBeforeAppend() { + if (RollingStyle == RollingMode.Size || + RollingStyleFrequency == RollingStyleFrequencyMode.Continuous) { + base.AdjustFileBeforeAppend(); + } + else if (RollSize && ((File != null) && (((CountingQuietTextWriter)base.QuietWriter).Count >= MaxFileSize))) { + RollOverSize(); + } + } + } +} diff --git a/src/Orchard/Orchard.Framework.csproj b/src/Orchard/Orchard.Framework.csproj index a85f5d542..512e10207 100644 --- a/src/Orchard/Orchard.Framework.csproj +++ b/src/Orchard/Orchard.Framework.csproj @@ -176,6 +176,7 @@ +