我想定义两个函数,fdump和sdump,在每种情况下使用fprintf和sprintf将结构转储到文件或缓冲区.
有没有办法定义它们而不重复两个函数中的代码?一个解决方案可以定义sdump,然后基于它定义fdump,ei:
void fdump(FILE* f, struct mystruct* param) {
char buffer[MAX];
sdump(buffer, MAX, param);
fprint(f, "%s", buffer);
}
Run Code Online (Sandbox Code Playgroud)
但该解决方案浪费和中间缓冲区.虽然fprintf可能会做同样的事情.其他解决方案可以通过预处理宏来实现,但看起来相当复杂.请问,有什么想法吗?
提前致谢
如何配置 Serilog 以便它在每次程序执行时覆盖文件?
代码
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.WriteTo.ColoredConsole()
.WriteTo.File("c:\\Logs\\myapp.log")
.CreateLogger();
Run Code Online (Sandbox Code Playgroud)
附加新执行的条目日志并没有什么坏处,但在开发过程中只需获取当前日志就很方便。