Pantheios 写入外部文件
Pantheios write to extenal file
我环顾四周,找不到确切如何做到这一点的答案。我正在尝试使用 Pantheios 进行日志记录,我想写入外部文件(否则有什么意义)。我正在遵循提供的示例之一,但它似乎没有在任何地方制作日志文件。这是代码:
编辑:pantheios_be_file_setFilePath也返回-4(PANTHEIOS_INIT_RC_UNSPECIFIED_FAILURE),所以那是.....没有帮助
#include "stdafx.h"
#include <pantheios/pantheios.hpp>
#include <pantheios/implicit_link/core.h>
#include <pantheios/implicit_link/fe.simple.h>
#include <pantheios/implicit_link/be.WindowsConsole.h>
#include <pantheios/implicit_link/be.file.h>
#include <pantheios/frontends/fe.simple.h>
#include <pantheios/backends/bec.file.h>
#include <pantheios/inserters/args.hpp>
PANTHEIOS_EXTERN_C const PAN_CHAR_T PANTHEIOS_FE_PROCESS_IDENTITY[] = PANTHEIOS_LITERAL_STRING("LogTest");
int _tmain(int argc, _TCHAR* argv[])
{
try
{
pantheios_be_file_setFilePath(PANTHEIOS_LITERAL_STRING("testlogforme.log"), PANTHEIOS_BE_FILE_F_TRUNCATE, PANTHEIOS_BE_FILE_F_TRUNCATE, PANTHEIOS_BEID_ALL);
pantheios::log(pantheios::debug, "Entering main(", pantheios::args(argc,argv, pantheios::args::arg0FileOnly), ")");
pantheios::log_DEBUG("debug yo");
pantheios::log_INFORMATIONAL("informational fyi");
pantheios::log_NOTICE("notice me!");
pantheios::log_WARNING("warning!!");
pantheios::log_ERROR("error omg");
pantheios::log_CRITICAL("critical!!!");
pantheios::log_ALERT("alert mang");
pantheios::log_EMERGENCY("EMERGENCY!!!!!");
pantheios_be_file_setFilePath(NULL, PANTHEIOS_BEID_ALL);
system("pause");
return EXIT_SUCCESS;
}
catch(std::bad_alloc&)
{
pantheios::log_ALERT("out of memory");
}
catch(std::exception& x)
{
pantheios::log_CRITICAL("Exception: ", x);
}
catch(...)
{
pantheios::puts(pantheios::emergency, "Unexpected unknown error");
}
return EXIT_FAILURE;
}
也许我没有调用方法,或者它没有保存到一个好的位置?
事实证明,Pantheios的一些例子是不正确的。即使您处于C++,您也需要调用 pantheios_init()。这是我删除所有代码并实现一个有效的示例后开始工作的示例。
// Headers for main()
#include <pantheios/pantheios.hpp>
#include <pantheios/backends/bec.file.h>
// Headers for implicit linking
#include <pantheios/implicit_link/core.h>
#include <pantheios/implicit_link/fe.simple.h>
#include <pantheios/implicit_link/be.file.h>
PANTHEIOS_EXTERN_C const char PANTHEIOS_FE_PROCESS_IDENTITY[] = "testLOL";
int main()
{
if(pantheios::pantheios_init() < 0)
{
return 1;
}
pantheios::log_NOTICE("log-1"); // save until log file set
pantheios_be_file_setFilePath("mylogfile.log"); // sets log file; write "log-1" stmt
pantheios::log_NOTICE("log-2"); // write "log-2" stmt
pantheios_be_file_setFilePath(NULL); // close "mylogfile"
pantheios::log_NOTICE("log-3"); // save until log file set
pantheios_be_file_setFilePath("mylogfile2.log"); // sets log file; write "log-3" stmt
pantheios::log_NOTICE("log-4"); // write "log-4" stmt
//system("pause");
return 0;
} // closes "mylogfile2" during program closedown
我在堆栈溢出的不同帖子中找到了该示例,但就像我说的,内置示例不起作用。
相关文章:
- 使用外部SDK工具链文件在VisualStudio上生成项目编译错误
- C++:来自外部文件的Trivia
- 从函数角度看ID到文件路径的内部与外部映射
- 如何使用对C函数和类对象的外部调用来处理C++头文件
- C++编程从外部文本文件定义数组大小
- 如何在源代码中包含外部库的头文件?
- OpenGL - 从外部文件绘制点
- 链接外部C++外部C++ 在主文件中?
- 使用外部文件中的变量进行视觉C++
- 为Catch2中的外部文本文件指定路径的最佳方式
- 使用C++对一个巨大文件中的文本行进行字典式外部排序
- 在 UWP 视觉工作室项目中包括外部文件夹
- 有没有办法将 getline() 与外部文本文件一起使用,然后重新获得 cin 的控制权以从控制台获取输入?
- 在没有外部文件的情况下在应用会话之间保存变量
- 从外部文件C++调用函数
- 为什么在类外部(但在头文件中)定义的类成员函数必须内联?
- 当外部源代码中发生异常时,无法正确使用自创建的小型转储文件的堆栈跟踪
- 即使使用lib文件也无法修复未解析的外部符号_AES_encrypt
- 对头文件外部定义的成员函数的未定义引用
- 在头文件外部定义此函数是否有问题?(Visual Studio 2015,C++)