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 public class PurgeLogJob {
28
29 private static final Logger logger = LogManager.getLogger(PurgeLogJob.class);
30
31 public String execute() {
32 final CrawlingInfoService crawlingInfoService = ComponentUtil.getComponent(CrawlingInfoService.class);
33 final SearchLogService searchLogService = ComponentUtil.getComponent(SearchLogService.class);
34 final JobLogService jobLogService = ComponentUtil.getComponent(JobLogService.class);
35 final UserInfoService userInfoService = ComponentUtil.getComponent(UserInfoService.class);
36 final SystemHelper systemHelper = ComponentUtil.getSystemHelper();
37
38 final StringBuilder resultBuf = new StringBuilder();
39
40
41 try {
42 crawlingInfoService.deleteBefore(systemHelper.getCurrentTimeAsLong());
43 } catch (final Exception e) {
44 logger.error("Failed to purge crawling sessions.", e);
45 resultBuf.append(e.getMessage()).append("\n");
46 }
47
48
49 try {
50 final int days = ComponentUtil.getFessConfig().getPurgeSearchLogDay();
51 if (days >= 0) {
52 searchLogService.deleteBefore(days);
53 } else {
54 resultBuf.append("Skipped to purge search logs.\n");
55 }
56 } catch (final Exception e) {
57 logger.error("Failed to purge search logs.", e);
58 resultBuf.append(e.getMessage()).append("\n");
59 }
60
61
62 try {
63 final int days = ComponentUtil.getFessConfig().getPurgeJobLogDay();
64 if (days >= 0) {
65 jobLogService.deleteBefore(days);
66 } else {
67 resultBuf.append("Skipped to purge job logs.\n");
68 }
69 } catch (final Exception e) {
70 logger.error("Failed to purge job logs.", e);
71 resultBuf.append(e.getMessage()).append("\n");
72 }
73
74
75 try {
76 final int days = ComponentUtil.getFessConfig().getPurgeUserInfoDay();
77 if (days >= 0) {
78 userInfoService.deleteBefore(days);
79 } else {
80 resultBuf.append("Skipped to purge user info logs.\n");
81 }
82 } catch (final Exception e) {
83 logger.error("Failed to purge user info.", e);
84 resultBuf.append(e.getMessage()).append("\n");
85 }
86
87
88 try {
89 jobLogService.updateStatus();
90 } catch (final Exception e) {
91 logger.error("Failed to purge job logs.", e);
92 resultBuf.append(e.getMessage()).append("\n");
93 }
94
95 return resultBuf.toString();
96 }
97
98 }