2014-02-20 2 views
0

Я не уверен, что это возможно с Log Parser, но я пытаюсь создать отчет HTML, чтобы включить несколько статистических данных IIS. У меня нет проблем с созданием отчета только с одним запросом Log Parser, но я хочу иметь возможность включать несколько запросов в сценарий PowerShell для создания всего одного отчета.Log Parser HTML Reports

Я создал файл шаблона .tpl, за исключением значений из нескольких запросов и таблицы HTML, но каждый раз, когда Log Parser запускается, у вас есть только параметры с параметром filemode для добавления или перезаписывания файла. Добавление выходного файла HTML просто создает несколько таблиц и не просто вставляет данные в одну таблицу из нескольких запросов.

Единственный вариант, о котором я могу думать, заключается в том, чтобы каким-то образом создать несколько запросов в рамках одного большого запроса или объединить их вместе, чтобы Log Parser нужно было запускать только один раз и не будет перезаписывать/добавлять выходной файл HTML каждый раз, когда он запускается , Но я не думаю, что Log Parser будет работать с вложенными операторами Select.

Любые идеи о том, как получить эту работу, будем очень благодарны.

Edit: Примеры кода ниже

Это фрагмент из .tpl файла, содержащего таблицу с четырьмя колоннами, которые я хотел бы, чтобы заполнить каждый столбец с данными из четырех отдельных запросов Log Parser (уникальных пользователей для каждого приложения)

<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, содержащий несколько запросов парсера журнала, которые будут создавать HTML-файл с использованием файла шаблона .tpl.

#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