2014-02-20 45 views
0

我不確定如果Log Parser可以這樣做,但我試圖創建一個包含多個IIS統計信息的HTML報告。我只用一個Log Parser查詢創建報告沒有任何問題,但我希望能夠在PowerShell腳本中包含多個查詢來創建一個報告。Log Parser HTML報告

我創建了.tpl模板文件,將多個查詢中的值除外並存入HTML表中,但每次Log Parser運行時,只有帶filemode參數的選項才能追加或覆蓋文件。追加HTML輸出文件只是創建多個表,並不只是將數據從多個查詢插入到單個表中。

我能想到的唯一選擇是以某種方式在單個大型查詢中創建多個查詢或將它們連接在一起,因此Log Parser只需運行一次,並且每次運行時都不會覆蓋/追加HTML輸出文件。但我認爲Log Parser不會使用嵌套的Select語句。

任何想法如何得到這項工作將不勝感激。

編輯:下面

這是一種含有與我想填充從四個單獨的日誌解析器查詢數據的每一列(的唯一用戶通過應用程序)四列的表中的.tpl文件的片斷

代碼示例
<LPBODY> 
<TH COLSPAN=4 BGCOLOR="BLACK"><FONT Size =4 COLOR=WHITE>Number of Unique Visitors </FONT> 
<tr><th>App1</th><th>App2</th><th>App3</th><th>app4</th> 
<TD>%App1%</TD><TD>%App2%</TD><TD>%App3%</TD><TD>%App4%</TD> 
</LPBODY> 

包含幾個日誌解析器查詢的PowerShell腳本片段將使用.tpl模板文件創建HTML文件。

#Find unique users for App1 and insert into the HTML File 
$UniqueUserApp1 = "SELECT COUNT(DISTINCT cs-username) AS App1 ` 
       INTO Report.html FROM C:\IISLogs ` 
       WHERE cs-uri-stem LIKE '%app1%' ` 
       AND cs-username is not null 

logparser i:W3C $UniqueUserApp1 -tpl:HTMLTemplate.tpl -fileMode:0 

#Find unique users for App2 and insert into the HTML File 
$UniqueUserApp1 = "SELECT COUNT(DISTINCT cs-username) AS App2 ` 
       INTO Report.html FROM C:\IISLogs ` 
       WHERE cs-uri-stem LIKE '%app2%' ` 
       AND cs-username is not null 

logparser i:W3C $UniqueUserApp2 -tpl:HTMLTemplate.tpl -fileMode:0 

,我運行到是每個日誌分析器運行查詢時,它只是在HTML報告填充在每個表中,而不是填充的%APP1%的價值只是一個值創建一個單獨的表中的問題,單個表中的%app2%。這似乎是由Log Parser設計的,所以我正在尋找一種可能的解決方法來創建一個結構化的HTML頁面,其中包含可從Log Parser查詢填充的表格。

+0

你的問題不太清楚。如果您提供一些代碼或至少是所需結果的示例,您可能會得到更好的答案。 –

回答

0

您的問題對我來說不太清楚,因爲您沒有發佈任何代碼或期望結果的示例。然而,從我的理解這可能是一個起點:

$queries = ... # array with your LogParser queries 

$queries | % { 
    & logparser -i:IIS -o:CSV -stats:off $_ 
} | ConvertFrom-Csv | ConvertTo-Html | Out-File 'C:\path\to\dat.html' 
+0

感謝您的輸入!我已經添加了一些示例代碼,希望更好地解釋我正在嘗試完成的內容。我已經使用了上面的代碼,它確實將多個查詢輸出到一個HTML文檔中,但我不確定如何在表中格式化輸出。 – user2441508