首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更好的清理后,protocolLogging()在UniVerse?

更好的清理后,protocolLogging()在UniVerse?
EN

Stack Overflow用户
提问于 2014-08-05 15:18:15
回答 1查看 176关注 0票数 1

我有一个基本的程序,是用来发送电子邮件通过一个网络服务。我想利用protocolLogging()函数来捕捉与web服务交互时出现的任何问题。但是,我不想被所有的成功日志淹没(现在我每次执行程序时都生成一个日志文件)。如果将日志级别设置为3(或为此设置为1),则在成功运行后仍会生成一个空文件。

是否有一种方法可以首先防止生成空日志文件?

如果没有,是否有更好的方法来清理它们,而不是打开程序中的日志目录并删除刚刚创建的记录(假设所有其他内容都成功运行)?我的日志目录目前不是UniVerse类型-19文件或任何东西。

是否更好地整天重用一个日志文件?如果我更改代码来实现这一点,是否会对性能产生任何影响?这个程序是一个子程序,有时会被大量使用。

我在Windows 2008 UniVerse上运行R2 v11.2.3。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-05 15:44:13

当您使用protocolLogging()时,您不会获得任何速度优势,将所有信息记录到一个文件和多个文件中,就像您所拥有的那样。当您打开日志记录时,它仍然会打开一个文件,然后当您关闭日志记录时,当您有一个日志文件时,它仍然会写入和关闭该文件。

有三种方法,你可以清理垃圾文件。

1)创建一个.BAT文件,以便在一天结束时在中运行

代码语言:javascript
复制
cleanupemptylog.bat
for %F in ("c:\ud\TEST\*.log") do if %~zF equ 0 del "%F"

2)使用UniVerse幻影进程来做同样的事情。您可以创建一个子程序,如果需要,可以进行更好的检查。

3)在当前子程序结束时运行相同的命令:

代码语言:javascript
复制
EXECUTE '!for %F in ("*.log") do if %~zF equ 0 del "%F"'

这将增加您现有的子例程的开销,但它可能并不明显。

如果要根据当前日期使用单个日志,则可以使用幻影或windows调度程序每月清除日志。

即。删除所有超过5天的日志文件。

代码语言:javascript
复制
forfiles -p ""c:\ud\TEST\*.log"" -s -m *.* -d -5 -c "cmd /c del @path"

内森校长

国际频谱

http://www.intl-spectrum.com

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25142438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档