From 73fad0205ab9934b934ed8444bb0b4fe68573be9 Mon Sep 17 00:00:00 2001
From: vharseko <vharseko@3a-systems.ru>
Date: Tue, 31 May 2022 14:33:37 +0000
Subject: [PATCH] FIX OpenDJ is not logging errors to logfile #128 (#235)
---
opendj-server-legacy/src/main/java/org/opends/server/loggers/TextWriter.java | 6 +++++-
opendj-server-legacy/src/main/java/org/opends/quicksetup/TempLogFile.java | 50 ++++++++++++++++++++++++++------------------------
2 files changed, 31 insertions(+), 25 deletions(-)
diff --git a/opendj-server-legacy/src/main/java/org/opends/quicksetup/TempLogFile.java b/opendj-server-legacy/src/main/java/org/opends/quicksetup/TempLogFile.java
index 766d4ee..e17abd2 100644
--- a/opendj-server-legacy/src/main/java/org/opends/quicksetup/TempLogFile.java
+++ b/opendj-server-legacy/src/main/java/org/opends/quicksetup/TempLogFile.java
@@ -17,22 +17,25 @@
package org.opends.quicksetup;
import java.io.File;
+import java.io.FileOutputStream;
import java.io.IOException;
-import java.util.logging.FileHandler;
-import java.util.logging.Logger;
import java.util.Date;
import java.text.DateFormat;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
-import org.opends.server.loggers.JDKLogging;
+import org.opends.server.loggers.DebugLogPublisher;
+import org.opends.server.loggers.DebugLogger;
+import org.opends.server.loggers.ErrorLogPublisher;
+import org.opends.server.loggers.ErrorLogger;
+import org.opends.server.loggers.TextErrorLogPublisher;
+import org.opends.server.loggers.TextWriter;
/** This class represents a temporary log file which should be usually deleted if linked operation succeeded. */
public class TempLogFile
{
private static final LocalizedLogger localizedLogger = LocalizedLogger.getLoggerForThisClass();
- private static final String OPENDS_LOGGER_NAME = "org.opends";
/**
* Creates a new temporary log file.
@@ -57,35 +60,32 @@
}
}
- /** Prevents messages written to loggers from appearing in the console output. */
- private static void disableConsoleLogging(final Logger logger)
- {
- if (!"true".equalsIgnoreCase(System.getenv("OPENDJ_LOG_TO_STDOUT")))
- {
- logger.setUseParentHandlers(false);
- }
- }
-
private final File logFile;
- private final FileHandler fileHandler;
private TempLogFile()
{
this.logFile = null;
- this.fileHandler = null;
+ this.writer=null;
}
+ final TextWriter writer;
+
private TempLogFile(final File file) throws IOException
{
logFile = file;
- fileHandler = new FileHandler(logFile.getCanonicalPath());
- fileHandler.setFormatter(JDKLogging.getFormatter());
- final Logger parentLogger = Logger.getLogger(OPENDS_LOGGER_NAME);
- parentLogger.addHandler(fileHandler);
- disableConsoleLogging(parentLogger);
- final Logger logger = Logger.getLogger(getClass().getPackage().getName());
- logger.info("QuickSetup application launched " + DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG)
- .format(new Date()));
+ // Install the default loggers so the startup messages
+ // will be printed.
+
+ if ("true".equalsIgnoreCase(System.getenv("OPENDJ_LOG_TO_STDOUT"))) {
+ writer=new TextWriter.STDOUT();
+ }else {
+ writer=new TextWriter.STREAM(new FileOutputStream(file));
+ }
+ ErrorLogPublisher startupErrorLogPublisher = TextErrorLogPublisher.getServerStartupTextErrorPublisher(writer);
+ ErrorLogger.getInstance().addLogPublisher(startupErrorLogPublisher);
+ DebugLogPublisher startupDebugLogPublisher = DebugLogger.getInstance().addPublisherIfRequired(writer);
+
+ localizedLogger.info(LocalizableMessage.raw("QuickSetup application launched " + DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG).format(new Date()), null));
}
/**
@@ -103,7 +103,9 @@
{
if (isEnabled())
{
- fileHandler.close();
+ if (writer!=null) {
+ writer.shutdown();
+ }
logFile.delete();
}
}
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/loggers/TextWriter.java b/opendj-server-legacy/src/main/java/org/opends/server/loggers/TextWriter.java
index fd268ca..0293534 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/loggers/TextWriter.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/loggers/TextWriter.java
@@ -16,6 +16,7 @@
*/
package org.opends.server.loggers;
+import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
@@ -139,7 +140,10 @@
@Override
public void shutdown()
{
- // Should never close the system error stream.
+ writer.close();
+ try {
+ stream.close();
+ } catch (IOException e) {}
}
@Override
--
Gitblit v1.10.0