1
2
3
4
5
6
7
8
9
10
11
12
13
14 package ch.qos.logback.core.rolling;
15
16 import ch.qos.logback.core.FileAppender;
17 import ch.qos.logback.core.rolling.helper.CompressionMode;
18 import ch.qos.logback.core.rolling.helper.FileNamePattern;
19 import ch.qos.logback.core.spi.ContextAwareBase;
20
21
22
23
24
25
26
27 public abstract class RollingPolicyBase extends ContextAwareBase implements
28 RollingPolicy {
29 protected CompressionMode compressionMode = CompressionMode.NONE;
30 protected FileNamePattern fileNamePattern;
31
32 protected String fileNamePatternStr;
33
34 private FileAppender parent;
35
36 private boolean started;
37
38
39
40
41
42
43
44
45 protected void determineCompressionMode() {
46 if (fileNamePatternStr.endsWith(".gz")) {
47 addInfo("Will use gz compression");
48 compressionMode = CompressionMode.GZ;
49 } else if (fileNamePatternStr.endsWith(".zip")) {
50 addInfo("Will use zip compression");
51 compressionMode = CompressionMode.ZIP;
52 } else {
53 addInfo("No compression will be used");
54 compressionMode = CompressionMode.NONE;
55 }
56 }
57
58 public void setFileNamePattern(String fnp) {
59 fileNamePatternStr = fnp;
60 }
61
62 public String getFileNamePattern() {
63 return fileNamePatternStr;
64 }
65
66 public CompressionMode getCompressionMode() {
67 return compressionMode;
68 }
69
70 public boolean isStarted() {
71 return started;
72 }
73
74 public void start() {
75 started = true;
76 }
77
78 public void stop() {
79 started = false;
80 }
81
82 public void setParent(FileAppender appender) {
83 this.parent = appender;
84 }
85
86 public boolean isParentPrudent() {
87 return parent.isPrudent();
88 }
89
90 public String getParentsRawFileProperty() {
91 return parent.rawFileProperty();
92 }
93 }