
########
DebugLog
########


****
NAME
****


Kernel::System::GenericInterface::DebugLog - log interface for generic interface


***********
DESCRIPTION
***********


All log functions.


****************
PUBLIC INTERFACE
****************


new()
=====


create a debug log object. Do not use it directly, instead use:


.. code-block:: perl

     my $DebugLogObject = $Kernel::OM->Get('Kernel::System::GenericInterface::DebugLog');



LogAdd()
========


add a communication bit to database
if we don't already have a communication chain, create it

returns 1 on success or undef on error


.. code-block:: perl

     my $Success = $DebugLogObject->LogAdd(
         CommunicationID   => '6f1ed002ab5595859014ebf0951522d9',
         CommunicationType => 'Provider',        # 'Provider' or 'Requester'
         Data              => 'additional data', # optional
         DebugLevel        => 'info',            # 'debug', 'info', 'notice', 'error'
         RemoteIP          => '192.168.0.1',     # optional, must be valid IPv4 or IPv6 address
         Summary           => 'description of log entry',
         WebserviceID      => 1,
     );



LogGet()
========


get communication chain data


.. code-block:: perl

     my $LogData = $DebugLogObject->LogGet(
         CommunicationID => '6f1ed002ab5595859014ebf0951522d9',
     );
 
     $LogData = {
         CommunicationID   => '6f1ed002ab5595859014ebf0951522d9',
         CommunicationType => 'Provider',
         Created           => '2011-02-15 16:47:28',
         LogID             => 1,
         RemoteIP          => '192.168.0.1', # optional
         WebserviceID      => 1,
     };



LogGetWithData()
================


get all individual entries for a communication chain


.. code-block:: perl

     my $LogData = $DebugLogObject->LogGetWithData(
         CommunicationID => '6f1ed002ab5595859014ebf0951522d9',
     );
 
     $LogData = {
         CommunicationID   => '6f1ed002ab5595859014ebf0951522d9',
         CommunicationType => 'Provider',
         Created           => '2011-02-15 16:47:28',
         LogID             => 1,
         RemoteIP          => '192.168.0.1', # optional
         WebserviceID      => 1,
         Data              => [
             {
                 Created    => '2011-02-15 17:00:06',
                 Data       => 'some logging specific data or structure', # optional
                 DebugLevel => 'info',
                 Summary    => 'a log bit',
             },
             # ...
         ],
     };



LogDelete()
===========


delete a complete communication chain

returns 1 if successful or undef otherwise


.. code-block:: perl

     my $Success = $DebugLogObject->LogDelete(
         NoErrorIfEmpty  => 1,                                  # optional
         CommunicationID => '6f1ed002ab5595859014ebf0951522d9', # optional
         WebserviceID    => 1,                                  # optional
                                                                # exactly one id parameter required
     );



LogSearch()
===========


search for log chains based on several criteria
when the parameter 'WithData' is set, the complete communication chains will be returned


.. code-block:: perl

     my $LogData = $DebugLogObject->LogSearch(
         CommunicationID   => '6f1ed002ab5595859014ebf0951522d9', # optional
         CommunicationType => 'Provider',     # optional, 'Provider' or 'Requester'
         CreatedAtOrAfter  => '2011-01-01 00:00:00', # optional
         CreatedAtOrBefore => '2011-12-31 23:59:59', # optional
         Limit             => 1000, # optional, default 100
         RemoteIP          => '192.168.0.1', # optional, must be valid IPv4 or IPv6 address
         WebserviceID      => 1, # optional
         WithData          => 0, # optional
         Sort              => 'ASC', # optional. 'ASC' (default) or 'DESC'
     );
 
     $LogData = [
         {
             CommunicationID   => '6f1ed002ab5595859014ebf0951522d9',
             CommunicationType => 'Provider',
             Created           => '2011-02-15 16:47:28',
             LogID             => 1,
             RemoteIP          => '192.168.0.1', # optional
             WebserviceID      => 1,
             Data              => [ # only when 'WithData' is set
                 {
                     Created    => '2011-02-15 17:00:06',
                     Data       => 'some logging specific data or structure', # optional
                     DebugLevel => 'info',
                     Summary    => 'a log bit',
                 },
                 # ...
             ],
         },
         # ...
     ];



LogCleanup()
============


removes all log entries (including content) from a given time and before.

returns 1 if successful or undef otherwise


.. code-block:: perl

     my $Success = $DebugLogObject->LogCleanup(
         CreatedAtOrBefore => '2011-12-31 23:59:59',
     );



_LogAddChain()
==============


establish communication chain in database

returns 1 on success or undef on error


.. code-block:: perl

     my $Success = $DebugLogObject->_LogAddChain(
         CommunicationID   => '6f1ed002ab5595859014ebf0951522d9',
         CommunicationType => 'Provider',     # 'Provider' or 'Requester'
         RemoteIP          => '192.168.0.1', # optional, must be valid IPv4 or IPv6 address
         WebserviceID      => 1,
     );





