写了一段Log事件记录的程序,目的是每天创建一个以日期命名的文件,记录当天的运行信息,但是我下面的代码存在一个问题,就是如果重新启动软件,该Log文件会重新创建,当天之前的运行记录全部丢失,请问如何实现当天重新运行软件后,事件记录接之前的记录继续往下写?
代码如下:
Option Explicit
Public dtSaveLog As Date
Public Sub StatusUpdate(ByRef pMessage As String)
Dim FileName As String
Dim FileNumber As Integer
Dim sMsg As String
sMsg = Now & " --> " & pMessage
WriteLine sMsg
FileName = App.Path & "\LOG\" & Format(Now, "yyyymmdd") & ".LOG"
FileNumber = FreeFile
On Error GoTo ErrorHandler
If (Now - dtSaveLog) > 7 Then
Open FileName For Output Shared As FileNumber
dtSaveLog = Now
Else
Open FileName For Append Shared As FileNumber
End If
Print #FileNumber, sMsg
Close #FileNumber
Exit Sub
ErrorHandler:
Close #FileNumber
WriteLine Now & " > " & "Error = " & Err.Number & ", " & Err.Description
Err.Clear
Resume Next
End Sub
代码如下:
Option Explicit
Public dtSaveLog As Date
Public Sub StatusUpdate(ByRef pMessage As String)
Dim FileName As String
Dim FileNumber As Integer
Dim sMsg As String
sMsg = Now & " --> " & pMessage
WriteLine sMsg
FileName = App.Path & "\LOG\" & Format(Now, "yyyymmdd") & ".LOG"
FileNumber = FreeFile
On Error GoTo ErrorHandler
If (Now - dtSaveLog) > 7 Then
Open FileName For Output Shared As FileNumber
dtSaveLog = Now
Else
Open FileName For Append Shared As FileNumber
End If
Print #FileNumber, sMsg
Close #FileNumber
Exit Sub
ErrorHandler:
Close #FileNumber
WriteLine Now & " > " & "Error = " & Err.Number & ", " & Err.Description
Err.Clear
Resume Next
End Sub
Private Sub logtofile(s As String)
Dim f As Integer
On Error Resume Next
f = FreeFile()
Open "VB.LOG" For Append As #f
Print #f, Format(Now, "YYYY-MM-DD hh:mm:ss") + " " + s
Close #f
End Sub
中的output改为Append后问题解决,谢谢各位!