前言
在前面提供了多种写日志记录程序运行时候,打印日志的方法,本文提供用OutputDebugString将信息输出到DebugView的方法,这种方法不需要调用日志库,并且不占用任何的磁盘空间,在需要查看程序运行的时候,才会启动Dbgview.exe程序。为了将日志打印到Dbgview.exe,需要调用OutputDebugStringA
应用例子:OutputDebugStringA("fengyuzaitu@51.cto");
软件操作方法
1)以管理员身份运行
2)点击Capture选项卡,勾选Capture Win32和Capture Global Win32
3) 点击Filter过滤器选项卡,Include选项卡默认是*(如果什么都不填写,意味着不会捕获任何信息),说明显示全部的捕获信息,例如知道我们的信息中携带YuShi的关键字,就可以通过填写YuShi,在界面上只显示带有YuShi信息的打印,Exclude刚好反过来,点击OK,开始执行过滤操作
4)点击File选项卡,提供了Save/Save As/Log to File等等,可以将打印的日志保存成文件,更加容易搜索查看相关信息
程序编写方法
写程序时,为了监控方便,我们可以将Debug信息分类,以不同的前缀或标志为约束,统一Debug输出格式,方便以后排除和捕获系统异常等情况。例如为了调试对接宇视设备,在输出信息添加一个前缀YuShi,就可以通过这个关键字进行信息的过滤.。引用头文件#include <windows.h>
注意
1)服务形式和VS调试区别
这种方式是在以服务形式启动的进程,控制台界面启动的日志输出会被控制台捕获
通过VS启动程序,VS将捕获到调试信息打印到输出窗口,这个时候Dbgview.exe捕获无效,除非直接运行程序
默认情况下,Capture Global Win32是没有勾选的,这种情况下不能捕获到服务程序启动的调试信息,因此需要注意
2)提示Could not extract DebugView driver to c:\WINDOWS\system32\Drivers\Dgbv.sys:另外一个程序正在使用此文件,进程无法访问
Kernel debug output capture will be unavailble
不影响用户输出打印
3)启动导致系统卡顿
有些电脑存在杀毒软件,启动程序会导致系统卡顿,暂时没有解决方案,添加到白名单无效