1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.codelibs.fess.job;
17
18 import org.apache.logging.log4j.LogManager;
19 import org.apache.logging.log4j.Logger;
20 import org.codelibs.fess.app.service.CrawlingInfoService;
21 import org.codelibs.fess.app.service.JobLogService;
22 import org.codelibs.fess.app.service.SearchLogService;
23 import org.codelibs.fess.app.service.UserInfoService;
24 import org.codelibs.fess.helper.SystemHelper;
25 import org.codelibs.fess.util.ComponentUtil;
26
27
28
29
30
31
32
33 public class PurgeLogJob {
34
35
36 private static final Logger logger = LogManager.getLogger(PurgeLogJob.class);
37
38
39
40
41
42 public PurgeLogJob() {
43
44 }
45
46
47
48
49
50
51
52
53
54
55
56
57 public String execute() {
58 final CrawlingInfoService crawlingInfoService = ComponentUtil.getComponent(CrawlingInfoService.class);
59 final SearchLogService searchLogService = ComponentUtil.getComponent(SearchLogService.class);
60 final JobLogService jobLogService = ComponentUtil.getComponent(JobLogService.class);
61 final UserInfoService userInfoService = ComponentUtil.getComponent(UserInfoService.class);
62 final SystemHelper systemHelper = ComponentUtil.getSystemHelper();
63
64 final StringBuilder resultBuf = new StringBuilder();
65
66
67 try {
68 crawlingInfoService.deleteBefore(systemHelper.getCurrentTimeAsLong());
69 } catch (final Exception e) {
70 logger.error("Failed to purge crawling sessions.", e);
71 resultBuf.append(e.getMessage()).append("\n");
72 }
73
74
75 try {
76 final int days = ComponentUtil.getFessConfig().getPurgeSearchLogDay();
77 if (days >= 0) {
78 searchLogService.deleteBefore(days);
79 } else {
80 resultBuf.append("Skipped to purge search logs.\n");
81 }
82 } catch (final Exception e) {
83 logger.error("Failed to purge search logs.", e);
84 resultBuf.append(e.getMessage()).append("\n");
85 }
86
87
88 try {
89 final int days = ComponentUtil.getFessConfig().getPurgeSearchLogDay();
90 if (days >= 0) {
91 searchLogService.deleteClickLogBefore(days);
92 } else {
93 resultBuf.append("Skipped to purge click logs.\n");
94 }
95 } catch (final Exception e) {
96 logger.error("Failed to purge click logs.", e);
97 resultBuf.append(e.getMessage()).append("\n");
98 }
99
100
101 try {
102 final int days = ComponentUtil.getFessConfig().getPurgeSearchLogDay();
103 if (days >= 0) {
104 searchLogService.deleteFavoriteLogBefore(days);
105 } else {
106 resultBuf.append("Skipped to purge favorite logs.\n");
107 }
108 } catch (final Exception e) {
109 logger.error("Failed to purge favorite logs.", e);
110 resultBuf.append(e.getMessage()).append("\n");
111 }
112
113
114 try {
115 final int days = ComponentUtil.getFessConfig().getPurgeJobLogDay();
116 if (days >= 0) {
117 jobLogService.deleteBefore(days);
118 } else {
119 resultBuf.append("Skipped to purge job logs.\n");
120 }
121 } catch (final Exception e) {
122 logger.error("Failed to purge job logs.", e);
123 resultBuf.append(e.getMessage()).append("\n");
124 }
125
126
127 try {
128 final int days = ComponentUtil.getFessConfig().getPurgeUserInfoDay();
129 if (days >= 0) {
130 userInfoService.deleteBefore(days);
131 } else {
132 resultBuf.append("Skipped to purge user info logs.\n");
133 }
134 } catch (final Exception e) {
135 logger.error("Failed to purge user info.", e);
136 resultBuf.append(e.getMessage()).append("\n");
137 }
138
139
140 try {
141 jobLogService.updateStatus();
142 } catch (final Exception e) {
143 logger.error("Failed to purge job logs.", e);
144 resultBuf.append(e.getMessage()).append("\n");
145 }
146
147 return resultBuf.toString();
148 }
149
150 }