<?xml version="1.0"?>
<doc>
    <assembly>
        <name>AWS.Logger.Core</name>
    </assembly>
    <members>
        <member name="T:AWS.Logger.AWSLoggerConfig">
            <summary>
            This class contains all the configuration options for logging messages to AWS. As messages from the application are 
            sent to the logger they are queued up in a batch. The batch will be sent when either BatchPushInterval or BatchSizeInBytes
            are exceeded.
            
            <para>
            AWS Credentials are determined using the following steps.
            1) If the Credentials property is set
            2) If the Profile property is set and the can be found
            3) Use the AWS SDK for .NET fall back mechanism to find enviroment credentials.
            </para>
            </summary>
        </member>
        <member name="P:AWS.Logger.AWSLoggerConfig.LogGroup">
            <summary>
            Gets and sets the LogGroup property. This is the name of the CloudWatch Logs group where 
            streams will be created and log messages written to.
            </summary>
        </member>
        <member name="P:AWS.Logger.AWSLoggerConfig.Profile">
            <summary>
            Gets and sets the Profile property. The profile is used to look up AWS credentials in the profile store.
            <para>
            For understanding how credentials are determine view the top level documentation for AWSLoggerConfig class.
            </para>
            </summary>
        </member>
        <member name="P:AWS.Logger.AWSLoggerConfig.ProfilesLocation">
            <summary>
            Gets and sets the ProfilesLocation property. If this is not set the default profile store is used by the AWS SDK for .NET 
            to look up credentials. This is most commonly used when you are running an application of on-priemse under a service account.
            <para>
            For understanding how credentials are determine view the top level documentation for AWSLoggerConfig class.
            </para>
            </summary>
        </member>
        <member name="P:AWS.Logger.AWSLoggerConfig.Credentials">
            <summary>
            Gets and sets the Credentials property. These are the AWS credentials used by the AWS SDK for .NET to make service calls.
            <para>
            For understanding how credentials are determine view the top level documentation for AWSLoggerConfig class.
            </para>
            </summary>
        </member>
        <member name="P:AWS.Logger.AWSLoggerConfig.Region">
            <summary>
            Gets and sets the Region property. This is the AWS Region that will be used for CloudWatch Logs. If this is not
            the AWS SDK for .NET will use its fall back logic to try and determine the region through environment variables and EC2 instance metadata.
            If the Region is not set and no region is found by the SDK's fall back logic then an exception will be thrown.
            </summary>
        </member>
        <member name="P:AWS.Logger.AWSLoggerConfig.BatchPushInterval">
            <summary>
            Gets and sets the BatchPushInterval property. For performance the log messages are sent to AWS in batch sizes. BatchPushInterval 
            dictates the frequency of when batches are sent. If either BatchPushInterval or BatchSizeInBytes are exceeded the batch will be sent.
            <para>
            The default is 3 seconds.
            </para>
            </summary>
        </member>
        <member name="P:AWS.Logger.AWSLoggerConfig.BatchSizeInBytes">
            <summary>
            Gets and sets the BatchSizeInBytes property. For performance the log messages are sent to AWS in batch sizes. BatchSizeInBytes 
            dictates the total size of the batch in bytes when batches are sent. If either BatchPushInterval or BatchSizeInBytes are exceeded the batch will be sent.
            <para>
            The default is 100 Kilobytes.
            </para>
            </summary>
        </member>
        <member name="P:AWS.Logger.AWSLoggerConfig.MaxQueuedMessages">
            <summary>
            Gets and sets the MaxQueuedMessages property. This specifies the maximum number of log messages that could be stored in-memory. MaxQueuedMessages 
            dictates the total number of log messages that can be stored in-memory. If this exceeded, incoming log messages will be dropped.
            <para>
            The default is 10000.
            </para>
            </summary>
        </member>
        <member name="F:AWS.Logger.AWSLoggerConfig.MonitorSleepTime">
            <summary>
            Internal MonitorSleepTime property. This specifies the timespan after which the Monitor wakes up. MonitorSleepTime 
            dictates the timespan after which the Monitor checks the size and time constarint on the batch log event and the existing in-memory buffer for new messages. 
            <para>
            The value is 500 Milliseconds.
            </para>
            </summary>
        </member>
        <member name="M:AWS.Logger.AWSLoggerConfig.#ctor">
            <summary>
            Default Constructor
            </summary>
        </member>
        <member name="M:AWS.Logger.AWSLoggerConfig.#ctor(System.String)">
            <summary>
            Construct instance and sets the LogGroup
            </summary>
            <param name="logGroup">The CloudWatch Logs log group.</param>
        </member>
        <member name="P:AWS.Logger.AWSLoggerConfig.LogStreamNameSuffix">
            <summary>
            Gets and sets the LogStreamNameSuffix property. The LogStreamName consists of an optional user-defined LogStreamNamePrefix (that can be set here)
            followed by a DateTimeStamp as the prefix, and a user defined suffix value
            The LogstreamName then follows the pattern '[LogStreamNamePrefix]-[DateTime.Now.ToString("yyyy/MM/ddTHH.mm.ss")]-[LogStreamNameSuffix]'
            <para>
            The default is new a Guid.
            </para>
            </summary>
        </member>
        <member name="P:AWS.Logger.AWSLoggerConfig.LogStreamNamePrefix">
            <summary>
            Gets and sets the LogStreamNamePrefix property. The LogStreamName consists of an optional user-defined LogStreamNamePrefix (that can be set here)
            followed by a DateTimeStamp as the prefix, and a user defined suffix value
            The LogstreamName then follows the pattern '[LogStreamNamePrefix]-[DateTime.Now.ToString("yyyy/MM/ddTHH.mm.ss")]-[LogStreamNameSuffix]'
            <para>
            The default is an empty string.
            </para>
            </summary>
        </member>
        <member name="P:AWS.Logger.AWSLoggerConfig.LibraryLogFileName">
            <summary>
            Gets and sets the LibraryLogFileName property. This is the name of the file into which errors from the AWS.Logger.Core library will be wriiten into.
            <para>
            The default is "aws-logger-errors.txt".
            </para>
            </summary>
        </member>
        <member name="T:AWS.Logger.Core.AWSLoggerCore">
            <summary>
            Sends LogEvent messages to CloudWatch Logs
            </summary>
        </member>
        <member name="T:AWS.Logger.Core.AWSLoggerCore.LogLibraryEventArgs">
            <summary>
            Alert details from CloudWatch Log Engine
            </summary>
        </member>
        <member name="P:AWS.Logger.Core.AWSLoggerCore.LogLibraryEventArgs.Exception">
            <summary>
            Exception Details returned
            </summary>
        </member>
        <member name="P:AWS.Logger.Core.AWSLoggerCore.LogLibraryEventArgs.ServiceUrl">
            <summary>
            Service EndPoint Url involved
            </summary>
        </member>
        <member name="E:AWS.Logger.Core.AWSLoggerCore.LogLibraryAlert">
            <summary>
            Event Notification on alerts from the CloudWatch Log Engine
            </summary>
        </member>
        <member name="M:AWS.Logger.Core.AWSLoggerCore.#ctor(AWS.Logger.AWSLoggerConfig,System.String)">
            <summary>
            Construct an instance of AWSLoggerCore
            </summary>
            <param name="config">Configuration options for logging messages to AWS</param>
            <param name="logType">Logging Provider Name to include in UserAgentHeader</param>
        </member>
        <member name="M:AWS.Logger.Core.AWSLoggerCore.Close">
            <inheritdoc />
        </member>
        <member name="M:AWS.Logger.Core.AWSLoggerCore.Flush">
            <inheritdoc />
        </member>
        <member name="M:AWS.Logger.Core.AWSLoggerCore.AddMessage(System.String)">
            <summary>
            A Concurrent Queue is used to store the messages from 
            the logger
            </summary>
            <param name="rawMessage"></param>
        </member>
        <member name="M:AWS.Logger.Core.AWSLoggerCore.Finalize">
            <summary>
            Finalizer to ensure shutdown when forgetting to dispose
            </summary>
        </member>
        <member name="M:AWS.Logger.Core.AWSLoggerCore.StartMonitor">
            <summary>
            Kicks off the Poller Thread to keep tabs on the PutLogEvent request and the
            Concurrent Queue
            </summary>
        </member>
        <member name="M:AWS.Logger.Core.AWSLoggerCore.Monitor(System.Threading.CancellationToken)">
            <summary>
            Patrolling thread. keeps tab on the PutLogEvent request and the
            Concurrent Queue
            </summary>
        </member>
        <member name="M:AWS.Logger.Core.AWSLoggerCore.SendMessages(System.Threading.CancellationToken)">
            <summary>
            Method to transmit the PutLogEvent Request
            </summary>
            <param name="token"></param>
            <returns></returns>
        </member>
        <member name="M:AWS.Logger.Core.AWSLoggerCore.LogEventTransmissionSetup(System.Threading.CancellationToken)">
            <summary>
            Creates and Allocates resources for message trasnmission
            </summary>
            <returns></returns>
        </member>
        <member name="M:AWS.Logger.Core.AWSLoggerCore.GenerateStreamName(AWS.Logger.IAWSLoggerConfig)">
            <summary>
            Generate a logstream name
            </summary>
            <returns>logstream name that ALWAYS includes a unique date-based segment</returns>
        </member>
        <member name="M:AWS.Logger.Core.AWSLoggerCore.BreakupMessage(System.String)">
            <summary>
            Break up the message into max parts of 256K.
            </summary>
            <param name="message"></param>
            <returns></returns>
        </member>
        <member name="T:AWS.Logger.Core.AWSLoggerCore.LogEventBatch">
            <summary>
            Class to handle PutLogEvent request and associated parameters. 
            Also has the requisite checks to determine when the object is ready for Transmission.
            </summary>
        </member>
        <member name="M:AWS.Logger.Core.AWSLoggerCore.LogLibraryError(System.Exception,System.String)">
            <summary>
            Write Exception details to the file specified with the filename
            </summary>
        </member>
        <member name="T:AWS.Logger.Core.IAWSLoggerCore">
            <summary>
            Interface for sending messages to CloudWatch Logs
            </summary>
        </member>
        <member name="M:AWS.Logger.Core.IAWSLoggerCore.Flush">
            <summary>
            Flushes all pending messages
            </summary>
        </member>
        <member name="M:AWS.Logger.Core.IAWSLoggerCore.Close">
            <summary>
            Flushes and Closes the background task
            </summary>
        </member>
        <member name="M:AWS.Logger.Core.IAWSLoggerCore.AddMessage(System.String)">
            <summary>
            Sends message to CloudWatch Logs
            </summary>
            <param name="message"></param>
        </member>
        <member name="M:AWS.Logger.Core.IAWSLoggerCore.StartMonitor">
            <summary>
            Start background task for sending messages to CloudWatch Logs
            </summary>
        </member>
        <member name="T:AWS.Logger.IAWSLoggerConfig">
            <summary>
            Configuration options for logging messages to AWS CloudWatch Logs
            </summary>
        </member>
        <member name="P:AWS.Logger.IAWSLoggerConfig.LogGroup">
            <summary>
            Gets the LogGroup property. This is the name of the CloudWatch Logs group where 
            streams will be created and log messages written to.
            </summary>
        </member>
        <member name="P:AWS.Logger.IAWSLoggerConfig.Profile">
            <summary>
            Gets the Profile property. The profile is used to look up AWS credentials in the profile store.
            <para>
            For understanding how credentials are determine view the top level documentation for AWSLoggerConfig class.
            </para>
            </summary>
        </member>
        <member name="P:AWS.Logger.IAWSLoggerConfig.ProfilesLocation">
            <summary>
            Gets the ProfilesLocation property. If this is not set the default profile store is used by the AWS SDK for .NET 
            to look up credentials. This is most commonly used when you are running an application of on-priemse under a service account.
            <para>
            For understanding how credentials are determine view the top level documentation for AWSLoggerConfig class.
            </para>
            </summary>
        </member>
        <member name="P:AWS.Logger.IAWSLoggerConfig.Credentials">
            <summary>
            Gets the Credentials property. These are the AWS credentials used by the AWS SDK for .NET to make service calls.
            <para>
            For understanding how credentials are determine view the top level documentation for AWSLoggerConfig class.
            </para>
            </summary>
        </member>
        <member name="P:AWS.Logger.IAWSLoggerConfig.Region">
            <summary>
            Gets the Region property. This is the AWS Region that will be used for CloudWatch Logs. If this is not
            the AWS SDK for .NET will use its fall back logic to try and determine the region through environment variables and EC2 instance metadata.
            If the Region is not set and no region is found by the SDK's fall back logic then an exception will be thrown.
            </summary>
        </member>
        <member name="P:AWS.Logger.IAWSLoggerConfig.BatchPushInterval">
            <summary>
            Gets the BatchPushInterval property. For performance the log messages are sent to AWS in batch sizes. BatchPushInterval 
            dictates the frequency of when batches are sent. If either BatchPushInterval or BatchSizeInBytes are exceeded the batch will be sent.
            <para>
            The default is 3 seconds.
            </para>
            </summary>
        </member>
        <member name="P:AWS.Logger.IAWSLoggerConfig.BatchSizeInBytes">
            <summary>
            Gets the BatchSizeInBytes property. For performance the log messages are sent to AWS in batch sizes. BatchSizeInBytes 
            dictates the total size of the batch in bytes when batches are sent. If either BatchPushInterval or BatchSizeInBytes are exceeded the batch will be sent.
            <para>
            The default is 100 Kilobytes.
            </para>
            </summary>
        </member>
        <member name="P:AWS.Logger.IAWSLoggerConfig.MaxQueuedMessages">
            <summary>
            Gets and sets the MaxQueuedMessages property. This specifies the maximum number of log messages that could be stored in-memory. MaxQueuedMessages 
            dictates the total number of log messages that can be stored in-memory. If this exceeded, incoming log messages will be dropped.
            <para>
            The default is 10000.
            </para>
            </summary>
        </member>
        <member name="P:AWS.Logger.IAWSLoggerConfig.LogStreamNameSuffix">
            <summary>
            Gets and sets the LogStreamNameSuffix property. The LogStreamName consists of an optional user-defined LogStreamNamePrefix (that can be set here)
            followed by a DateTimeStamp as the prefix, and a user defined suffix value
            The LogstreamName then follows the pattern '[LogStreamNamePrefix]-[DateTime.Now.ToString("yyyy/MM/ddTHH.mm.ss")]-[LogStreamNameSuffix]'
            <para>
            The default is new a Guid.
            </para>
            </summary>
        </member>
        <member name="P:AWS.Logger.IAWSLoggerConfig.LogStreamNamePrefix">
            <summary>
            Gets and sets the LogStreamNamePrefix property. The LogStreamName consists of an optional user-defined LogStreamNamePrefix (that can be set here)
            followed by a DateTimeStamp as the prefix, and a user defined suffix value
            The LogstreamName then follows the pattern '[LogStreamNamePrefix]-[DateTime.Now.ToString("yyyy/MM/ddTHH.mm.ss")]-[LogStreamNameSuffix]'
            <para>
            The default is an empty string.
            </para>
            </summary>
        </member>
        <member name="P:AWS.Logger.IAWSLoggerConfig.LibraryLogFileName">
            <summary>
            Gets and sets the LibraryLogFileName property. This is the name of the file into which errors from the AWS.Logger.Core library will be wriiten into.
            <para>
            The default is going to "aws-logger-errors.txt".
            </para>
            </summary>
        </member>
    </members>
</doc>
