总结
我想在天蓝色的文本文件中捕获它
Console.WriteLine("Message");
长文:
我今天的问题是如何在天蓝色的
中保存blob存储中的日志文件我曾经有过这段代码而且服务很好,但这使他成为了我的本地磁盘。
private string sLogFormat;
private string sErrorTime;
public CreateLogFiles()
{
sLogFormat = DateTime.Now.ToShortDateString().ToString()+" "+DateTime.Now.ToLongTimeString().ToString()+" ==> ";
string sYear = DateTime.Now.Year.ToString();
string sMonth = DateTime.Now.Month.ToString();
string sDay = DateTime.Now.Day.ToString();
sErrorTime = sYear+sMonth+sDay;
}
public void ErrorLog(string sPathName, string sErrMsg)
{
StreamWriter sw = new StreamWriter(sPathName+sErrorTime,true);
sw.WriteLine(sLogFormat + sErrMsg);
sw.Flush();
sw.Close();
}
CreateLogFiles Err = new CreateLogFiles();
Err.ErrorLog("something/another/log","Message");
- 重要的是,所有行都是在我的项目中的辅助应用程序或webjobs中生成的。
但现在我想将我的网站发布到Azure,因为我可以保持这一点,因为正如我所说的那样。
我正在测试这种方法并且显然效果很好,问题是文件每次都会变大,这个过程需要更长时间才能完成。
CloudStorageAccount storageAccount = storageAzure //Data Access;
var cloudBlobClient = storageAccount.CreateCloudBlobClient();
var blob = cloudBlobClient.GetContainerReference(path).GetBlockBlobReference("log.txt"); //File
var textoriginal = blob.DownloadText(); // Download text of file
var textoadd = textoriginal + "msjError"; // add new text
blob.UploadText(textoadd.ToString()); // upload all the text
我希望你能指导我,尽力做到最好。
答案 0 :(得分:3)
您应该利用内置的Azure诊断服务,该服务比现有方法(http://msdn.microsoft.com/en-us/library/azure/gg433048.aspx)扩展得更好。
您需要使用诊断跟踪语句替换您的Console.WriteLine语句(您需要添加using语句,然后只需用'控制台'跟踪'跟踪')。请参阅:http://msdn.microsoft.com/en-us/library/zd83saa2.aspx
在应用程序的配置文件中,您需要确保定义相应的Azure存储帐户以将条目写入 - 它们将显示在通常称为“WADWindowsEventLogsTable”的表中。请参阅:http://msdn.microsoft.com/en-us/library/azure/hh411534.aspx