Browse code

Force log rotation if LogFileMaxSize is non-zero

Shawn webb authored on 2012/08/24 05:33:45
Showing 4 changed files
... ...
@@ -225,7 +225,8 @@ Example
225 225
 # Value of 0 disables the limit.
226 226
 # You may use 'M' or 'm' for megabytes (1M = 1m = 1048576 bytes)
227 227
 # and 'K' or 'k' for kilobytes (1K = 1k = 1024 bytes). To specify the size
228
-# in bytes just don't use modifiers.
228
+# in bytes just don't use modifiers. If LogFileMaxSize is enabled, log
229
+# rotation (the LogRotate option) will always be enabled.
229 230
 #
230 231
 # Default: 1M
231 232
 #LogFileMaxSize 2M
... ...
@@ -251,7 +252,7 @@ Example
251 251
 # Default: no
252 252
 #LogVerbose yes
253 253
 
254
-# Enable log rotation.
254
+# Enable log rotation. Always enabled when LogFileMaxSize is enabled.
255 255
 # Default: no
256 256
 #LogRotate yes
257 257
 
... ...
@@ -25,7 +25,8 @@ Example
25 25
 # Value of 0 disables the limit.
26 26
 # You may use 'M' or 'm' for megabytes (1M = 1m = 1048576 bytes)
27 27
 # and 'K' or 'k' for kilobytes (1K = 1k = 1024 bytes). To specify the size
28
-# in bytes just don't use modifiers.
28
+# in bytes just don't use modifiers. If LogFileMaxSize is enabled, log
29
+# rotation (the LogRotate option) will always be enabled.
29 30
 # Default: 1M
30 31
 #LogFileMaxSize 2M
31 32
 
... ...
@@ -51,7 +52,7 @@ Example
51 51
 # Default: no
52 52
 #LogVerbose yes
53 53
 
54
-# Enable log rotation.
54
+# Enable log rotation. Always enabled when LogFileMaxSize is enabled.
55 55
 # Default: no
56 56
 #LogRotate yes
57 57
 
... ...
@@ -20,7 +20,8 @@ Example
20 20
 # Value of 0 disables the limit.
21 21
 # You may use 'M' or 'm' for megabytes (1M = 1m = 1048576 bytes)
22 22
 # and 'K' or 'k' for kilobytes (1K = 1k = 1024 bytes).
23
-# in bytes just don't use modifiers.
23
+# in bytes just don't use modifiers. If LogFileMaxSize is enabled,
24
+# log rotation (the LogRotate option) will always be enabled.
24 25
 # Default: 1M
25 26
 #LogFileMaxSize 2M
26 27
 
... ...
@@ -41,7 +42,7 @@ Example
41 41
 # Default: LOG_LOCAL6
42 42
 #LogFacility LOG_MAIL
43 43
 
44
-# Enable log rotation.
44
+# Enable log rotation. Always enabled when LogFileMaxSize is enabled.
45 45
 # Default: no
46 46
 #LogRotate yes
47 47
 
... ...
@@ -214,34 +214,25 @@ static int rename_logg(STATBUF *sb)
214 214
     if (!logg_rotate) {
215 215
         if (logg_fp) {
216 216
             fprintf(logg_fp, "Log size = %u, max = %u\n", sb->st_size, logg_size);
217
-            fprintf(logg_fp, "LOGGING DISABLED (Maximal log file size exceeded).\n");
218
-            fclose(logg_fp);
219
-            logg_fp = NULL;
217
+            fprintf(logg_fp, "WARNING: Log size limit met but log file rotation turned off. Forcing log file rotation anyways.\n");
220 218
         }
221 219
 
222
-        logg_file = NULL;
223
-        return 0;
220
+        logg_rotate = 1;
224 221
     }
225 222
 
226 223
     rotate_file_len = strlen(logg_file) + sizeof("-YYYY-MM-DD_HH:MM:SS");
227 224
     rotate_file = calloc(1, rotate_file_len + 1);
228 225
     if (!rotate_file) {
229
-        if (logg_fp) {
226
+        if (logg_fp)
230 227
             fprintf(logg_fp, "Need to rotate log file due to size but ran out of memory.\n");
231
-            fclose(logg_fp);
232
-            logg_fp = NULL;
233
-        }
234 228
 
235 229
         return -1;
236 230
     }
237 231
 
238 232
     t = time(NULL);
239 233
     if (!localtime_r(&t, &tmp)) {
240
-        if (logg_fp) {
234
+        if (logg_fp)
241 235
             fprintf(logg_fp, "Need to rotate log file due to size but could not get local time.\n");
242
-            fclose(logg_fp);
243
-            logg_fp = NULL;
244
-        }
245 236
 
246 237
         free(rotate_file);
247 238
         return -1;