// **********************************************************************
//
// Copyright (c) 2002
// IONA Technologies, Inc.
// Waltham, MA, USA
//
// All Rights Reserved
//
// **********************************************************************

#ifndef OB_LOGGER_IDL
#define OB_LOGGER_IDL

#pragma prefix "ooc.com"

module OB
{

/**
 *
 * The ORBacus message logger interface.
 *
 **/
local interface Logger
{
    /**
     *
     * Log an informational message.
     *
     * @param msg The message.
     *
     **/
    void info(in string msg);

   /**
     *
     * Log an error message.
     *
     * @param msg The error message.
     *
     **/
    void error(in string msg);

    /**
     *
     * Log a warning message.
     *
     * @param msg The warning message.
     *
     **/
    void warning(in string msg);

    /**
     *
     * Log a trace message.
     *
     * @param category The trace category.
     *
     * @param msg The trace message.
     *
     **/
    void trace(in string category, in string msg);
};

/**
 *
 * The ORBacus message logger interface with wide string support.
 *
 **/
local interface WLogger : Logger
{
     /**
     *
     * Log a wide string informational message.
     *
     * @param msg The message.
     *
     **/
    void winfo(in wstring msg);

    /**
     *
     * Log an wide string error message.
     *
     * @param msg The error message.
     *
     **/
    void werror(in wstring msg);

    /**
     *
     * Log a wide string warning message.
     *
     * @param msg The warning message.
     *
     **/
    void wwarning(in wstring msg);

    /**
     *
     * Log a wide string trace message.
     *
     * @param category The trace category.
     *
     * @param msg The trace message.
     *
     **/
    void wtrace(in wstring category, in wstring msg);
};

}; // End module OB

#endif
