这些额外的错误日志文件是如何创建的?

时间:2009-02-18 22:09:38

标签: vb6 networking

我们的一位客户最近遇到了很多网络问题。 当我去他们的服务器计算机上检索错误文本文件时,我发现了大约十几个文件,一个是正确命名的文件

“errors.txt”

但其他人的名字就像

“错误( computernameA v1).txt”

“错误( computernameA v2).txt”

“错误( computernameB v1).txt”  等等。

我们的软件绝对不会创建具有这些名称的文件 虽然它正在创造他们的内容。

网络中断显然会在客户端应用程序的很多地方抛出错误。处理所有错误的部分原因是将它们记录到服务器计算机。 执行此操作的例程首先尝试查找错误文件,如果无法执行此操作,则会尝试创建错误文件。其中一些错误文件包含许多错误提示 当网络在一个不显着的时间段内出现故障时,error.txt的本地“阴影”被用于连续错误?然后,一旦网络再次备份,这将被放入服务器并重命名,以免与现有文件名冲突

有人可以解释一下这里发生了什么以及软件在做什么吗?

修改

响应相关代码的请求

170   On Error Resume Next
      Dim fs
180    Set fs = CreateObject("Scripting.FileSystemObject")
       Dim Item1 As String
       Dim Item2 As String
190    Item1 = strErrorFolder
200    If fs.FolderExists(strErrorFolder) <> True Then
210           MkDir Item1
220    End If

230    Item1 = strErrorFolder & "\Errors.txt"
240    If fs.FileExists(Item1) <> True Then
250    Item2 = App.Path & "Blank.txt"
260           FileCopy Item2, Item1
270           Item2 = ""
280           SetAttr Item1, vbNormal
290           Open Item1 For Output As #1
300           Write #1, "ErrorDateTime", "ErrorUser", "DatabaseAddress", "ProgramVersion", "Module", "SubRoutine", "LineNumber", "ErrorCode", "ErrorDescription"
310           Close #1
320    End If

330    Open Item1 For Append As #1
340           Write #1, ErrorDateTime, ErrorUser, Left(PANDATABASE, 1), ProgramVersion, Module, SubRoutine, LineNumber, ErrorCode, ErrorDescription
350           Close #1

360   On Error GoTo 0

End Sub 'errorhandled not

2 个答案:

答案 0 :(得分:1)

在机器上运行FileMon然后导致错误情况。检查FileMon日志以查看创建文件的内容。

正如divo指出的那样,您可能需要使用ProcMon代替。

答案 1 :(得分:1)

这是在黑暗中刺伤。尝试替换

Item1 = strErrorFolder & "\Errors.txt"
Item2 = App.Path & "Blank.txt"

Item1 = fs.BuildPath(strErrorFolder, "\Errors.txt")
Item2 = fs.BuildPath(App.Path,"Blank.txt")

另一种调试形式是为软件添加一个配置选项,允许您唯一地标识每次安装的软件。将其合并到错误文件名中。这样您就可以看到每个错误文件的来源。