94 GluuAppliance appliance;
97 log.debug(
"Max Log Size: " + maxLogSize);
101 maxSize = Long.parseLong(maxLogSize);
102 }
catch (Exception ex) {
103 log.error(
"appliance maxLogSize value is invalid: " + maxLogSize);
104 log.error(
"assuming 0");
109 log.debug(
"Max Log Size: " + maxLogSize);
111 long maxSizeInByte = maxSize * 1024 * 1024;
112 long currentSize = 0;
113 Date today =
new Date();
114 SimpleDateFormat sdf =
new SimpleDateFormat(
"yyyy-MM-dd");
115 String todayStr = sdf.format(today);
117 log.debug(
"Getting the tomcat home directory");
118 String filePath = ConfigurationFactory.DIR
119 + ConfigurationFactory.LOG_ROTATION_CONFIGURATION;
120 log.debug(
"FilePath: " + filePath);
124 List<FileData> fDataList =
new ArrayList<FileData>();
125 for (LogDir logDir : logDirs) {
126 File file =
new File(logDir.getLocation());
127 File[] files = file.listFiles();
130 if (files != null && files.length > 0) {
131 for (File singleFile : files) {
132 if (singleFile.getName().startsWith(logDir.getPrefix()) && singleFile.getName().endsWith(logDir.getExtension())) {
133 totalSize += singleFile.length();
134 FileData fData =
new FileData(singleFile.getName(), logDir.getLocation(), singleFile.lastModified(),
135 singleFile.length());
136 fDataList.add(fData);
141 currentSize += totalSize;
142 logDir.setLength(totalSize);
145 Collections.sort(fDataList);
146 if (currentSize > maxSizeInByte) {
147 maxSizeInByte -= (maxSizeInByte * 15) / 100;
152 for (FileData fileData : fDataList) {
153 if (currentSize < maxSizeInByte) {
156 Date date =
new Date(fileData.getLastModified());
157 String dateStr = sdf.format(date);
158 if (todayStr.equals(dateStr)) {
159 log.debug(
"--Skipped Active File: " + fileData.getName() +
" Date: " + sdf.format(date) +
" Size: " 160 + fileData.getSize());
164 File singleFile =
new File(fileData.getFilePath() +
"/" + fileData.getName());
165 if (!singleFile.delete()) {
166 log.error(
"Failed to delete the file.");
168 currentSize -= fileData.getSize();
169 log.debug(
"--Deleted File Name: " + fileData.getName() +
" Date: " + sdf.format(date) +
" Size: " + fileData.getSize());
Logger log
Definition: LogFileSizeChecker.java:49
GluuAppliance getAppliance(String[] returnAttributes)
Definition: ApplianceService.java:111
List< LogDir > readConfig(String source)
Definition: LogFileSizeChecker.java:175
ApplianceService applianceService
Definition: LogFileSizeChecker.java:55
String getMaxLogSize()
Definition: GluuAppliance.java:422