Browse Source

update logging

Luke Pulverenti 9 years ago
parent
commit
dc5f2dd440

+ 2 - 2
MediaBrowser.Common.Implementations/BaseApplicationHost.cs

@@ -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()

+ 18 - 21
MediaBrowser.Common.Implementations/ScheduledTasks/ScheduledTaskWorker.cs

@@ -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
+                        {
+                            _lastExecutionResult = JsonSerializer.DeserializeFromFile<TaskResult>(path);
+                        }
+                        catch (DirectoryNotFoundException)
+                        {
+                            // File doesn't exist. No biggie
+                        }
+                        catch (FileNotFoundException)
+                        {
+                            // File doesn't exist. No biggie
+                        }
+                        catch (Exception ex)
                         {
                         {
-                            try
-                            {
-                                return JsonSerializer.DeserializeFromFile<TaskResult>(path);
-                            }
-                            catch (DirectoryNotFoundException)
-                            {
-                                // File doesn't exist. No biggie
-                            }
-                            catch (FileNotFoundException)
-                            {
-                                // File doesn't exist. No biggie
-                            }
-                            catch (Exception ex)
-                            {
-                                Logger.ErrorException("Error deserializing {0}", ex, path);
-                            }
+                            Logger.ErrorException("Error deserializing {0}", ex, path);
                         }
                         }
                     }
                     }
                 }
                 }

+ 6 - 2
MediaBrowser.Common.Implementations/Serialization/JsonSerializer.cs

@@ -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;
-        
-        public JsonSerializer(IFileSystem fileSystem)
+        private readonly ILogger _logger;
+
+        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);
         }
         }
 
 

+ 9 - 5
MediaBrowser.Common.Implementations/Serialization/XmlSerializer.cs

@@ -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) 
-		{
-			_fileSystem = fileSystem;
-		}
+        public XmlSerializer(IFileSystem fileSystem, ILogger logger)
+        {
+            _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);

+ 13 - 7
MediaBrowser.Server.Implementations/Devices/DeviceRepository.cs

@@ -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)
             {
             {