145 lines
5.1 KiB
C
145 lines
5.1 KiB
C
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
#pragma once
|
|
|
|
#include "eos_common.h"
|
|
|
|
/**
|
|
* The Logging Interface grants access to log output coming from the SDK at various levels of detail.
|
|
* Unlike other interfaces, the Logging Interface does not require a handle from the Platform Interface,
|
|
* as it functions entirely on the local system.
|
|
*/
|
|
|
|
#pragma pack(push, 8)
|
|
|
|
/**
|
|
* Logging levels. When a log message is output, it has an associated log level.
|
|
* Messages will only be sent to the callback function if the message's associated log level is less than or equal to the configured log level for that category.
|
|
*
|
|
* @see EOS_Logging_SetCallback
|
|
* @see EOS_Logging_SetLogLevel
|
|
*/
|
|
EOS_ENUM(EOS_ELogLevel,
|
|
EOS_LOG_Off = 0,
|
|
EOS_LOG_Fatal = 100,
|
|
EOS_LOG_Error = 200,
|
|
EOS_LOG_Warning = 300,
|
|
EOS_LOG_Info = 400,
|
|
EOS_LOG_Verbose = 500,
|
|
EOS_LOG_VeryVerbose = 600
|
|
);
|
|
|
|
/**
|
|
* Logging Categories
|
|
*/
|
|
EOS_ENUM(EOS_ELogCategory,
|
|
/** Low level logs unrelated to specific services */
|
|
EOS_LC_Core = 0,
|
|
/** Logs related to the Auth service */
|
|
EOS_LC_Auth = 1,
|
|
/** Logs related to the Friends service */
|
|
EOS_LC_Friends = 2,
|
|
/** Logs related to the Presence service */
|
|
EOS_LC_Presence = 3,
|
|
/** Logs related to the UserInfo service */
|
|
EOS_LC_UserInfo = 4,
|
|
/** Logs related to HTTP serialization */
|
|
EOS_LC_HttpSerialization = 5,
|
|
/** Logs related to the Ecommerce service */
|
|
EOS_LC_Ecom = 6,
|
|
/** Logs related to the P2P service */
|
|
EOS_LC_P2P = 7,
|
|
/** Logs related to the Sessions service */
|
|
EOS_LC_Sessions = 8,
|
|
/** Logs related to rate limiting */
|
|
EOS_LC_RateLimiter = 9,
|
|
/** Logs related to the PlayerDataStorage service */
|
|
EOS_LC_PlayerDataStorage = 10,
|
|
/** Logs related to sdk analytics */
|
|
EOS_LC_Analytics = 11,
|
|
/** Logs related to the messaging service */
|
|
EOS_LC_Messaging = 12,
|
|
/** Logs related to the Connect service */
|
|
EOS_LC_Connect = 13,
|
|
/** Logs related to the Overlay */
|
|
EOS_LC_Overlay = 14,
|
|
/** Logs related to the Achievements service */
|
|
EOS_LC_Achievements = 15,
|
|
/** Logs related to the Stats service */
|
|
EOS_LC_Stats = 16,
|
|
/** Logs related to the UI service */
|
|
EOS_LC_UI = 17,
|
|
/** Logs related to the lobby service */
|
|
EOS_LC_Lobby = 18,
|
|
/** Logs related to the Leaderboards service */
|
|
EOS_LC_Leaderboards = 19,
|
|
/** Logs related to an internal Keychain feature that the authentication interfaces use */
|
|
EOS_LC_Keychain = 20,
|
|
/** Logs related to integrated platforms */
|
|
EOS_LC_IntegratedPlatform = 21,
|
|
/** Logs related to Title Storage */
|
|
EOS_LC_TitleStorage = 22,
|
|
/** Logs related to the Mods service */
|
|
EOS_LC_Mods = 23,
|
|
/** Logs related to the Anti-Cheat service */
|
|
EOS_LC_AntiCheat = 24,
|
|
/** Logs related to reports client. */
|
|
EOS_LC_Reports = 25,
|
|
/** Logs related to the Sanctions service */
|
|
EOS_LC_Sanctions = 26,
|
|
/** Logs related to the Progression Snapshot service */
|
|
EOS_LC_ProgressionSnapshots = 27,
|
|
/** Logs related to the Kids Web Services integration */
|
|
EOS_LC_KWS = 28,
|
|
/** Logs related to the RTC API */
|
|
EOS_LC_RTC = 29,
|
|
/** Logs related to the RTC Admin API */
|
|
EOS_LC_RTCAdmin = 30,
|
|
/** Logs related to the Custom Invites API */
|
|
EOS_LC_CustomInvites = 31,
|
|
|
|
/** Not a real log category. Used by EOS_Logging_SetLogLevel to set the log level for all categories at the same time */
|
|
EOS_LC_ALL_CATEGORIES = 0x7fffffff
|
|
);
|
|
|
|
/** A structure representing a log message */
|
|
EOS_STRUCT(EOS_LogMessage, (
|
|
/** A string representation of the log message category, encoded in UTF-8. Only valid during the life of the callback, so copy the string if you need it later. */
|
|
const char* Category;
|
|
/** The log message, encoded in UTF-8. Only valid during the life of the callback, so copy the string if you need it later. */
|
|
const char* Message;
|
|
/** The log level associated with the message */
|
|
EOS_ELogLevel Level;
|
|
));
|
|
|
|
/**
|
|
* Function prototype definition for functions that receive log messages.
|
|
*
|
|
* @param Message A EOS_LogMessage containing the log category, log level, and message.
|
|
* @see EOS_LogMessage
|
|
*/
|
|
EOS_EXTERN_C typedef void (EOS_CALL * EOS_LogMessageFunc)(const EOS_LogMessage* Message);
|
|
|
|
/**
|
|
* Set the callback function to use for SDK log messages. Any previously set callback will no longer be called.
|
|
*
|
|
* @param Callback the function to call when the SDK logs messages
|
|
* @return EOS_Success is returned if the callback will be used for future log messages.
|
|
* EOS_NotConfigured is returned if the SDK has not yet been initialized, or if it has been shut down
|
|
*
|
|
* @see EOS_Initialize
|
|
*/
|
|
EOS_DECLARE_FUNC(EOS_EResult) EOS_Logging_SetCallback(EOS_LogMessageFunc Callback);
|
|
|
|
/**
|
|
* Set the logging level for the specified logging category. By default all log categories will callback for Warnings, Errors, and Fatals.
|
|
*
|
|
* @param LogCategory the specific log category to configure. Use EOS_LC_ALL_CATEGORIES to configure all categories simultaneously to the same log level.
|
|
* @param LogLevel the log level to use for the log category
|
|
*
|
|
* @return EOS_Success is returned if the log levels are now in use.
|
|
* EOS_NotConfigured is returned if the SDK has not yet been initialized, or if it has been shut down.
|
|
*/
|
|
EOS_DECLARE_FUNC(EOS_EResult) EOS_Logging_SetLogLevel(EOS_ELogCategory LogCategory, EOS_ELogLevel LogLevel);
|
|
|
|
#pragma pack(pop)
|