Visual Basic for Applications:
Loggning
Hur man gör:
I VBA finns det inte ett inbyggt loggningsramverk som finns i vissa andra språk. Dock är det enkelt att implementera en enkel loggningsmekanism. Nedan är ett exempel på hur man skapar en grundläggande filloggare.
- Skriva till en loggfil: Det här exempelfunktionen,
LogMessage
, skriver meddelanden till en textfil med en tidsstämpel.
Sub LogMessage(meddelande As String)
Dim loggFilVag As String
Dim filNummer As Integer
' Ange sökvägen till loggfilen
loggFilVag = ThisWorkbook.Path & "\log.txt"
' Hämta nästa lediga filnummer
filNummer = FreeFile()
' Öppna filen för att lägga till data
Open loggFilVag For Append As #filNummer
' Skriv tidsstämpeln och loggmeddelandet
Print #filNummer, Now & ": " & meddelande
' Stäng filen
Close #filNummer
End Sub
För att logga ett meddelande, anropa helt enkelt LogMessage("Ditt meddelande här")
. Detta producerar poster i log.txt som:
2023-04-30 15:45:32: Ditt meddelande här
- Läsa från en loggfil: För att läsa och visa innehållet i loggfilen:
Sub LäsLoggFil()
Dim loggFilVag As String
Dim filInnehåll As String
Dim filNummer As Integer
loggFilVag = ThisWorkbook.Path & "\log.txt"
filNummer = FreeFile()
' Öppna filen för läsning
Open loggFilVag For Input As #filNummer
' Läs hela filinnehållet
filInnehåll = Input(LOF(filNummer), filNummer)
' Stäng filen
Close #filNummer
' Visa filinnehållet
MsgBox filInnehåll
End Sub
Fördjupning
Loggning i VBA, på grund av bristen på ett inbyggt loggningsramverk, implementeras vanligtvis genom grundläggande filoperationer eller genom att utnyttja kraften från externa COM-objekt för mer avancerade behov, såsom loggning till en databas eller interaktion med Windows Event Log. Historiskt sett har loggning i VBA varit ett sätt att kringgå begränsningarna som dess enkla felsöknings- och debuggningsverktyg medför. Även om det är effektivt, är direkt filmanipulation för loggning grundläggande och kan vara ineffektivt med stora datamängder eller under hög samtidighet. För mer sofistikerade loggningsmöjligheter vänder sig programmerare ofta till externa bibliotek eller integrerar med system som specifikt är avsedda för loggning, såsom ELK-stacken (Elasticsearch, Logstash, Kibana) eller Splunk, genom webbtjänstanrop eller intermediära databaser. Även om VBA inte erbjuder de moderna bekvämligheter som finns i nyare programmeringsspråk, gör förståelsen för dess förmågor och begränsningar det möjligt för programmerare att effektivt använda loggning som ett kraftfullt verktyg för applikationsövervakning och diagnostik.