0
하늘색 웹 사이트에서 오류를 모니터링하고 캡처하는 스크립트를 작성하고 싶습니다. 이것을 위해 나는 푸른 스트리밍 로그를 활용하고 싶습니다.Azure 웹 응용 프로그램 오류 로그를 캡처하는 스크립트
Powershell 스크립트.
function Stream-Log
{
Get-AzureWebsiteLog -Name HiWebApiService -Tail
}
Stream-Log
위 스크립트 만 실행하면 로그가 스트리밍됩니다.
위의 스크립트를 C# 클라이언트에서 호출하고 싶습니다.
class Program
{
static void Main(string[] args)
{
PowerShell psinstance = PowerShell.Create();
const string getverbose = "$verbosepreference='continue'";
psinstance.AddScript(string.Format(getverbose));
psinstance.Invoke();
psinstance.Commands.Clear();
var scriptPath = @"E:\Azure\LogMonitor\LogMonitor\LogMonitor.ps1";
psinstance.AddScript(scriptPath);
psinstance.Streams.Verbose.DataAdded += Verbose_DataAdded;
psinstance.Streams.Information.DataAdded += Information_DataAdded;
psinstance.Streams.Error.DataAdded += Error_DataAdded;
var results = psinstance.Invoke();
Console.ReadLine();
}
private static void Information_DataAdded(object sender, DataAddedEventArgs e)
{
var newRecord = ((PSDataCollection<InformationRecord>)sender)[e.Index];
Console.WriteLine("information updated: {0}", newRecord.Source);
}
private static void Verbose_DataAdded(object sender, DataAddedEventArgs e)
{
var coll = (PSDataCollection<VerboseRecord>)sender;
var newRecord = (coll)[e.Index];
Console.WriteLine("verbose updated: {0}", newRecord.Message);
}
private static void Error_DataAdded(object sender, DataAddedEventArgs e)
{
ErrorRecord newRecord = ((PSDataCollection<ErrorRecord>)sender)[e.Index];
Console.WriteLine("error updated: {0}", newRecord.ErrorDetails);
}
몇 가지 이유로 하늘색 스트리밍 로그의 출력은 위의 이벤트에서 캡처되지 않습니다.