I want to read ULS logs for my sharepoint online server.
Is there any standard way of doing it ?
I want to read ULS logs for my sharepoint online server.
Is there any standard way of doing it ?
Apparently you can do it using Windows PowerShell for SharePoint Online cmdlets
You can send the support desk a copy of the correlation ID, it takes a week or two on average from what my sys admins have told me (They put in all our requests). You will either get the log lines, a translation of what happened or be told it is internal.
Source [link may become outdated when post is archived]: http://community.office365.com/en-us/forums/148/t/155804.aspx
UPDATE As above Microsoft have added this functionality since this question was asked. This functionality is not yet complete however.
Office App Model Samples come with a library for getting ULS logs out of SharePoint Online - http://www.vrdmn.com/2014/03/view-tenant-uls-logs-in-sharepoint.html
Here's the sample code that is on Vardhaman Deshpande's blog, in case it's gone at some point:
namespace ViewSPOLog
{
class Program
{
static void Main(string[] args)
{
//Open the Tenant Administration Context with the Tenant Admin Url
using (var tenantContext = new ClientContext("https://yoursite-admin.sharepoint.com/"))
{
//Authenticate with a Tenant Administrator
var passWord = new SecureString();
foreach (char c in "password".ToCharArray()) passWord.AppendChar(c);
tenantContext.Credentials = new SharePointOnlineCredentials("[email protected]", passWord);
var tenant = new Tenant(tenantContext);
var tenantLog = new TenantLog(tenantContext);
var dateTimeUTCNow = DateTime.UtcNow;
//Get 50 Rows of Tenant Log Entries starting from 5 days ago till now.
var logEntries = tenantLog.GetEntries(dateTimeUTCNow.AddDays(-5), dateTimeUTCNow, 50);
//Get 50 Rows of Tenant Log Entries of the specified CorrelationId starting from 5 days ago till now
//var logEntries = tenantLog.GetEntriesByCorrelationId(dateTimeUTCNow.AddDays(-5), dateTimeUTCNow, 50, new Guid("ae2b1e34-12eb-4652-a0db-ce4ab916c74e"));
//Get 50 Rows of Tenant Log Entries of the specified Source starting from 5 days ago till now.
//var logEntries = tenantLog.GetEntriesBySource(dateTimeUTCNow.AddDays(-5), dateTimeUTCNow, 50, 1);
//Get 50 Rows of Tenant Log Entries of the specified User starting from 5 days ago till now.
//var logEntries = tenantLog.GetEntriesByUser(dateTimeUTCNow.AddDays(-5), dateTimeUTCNow, 50, "[email protected]");
tenantContext.Load(logEntries);
tenantContext.ExecuteQuery();
foreach (TenantLogEntry logEntry in logEntries)
{
Console.WriteLine(string.Format("Timestamp:{0} | Message:{1} | CorrelationId:{2} | Source:{3} | User:{4} | CategoryId:{5}",
logEntry.TimestampUtc, logEntry.Message, logEntry.CorrelationId , logEntry.Source , logEntry.User, logEntry.CategoryId));
}
Console.WriteLine("Press Any Key to Exit...");
Console.ReadKey();
}
}
}
}
There is no way to do it anymore. The answers above may have worked previously, but Microsoft changed that so you need to contact them to get the required information. The best way will be to contact Microsoft Support.