fix #1421 support .log.gz files

This commit is contained in:
Shinsuke Sugaya 2018-01-05 21:33:32 +09:00
parent e310aec4ad
commit 7f1defa8f5
3 changed files with 10 additions and 5 deletions

View file

@ -62,7 +62,7 @@ public class AdminLogAction extends FessAdminAction {
public ActionResponse download(final String id) {
final String filename = new String(Base64.getDecoder().decode(id), StandardCharsets.UTF_8).replace("..", "").replaceAll("\\s", "");
final String logFilePath = systemHelper.getLogFilePath();
if (StringUtil.isNotBlank(logFilePath)) {
if (StringUtil.isNotBlank(logFilePath) && isLogFilename(filename)) {
final Path path = Paths.get(logFilePath, filename);
return asStream(filename).contentTypeOctetStream().stream(out -> {
try (InputStream in = Files.newInputStream(path)) {
@ -83,7 +83,7 @@ public class AdminLogAction extends FessAdminAction {
if (StringUtil.isNotBlank(logFilePath)) {
final Path logDirPath = Paths.get(logFilePath);
try (Stream<Path> stream = Files.list(logDirPath)) {
stream.filter(entry -> entry.getFileName().toString().endsWith(".log")).forEach(filePath -> {
stream.filter(entry -> isLogFilename(entry.getFileName().toString())).forEach(filePath -> {
final Map<String, Object> map = new HashMap<>();
final String name = filePath.getFileName().toString();
map.put("id", Base64.getUrlEncoder().encodeToString(name.getBytes(StandardCharsets.UTF_8)));
@ -102,6 +102,10 @@ public class AdminLogAction extends FessAdminAction {
return logFileItems;
}
public static boolean isLogFilename(final String name) {
return name.endsWith(".log") || name.endsWith(".log.gz");
}
private HtmlResponse asIndexHtml() {
return asHtml(path_AdminLog_AdminLogJsp).renderWith(data -> {
RenderDataUtil.register(data, "logFileItems", getLogFileItems());

View file

@ -16,6 +16,7 @@
package org.codelibs.fess.app.web.api.admin.log;
import static org.codelibs.fess.app.web.admin.log.AdminLogAction.getLogFileItems;
import static org.codelibs.fess.app.web.admin.log.AdminLogAction.isLogFilename;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
@ -54,7 +55,7 @@ public class ApiAdminLogAction extends FessApiAdminAction {
public StreamResponse get$file(final String id) {
final String filename = new String(Base64.getDecoder().decode(id), StandardCharsets.UTF_8).replace("..", "").replaceAll("\\s", "");
final String logFilePath = systemHelper.getLogFilePath();
if (StringUtil.isNotBlank(logFilePath)) {
if (StringUtil.isNotBlank(logFilePath) && isLogFilename(filename)) {
final Path path = Paths.get(logFilePath, filename);
return asStream(filename).contentTypeOctetStream().stream(out -> {
try (InputStream in = Files.newInputStream(path)) {

View file

@ -29,7 +29,7 @@
</Routes>
</Routing>
<RollingFile name="AppFile" fileName="${log.file.basedir}/${domain.name}.log"
filePattern="${log.file.basedir}/backup/${domain.name}${backup.date.suffix}-%i.log.gz">
filePattern="${log.file.basedir}/${domain.name}${backup.date.suffix}-%i.log.gz">
<PatternLayout>
<Pattern>${log.pattern}</Pattern>
</PatternLayout>
@ -41,7 +41,7 @@
max="${backup.max.history}" compressionLevel="9" />
</RollingFile>
<RollingFile name="AuditFile" fileName="${log.file.basedir}/audit.log"
filePattern="${log.file.basedir}/backup/audit${backup.date.suffix}-%i.log.gz">
filePattern="${log.file.basedir}/audit${backup.date.suffix}-%i.log.gz">
<PatternLayout>
<Pattern>${audit.log.pattern}</Pattern>
</PatternLayout>