我有一个Basic程序,用于通过Web服务发送电子邮件。我想利用protocolLogging()
函数来捕获与Web服务交互时有时会出现的任何问题。但是,我不想充满所有成功日志(现在我每次执行程序时都会生成一个日志文件)。将日志级别设置为3(或者为1),成功运行后仍会生成空文件。
有没有办法阻止首先生成空日志文件?
如果没有,是否有更好的方法来清理它们而不是打开程序中的日志目录并删除刚刚创建的记录(假设其他所有内容都成功运行)?我的日志目录当前不是UniVerse type-19文件或其他任何内容。
在一天中重用一个日志文件会更好吗?如果我更改代码来执行此操作,是否有任何性能影响?该程序是一个有时会被大量使用的子程序。
我在Windows Server 2008 R2上运行UniVerse v11.2.3。
答案 0 :(得分:1)
当您使用protocolLogging()
时,您不会获得任何速度优势,将所有内容记录到一个文件中,而不是像您一样将多个文件记录下来。当您打开日志记录时,它仍会打开一个文件,然后当您关闭日志记录时,当您有一个日志文件时,它仍会写入并关闭该文件。
有三种方法可以清理垃圾文件。
1)创建一个.BAT文件,以便在Windows Scheduler
中结束时运行cleanupemptylog.bat
for %F in ("c:\ud\TEST\*.log") do if %~zF equ 0 del "%F"
2)使用UniVerse Phantom进程执行相同的操作。您可以创建一个子程序,以便在需要时进行更好的检查。
3)在当前子程序结束时运行相同的命令:
EXECUTE '!for %F in ("*.log") do if %~zF equ 0 del "%F"'
这会增加现有子程序的开销,但可能不会引人注意。
如果您想根据当前日期使用单个日志,那么您可以使用幻像或Windows调度程序每月清理日志。
即。删除超过5天的所有日志文件。
forfiles -p ""c:\ud\TEST\*.log"" -s -m *.* -d -5 -c "cmd /c del @path"
弥敦道校长
国际频谱