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 @@
+