Bem tenho tido alguma experiência com o Microsoft Logparser 2.2.
A ferramenta está muito boa e permite-nos fazer imensas coisas.
Tenho uns logs criados diariamente e quero agarrar neles e coloca-los num servidor de SQL.
Aqui fica a minha solução em VBS que pode ser colocada numa task scheduler para ler os logs tipo w3c.
Priemeiro instalamos o logparser.
Depois registamos a dll que fica na pasta de instalação com o comando regsvr32 “caminho completo da dlllogparser.dll”
E aqui fica o código simples….
1 2 3 4 5 6 7 8 9 10 | oLogQuery = createobject("MSUtil.LogQuery") Set oInput = createobject("MSUtil.logquery.W3CInputformat") Set oOutput = createobject("MSUtil.logquery.SQLOutputformat") oOutput.driver = "SQL Server" oOutput.server = "servidorSQLEXPRESS" oOutput.Database = "LogParser" oOutput.username = "db_user" oOutput.password = "password" oOutput.clearTable = False oOutput.createTable = False |
Nome do ficheiro a ir buscar:
Como o ficheiro é criado diariamente com o ano mes e dia concatenados com o seu nome tenho de voltar esse nome um dia para trás. 🙂
1 2 | sLogName = "NomedeFicheiro" & year(now) & month(now) & day(dateadd("d",-1,now)) & ".log" sLogName = "ISALOG_" & year(now) & "0622" & "*.w3c" |
Querie que me interessa do ficheiro a ser analisado.
1 | strsql = "select c-ip, cs-username, date, time, s-computername, cs-referred, r-host, r-ip, r-port, cs-protocol, cs-uri, sc-status, error-info, action from C:TestLog" & sLogName & " to LogsIsa" |
executar os comandos anteriores.
1 | oLogQuery.ExecuteBatch strsql, oInput, oOutput |
Para a próxima mostro como visualizar os dados que acabei de colocar na Base de Dados… 🙂