我在本地调试时有一个写入输出的Azure WebJob,但是当我在Azure中运行它时却没有。输出blob容器完全为空,scm.azurewebsites.net
站点中的输出窗口显示为灰色且空白。我是否需要设置任何内容才能将输出发送到那里?
以下是它们两者的截图:
以下是我在Webjob上运行的代码:
public static void InsertSQLData([BlobTrigger("blobcontainer/{name}")] Stream input, string name)
{
var sw = new Stopwatch();
sw.Start();
RetryAbleBCP rtbcp = new RetryAbleBCP(input,
"dbo.FullText",
ConfigurationManager.ConnectionStrings["SqlConnection"].ConnectionString,
SqlBulkCopyOptions.Default,
',',
500,
null);
try
{
rtbcp.BulkInsertCSV();
}
catch (OutOfMemoryException eoom)
{
Console.WriteLine(eoom.Message);
}
catch (IOException eio)
{
Console.WriteLine(eio.Message);
}
catch (InvalidOperationException eiop)
{
Console.WriteLine(string.Format("Row {0}: {1}", rtbcp.NumRowsRead, eiop.Message));
}
catch (SqlException se)
{
Console.WriteLine(se.Message);
}
catch (Exception e)
{
Console.WriteLine(string.Format("General Application Exception: {0}", e.Message));
}
sw.Stop();
Console.Out.WriteLine("Finished Batch Insert. Elapsed: {0}ms", sw.ElapsedMilliseconds);
}
答案 0 :(得分:4)
在您的代码中,您使用Console.WriteLine()
编写日志。要使输出显示在WebJobs仪表板中,请使用TextWriter
,如下所示:
public static void InsertSQLData([BlobTrigger("blobcontainer/{name}")] Stream input,
string name, TextWriter log)
{
// ...
log.WriteLine("some message");
}