From 81d36161ce5367fa7aa9a5d99dc8b80eacfa7cdf Mon Sep 17 00:00:00 2001
From: Nicolas Capponi <nicolas.capponi@forgerock.com>
Date: Fri, 24 Jan 2014 14:43:46 +0000
Subject: [PATCH] Checkpoint commit for OPENDJ-1288 : Migrate I18n and logging support to i18n framework and SLF4J
---
opendj3-server-dev/src/server/org/opends/server/loggers/TextErrorLogPublisher.java | 123 ++++++++++++++++++++++-------------------
1 files changed, 66 insertions(+), 57 deletions(-)
diff --git a/opendj3-server-dev/src/server/org/opends/server/loggers/TextErrorLogPublisher.java b/opendj3-server-dev/src/server/org/opends/server/loggers/TextErrorLogPublisher.java
index edd219b..cea9b29 100644
--- a/opendj3-server-dev/src/server/org/opends/server/loggers/TextErrorLogPublisher.java
+++ b/opendj3-server-dev/src/server/org/opends/server/loggers/TextErrorLogPublisher.java
@@ -22,16 +22,25 @@
*
*
* Copyright 2006-2009 Sun Microsystems, Inc.
- * Portions copyright 2012-2013 ForgeRock AS.
+ * Portions Copyright 2012-2014 ForgeRock AS.
*/
package org.opends.server.loggers;
+import static org.opends.messages.ConfigMessages.*;
+import static org.opends.messages.LoggerMessages.*;
+import static org.opends.server.util.ServerConstants.*;
+import static org.opends.server.util.StaticUtils.*;
+
import java.io.File;
import java.io.IOException;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.StringTokenizer;
-import org.opends.messages.Category;
-import org.opends.messages.Message;
+import org.forgerock.i18n.LocalizableMessage;
import org.opends.messages.Severity;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.std.meta.ErrorLogPublisherCfgDefn;
@@ -39,14 +48,16 @@
import org.opends.server.api.ErrorLogPublisher;
import org.opends.server.config.ConfigException;
import org.opends.server.core.DirectoryServer;
-import org.opends.server.types.*;
+import org.opends.server.core.ServerContext;
+import org.opends.server.types.ConfigChangeResult;
+import org.opends.server.types.DN;
+import org.opends.server.types.DirectoryException;
+import org.opends.server.types.FilePermission;
+import org.opends.server.types.InitializationException;
+import org.opends.server.types.ResultCode;
+import org.opends.server.util.StaticUtils;
import org.opends.server.util.TimeThread;
-import static org.opends.messages.ConfigMessages.*;
-import static org.opends.messages.LoggerMessages.*;
-import static org.opends.server.util.ServerConstants.*;
-import static org.opends.server.util.StaticUtils.*;
-
/**
* This class provides an implementation of an error log publisher.
*/
@@ -109,7 +120,7 @@
* {@inheritDoc}
*/
@Override
- public void initializeLogPublisher(FileBasedErrorLogPublisherCfg config)
+ public void initializeLogPublisher(FileBasedErrorLogPublisherCfg config, ServerContext serverContext)
throws ConfigException, InitializationException
{
File logFile = getFileForPath(config.getLogFile());
@@ -163,14 +174,14 @@
}
catch(DirectoryException e)
{
- Message message = ERR_CONFIG_LOGGING_CANNOT_CREATE_WRITER.get(
+ LocalizableMessage message = ERR_CONFIG_LOGGING_CANNOT_CREATE_WRITER.get(
config.dn().toString(), String.valueOf(e));
throw new InitializationException(message, e);
}
catch(IOException e)
{
- Message message = ERR_CONFIG_LOGGING_CANNOT_OPEN_FILE.get(
+ LocalizableMessage message = ERR_CONFIG_LOGGING_CANNOT_OPEN_FILE.get(
logFile.toString(), config.dn().toString(), String.valueOf(e));
throw new InitializationException(message, e);
@@ -220,17 +231,15 @@
int equalPos = overrideSeverity.indexOf('=');
if (equalPos < 0)
{
- Message msg =
+ LocalizableMessage msg =
WARN_ERROR_LOGGER_INVALID_OVERRIDE_SEVERITY.get(overrideSeverity);
throw new ConfigException(msg);
} else
{
- String categoryName = overrideSeverity.substring(0, equalPos);
- categoryName = categoryName.replace("-", "_").toUpperCase();
+ String category = overrideSeverity.substring(0, equalPos);
+ category = category.replace("-", "_").toUpperCase();
try
{
- Category category = Category.valueOf(categoryName);
-
Set<Severity> severities = new HashSet<Severity>();
StringTokenizer sevTokenizer =
new StringTokenizer(overrideSeverity.substring(equalPos+1), ",");
@@ -257,7 +266,7 @@
}
catch(Exception e)
{
- Message msg =
+ LocalizableMessage msg =
WARN_ERROR_LOGGER_INVALID_SEVERITY.get(severityName);
throw new ConfigException(msg);
}
@@ -267,7 +276,7 @@
}
catch(Exception e)
{
- Message msg = WARN_ERROR_LOGGER_INVALID_CATEGORY.get(categoryName);
+ LocalizableMessage msg = WARN_ERROR_LOGGER_INVALID_CATEGORY.get(category);
throw new ConfigException(msg);
}
}
@@ -286,7 +295,7 @@
*/
@Override()
public boolean isConfigurationAcceptable(
- FileBasedErrorLogPublisherCfg config, List<Message> unacceptableReasons)
+ FileBasedErrorLogPublisherCfg config, List<LocalizableMessage> unacceptableReasons)
{
return isConfigurationChangeAcceptable(config, unacceptableReasons);
}
@@ -296,7 +305,7 @@
*/
@Override
public boolean isConfigurationChangeAcceptable(
- FileBasedErrorLogPublisherCfg config, List<Message> unacceptableReasons)
+ FileBasedErrorLogPublisherCfg config, List<LocalizableMessage> unacceptableReasons)
{
// Make sure the permission is valid.
try
@@ -305,7 +314,7 @@
FilePermission.decodeUNIXMode(config.getLogFilePermissions());
if(!filePerm.isOwnerWritable())
{
- Message message = ERR_CONFIG_LOGGING_INSANE_MODE.get(
+ LocalizableMessage message = ERR_CONFIG_LOGGING_INSANE_MODE.get(
config.getLogFilePermissions());
unacceptableReasons.add(message);
return false;
@@ -313,7 +322,7 @@
}
catch(DirectoryException e)
{
- Message message = ERR_CONFIG_LOGGING_MODE_INVALID.get(
+ LocalizableMessage message = ERR_CONFIG_LOGGING_MODE_INVALID.get(
config.getLogFilePermissions(), String.valueOf(e));
unacceptableReasons.add(message);
return false;
@@ -326,24 +335,14 @@
int equalPos = overrideSeverity.indexOf('=');
if (equalPos < 0)
{
- Message msg = WARN_ERROR_LOGGER_INVALID_OVERRIDE_SEVERITY.get(
+ LocalizableMessage msg = WARN_ERROR_LOGGER_INVALID_OVERRIDE_SEVERITY.get(
overrideSeverity);
unacceptableReasons.add(msg);
return false;
} else
{
- String categoryName = overrideSeverity.substring(0, equalPos);
- categoryName = categoryName.replace("-", "_").toUpperCase();
- try
- {
- Category.valueOf(categoryName);
- }
- catch(Exception e)
- {
- Message msg = WARN_ERROR_LOGGER_INVALID_CATEGORY.get(categoryName);
- unacceptableReasons.add(msg);
- }
+ // No check on category because it can be any value
StringTokenizer sevTokenizer =
new StringTokenizer(overrideSeverity.substring(equalPos+1), ",");
@@ -359,7 +358,7 @@
}
catch(Exception e)
{
- Message msg =
+ LocalizableMessage msg =
WARN_ERROR_LOGGER_INVALID_SEVERITY.get(severityName);
unacceptableReasons.add(msg);
return false;
@@ -382,7 +381,7 @@
// Default result code.
ResultCode resultCode = ResultCode.SUCCESS;
boolean adminActionRequired = false;
- List<Message> messages = new ArrayList<Message>();
+ List<LocalizableMessage> messages = new ArrayList<LocalizableMessage>();
Set<ErrorLogPublisherCfgDefn.DefaultSeverity> defSevs =
config.getDefaultSeverity();
@@ -429,18 +428,16 @@
int equalPos = overrideSeverity.indexOf('=');
if (equalPos < 0)
{
- Message msg = WARN_ERROR_LOGGER_INVALID_OVERRIDE_SEVERITY.get(
+ LocalizableMessage msg = WARN_ERROR_LOGGER_INVALID_OVERRIDE_SEVERITY.get(
overrideSeverity);
resultCode = DirectoryServer.getServerErrorResultCode();
messages.add(msg);
} else
{
- String categoryName = overrideSeverity.substring(0, equalPos);
- categoryName = categoryName.replace("-", "_").toUpperCase();
+ String category = overrideSeverity.substring(0, equalPos);
+ category = category.replace("-", "_").toUpperCase();
try
{
- Category category = Category.valueOf(categoryName);
-
Set<Severity> severities = new HashSet<Severity>();
StringTokenizer sevTokenizer =
new StringTokenizer(overrideSeverity.substring(equalPos+1), ",");
@@ -467,7 +464,7 @@
}
catch(Exception e)
{
- Message msg =
+ LocalizableMessage msg =
WARN_ERROR_LOGGER_INVALID_SEVERITY.get(severityName);
throw new ConfigException(msg);
}
@@ -477,7 +474,7 @@
}
catch(Exception e)
{
- Message msg = WARN_ERROR_LOGGER_INVALID_CATEGORY.get(categoryName);
+ LocalizableMessage msg = WARN_ERROR_LOGGER_INVALID_CATEGORY.get(category);
resultCode = DirectoryServer.getServerErrorResultCode();
messages.add(msg);
}
@@ -562,7 +559,7 @@
}
catch(Exception e)
{
- Message message = ERR_CONFIG_LOGGING_CANNOT_CREATE_WRITER.get(
+ LocalizableMessage message = ERR_CONFIG_LOGGING_CANNOT_CREATE_WRITER.get(
config.dn().toString(),
stackTraceToSingleLineString(e));
resultCode = DirectoryServer.getServerErrorResultCode();
@@ -588,16 +585,10 @@
}
}
-
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
- public void logError(Message message)
+ public void log(String category, Severity severity, LocalizableMessage message, Throwable exception)
{
- Severity severity = message.getDescriptor().getSeverity();
- Category category = message.getDescriptor().getCategory();
- int msgId = message.getDescriptor().getId();
Set<Severity> severities = definedSeverities.get(category);
if(severities == null)
{
@@ -610,14 +601,32 @@
sb.append("[");
sb.append(TimeThread.getLocalTime());
sb.append("] category=").append(category).
- append(" severity=").append(severity).
- append(" msgID=").append(msgId).
- append(" msg=").append(message);
+ append(" severity=").append(severity).
+ append(" msgID=").append(message.resourceName()).
+ append("-").append(message.ordinal()).
+ append(" msg=").append(message);
+ if (exception != null)
+ {
+ sb.append(" exception=").append(
+ StaticUtils.stackTraceToSingleLineString(exception));
+ }
writer.writeRecord(sb.toString());
}
}
+ /** {@inheritDoc} */
+ @Override
+ public boolean isEnabledFor(String category, Severity severity)
+ {
+ Set<Severity> severities = definedSeverities.get(category);
+ if (severities == null)
+ {
+ severities = defaultSeverities;
+ }
+ return severities.contains(severity);
+ }
+
/**
* {@inheritDoc}
*/
--
Gitblit v1.10.0