| | |
| | | import java.util.StringTokenizer; |
| | | |
| | | import org.forgerock.i18n.LocalizableMessage; |
| | | import org.forgerock.opendj.config.server.ConfigException; |
| | | import org.forgerock.opendj.ldap.ResultCode; |
| | | import org.opends.messages.Severity; |
| | | import org.opends.server.admin.server.ConfigurationChangeListener; |
| | | import org.opends.server.admin.std.meta.ErrorLogPublisherCfgDefn; |
| | | import org.opends.server.admin.std.server.FileBasedErrorLogPublisherCfg; |
| | | import org.forgerock.opendj.config.server.ConfigException; |
| | | import org.opends.server.core.DirectoryServer; |
| | | import org.opends.server.core.ServerContext; |
| | | import org.opends.server.types.ConfigChangeResult; |
| | |
| | | import org.opends.server.types.DirectoryException; |
| | | import org.opends.server.types.FilePermission; |
| | | import org.opends.server.types.InitializationException; |
| | | import org.forgerock.opendj.ldap.ResultCode; |
| | | import org.opends.server.util.StaticUtils; |
| | | import org.opends.server.util.TimeThread; |
| | | |
| | |
| | | |
| | | |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public void initializeLogPublisher(FileBasedErrorLogPublisherCfg config, ServerContext serverContext) |
| | | throws ConfigException, InitializationException |
| | |
| | | boolean writerAutoFlush = |
| | | config.isAutoFlush() && !config.isAsynchronous(); |
| | | |
| | | MultifileTextWriter writer = |
| | | new MultifileTextWriter("Multifile Text Writer for " + |
| | | config.dn().toString(), |
| | | MultifileTextWriter writer = new MultifileTextWriter("Multifile Text Writer for " + config.dn(), |
| | | config.getTimeInterval(), |
| | | fnPolicy, |
| | | perm, |
| | |
| | | |
| | | if(config.isAsynchronous()) |
| | | { |
| | | this.writer = new AsynchronousTextWriter( |
| | | "Asynchronous Text Writer for " + |
| | | config.dn().toString(), |
| | | this.writer = new AsynchronousTextWriter("Asynchronous Text Writer for " + config.dn(), |
| | | config.getQueueSize(), config.isAutoFlush(), writer); |
| | | } |
| | | else |
| | |
| | | ERR_CONFIG_LOGGING_CANNOT_OPEN_FILE.get(logFile, config.dn(), e), e); |
| | | } |
| | | |
| | | Set<ErrorLogPublisherCfgDefn.DefaultSeverity> defSevs = |
| | | config.getDefaultSeverity(); |
| | | if(defSevs.isEmpty()) |
| | | { |
| | | defaultSeverities.add(Severity.ERROR); |
| | | defaultSeverities.add(Severity.WARNING); |
| | | } else |
| | | { |
| | | for(ErrorLogPublisherCfgDefn.DefaultSeverity defSev : defSevs) |
| | | { |
| | | if(defSev.toString().equalsIgnoreCase(LOG_SEVERITY_ALL)) |
| | | { |
| | | defaultSeverities.add(Severity.ERROR); |
| | | defaultSeverities.add(Severity.WARNING); |
| | | defaultSeverities.add(Severity.NOTICE); |
| | | defaultSeverities.add(Severity.INFORMATION); |
| | | } |
| | | else if (defSev.toString().equalsIgnoreCase(LOG_SEVERITY_NONE)) |
| | | { |
| | | // don't add any severity |
| | | } |
| | | else |
| | | { |
| | | Severity errorSeverity = |
| | | Severity.parseString(defSev.name()); |
| | | if(errorSeverity != null) |
| | | { |
| | | defaultSeverities.add(errorSeverity); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | setDefaultSeverities(config.getDefaultSeverity()); |
| | | |
| | | for(String overrideSeverity : config.getOverrideSeverity()) |
| | | { |
| | |
| | | { |
| | | String severityName = sevTokenizer.nextToken(); |
| | | severityName = severityName.replace("-", "_").toUpperCase(); |
| | | if(severityName.equalsIgnoreCase(LOG_SEVERITY_ALL)) |
| | | if(LOG_SEVERITY_ALL.equalsIgnoreCase(severityName)) |
| | | { |
| | | severities.add(Severity.ERROR); |
| | | severities.add(Severity.WARNING); |
| | |
| | | { |
| | | try |
| | | { |
| | | Severity severity = Severity.parseString(severityName); |
| | | severities.add(severity); |
| | | severities.add(Severity.parseString(severityName)); |
| | | } |
| | | catch(Exception e) |
| | | { |
| | |
| | | |
| | | |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | /** {@inheritDoc} */ |
| | | @Override() |
| | | public boolean isConfigurationAcceptable( |
| | | FileBasedErrorLogPublisherCfg config, List<LocalizableMessage> unacceptableReasons) |
| | |
| | | return isConfigurationChangeAcceptable(config, unacceptableReasons); |
| | | } |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public boolean isConfigurationChangeAcceptable( |
| | | FileBasedErrorLogPublisherCfg config, List<LocalizableMessage> unacceptableReasons) |
| | |
| | | { |
| | | String severityName = sevTokenizer.nextToken(); |
| | | severityName = severityName.replace("-", "_").toUpperCase(); |
| | | if(!severityName.equalsIgnoreCase(LOG_SEVERITY_ALL)) |
| | | if(!LOG_SEVERITY_ALL.equalsIgnoreCase(severityName)) |
| | | { |
| | | try |
| | | { |
| | |
| | | return true; |
| | | } |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public ConfigChangeResult applyConfigurationChange( |
| | | FileBasedErrorLogPublisherCfg config) |
| | |
| | | boolean adminActionRequired = false; |
| | | List<LocalizableMessage> messages = new ArrayList<LocalizableMessage>(); |
| | | |
| | | Set<ErrorLogPublisherCfgDefn.DefaultSeverity> defSevs = |
| | | config.getDefaultSeverity(); |
| | | defaultSeverities.clear(); |
| | | if(defSevs.isEmpty()) |
| | | { |
| | | defaultSeverities.add(Severity.ERROR); |
| | | defaultSeverities.add(Severity.WARNING); |
| | | } else |
| | | { |
| | | for(ErrorLogPublisherCfgDefn.DefaultSeverity defSev : defSevs) |
| | | { |
| | | if(defSev.toString().equalsIgnoreCase(LOG_SEVERITY_ALL)) |
| | | { |
| | | defaultSeverities.add(Severity.ERROR); |
| | | defaultSeverities.add(Severity.WARNING); |
| | | defaultSeverities.add(Severity.INFORMATION); |
| | | defaultSeverities.add(Severity.NOTICE); |
| | | } |
| | | else if (defSev.toString().equalsIgnoreCase(LOG_SEVERITY_NONE)) |
| | | { |
| | | // don't add any severity |
| | | } |
| | | else |
| | | { |
| | | Severity errorSeverity = Severity.parseString(defSev.name()); |
| | | if(errorSeverity != null) |
| | | { |
| | | defaultSeverities.add(errorSeverity); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | setDefaultSeverities(config.getDefaultSeverity()); |
| | | |
| | | definedSeverities.clear(); |
| | | for(String overrideSeverity : config.getOverrideSeverity()) |
| | |
| | | { |
| | | String severityName = sevTokenizer.nextToken(); |
| | | severityName = severityName.replace("-", "_").toUpperCase(); |
| | | if(severityName.equalsIgnoreCase(LOG_SEVERITY_ALL)) |
| | | if(LOG_SEVERITY_ALL.equalsIgnoreCase(severityName)) |
| | | { |
| | | severities.add(Severity.ERROR); |
| | | severities.add(Severity.INFORMATION); |
| | |
| | | { |
| | | try |
| | | { |
| | | Severity severity = Severity.parseString(severityName); |
| | | severities.add(severity); |
| | | severities.add(Severity.parseString(severityName)); |
| | | } |
| | | catch(Exception e) |
| | | { |
| | |
| | | if(writer instanceof AsynchronousTextWriter && !config.isAsynchronous()) |
| | | { |
| | | // The asynchronous setting is being turned off. |
| | | AsynchronousTextWriter asyncWriter = ((AsynchronousTextWriter)writer); |
| | | AsynchronousTextWriter asyncWriter = (AsynchronousTextWriter)writer; |
| | | writer = mfWriter; |
| | | asyncWriter.shutdown(false); |
| | | } |
| | |
| | | config.isAsynchronous()) |
| | | { |
| | | // The asynchronous setting is being turned on. |
| | | writer = new AsynchronousTextWriter("Asynchronous Text Writer for " + |
| | | config.dn().toString(), config.getQueueSize(), |
| | | config.isAutoFlush(), |
| | | mfWriter); |
| | | writer = new AsynchronousTextWriter("Asynchronous Text Writer for " + config.dn(), |
| | | config.getQueueSize(), config.isAutoFlush(), mfWriter); |
| | | } |
| | | |
| | | if (currentConfig.isAsynchronous() |
| | |
| | | return new ConfigChangeResult(resultCode, adminActionRequired, messages); |
| | | } |
| | | |
| | | private void setDefaultSeverities(Set<ErrorLogPublisherCfgDefn.DefaultSeverity> defSevs) |
| | | { |
| | | defaultSeverities.clear(); |
| | | if (defSevs.isEmpty()) |
| | | { |
| | | defaultSeverities.add(Severity.ERROR); |
| | | defaultSeverities.add(Severity.WARNING); |
| | | } |
| | | else |
| | | { |
| | | for (ErrorLogPublisherCfgDefn.DefaultSeverity defSev : defSevs) |
| | | { |
| | | String defaultSeverity = defSev.toString(); |
| | | if (LOG_SEVERITY_ALL.equalsIgnoreCase(defaultSeverity)) |
| | | { |
| | | defaultSeverities.add(Severity.ERROR); |
| | | defaultSeverities.add(Severity.WARNING); |
| | | defaultSeverities.add(Severity.INFORMATION); |
| | | defaultSeverities.add(Severity.NOTICE); |
| | | } |
| | | else if (LOG_SEVERITY_NONE.equalsIgnoreCase(defaultSeverity)) |
| | | { |
| | | // don't add any severity |
| | | } |
| | | else |
| | | { |
| | | Severity errorSeverity = Severity.parseString(defSev.name()); |
| | | if (errorSeverity != null) |
| | | { |
| | | defaultSeverities.add(errorSeverity); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public void close() |
| | | { |
| | |
| | | return severities.contains(severity); |
| | | } |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | /** {@inheritDoc} */ |
| | | @Override |
| | | public DN getDN() |
| | | { |