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