mirror of https://github.com/gabime/spdlog.git
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
84 lines
2.2 KiB
C++
84 lines
2.2 KiB
C++
#pragma once
|
|
|
|
#include <string>
|
|
#include<cstddef>
|
|
#include "includes.h"
|
|
//#include "..\spdloglb\spdloglb.h"
|
|
//#include "../include/spdlog/spdlog.h"
|
|
|
|
|
|
#if defined(_WIN32) && defined(SPDLOG_WCHAR_LOGGING)
|
|
#define count_lines_t wcount_lines
|
|
#define file_contents_t wfile_contents
|
|
#else
|
|
#define count_lines_t count_lines
|
|
#define file_contents_t file_contents
|
|
#endif
|
|
|
|
class fmt_err_clb : public spdlog::error_callback
|
|
{
|
|
public:
|
|
std::string Error;
|
|
virtual void on_error(const char* lp_msg)
|
|
{
|
|
Error = lp_msg;
|
|
// WARN(Error);
|
|
}
|
|
|
|
};
|
|
|
|
extern fmt_err_clb _fmt_err_clb;
|
|
|
|
|
|
std::size_t estimated_file_size(unsigned long nChars);
|
|
|
|
std::size_t count_lines(const spdlb_test::filename_t & filename);
|
|
|
|
spdlog::InitReturn initialize_library(bool AsyncMode, unsigned long QueueSize, unsigned long OverflowPolicy, unsigned long FlushIntervalMs);
|
|
// spdlog::InitReturn initialize_library_e(bool AsyncMode, unsigned long QueueSize, unsigned long OverflowPolicy, unsigned long FlushIntervalMs, spdlog::error_callback* lp_err_clb);
|
|
void free_library();
|
|
|
|
void prepare_logdir(std::wstring log_folder);
|
|
|
|
std::wstring wfile_contents(const spdlb_test::filename_t & filename);
|
|
std::string file_contents(const spdlb_test::filename_t & filename);
|
|
|
|
std::size_t wcount_lines(const spdlb_test::filename_t& filename);
|
|
std::size_t count_lines(const spdlb_test::filename_t & filename);
|
|
|
|
std::size_t get_filesize(const spdlb_test::filename_t & filename);
|
|
|
|
|
|
class CFileName
|
|
{
|
|
private:
|
|
std::basic_string<spdlog::filename_char_t> Buffer;
|
|
|
|
public:
|
|
CFileName(const CFileName&) = delete;
|
|
CFileName& operator=(const CFileName&) = delete;
|
|
|
|
operator const spdlog::filename_char_t*() { return Buffer.c_str(); }
|
|
operator spdlog::filename_char_t*() { return (spdlog::filename_char_t*)Buffer.c_str(); }
|
|
|
|
operator spdlb_test::filename_t&() { return Buffer; }
|
|
|
|
const spdlog::filename_char_t* c_str(void) { return Buffer.c_str(); }
|
|
|
|
CFileName(spdlog::filename_char_t* fn)
|
|
{
|
|
Buffer = fn;
|
|
#if defined(_WIN32)
|
|
// Quick and dirty hack: convert slashes to backslashes
|
|
spdlog::filename_char_t* lps = (spdlog::filename_char_t*)Buffer.data();
|
|
|
|
for (unsigned int i = 0; i < Buffer.size(); i++)
|
|
{
|
|
if (lps[i] == _SFT('/'))
|
|
lps[i] = _SFT('\\');
|
|
}
|
|
#endif
|
|
}
|
|
};
|
|
|