Publish the files
This commit is contained in:
82
Sources/Platform/Windows/WinLogger.h
Normal file
82
Sources/Platform/Windows/WinLogger.h
Normal file
@@ -0,0 +1,82 @@
|
||||
/*!
|
||||
@file WinLogger.h
|
||||
|
||||
@brief Windows specific implementation of the logger.
|
||||
|
||||
@author Satoshi Tanda
|
||||
|
||||
@copyright Copyright (c) 2020 - , Satoshi Tanda. All rights reserved.
|
||||
*/
|
||||
#pragma once
|
||||
#include "../../Logger.h"
|
||||
|
||||
//
|
||||
// The handy macros to specify in which section the code should be placed.
|
||||
//
|
||||
#define LOGGER_INIT __declspec(code_seg("INIT"))
|
||||
#define LOGGER_PAGED __declspec(code_seg("PAGE"))
|
||||
|
||||
//
|
||||
// Extended configuration flags.
|
||||
//
|
||||
typedef union _LOGGER_CONFIGURATION_FLAGS
|
||||
{
|
||||
struct
|
||||
{
|
||||
UINT32 EnableTimestamp : 1;
|
||||
UINT32 EnableLevel : 1;
|
||||
UINT32 EnableProcessorNumber : 1;
|
||||
UINT32 EnablePidTid : 1;
|
||||
UINT32 EnableProcessName : 1;
|
||||
UINT32 EnableFunctionName : 1;
|
||||
} u;
|
||||
|
||||
UINT32 AsUInt32;
|
||||
} LOGGER_CONFIGURATION_FLAGS;
|
||||
|
||||
//
|
||||
// The configurations of the logger to initialize.
|
||||
//
|
||||
typedef struct _LOGGER_CONFIGURATION
|
||||
{
|
||||
//
|
||||
// The maximum level of the log this logger will log. For example, the
|
||||
// information-level logs are discarded when LogLevelWarning is specified.
|
||||
// If LogLevelNone is set, the logger is disabled and none of logs are logged.
|
||||
//
|
||||
LOG_LEVEL Level;
|
||||
|
||||
//
|
||||
// Extended configuration flags.
|
||||
//
|
||||
LOGGER_CONFIGURATION_FLAGS Flags;
|
||||
|
||||
//
|
||||
// An interval to flush logs saved into log message buffer.
|
||||
//
|
||||
UINT32 FlushIntervalInMs;
|
||||
|
||||
//
|
||||
// A size of log message buffer. The logger internally allocates two buffers
|
||||
// with this size.
|
||||
//
|
||||
SIZE_T BufferSize;
|
||||
|
||||
//
|
||||
// The path to the file to save logs. The logger do not save logs into a file
|
||||
// when NULL is specified.
|
||||
//
|
||||
PCWSTR FilePath;
|
||||
} LOGGER_CONFIGURATION;
|
||||
|
||||
_IRQL_requires_max_(PASSIVE_LEVEL)
|
||||
_Must_inspect_result_
|
||||
NTSTATUS
|
||||
InitializeLogger (
|
||||
_In_ CONST LOGGER_CONFIGURATION* Configuration
|
||||
);
|
||||
|
||||
_IRQL_requires_max_(PASSIVE_LEVEL)
|
||||
VOID
|
||||
CleanupLogger (
|
||||
);
|
||||
Reference in New Issue
Block a user