我有这个写入我的日志文件的函数。它正在默默地失败。因为此函数中没有引发错误,它只是无法创建或写入文件。我正在尝试写信给%TEMP%\myappname.log
. 它也失败了%USERPROFILE%\Desktop\myappname.log
。服务器是 Windows Server 2008 R2 标准。我在使用其他程序写入应用程序文件夹时遇到了这种情况,因此转而写入%TEMP%
目录,这解决了它。但是这个系统甚至不允许我写入%TEMP%
目录。是的,我也尝试以管理员身份运行,但没有帮助。在这种情况下,%TEMP% 解析ExpandEnvironmentStrings
为C:\Users\sa\AppData\Local\Temp\2
So g_strLogPath is C:\Users\sa\AppData\Local\Temp\2\myappname.log
。
Public Function LogMessage(ByVal strInput As String, Optional ByVal blnDate As Boolean = False) As Boolean
Dim intFileNumber As Integer
On Error GoTo ErrorHandler
If g_lngLogLevel <> 1 Then
Exit Function
End If
If Len(g_strLogPath) = 0 Then
SetLogPath
End If
If blnDate Then
strInput = Format(Now, cstrLogDateFormat) & " : " & strInput
End If
intFileNumber = FreeFile
Open g_strLogPath For Append As #intFileNumber
Print #intFileNumber, strInput
Close #intFileNumber
LogMessage = True
Exit Function
ErrorHandler:
MsgBox _
"Error: " & Err.Number & vbCrLf & _
"Location: Module1.LogMessage" & vbCrLf & _
"Line: " & Erl & vbCrLf & _
Err.Description, vbExclamation + vbOKOnly
End Function