update logging

This commit is contained in:
Luke Pulverenti 2016-06-29 14:48:26 -04:00
parent 636969e7ff
commit dc5f2dd440
5 changed files with 48 additions and 37 deletions

View File

@ -199,7 +199,7 @@ namespace MediaBrowser.Common.Implementations
ILogManager logManager, ILogManager logManager,
IFileSystem fileSystem) IFileSystem fileSystem)
{ {
XmlSerializer = new MediaBrowser.Common.Implementations.Serialization.XmlSerializer (fileSystem); XmlSerializer = new XmlSerializer (fileSystem, logManager.GetLogger("XmlSerializer"));
FailedAssemblies = new List<string>(); FailedAssemblies = new List<string>();
ApplicationPaths = applicationPaths; ApplicationPaths = applicationPaths;
@ -321,7 +321,7 @@ namespace MediaBrowser.Common.Implementations
protected virtual IJsonSerializer CreateJsonSerializer() protected virtual IJsonSerializer CreateJsonSerializer()
{ {
return new JsonSerializer(FileSystemManager); return new JsonSerializer(FileSystemManager, LogManager.GetLogger("JsonSerializer"));
} }
private void SetHttpLimit() private void SetHttpLimit()

View File

@ -122,30 +122,27 @@ namespace MediaBrowser.Common.Implementations.ScheduledTasks
{ {
get get
{ {
if (_lastExecutionResult == null) var path = GetHistoryFilePath();
{
var path = GetHistoryFilePath();
lock (_lastExecutionResultSyncLock) lock (_lastExecutionResultSyncLock)
{
if (_lastExecutionResult == null)
{ {
if (_lastExecutionResult == null) try
{ {
try _lastExecutionResult = JsonSerializer.DeserializeFromFile<TaskResult>(path);
{ }
return JsonSerializer.DeserializeFromFile<TaskResult>(path); catch (DirectoryNotFoundException)
} {
catch (DirectoryNotFoundException) // File doesn't exist. No biggie
{ }
// File doesn't exist. No biggie catch (FileNotFoundException)
} {
catch (FileNotFoundException) // File doesn't exist. No biggie
{ }
// File doesn't exist. No biggie catch (Exception ex)
} {
catch (Exception ex) Logger.ErrorException("Error deserializing {0}", ex, path);
{
Logger.ErrorException("Error deserializing {0}", ex, path);
}
} }
} }
} }

View File

@ -2,6 +2,7 @@
using System; using System;
using System.IO; using System.IO;
using CommonIO; using CommonIO;
using MediaBrowser.Model.Logging;
namespace MediaBrowser.Common.Implementations.Serialization namespace MediaBrowser.Common.Implementations.Serialization
{ {
@ -11,10 +12,12 @@ namespace MediaBrowser.Common.Implementations.Serialization
public class JsonSerializer : IJsonSerializer public class JsonSerializer : IJsonSerializer
{ {
private readonly IFileSystem _fileSystem; private readonly IFileSystem _fileSystem;
private readonly ILogger _logger;
public JsonSerializer(IFileSystem fileSystem)
public JsonSerializer(IFileSystem fileSystem, ILogger logger)
{ {
_fileSystem = fileSystem; _fileSystem = fileSystem;
_logger = logger;
Configure(); Configure();
} }
@ -65,6 +68,7 @@ namespace MediaBrowser.Common.Implementations.Serialization
private Stream OpenFile(string path) private Stream OpenFile(string path)
{ {
_logger.Debug("Deserializing file {0}", path);
return new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read, 131072); return new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read, 131072);
} }

View File

@ -4,6 +4,7 @@ using System.Collections.Concurrent;
using System.IO; using System.IO;
using System.Xml; using System.Xml;
using CommonIO; using CommonIO;
using MediaBrowser.Model.Logging;
namespace MediaBrowser.Common.Implementations.Serialization namespace MediaBrowser.Common.Implementations.Serialization
{ {
@ -12,12 +13,14 @@ namespace MediaBrowser.Common.Implementations.Serialization
/// </summary> /// </summary>
public class XmlSerializer : IXmlSerializer public class XmlSerializer : IXmlSerializer
{ {
private IFileSystem _fileSystem; private readonly IFileSystem _fileSystem;
private readonly ILogger _logger;
public XmlSerializer(IFileSystem fileSystem) public XmlSerializer(IFileSystem fileSystem, ILogger logger)
{ {
_fileSystem = fileSystem; _fileSystem = fileSystem;
} _logger = logger;
}
// Need to cache these // Need to cache these
// http://dotnetcodebox.blogspot.com/2013/01/xmlserializer-class-may-result-in.html // http://dotnetcodebox.blogspot.com/2013/01/xmlserializer-class-may-result-in.html
@ -91,6 +94,7 @@ namespace MediaBrowser.Common.Implementations.Serialization
/// <returns>System.Object.</returns> /// <returns>System.Object.</returns>
public object DeserializeFromFile(Type type, string file) public object DeserializeFromFile(Type type, string file)
{ {
_logger.Debug("Deserializing file {0}", file);
using (var stream = _fileSystem.OpenRead(file)) using (var stream = _fileSystem.OpenRead(file))
{ {
return DeserializeFromStream(type, stream); return DeserializeFromStream(type, stream);

View File

@ -23,7 +23,7 @@ namespace MediaBrowser.Server.Implementations.Devices
private readonly ILogger _logger; private readonly ILogger _logger;
private readonly IFileSystem _fileSystem; private readonly IFileSystem _fileSystem;
private List<DeviceInfo> _devices; private Dictionary<string, DeviceInfo> _devices;
public DeviceRepository(IApplicationPaths appPaths, IJsonSerializer json, ILogger logger, IFileSystem fileSystem) public DeviceRepository(IApplicationPaths appPaths, IJsonSerializer json, ILogger logger, IFileSystem fileSystem)
{ {
@ -46,12 +46,12 @@ namespace MediaBrowser.Server.Implementations.Devices
public Task SaveDevice(DeviceInfo device) public Task SaveDevice(DeviceInfo device)
{ {
var path = Path.Combine(GetDevicePath(device.Id), "device.json"); var path = Path.Combine(GetDevicePath(device.Id), "device.json");
_fileSystem.CreateDirectory(Path.GetDirectoryName(path)); _fileSystem.CreateDirectory(Path.GetDirectoryName(path));
lock (_syncLock) lock (_syncLock)
{ {
_json.SerializeToFile(device, path); _json.SerializeToFile(device, path);
_devices = null; _devices[device.Id] = device;
} }
return Task.FromResult(true); return Task.FromResult(true);
} }
@ -95,9 +95,15 @@ namespace MediaBrowser.Server.Implementations.Devices
{ {
if (_devices == null) if (_devices == null)
{ {
_devices = LoadDevices().ToList(); _devices = new Dictionary<string, DeviceInfo>(StringComparer.OrdinalIgnoreCase);
var devices = LoadDevices().ToList();
foreach (var device in devices)
{
_devices[device.Id] = device;
}
} }
return _devices.ToList(); return _devices.Values.ToList();
} }
} }
@ -144,7 +150,7 @@ namespace MediaBrowser.Server.Implementations.Devices
catch (DirectoryNotFoundException) catch (DirectoryNotFoundException)
{ {
} }
_devices = null; _devices = null;
} }
@ -174,7 +180,7 @@ namespace MediaBrowser.Server.Implementations.Devices
public void AddCameraUpload(string deviceId, LocalFileInfo file) public void AddCameraUpload(string deviceId, LocalFileInfo file)
{ {
var path = Path.Combine(GetDevicePath(deviceId), "camerauploads.json"); var path = Path.Combine(GetDevicePath(deviceId), "camerauploads.json");
_fileSystem.CreateDirectory(Path.GetDirectoryName(path)); _fileSystem.CreateDirectory(Path.GetDirectoryName(path));
lock (_syncLock) lock (_syncLock)
{ {