fix #1421 support .log.gz files
This commit is contained in:
parent
e310aec4ad
commit
7f1defa8f5
3 changed files with 10 additions and 5 deletions
|
@ -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());
|
||||
|
|
|
@ -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)) {
|
||||
|
|
|
@ -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>
|
||||
|
|
Loading…
Add table
Reference in a new issue