Package com.opengamma.security.auditlog

Source Code of com.opengamma.security.auditlog.DistributedAuditLogger

/**
* Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.security.auditlog;

import java.util.Date;

import org.fudgemsg.FudgeContext;
import org.fudgemsg.FudgeMsg;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.opengamma.transport.FudgeMessageSender;
import com.opengamma.util.ArgumentChecker;

/**
* An {@code AuditLogger} that sends log messages
* to a remote destination via Fudge. The messages are consumed by {@link DistributedAuditLoggerServer}.
*/
public class DistributedAuditLogger extends AbstractAuditLogger {
 
  private static final Logger s_logger = LoggerFactory.getLogger(DistributedAuditLogger.class);
  private final FudgeMessageSender _msgSender;
  private final FudgeContext _fudgeContext;
 
  public DistributedAuditLogger(FudgeMessageSender msgSender) {
    this(getDefaultOriginatingSystem(), msgSender);   
  }
 
  public DistributedAuditLogger(String originatingSystem, FudgeMessageSender msgSender) {
    this(originatingSystem, msgSender, new FudgeContext());
  }
 
  public DistributedAuditLogger(String originatingSystem, FudgeMessageSender msgSender, FudgeContext fudgeContext) {
    super(originatingSystem);
    ArgumentChecker.notNull(msgSender, "Message Sender");
    ArgumentChecker.notNull(fudgeContext, "Fudge Context");
    _msgSender = msgSender;
    _fudgeContext = fudgeContext;
  }

  @Override
  public void log(String user, String originatingSystem, String object, String operation, String description, boolean success) {
    AuditLogEntry auditLogEntry = new AuditLogEntry(user, originatingSystem, object, operation, description, success, new Date());
    s_logger.info("Sending message: " + auditLogEntry.toString());
    FudgeMsg logMessage = auditLogEntry.toFudgeMsg(_fudgeContext);
    _msgSender.send(logMessage);
  }
 
}
TOP

Related Classes of com.opengamma.security.auditlog.DistributedAuditLogger

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.