Merge pull request #4 from jellyfin/dev

Dev
This commit is contained in:
LogicalPhallacy 2019-01-01 11:47:57 -08:00 committed by GitHub
commit 443218e3f1
375 changed files with 2403 additions and 2915 deletions

1
.gitattributes vendored Normal file
View File

@ -0,0 +1 @@
CONTRIBUTORS.md merge=union

View File

@ -1,4 +0,0 @@
1. Don't sneakily relicense free software.
2. Don't continually nag users to give you money.
3. Don't hide binary blobs in otherwise free software.
4. Don't needlessly obfuscate the build process or any other part of free software.

View File

@ -4,6 +4,10 @@
- [nvllsvm](https://github.com/nvllsvm) - [nvllsvm](https://github.com/nvllsvm)
- [JustAMan](https://github.com/JustAMan) - [JustAMan](https://github.com/JustAMan)
- [dcrdev](https://github.com/dcrdev) - [dcrdev](https://github.com/dcrdev)
- [EraYaN](https://github.com/EraYaN)
- [flemse](https://github.com/flemse)
- [bfayers](https://github.com/bfayers)
- [Bond_009](https://github.com/Bond-009)
# Emby Contributors # Emby Contributors

View File

@ -2,9 +2,9 @@
using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Dlna; using MediaBrowser.Controller.Dlna;
using Emby.Dlna.Service; using Emby.Dlna.Service;
using MediaBrowser.Model.Logging;
using System.Collections.Generic; using System.Collections.Generic;
using MediaBrowser.Model.Xml; using MediaBrowser.Model.Xml;
using Microsoft.Extensions.Logging;
namespace Emby.Dlna.ConnectionManager namespace Emby.Dlna.ConnectionManager
{ {

View File

@ -3,7 +3,7 @@ using MediaBrowser.Controller.Configuration;
using Emby.Dlna.Server; using Emby.Dlna.Server;
using Emby.Dlna.Service; using Emby.Dlna.Service;
using MediaBrowser.Model.Dlna; using MediaBrowser.Model.Dlna;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using MediaBrowser.Model.Xml; using MediaBrowser.Model.Xml;

View File

@ -6,7 +6,7 @@ using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Library;
using Emby.Dlna.Service; using Emby.Dlna.Service;
using MediaBrowser.Model.Dlna; using MediaBrowser.Model.Dlna;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using MediaBrowser.Controller.MediaEncoding; using MediaBrowser.Controller.MediaEncoding;

View File

@ -12,7 +12,7 @@ using Emby.Dlna.Service;
using MediaBrowser.Model.Configuration; using MediaBrowser.Model.Configuration;
using MediaBrowser.Model.Dlna; using MediaBrowser.Model.Dlna;
using MediaBrowser.Model.Entities; using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using MediaBrowser.Model.Querying; using MediaBrowser.Model.Querying;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
@ -68,7 +68,7 @@ namespace Emby.Dlna.ContentDirectory
_profile = profile; _profile = profile;
_config = config; _config = config;
_didlBuilder = new DidlBuilder(profile, user, imageProcessor, serverAddress, accessToken, userDataManager, localization, mediaSourceManager, Logger, libraryManager, mediaEncoder); _didlBuilder = new DidlBuilder(profile, user, imageProcessor, serverAddress, accessToken, userDataManager, localization, mediaSourceManager, _logger, libraryManager, mediaEncoder);
} }
protected override IEnumerable<KeyValuePair<string, string>> GetResult(string methodName, IDictionary<string, string> methodParams) protected override IEnumerable<KeyValuePair<string, string>> GetResult(string methodName, IDictionary<string, string> methodParams)
@ -467,7 +467,7 @@ namespace Emby.Dlna.ContentDirectory
IsMissing = false, IsMissing = false,
ExcludeItemTypes = new[] { typeof(Game).Name, typeof(Book).Name }, ExcludeItemTypes = new[] { typeof(Game).Name, typeof(Book).Name },
IsFolder = isFolder, IsFolder = isFolder,
MediaTypes = mediaTypes.ToArray(mediaTypes.Count), MediaTypes = mediaTypes.ToArray(),
DtoOptions = GetDtoOptions() DtoOptions = GetDtoOptions()
}); });
} }
@ -676,7 +676,7 @@ namespace Emby.Dlna.ContentDirectory
return new QueryResult<ServerItem> return new QueryResult<ServerItem>
{ {
Items = list.ToArray(list.Count), Items = list.ToArray(),
TotalRecordCount = list.Count TotalRecordCount = list.Count
}; };
} }
@ -754,7 +754,7 @@ namespace Emby.Dlna.ContentDirectory
return new QueryResult<ServerItem> return new QueryResult<ServerItem>
{ {
Items = list.ToArray(list.Count), Items = list.ToArray(),
TotalRecordCount = list.Count TotalRecordCount = list.Count
}; };
} }
@ -859,7 +859,7 @@ namespace Emby.Dlna.ContentDirectory
return new QueryResult<ServerItem> return new QueryResult<ServerItem>
{ {
Items = list.ToArray(list.Count), Items = list.ToArray(),
TotalRecordCount = list.Count TotalRecordCount = list.Count
}; };
} }
@ -1026,7 +1026,7 @@ namespace Emby.Dlna.ContentDirectory
var result = new QueryResult<BaseItem> var result = new QueryResult<BaseItem>
{ {
TotalRecordCount = genresResult.TotalRecordCount, TotalRecordCount = genresResult.TotalRecordCount,
Items = genresResult.Items.Select(i => i.Item1).ToArray(genresResult.Items.Length) Items = genresResult.Items.Select(i => i.Item1).ToArray()
}; };
return ToResult(result); return ToResult(result);
@ -1044,7 +1044,7 @@ namespace Emby.Dlna.ContentDirectory
var result = new QueryResult<BaseItem> var result = new QueryResult<BaseItem>
{ {
TotalRecordCount = genresResult.TotalRecordCount, TotalRecordCount = genresResult.TotalRecordCount,
Items = genresResult.Items.Select(i => i.Item1).ToArray(genresResult.Items.Length) Items = genresResult.Items.Select(i => i.Item1).ToArray()
}; };
return ToResult(result); return ToResult(result);
@ -1062,7 +1062,7 @@ namespace Emby.Dlna.ContentDirectory
var result = new QueryResult<BaseItem> var result = new QueryResult<BaseItem>
{ {
TotalRecordCount = artists.TotalRecordCount, TotalRecordCount = artists.TotalRecordCount,
Items = artists.Items.Select(i => i.Item1).ToArray(artists.Items.Length) Items = artists.Items.Select(i => i.Item1).ToArray()
}; };
return ToResult(result); return ToResult(result);
@ -1080,7 +1080,7 @@ namespace Emby.Dlna.ContentDirectory
var result = new QueryResult<BaseItem> var result = new QueryResult<BaseItem>
{ {
TotalRecordCount = artists.TotalRecordCount, TotalRecordCount = artists.TotalRecordCount,
Items = artists.Items.Select(i => i.Item1).ToArray(artists.Items.Length) Items = artists.Items.Select(i => i.Item1).ToArray()
}; };
return ToResult(result); return ToResult(result);
@ -1099,7 +1099,7 @@ namespace Emby.Dlna.ContentDirectory
var result = new QueryResult<BaseItem> var result = new QueryResult<BaseItem>
{ {
TotalRecordCount = artists.TotalRecordCount, TotalRecordCount = artists.TotalRecordCount,
Items = artists.Items.Select(i => i.Item1).ToArray(artists.Items.Length) Items = artists.Items.Select(i => i.Item1).ToArray()
}; };
return ToResult(result); return ToResult(result);
@ -1247,7 +1247,7 @@ namespace Emby.Dlna.ContentDirectory
{ {
var serverItems = result var serverItems = result
.Select(i => new ServerItem(i)) .Select(i => new ServerItem(i))
.ToArray(result.Length); .ToArray();
return new QueryResult<ServerItem> return new QueryResult<ServerItem>
{ {
@ -1334,7 +1334,7 @@ namespace Emby.Dlna.ContentDirectory
}; };
} }
Logger.Error("Error parsing item Id: {0}. Returning user root folder.", id); _logger.LogError("Error parsing item Id: {id}. Returning user root folder.", id);
return new ServerItem(_libraryManager.GetUserRootFolder()); return new ServerItem(_libraryManager.GetUserRootFolder());
} }

View File

@ -11,7 +11,7 @@ using Emby.Dlna.ContentDirectory;
using MediaBrowser.Model.Dlna; using MediaBrowser.Model.Dlna;
using MediaBrowser.Model.Drawing; using MediaBrowser.Model.Drawing;
using MediaBrowser.Model.Entities; using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using MediaBrowser.Model.Net; using MediaBrowser.Model.Net;
using System; using System;
using System.Globalization; using System.Globalization;
@ -173,16 +173,6 @@ namespace Emby.Dlna.Didl
writer.WriteFullEndElement(); writer.WriteFullEndElement();
} }
private ILogger GetStreamBuilderLogger(DlnaOptions options)
{
if (options.EnableDebugLog)
{
return _logger;
}
return new NullLogger();
}
private string GetMimeType(string input) private string GetMimeType(string input)
{ {
var mime = MimeTypes.GetMimeType(input); var mime = MimeTypes.GetMimeType(input);
@ -202,7 +192,7 @@ namespace Emby.Dlna.Didl
{ {
var sources = _mediaSourceManager.GetStaticMediaSources(video, true, _user); var sources = _mediaSourceManager.GetStaticMediaSources(video, true, _user);
streamInfo = new StreamBuilder(_mediaEncoder, GetStreamBuilderLogger(options)).BuildVideoItem(new VideoOptions streamInfo = new StreamBuilder(_mediaEncoder, _logger).BuildVideoItem(new VideoOptions
{ {
ItemId = video.Id, ItemId = video.Id,
MediaSources = sources.ToArray(), MediaSources = sources.ToArray(),
@ -509,10 +499,10 @@ namespace Emby.Dlna.Didl
{ {
var sources = _mediaSourceManager.GetStaticMediaSources(audio, true, _user); var sources = _mediaSourceManager.GetStaticMediaSources(audio, true, _user);
streamInfo = new StreamBuilder(_mediaEncoder, GetStreamBuilderLogger(options)).BuildAudioItem(new AudioOptions streamInfo = new StreamBuilder(_mediaEncoder, _logger).BuildAudioItem(new AudioOptions
{ {
ItemId = audio.Id, ItemId = audio.Id,
MediaSources = sources.ToArray(sources.Count), MediaSources = sources.ToArray(),
Profile = _profile, Profile = _profile,
DeviceId = deviceId DeviceId = deviceId
}); });
@ -923,9 +913,9 @@ namespace Emby.Dlna.Didl
writer.WriteFullEndElement(); writer.WriteFullEndElement();
} }
catch (XmlException) catch (XmlException ex)
{ {
//_logger.Error("Error adding xml value: " + value); _logger.LogError(ex, "Error adding xml value: {value}", name);
} }
} }
@ -935,9 +925,9 @@ namespace Emby.Dlna.Didl
{ {
writer.WriteElementString(prefix, name, namespaceUri, value); writer.WriteElementString(prefix, name, namespaceUri, value);
} }
catch (XmlException) catch (XmlException ex)
{ {
//_logger.Error("Error adding xml value: " + value); _logger.LogError(ex, "Error adding xml value: {value}", value);
} }
} }
@ -1080,9 +1070,9 @@ namespace Emby.Dlna.Didl
{ {
tag = _imageProcessor.GetImageCacheTag(item, type); tag = _imageProcessor.GetImageCacheTag(item, type);
} }
catch catch (Exception ex)
{ {
_logger.LogError(ex, "Error getting image cache tag");
} }
int? width = imageInfo.Width; int? width = imageInfo.Width;

View File

@ -8,7 +8,7 @@ using Emby.Dlna.Profiles;
using Emby.Dlna.Server; using Emby.Dlna.Server;
using MediaBrowser.Model.Dlna; using MediaBrowser.Model.Dlna;
using MediaBrowser.Model.Drawing; using MediaBrowser.Model.Drawing;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using MediaBrowser.Model.Serialization; using MediaBrowser.Model.Serialization;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
@ -58,7 +58,7 @@ namespace Emby.Dlna
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error extracting DLNA profiles.", ex); _logger.LogError(ex, "Error extracting DLNA profiles.");
} }
} }
@ -103,7 +103,7 @@ namespace Emby.Dlna
if (profile != null) if (profile != null)
{ {
_logger.Debug("Found matching device profile: {0}", profile.Name); _logger.LogDebug("Found matching device profile: {0}", profile.Name);
} }
else else
{ {
@ -117,6 +117,7 @@ namespace Emby.Dlna
{ {
var builder = new StringBuilder(); var builder = new StringBuilder();
builder.AppendLine("No matching device profile found. The default will need to be used.");
builder.AppendLine(string.Format("DeviceDescription:{0}", profile.DeviceDescription ?? string.Empty)); builder.AppendLine(string.Format("DeviceDescription:{0}", profile.DeviceDescription ?? string.Empty));
builder.AppendLine(string.Format("FriendlyName:{0}", profile.FriendlyName ?? string.Empty)); builder.AppendLine(string.Format("FriendlyName:{0}", profile.FriendlyName ?? string.Empty));
builder.AppendLine(string.Format("Manufacturer:{0}", profile.Manufacturer ?? string.Empty)); builder.AppendLine(string.Format("Manufacturer:{0}", profile.Manufacturer ?? string.Empty));
@ -127,7 +128,7 @@ namespace Emby.Dlna
builder.AppendLine(string.Format("ModelUrl:{0}", profile.ModelUrl ?? string.Empty)); builder.AppendLine(string.Format("ModelUrl:{0}", profile.ModelUrl ?? string.Empty));
builder.AppendLine(string.Format("SerialNumber:{0}", profile.SerialNumber ?? string.Empty)); builder.AppendLine(string.Format("SerialNumber:{0}", profile.SerialNumber ?? string.Empty));
_logger.LogMultiline("No matching device profile found. The default will need to be used.", LogSeverity.Info, builder); _logger.LogInformation(builder.ToString());
} }
private bool IsMatch(DeviceIdentification deviceInfo, DeviceIdentification profileInfo) private bool IsMatch(DeviceIdentification deviceInfo, DeviceIdentification profileInfo)
@ -197,7 +198,7 @@ namespace Emby.Dlna
} }
catch (ArgumentException ex) catch (ArgumentException ex)
{ {
_logger.ErrorException("Error evaluating regex pattern {0}", ex, pattern); _logger.LogError(ex, "Error evaluating regex pattern {Pattern}", pattern);
return false; return false;
} }
} }
@ -216,12 +217,12 @@ namespace Emby.Dlna
if (profile != null) if (profile != null)
{ {
_logger.Debug("Found matching device profile: {0}", profile.Name); _logger.LogDebug("Found matching device profile: {0}", profile.Name);
} }
else else
{ {
var headerString = string.Join(", ", headers.Select(i => string.Format("{0}={1}", i.Key, i.Value)).ToArray()); var headerString = string.Join(", ", headers.Select(i => string.Format("{0}={1}", i.Key, i.Value)).ToArray());
_logger.Debug("No matching device profile found. {0}", headerString); _logger.LogDebug("No matching device profile found. {0}", headerString);
} }
return profile; return profile;
@ -250,7 +251,7 @@ namespace Emby.Dlna
return string.Equals(value, header.Value, StringComparison.OrdinalIgnoreCase); return string.Equals(value, header.Value, StringComparison.OrdinalIgnoreCase);
case HeaderMatchType.Substring: case HeaderMatchType.Substring:
var isMatch = value.IndexOf(header.Value, StringComparison.OrdinalIgnoreCase) != -1; var isMatch = value.IndexOf(header.Value, StringComparison.OrdinalIgnoreCase) != -1;
//_logger.Debug("IsMatch-Substring value: {0} testValue: {1} isMatch: {2}", value, header.Value, isMatch); //_logger.LogDebug("IsMatch-Substring value: {0} testValue: {1} isMatch: {2}", value, header.Value, isMatch);
return isMatch; return isMatch;
case HeaderMatchType.Regex: case HeaderMatchType.Regex:
return Regex.IsMatch(value, header.Value, RegexOptions.IgnoreCase); return Regex.IsMatch(value, header.Value, RegexOptions.IgnoreCase);
@ -323,7 +324,7 @@ namespace Emby.Dlna
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error parsing profile file: {0}", ex, path); _logger.LogError(ex, "Error parsing profile file: {Path}", path);
return null; return null;
} }
@ -530,8 +531,8 @@ namespace Emby.Dlna
}; };
} }
} }
/*
class DlnaProfileEntryPoint /*: IServerEntryPoint*/ class DlnaProfileEntryPoint : IServerEntryPoint
{ {
private readonly IApplicationPaths _appPaths; private readonly IApplicationPaths _appPaths;
private readonly IFileSystem _fileSystem; private readonly IFileSystem _fileSystem;
@ -551,7 +552,7 @@ namespace Emby.Dlna
private void DumpProfiles() private void DumpProfiles()
{ {
var list = new List<DeviceProfile> DeviceProfile[] list = new []
{ {
new SamsungSmartTvProfile(), new SamsungSmartTvProfile(),
new XboxOneProfile(), new XboxOneProfile(),
@ -596,5 +597,5 @@ namespace Emby.Dlna
public void Dispose() public void Dispose()
{ {
} }
} }*/
} }

View File

@ -1,7 +1,7 @@
using MediaBrowser.Common.Extensions; using MediaBrowser.Common.Extensions;
using MediaBrowser.Common.Net; using MediaBrowser.Common.Net;
using MediaBrowser.Controller.Dlna; using MediaBrowser.Controller.Dlna;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using System; using System;
using System.Collections.Concurrent; using System.Collections.Concurrent;
using System.Collections.Generic; using System.Collections.Generic;
@ -34,7 +34,7 @@ namespace Emby.Dlna.Eventing
// Remove logging for now because some devices are sending this very frequently // Remove logging for now because some devices are sending this very frequently
// TODO re-enable with dlna debug logging setting // TODO re-enable with dlna debug logging setting
//_logger.Debug("Renewing event subscription for {0} with timeout of {1} to {2}", //_logger.LogDebug("Renewing event subscription for {0} with timeout of {1} to {2}",
// subscription.NotificationType, // subscription.NotificationType,
// timeout, // timeout,
// subscription.CallbackUrl); // subscription.CallbackUrl);
@ -60,7 +60,7 @@ namespace Emby.Dlna.Eventing
// Remove logging for now because some devices are sending this very frequently // Remove logging for now because some devices are sending this very frequently
// TODO re-enable with dlna debug logging setting // TODO re-enable with dlna debug logging setting
//_logger.Debug("Creating event subscription for {0} with timeout of {1} to {2}", //_logger.LogDebug("Creating event subscription for {0} with timeout of {1} to {2}",
// notificationType, // notificationType,
// timeout, // timeout,
// callbackUrl); // callbackUrl);
@ -96,7 +96,7 @@ namespace Emby.Dlna.Eventing
public EventSubscriptionResponse CancelEventSubscription(string subscriptionId) public EventSubscriptionResponse CancelEventSubscription(string subscriptionId)
{ {
_logger.Debug("Cancelling event subscription {0}", subscriptionId); _logger.LogDebug("Cancelling event subscription {0}", subscriptionId);
EventSubscription sub; EventSubscription sub;
_subscriptions.TryRemove(subscriptionId, out sub); _subscriptions.TryRemove(subscriptionId, out sub);

View File

@ -11,7 +11,7 @@ using MediaBrowser.Controller.Session;
using MediaBrowser.Controller.TV; using MediaBrowser.Controller.TV;
using Emby.Dlna.PlayTo; using Emby.Dlna.PlayTo;
using Emby.Dlna.Ssdp; using Emby.Dlna.Ssdp;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using System; using System;
using System.Linq; using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
@ -64,7 +64,7 @@ namespace Emby.Dlna.Main
public static DlnaEntryPoint Current; public static DlnaEntryPoint Current;
public DlnaEntryPoint(IServerConfigurationManager config, public DlnaEntryPoint(IServerConfigurationManager config,
ILogManager logManager, ILoggerFactory loggerFactory,
IServerApplicationHost appHost, IServerApplicationHost appHost,
ISessionManager sessionManager, ISessionManager sessionManager,
IHttpClient httpClient, IHttpClient httpClient,
@ -102,7 +102,7 @@ namespace Emby.Dlna.Main
_timerFactory = timerFactory; _timerFactory = timerFactory;
_environmentInfo = environmentInfo; _environmentInfo = environmentInfo;
_networkManager = networkManager; _networkManager = networkManager;
_logger = logManager.GetLogger("Dlna"); _logger = loggerFactory.CreateLogger("Dlna");
ContentDirectory = new ContentDirectory.ContentDirectory(dlnaManager, ContentDirectory = new ContentDirectory.ContentDirectory(dlnaManager,
userDataManager, userDataManager,
@ -185,13 +185,13 @@ namespace Emby.Dlna.Main
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error starting ssdp handlers", ex); _logger.LogError(ex, "Error starting ssdp handlers");
} }
} }
private void LogMessage(string msg) private void LogMessage(string msg)
{ {
_logger.Debug(msg); _logger.LogDebug(msg);
} }
private void StartDeviceDiscovery(ISsdpCommunicationsServer communicationsServer) private void StartDeviceDiscovery(ISsdpCommunicationsServer communicationsServer)
@ -202,7 +202,7 @@ namespace Emby.Dlna.Main
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error starting device discovery", ex); _logger.LogError(ex, "Error starting device discovery");
} }
} }
@ -210,12 +210,12 @@ namespace Emby.Dlna.Main
{ {
try try
{ {
_logger.Info("Disposing DeviceDiscovery"); _logger.LogInformation("Disposing DeviceDiscovery");
((DeviceDiscovery)_deviceDiscovery).Dispose(); ((DeviceDiscovery)_deviceDiscovery).Dispose();
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error stopping device discovery", ex); _logger.LogError(ex, "Error stopping device discovery");
} }
} }
@ -243,7 +243,7 @@ namespace Emby.Dlna.Main
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error registering endpoint", ex); _logger.LogError(ex, "Error registering endpoint");
} }
} }
@ -263,7 +263,7 @@ namespace Emby.Dlna.Main
var fullService = "urn:schemas-upnp-org:device:MediaServer:1"; var fullService = "urn:schemas-upnp-org:device:MediaServer:1";
_logger.Info("Registering publisher for {0} on {1}", fullService, address.ToString()); _logger.LogInformation("Registering publisher for {0} on {1}", fullService, address.ToString());
var descriptorUri = "/dlna/" + udn + "/description.xml"; var descriptorUri = "/dlna/" + udn + "/description.xml";
var uri = new Uri(_appHost.GetLocalApiUrl(address) + descriptorUri); var uri = new Uri(_appHost.GetLocalApiUrl(address) + descriptorUri);
@ -361,7 +361,7 @@ namespace Emby.Dlna.Main
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error starting PlayTo manager", ex); _logger.LogError(ex, "Error starting PlayTo manager");
} }
} }
} }
@ -374,12 +374,12 @@ namespace Emby.Dlna.Main
{ {
try try
{ {
_logger.Info("Disposing PlayToManager"); _logger.LogInformation("Disposing PlayToManager");
_manager.Dispose(); _manager.Dispose();
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error disposing PlayTo manager", ex); _logger.LogError(ex, "Error disposing PlayTo manager");
} }
_manager = null; _manager = null;
} }
@ -394,7 +394,7 @@ namespace Emby.Dlna.Main
if (_communicationsServer != null) if (_communicationsServer != null)
{ {
_logger.Info("Disposing SsdpCommunicationsServer"); _logger.LogInformation("Disposing SsdpCommunicationsServer");
_communicationsServer.Dispose(); _communicationsServer.Dispose();
_communicationsServer = null; _communicationsServer = null;
} }
@ -409,7 +409,7 @@ namespace Emby.Dlna.Main
{ {
if (_Publisher != null) if (_Publisher != null)
{ {
_logger.Info("Disposing SsdpDevicePublisher"); _logger.LogInformation("Disposing SsdpDevicePublisher");
_Publisher.Dispose(); _Publisher.Dispose();
_Publisher = null; _Publisher = null;
} }

View File

@ -2,7 +2,7 @@
using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Configuration;
using Emby.Dlna.Server; using Emby.Dlna.Server;
using Emby.Dlna.Service; using Emby.Dlna.Service;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using MediaBrowser.Model.Xml; using MediaBrowser.Model.Xml;

View File

@ -2,7 +2,7 @@
using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Dlna; using MediaBrowser.Controller.Dlna;
using Emby.Dlna.Service; using Emby.Dlna.Service;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using MediaBrowser.Model.Xml; using MediaBrowser.Model.Xml;

View File

@ -2,7 +2,7 @@
using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Configuration;
using Emby.Dlna.Common; using Emby.Dlna.Common;
using Emby.Dlna.Ssdp; using Emby.Dlna.Ssdp;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using MediaBrowser.Model.Net; using MediaBrowser.Model.Net;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
@ -108,7 +108,7 @@ namespace Emby.Dlna.PlayTo
public void Start() public void Start()
{ {
_logger.Debug("Dlna Device.Start"); _logger.LogDebug("Dlna Device.Start");
_timer = _timerFactory.Create(TimerCallback, null, 1000, Timeout.Infinite); _timer = _timerFactory.Create(TimerCallback, null, 1000, Timeout.Infinite);
} }
@ -140,7 +140,7 @@ namespace Emby.Dlna.PlayTo
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error updating device volume info for {0}", ex, Properties.Name); _logger.LogError(ex, "Error updating device volume info for {DeviceName}", Properties.Name);
} }
} }
@ -259,7 +259,7 @@ namespace Emby.Dlna.PlayTo
return false; return false;
} }
_logger.Debug("Setting mute"); _logger.LogDebug("Setting mute");
var value = mute ? 1 : 0; var value = mute ? 1 : 0;
await new SsdpHttpClient(_httpClient, _config).SendCommandAsync(Properties.BaseUrl, service, command.Name, rendererCommands.BuildPost(command, service.ServiceType, value)) await new SsdpHttpClient(_httpClient, _config).SendCommandAsync(Properties.BaseUrl, service, command.Name, rendererCommands.BuildPost(command, service.ServiceType, value))
@ -323,7 +323,7 @@ namespace Emby.Dlna.PlayTo
url = url.Replace("&", "&amp;"); url = url.Replace("&", "&amp;");
_logger.Debug("{0} - SetAvTransport Uri: {1} DlnaHeaders: {2}", Properties.Name, url, header); _logger.LogDebug("{0} - SetAvTransport Uri: {1} DlnaHeaders: {2}", Properties.Name, url, header);
var command = avCommands.ServiceActions.FirstOrDefault(c => c.Name == "SetAVTransportURI"); var command = avCommands.ServiceActions.FirstOrDefault(c => c.Name == "SetAVTransportURI");
if (command == null) if (command == null)
@ -507,7 +507,7 @@ namespace Emby.Dlna.PlayTo
if (_disposed) if (_disposed)
return; return;
//_logger.ErrorException("Error updating device info for {0}", ex, Properties.Name); _logger.LogError(ex, "Error updating device info for {DeviceName}", Properties.Name);
_connectFailureCount++; _connectFailureCount++;
@ -516,7 +516,7 @@ namespace Emby.Dlna.PlayTo
var action = OnDeviceUnavailable; var action = OnDeviceUnavailable;
if (action != null) if (action != null)
{ {
_logger.Debug("Disposing device due to loss of connection"); _logger.LogDebug("Disposing device due to loss of connection");
action(); action();
return; return;
} }
@ -767,7 +767,7 @@ namespace Emby.Dlna.PlayTo
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Unable to parse xml {0}", ex, trackString); _logger.LogError(ex, "Unable to parse xml {0}", trackString);
return new Tuple<bool, uBaseObject>(true, null); return new Tuple<bool, uBaseObject>(true, null);
} }
} }
@ -887,7 +887,7 @@ namespace Emby.Dlna.PlayTo
string url = NormalizeUrl(Properties.BaseUrl, avService.ScpdUrl); string url = NormalizeUrl(Properties.BaseUrl, avService.ScpdUrl);
var httpClient = new SsdpHttpClient(_httpClient, _config); var httpClient = new SsdpHttpClient(_httpClient, _config);
_logger.Debug("Dlna Device.GetRenderingProtocolAsync"); _logger.LogDebug("Dlna Device.GetRenderingProtocolAsync");
var document = await httpClient.GetDataAsync(url, cancellationToken).ConfigureAwait(false); var document = await httpClient.GetDataAsync(url, cancellationToken).ConfigureAwait(false);
rendererCommands = TransportCommands.Create(document); rendererCommands = TransportCommands.Create(document);
@ -941,7 +941,7 @@ namespace Emby.Dlna.PlayTo
if (room != null && !string.IsNullOrWhiteSpace(room.Value)) if (room != null && !string.IsNullOrWhiteSpace(room.Value))
friendlyNames.Add(room.Value); friendlyNames.Add(room.Value);
deviceProperties.Name = string.Join(" ", friendlyNames.ToArray(friendlyNames.Count)); deviceProperties.Name = string.Join(" ", friendlyNames.ToArray());
var model = document.Descendants(uPnpNamespaces.ud.GetName("modelName")).FirstOrDefault(); var model = document.Descendants(uPnpNamespaces.ud.GetName("modelName")).FirstOrDefault();
if (model != null) if (model != null)

View File

@ -7,7 +7,7 @@ using Emby.Dlna.Didl;
using MediaBrowser.Model.Dlna; using MediaBrowser.Model.Dlna;
using MediaBrowser.Model.Dto; using MediaBrowser.Model.Dto;
using MediaBrowser.Model.Entities; using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using MediaBrowser.Model.Session; using MediaBrowser.Model.Session;
using MediaBrowser.Model.System; using MediaBrowser.Model.System;
using System; using System;
@ -156,7 +156,7 @@ namespace Emby.Dlna.PlayTo
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error reporting progress", ex); _logger.LogError(ex, "Error reporting progress");
} }
} }
@ -204,7 +204,7 @@ namespace Emby.Dlna.PlayTo
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error reporting playback stopped", ex); _logger.LogError(ex, "Error reporting playback stopped");
} }
} }
@ -223,7 +223,7 @@ namespace Emby.Dlna.PlayTo
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error reporting progress", ex); _logger.LogError(ex, "Error reporting progress");
} }
} }
@ -247,7 +247,7 @@ namespace Emby.Dlna.PlayTo
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error reporting progress", ex); _logger.LogError(ex, "Error reporting progress");
} }
} }
@ -278,7 +278,7 @@ namespace Emby.Dlna.PlayTo
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error reporting progress", ex); _logger.LogError(ex, "Error reporting progress");
} }
} }
@ -319,7 +319,7 @@ namespace Emby.Dlna.PlayTo
public async Task SendPlayCommand(PlayRequest command, CancellationToken cancellationToken) public async Task SendPlayCommand(PlayRequest command, CancellationToken cancellationToken)
{ {
_logger.Debug("{0} - Received PlayRequest: {1}", this._session.DeviceName, command.PlayCommand); _logger.LogDebug("{0} - Received PlayRequest: {1}", this._session.DeviceName, command.PlayCommand);
var user = command.ControllingUserId.Equals(Guid.Empty) ? null : _userManager.GetUserById(command.ControllingUserId); var user = command.ControllingUserId.Equals(Guid.Empty) ? null : _userManager.GetUserById(command.ControllingUserId);
@ -351,7 +351,7 @@ namespace Emby.Dlna.PlayTo
} }
} }
_logger.Debug("{0} - Playlist created", _session.DeviceName); _logger.LogDebug("{0} - Playlist created", _session.DeviceName);
if (command.PlayCommand == PlayCommand.PlayLast) if (command.PlayCommand == PlayCommand.PlayLast)
{ {
@ -532,23 +532,13 @@ namespace Emby.Dlna.PlayTo
return null; return null;
} }
private ILogger GetStreamBuilderLogger()
{
if (_config.GetDlnaConfiguration().EnableDebugLog)
{
return _logger;
}
return new NullLogger();
}
private PlaylistItem GetPlaylistItem(BaseItem item, List<MediaSourceInfo> mediaSources, DeviceProfile profile, string deviceId, string mediaSourceId, int? audioStreamIndex, int? subtitleStreamIndex) private PlaylistItem GetPlaylistItem(BaseItem item, List<MediaSourceInfo> mediaSources, DeviceProfile profile, string deviceId, string mediaSourceId, int? audioStreamIndex, int? subtitleStreamIndex)
{ {
if (string.Equals(item.MediaType, MediaType.Video, StringComparison.OrdinalIgnoreCase)) if (string.Equals(item.MediaType, MediaType.Video, StringComparison.OrdinalIgnoreCase))
{ {
return new PlaylistItem return new PlaylistItem
{ {
StreamInfo = new StreamBuilder(_mediaEncoder, GetStreamBuilderLogger()).BuildVideoItem(new VideoOptions StreamInfo = new StreamBuilder(_mediaEncoder, _logger).BuildVideoItem(new VideoOptions
{ {
ItemId = item.Id, ItemId = item.Id,
MediaSources = mediaSources.ToArray(), MediaSources = mediaSources.ToArray(),
@ -568,10 +558,10 @@ namespace Emby.Dlna.PlayTo
{ {
return new PlaylistItem return new PlaylistItem
{ {
StreamInfo = new StreamBuilder(_mediaEncoder, GetStreamBuilderLogger()).BuildAudioItem(new AudioOptions StreamInfo = new StreamBuilder(_mediaEncoder, _logger).BuildAudioItem(new AudioOptions
{ {
ItemId = item.Id, ItemId = item.Id,
MediaSources = mediaSources.ToArray(mediaSources.Count), MediaSources = mediaSources.ToArray(),
Profile = profile, Profile = profile,
DeviceId = deviceId, DeviceId = deviceId,
MaxBitrate = profile.MaxStreamingBitrate, MaxBitrate = profile.MaxStreamingBitrate,
@ -599,7 +589,7 @@ namespace Emby.Dlna.PlayTo
{ {
Playlist.Clear(); Playlist.Clear();
Playlist.AddRange(items); Playlist.AddRange(items);
_logger.Debug("{0} - Playing {1} items", _session.DeviceName, Playlist.Count); _logger.LogDebug("{0} - Playing {1} items", _session.DeviceName, Playlist.Count);
await SetPlaylistIndex(0).ConfigureAwait(false); await SetPlaylistIndex(0).ConfigureAwait(false);
return true; return true;

View File

@ -5,7 +5,7 @@ using MediaBrowser.Controller.Dlna;
using MediaBrowser.Controller.Drawing; using MediaBrowser.Controller.Drawing;
using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Session; using MediaBrowser.Controller.Session;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using MediaBrowser.Model.Session; using MediaBrowser.Model.Session;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
@ -93,7 +93,7 @@ namespace Emby.Dlna.PlayTo
if (usn.IndexOf("MediaRenderer:", StringComparison.OrdinalIgnoreCase) == -1 && if (usn.IndexOf("MediaRenderer:", StringComparison.OrdinalIgnoreCase) == -1 &&
nt.IndexOf("MediaRenderer:", StringComparison.OrdinalIgnoreCase) == -1) nt.IndexOf("MediaRenderer:", StringComparison.OrdinalIgnoreCase) == -1)
{ {
//_logger.Debug("Upnp device {0} does not contain a MediaRenderer device (0).", location); //_logger.LogDebug("Upnp device {0} does not contain a MediaRenderer device (0).", location);
return; return;
} }
@ -121,7 +121,7 @@ namespace Emby.Dlna.PlayTo
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error creating PlayTo device.", ex); _logger.LogError(ex, "Error creating PlayTo device.");
} }
finally finally
{ {
@ -155,9 +155,9 @@ namespace Emby.Dlna.PlayTo
private async Task AddDevice(UpnpDeviceInfo info, string location, CancellationToken cancellationToken) private async Task AddDevice(UpnpDeviceInfo info, string location, CancellationToken cancellationToken)
{ {
var uri = info.Location; var uri = info.Location;
_logger.Debug("Attempting to create PlayToController from location {0}", location); _logger.LogDebug("Attempting to create PlayToController from location {0}", location);
_logger.Debug("Logging session activity from location {0}", location); _logger.LogDebug("Logging session activity from location {0}", location);
string uuid; string uuid;
if (info.Headers.TryGetValue("USN", out uuid)) if (info.Headers.TryGetValue("USN", out uuid))
{ {
@ -237,7 +237,7 @@ namespace Emby.Dlna.PlayTo
SupportsMediaControl = true SupportsMediaControl = true
}); });
_logger.Info("DLNA Session created for {0} - {1}", device.Properties.Name, device.Properties.ModelName); _logger.LogInformation("DLNA Session created for {0} - {1}", device.Properties.Name, device.Properties.ModelName);
} }
} }

View File

@ -173,7 +173,7 @@ namespace Emby.Dlna.Profiles
Value = value Value = value
}); });
XmlRootAttributes = list.ToArray(list.Count); XmlRootAttributes = list.ToArray();
} }
} }
} }

View File

@ -1,7 +1,7 @@
using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Dlna; using MediaBrowser.Controller.Dlna;
using Emby.Dlna.Server; using Emby.Dlna.Server;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
@ -20,13 +20,13 @@ namespace Emby.Dlna.Service
private const string NS_SOAPENV = "http://schemas.xmlsoap.org/soap/envelope/"; private const string NS_SOAPENV = "http://schemas.xmlsoap.org/soap/envelope/";
protected readonly IServerConfigurationManager Config; protected readonly IServerConfigurationManager Config;
protected readonly ILogger Logger; protected readonly ILogger _logger;
protected readonly IXmlReaderSettingsFactory XmlReaderSettingsFactory; protected readonly IXmlReaderSettingsFactory XmlReaderSettingsFactory;
protected BaseControlHandler(IServerConfigurationManager config, ILogger logger, IXmlReaderSettingsFactory xmlReaderSettingsFactory) protected BaseControlHandler(IServerConfigurationManager config, ILogger logger, IXmlReaderSettingsFactory xmlReaderSettingsFactory)
{ {
Config = config; Config = config;
Logger = logger; _logger = logger;
XmlReaderSettingsFactory = xmlReaderSettingsFactory; XmlReaderSettingsFactory = xmlReaderSettingsFactory;
} }
@ -52,7 +52,7 @@ namespace Emby.Dlna.Service
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.ErrorException("Error processing control request", ex); _logger.LogError(ex, "Error processing control request");
return new ControlErrorHandler().GetResponse(ex); return new ControlErrorHandler().GetResponse(ex);
} }
@ -76,7 +76,7 @@ namespace Emby.Dlna.Service
} }
} }
Logger.Debug("Received control request {0}", requestInfo.LocalName); _logger.LogDebug("Received control request {0}", requestInfo.LocalName);
var result = GetResult(requestInfo.LocalName, requestInfo.Headers); var result = GetResult(requestInfo.LocalName, requestInfo.Headers);
@ -118,7 +118,7 @@ namespace Emby.Dlna.Service
IsSuccessful = true IsSuccessful = true
}; };
//Logger.Debug(xml); //logger.LogDebug(xml);
controlResponse.Headers.Add("EXT", string.Empty); controlResponse.Headers.Add("EXT", string.Empty);
@ -242,9 +242,9 @@ namespace Emby.Dlna.Service
} }
var originalHeaders = request.Headers; var originalHeaders = request.Headers;
var headers = string.Join(", ", originalHeaders.Select(i => string.Format("{0}={1}", i.Key, i.Value)).ToArray(originalHeaders.Count)); var headers = string.Join(", ", originalHeaders.Select(i => string.Format("{0}={1}", i.Key, i.Value)).ToArray());
Logger.Debug("Control request. Headers: {0}", headers); _logger.LogDebug("Control request. Headers: {0}", headers);
} }
private void LogResponse(ControlResponse response) private void LogResponse(ControlResponse response)
@ -258,7 +258,7 @@ namespace Emby.Dlna.Service
var headers = string.Join(", ", originalHeaders.Select(i => string.Format("{0}={1}", i.Key, i.Value)).ToArray()); var headers = string.Join(", ", originalHeaders.Select(i => string.Format("{0}={1}", i.Key, i.Value)).ToArray());
//builder.Append(response.Xml); //builder.Append(response.Xml);
Logger.Debug("Control response. Headers: {0}", headers); _logger.LogDebug("Control response. Headers: {0}", headers);
} }
} }
} }

View File

@ -1,7 +1,7 @@
using MediaBrowser.Common.Net; using MediaBrowser.Common.Net;
using MediaBrowser.Controller.Dlna; using MediaBrowser.Controller.Dlna;
using Emby.Dlna.Eventing; using Emby.Dlna.Eventing;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
namespace Emby.Dlna.Service namespace Emby.Dlna.Service
{ {

View File

@ -2,7 +2,7 @@
using MediaBrowser.Controller; using MediaBrowser.Controller;
using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Dlna; using MediaBrowser.Controller.Dlna;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;

View File

@ -4,7 +4,7 @@ using MediaBrowser.Common.Configuration;
using MediaBrowser.Common.Net; using MediaBrowser.Common.Net;
using MediaBrowser.Controller.Drawing; using MediaBrowser.Controller.Drawing;
using MediaBrowser.Model.Drawing; using MediaBrowser.Model.Drawing;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using System; using System;
using System.IO; using System.IO;
using MediaBrowser.Model.IO; using MediaBrowser.Model.IO;
@ -78,7 +78,7 @@ namespace Emby.Drawing.ImageMagick
private void LogVersion() private void LogVersion()
{ {
_logger.Info("ImageMagick version: " + GetVersion()); _logger.LogInformation("ImageMagick version: " + GetVersion());
TestWebp(); TestWebp();
Wand.SetMagickThreadCount(1); Wand.SetMagickThreadCount(1);
} }
@ -101,9 +101,9 @@ namespace Emby.Drawing.ImageMagick
wand.SaveImage(tmpPath); wand.SaveImage(tmpPath);
} }
} }
catch catch (Exception ex)
{ {
//_logger.ErrorException("Error loading webp: ", ex); _logger.LogError(ex, "Error loading webp");
_webpAvailable = false; _webpAvailable = false;
} }
} }
@ -295,7 +295,7 @@ namespace Emby.Drawing.ImageMagick
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error drawing indicator overlay", ex); _logger.LogError(ex, "Error drawing indicator overlay");
} }
} }

View File

@ -1,6 +1,6 @@
using MediaBrowser.Controller.Drawing; using MediaBrowser.Controller.Drawing;
using MediaBrowser.Model.Drawing; using MediaBrowser.Model.Drawing;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using System; using System;
using System.Drawing; using System.Drawing;
using System.Drawing.Drawing2D; using System.Drawing.Drawing2D;
@ -30,7 +30,7 @@ namespace Emby.Drawing.Net
private void LogInfo() private void LogInfo()
{ {
_logger.Info("GDIImageEncoder starting"); _logger.LogInformation("GDIImageEncoder starting");
using (var stream = GetType().Assembly.GetManifestResourceStream(GetType().Namespace + ".empty.png")) using (var stream = GetType().Assembly.GetManifestResourceStream(GetType().Namespace + ".empty.png"))
{ {
using (var img = Image.FromStream(stream)) using (var img = Image.FromStream(stream))
@ -38,7 +38,7 @@ namespace Emby.Drawing.Net
} }
} }
_logger.Info("GDIImageEncoder started"); _logger.LogInformation("GDIImageEncoder started");
} }
public string[] SupportedInputFormats public string[] SupportedInputFormats
@ -214,7 +214,7 @@ namespace Emby.Drawing.Net
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error drawing indicator overlay", ex); _logger.LogError(ex, "Error drawing indicator overlay");
} }
} }

View File

@ -3,7 +3,7 @@ using MediaBrowser.Common.Net;
using MediaBrowser.Controller.Drawing; using MediaBrowser.Controller.Drawing;
using MediaBrowser.Model.Drawing; using MediaBrowser.Model.Drawing;
using MediaBrowser.Model.IO; using MediaBrowser.Model.IO;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using SkiaSharp; using SkiaSharp;
using System; using System;
using System.IO; using System.IO;
@ -81,7 +81,7 @@ namespace Emby.Drawing.Skia
// test an operation that requires the native library // test an operation that requires the native library
SKPMColor.PreMultiply(SKColors.Black); SKPMColor.PreMultiply(SKColors.Black);
_logger.Info("SkiaSharp version: " + GetVersion()); _logger.LogInformation("SkiaSharp version: " + GetVersion());
} }
public static string GetVersion() public static string GetVersion()
@ -530,7 +530,7 @@ namespace Emby.Drawing.Skia
throw new ArgumentOutOfRangeException(string.Format("Skia unable to read image {0}", inputPath)); throw new ArgumentOutOfRangeException(string.Format("Skia unable to read image {0}", inputPath));
} }
//_logger.Info("Color type {0}", bitmap.Info.ColorType); //_logger.LogInformation("Color type {0}", bitmap.Info.ColorType);
var originalImageSize = new ImageSize(bitmap.Width, bitmap.Height); var originalImageSize = new ImageSize(bitmap.Width, bitmap.Height);
@ -660,7 +660,7 @@ namespace Emby.Drawing.Skia
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error drawing indicator overlay", ex); _logger.LogError(ex, "Error drawing indicator overlay");
} }
} }

View File

@ -1,5 +1,5 @@
using MediaBrowser.Model.Drawing; using MediaBrowser.Model.Drawing;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
@ -235,4 +235,4 @@ namespace Emby.Drawing.Common
throw new ArgumentException(ErrorMessage); throw new ArgumentException(ErrorMessage);
} }
} }
} }

View File

@ -5,7 +5,7 @@ using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Providers; using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Drawing; using MediaBrowser.Model.Drawing;
using MediaBrowser.Model.Entities; using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using MediaBrowser.Model.Serialization; using MediaBrowser.Model.Serialization;
using System; using System;
using System.Collections.Concurrent; using System.Collections.Concurrent;
@ -261,7 +261,7 @@ namespace Emby.Drawing
//if (originalImageSize.HasValue && options.HasDefaultOptions(originalImagePath, originalImageSize.Value) && !autoOrient) //if (originalImageSize.HasValue && options.HasDefaultOptions(originalImagePath, originalImageSize.Value) && !autoOrient)
//{ //{
// // Just spit out the original file if all the options are default // // Just spit out the original file if all the options are default
// _logger.Info("Returning original image {0}", originalImagePath); // _logger.LogInformation("Returning original image {0}", originalImagePath);
// return new ValueTuple<string, string, DateTime>(originalImagePath, MimeTypes.GetMimeType(originalImagePath), dateModified); // return new ValueTuple<string, string, DateTime>(originalImagePath, MimeTypes.GetMimeType(originalImagePath), dateModified);
//} //}
@ -302,7 +302,7 @@ namespace Emby.Drawing
{ {
// Decoder failed to decode it // Decoder failed to decode it
#if DEBUG #if DEBUG
_logger.ErrorException("Error encoding image", ex); _logger.LogError(ex, "Error encoding image");
#endif #endif
// Just spit out the original file if all the options are default // Just spit out the original file if all the options are default
return new Tuple<string, string, DateTime>(originalImagePath, MimeTypes.GetMimeType(originalImagePath), dateModified); return new Tuple<string, string, DateTime>(originalImagePath, MimeTypes.GetMimeType(originalImagePath), dateModified);
@ -310,7 +310,7 @@ namespace Emby.Drawing
catch (Exception ex) catch (Exception ex)
{ {
// If it fails for whatever reason, return the original image // If it fails for whatever reason, return the original image
_logger.ErrorException("Error encoding image", ex); _logger.LogError(ex, "Error encoding image");
// Just spit out the original file if all the options are default // Just spit out the original file if all the options are default
return new Tuple<string, string, DateTime>(originalImagePath, MimeTypes.GetMimeType(originalImagePath), dateModified); return new Tuple<string, string, DateTime>(originalImagePath, MimeTypes.GetMimeType(originalImagePath), dateModified);
@ -464,7 +464,7 @@ namespace Emby.Drawing
} }
var path = info.Path; var path = info.Path;
_logger.Info("Getting image size for item {0} {1}", item.GetType().Name, path); _logger.LogInformation("Getting image size for item {0} {1}", item.GetType().Name, path);
var size = GetImageSize(path, allowSlowMethods); var size = GetImageSize(path, allowSlowMethods);
@ -564,7 +564,7 @@ namespace Emby.Drawing
var cacheKeys = imageEnhancers.Select(i => i.GetConfigurationCacheKey(item, imageType)).ToList(); var cacheKeys = imageEnhancers.Select(i => i.GetConfigurationCacheKey(item, imageType)).ToList();
cacheKeys.Add(originalImagePath + dateModified.Ticks); cacheKeys.Add(originalImagePath + dateModified.Ticks);
return string.Join("|", cacheKeys.ToArray(cacheKeys.Count)).GetMD5().ToString("N"); return string.Join("|", cacheKeys.ToArray()).GetMD5().ToString("N");
} }
private async Task<ValueTuple<string, DateTime>> GetSupportedImage(string originalImagePath, DateTime dateModified) private async Task<ValueTuple<string, DateTime>> GetSupportedImage(string originalImagePath, DateTime dateModified)
@ -603,7 +603,7 @@ namespace Emby.Drawing
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Image conversion failed for {0}", ex, originalImagePath); _logger.LogError(ex, "Image conversion failed for {originalImagePath}", originalImagePath);
} }
} }
@ -646,21 +646,21 @@ namespace Emby.Drawing
var cacheGuid = GetImageCacheTag(item, image, enhancers); var cacheGuid = GetImageCacheTag(item, image, enhancers);
// Enhance if we have enhancers // Enhance if we have enhancers
var ehnancedImageInfo = await GetEnhancedImageInternal(originalImagePath, item, imageType, imageIndex, enhancers, cacheGuid, cancellationToken).ConfigureAwait(false); var enhancedImageInfo = await GetEnhancedImageInternal(originalImagePath, item, imageType, imageIndex, enhancers, cacheGuid, cancellationToken).ConfigureAwait(false);
var ehnancedImagePath = ehnancedImageInfo.Item1; var enhancedImagePath = enhancedImageInfo.Item1;
// If the path changed update dateModified // If the path changed update dateModified
if (!string.Equals(ehnancedImagePath, originalImagePath, StringComparison.OrdinalIgnoreCase)) if (!string.Equals(enhancedImagePath, originalImagePath, StringComparison.OrdinalIgnoreCase))
{ {
var treatmentRequiresTransparency = ehnancedImageInfo.Item2; var treatmentRequiresTransparency = enhancedImageInfo.Item2;
return new ValueTuple<string, DateTime, bool>(ehnancedImagePath, _fileSystem.GetLastWriteTimeUtc(ehnancedImagePath), treatmentRequiresTransparency); return new ValueTuple<string, DateTime, bool>(enhancedImagePath, _fileSystem.GetLastWriteTimeUtc(enhancedImagePath), treatmentRequiresTransparency);
} }
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error enhancing image", ex); _logger.LogError(ex, "Error enhancing image");
} }
return new ValueTuple<string, DateTime, bool>(originalImagePath, dateModified, inputImageSupportsTransparency); return new ValueTuple<string, DateTime, bool>(originalImagePath, dateModified, inputImageSupportsTransparency);
@ -827,11 +827,11 @@ namespace Emby.Drawing
public void CreateImageCollage(ImageCollageOptions options) public void CreateImageCollage(ImageCollageOptions options)
{ {
_logger.Info("Creating image collage and saving to {0}", options.OutputPath); _logger.LogInformation("Creating image collage and saving to {0}", options.OutputPath);
_imageEncoder.CreateImageCollage(options); _imageEncoder.CreateImageCollage(options);
_logger.Info("Completed creation of image collage and saved to {0}", options.OutputPath); _logger.LogInformation("Completed creation of image collage and saved to {0}", options.OutputPath);
} }
public IImageEnhancer[] GetSupportedEnhancers(BaseItem item, ImageType imageType) public IImageEnhancer[] GetSupportedEnhancers(BaseItem item, ImageType imageType)
@ -853,7 +853,7 @@ namespace Emby.Drawing
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error in image enhancer: {0}", ex, i.GetType().Name); _logger.LogError(ex, "Error in image enhancer: {0}", i.GetType().Name);
} }
} }
@ -919,4 +919,4 @@ namespace Emby.Drawing
} }
} }
} }
} }

View File

@ -4,7 +4,7 @@ using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using MediaBrowser.Model.Diagnostics; using MediaBrowser.Model.Diagnostics;
using MediaBrowser.Model.IO; using MediaBrowser.Model.IO;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using MediaBrowser.Model.System; using MediaBrowser.Model.System;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
@ -20,7 +20,7 @@ namespace IsoMounter
private readonly IEnvironmentInfo EnvironmentInfo; private readonly IEnvironmentInfo EnvironmentInfo;
private readonly bool ExecutablesAvailable; private readonly bool ExecutablesAvailable;
private readonly IFileSystem FileSystem; private readonly IFileSystem FileSystem;
private readonly ILogger Logger; private readonly ILogger _logger;
private readonly string MountCommand; private readonly string MountCommand;
private readonly string MountPointRoot; private readonly string MountPointRoot;
private readonly IProcessFactory ProcessFactory; private readonly IProcessFactory ProcessFactory;
@ -36,24 +36,24 @@ namespace IsoMounter
EnvironmentInfo = environment; EnvironmentInfo = environment;
FileSystem = fileSystem; FileSystem = fileSystem;
Logger = logger; _logger = logger;
ProcessFactory = processFactory; ProcessFactory = processFactory;
MountPointRoot = FileSystem.DirectorySeparatorChar + "tmp" + FileSystem.DirectorySeparatorChar + "Emby"; MountPointRoot = FileSystem.DirectorySeparatorChar + "tmp" + FileSystem.DirectorySeparatorChar + "Emby";
Logger.Debug( _logger.LogDebug(
"[{0}] System PATH is currently set to [{1}].", "[{0}] System PATH is currently set to [{1}].",
Name, Name,
EnvironmentInfo.GetEnvironmentVariable("PATH") ?? "" EnvironmentInfo.GetEnvironmentVariable("PATH") ?? ""
); );
Logger.Debug( _logger.LogDebug(
"[{0}] System path separator is [{1}].", "[{0}] System path separator is [{1}].",
Name, Name,
EnvironmentInfo.PathSeparator EnvironmentInfo.PathSeparator
); );
Logger.Debug( _logger.LogDebug(
"[{0}] Mount point root is [{1}].", "[{0}] Mount point root is [{1}].",
Name, Name,
MountPointRoot MountPointRoot
@ -65,7 +65,7 @@ namespace IsoMounter
SudoCommand = GetFullPathForExecutable("sudo"); SudoCommand = GetFullPathForExecutable("sudo");
Logger.Info( _logger.LogInformation(
"[{0}] Using version of [sudo] located at [{1}].", "[{0}] Using version of [sudo] located at [{1}].",
Name, Name,
SudoCommand SudoCommand
@ -73,7 +73,7 @@ namespace IsoMounter
MountCommand = GetFullPathForExecutable("mount"); MountCommand = GetFullPathForExecutable("mount");
Logger.Info( _logger.LogInformation(
"[{0}] Using version of [mount] located at [{1}].", "[{0}] Using version of [mount] located at [{1}].",
Name, Name,
MountCommand MountCommand
@ -81,7 +81,7 @@ namespace IsoMounter
UmountCommand = GetFullPathForExecutable("umount"); UmountCommand = GetFullPathForExecutable("umount");
Logger.Info( _logger.LogInformation(
"[{0}] Using version of [umount] located at [{1}].", "[{0}] Using version of [umount] located at [{1}].",
Name, Name,
UmountCommand UmountCommand
@ -119,7 +119,7 @@ namespace IsoMounter
{ {
if (EnvironmentInfo.OperatingSystem == MediaBrowser.Model.System.OperatingSystem.Linux) { if (EnvironmentInfo.OperatingSystem == MediaBrowser.Model.System.OperatingSystem.Linux) {
Logger.Info( _logger.LogInformation(
"[{0}] Checking we can attempt to mount [{1}], Extension = [{2}], Operating System = [{3}], Executables Available = [{4}].", "[{0}] Checking we can attempt to mount [{1}], Extension = [{2}], Operating System = [{3}], Executables Available = [{4}].",
Name, Name,
path, path,
@ -182,7 +182,7 @@ namespace IsoMounter
return; return;
} }
Logger.Info( _logger.LogInformation(
"[{0}] Disposing [{1}].", "[{0}] Disposing [{1}].",
Name, Name,
disposing.ToString() disposing.ToString()
@ -230,7 +230,7 @@ namespace IsoMounter
var uid = getuid(); var uid = getuid();
Logger.Debug( _logger.LogDebug(
"[{0}] Our current UID is [{1}], GetUserId() returned [{2}].", "[{0}] Our current UID is [{1}], GetUserId() returned [{2}].",
Name, Name,
uid.ToString(), uid.ToString(),
@ -260,35 +260,29 @@ namespace IsoMounter
} }
); );
try { try
{
process.Start(); process.Start();
//StreamReader outputReader = process.StandardOutput.; //StreamReader outputReader = process.StandardOutput.;
//StreamReader errorReader = process.StandardError; //StreamReader errorReader = process.StandardError;
Logger.Debug( _logger.LogDebug(
"[{0}] Standard output from process is [{1}].", "[{Name}] Standard output from process is [{Error}].",
Name, Name,
process.StandardOutput.ReadToEnd() process.StandardOutput.ReadToEnd()
); );
Logger.Debug( _logger.LogDebug(
"[{0}] Standard error from process is [{1}].", "[{Name}] Standard error from process is [{Error}].",
Name, Name,
process.StandardError.ReadToEnd() process.StandardError.ReadToEnd()
); );
}
} catch (Exception ex) { catch (Exception ex)
{
processFailed = true; processFailed = true;
_logger.LogDebug(ex, "[{Name}] Unhandled exception executing command.", Name);
Logger.Debug(
"[{0}] Unhandled exception executing command, exception is [{1}].",
Name,
ex.Message
);
} }
if (!processFailed && process.ExitCode == 0) { if (!processFailed && process.ExitCode == 0) {
@ -308,14 +302,14 @@ namespace IsoMounter
if (!string.IsNullOrEmpty(isoPath)) { if (!string.IsNullOrEmpty(isoPath)) {
Logger.Info( _logger.LogInformation(
"[{0}] Attempting to mount [{1}].", "[{Name}] Attempting to mount [{Path}].",
Name, Name,
isoPath isoPath
); );
Logger.Debug( _logger.LogDebug(
"[{0}] ISO will be mounted at [{1}].", "[{Name}] ISO will be mounted at [{Path}].",
Name, Name,
mountPoint mountPoint
); );
@ -326,11 +320,16 @@ namespace IsoMounter
} }
try { try
{
FileSystem.CreateDirectory(mountPoint); FileSystem.CreateDirectory(mountPoint);
} catch (UnauthorizedAccessException) { }
catch (UnauthorizedAccessException)
{
throw new IOException("Unable to create mount point(Permission denied) for " + isoPath); throw new IOException("Unable to create mount point(Permission denied) for " + isoPath);
} catch (Exception) { }
catch (Exception)
{
throw new IOException("Unable to create mount point for " + isoPath); throw new IOException("Unable to create mount point for " + isoPath);
} }
@ -342,7 +341,7 @@ namespace IsoMounter
cmdArguments = string.Format("\"{0}\" \"{1}\" \"{2}\"", MountCommand, isoPath, mountPoint); cmdArguments = string.Format("\"{0}\" \"{1}\" \"{2}\"", MountCommand, isoPath, mountPoint);
} }
Logger.Debug( _logger.LogDebug(
"[{0}] Mount command [{1}], mount arguments [{2}].", "[{0}] Mount command [{1}], mount arguments [{2}].",
Name, Name,
cmdFilename, cmdFilename,
@ -351,7 +350,7 @@ namespace IsoMounter
if (ExecuteCommand(cmdFilename, cmdArguments)) { if (ExecuteCommand(cmdFilename, cmdArguments)) {
Logger.Info( _logger.LogInformation(
"[{0}] ISO mount completed successfully.", "[{0}] ISO mount completed successfully.",
Name Name
); );
@ -360,23 +359,18 @@ namespace IsoMounter
} else { } else {
Logger.Info( _logger.LogInformation(
"[{0}] ISO mount completed with errors.", "[{0}] ISO mount completed with errors.",
Name Name
); );
try { try
{
FileSystem.DeleteDirectory(mountPoint, false); FileSystem.DeleteDirectory(mountPoint, false);
}
} catch (Exception ex) { catch (Exception ex)
{
Logger.Info( _logger.LogInformation(ex, "[{Name}] Unhandled exception removing mount point.", Name);
"[{0}] Unhandled exception removing mount point, exception is [{1}].",
Name,
ex.Message
);
} }
mountedISO = null; mountedISO = null;
@ -395,7 +389,7 @@ namespace IsoMounter
if (mount != null) { if (mount != null) {
Logger.Info( _logger.LogInformation(
"[{0}] Attempting to unmount ISO [{1}] mounted on [{2}].", "[{0}] Attempting to unmount ISO [{1}] mounted on [{2}].",
Name, Name,
mount.IsoPath, mount.IsoPath,
@ -416,7 +410,7 @@ namespace IsoMounter
cmdArguments = string.Format("\"{0}\" \"{1}\"", UmountCommand, mount.MountedPath); cmdArguments = string.Format("\"{0}\" \"{1}\"", UmountCommand, mount.MountedPath);
} }
Logger.Debug( _logger.LogDebug(
"[{0}] Umount command [{1}], umount arguments [{2}].", "[{0}] Umount command [{1}], umount arguments [{2}].",
Name, Name,
cmdFilename, cmdFilename,
@ -425,34 +419,28 @@ namespace IsoMounter
if (ExecuteCommand(cmdFilename, cmdArguments)) { if (ExecuteCommand(cmdFilename, cmdArguments)) {
Logger.Info( _logger.LogInformation(
"[{0}] ISO unmount completed successfully.", "[{0}] ISO unmount completed successfully.",
Name Name
); );
} else { } else {
Logger.Info( _logger.LogInformation(
"[{0}] ISO unmount completed with errors.", "[{0}] ISO unmount completed with errors.",
Name Name
); );
} }
try { try
{
FileSystem.DeleteDirectory(mount.MountedPath, false); FileSystem.DeleteDirectory(mount.MountedPath, false);
} catch (Exception ex) {
Logger.Info(
"[{0}] Unhandled exception removing mount point, exception is [{1}].",
Name,
ex.Message
);
} }
catch (Exception ex)
{
_logger.LogInformation(ex, "[{Name}] Unhandled exception removing mount point.", Name);
}
} }
#endregion #endregion

View File

@ -79,4 +79,3 @@ namespace IsoMounter
} }
} }

View File

@ -4,7 +4,7 @@ using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Notifications; using MediaBrowser.Controller.Notifications;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using MediaBrowser.Model.Notifications; using MediaBrowser.Model.Notifications;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
@ -25,11 +25,11 @@ namespace Emby.Notifications
private INotificationService[] _services; private INotificationService[] _services;
private INotificationTypeFactory[] _typeFactories; private INotificationTypeFactory[] _typeFactories;
public NotificationManager(ILogManager logManager, IUserManager userManager, IServerConfigurationManager config) public NotificationManager(ILoggerFactory loggerFactory, IUserManager userManager, IServerConfigurationManager config)
{ {
_userManager = userManager; _userManager = userManager;
_config = config; _config = config;
_logger = logManager.GetLogger(GetType().Name); _logger = loggerFactory.CreateLogger(GetType().Name);
} }
private NotificationOptions GetConfiguration() private NotificationOptions GetConfiguration()
@ -126,7 +126,7 @@ namespace Emby.Notifications
User = user User = user
}; };
_logger.Debug("Sending notification via {0} to user {1}", service.Name, user.Name); _logger.LogDebug("Sending notification via {0} to user {1}", service.Name, user.Name);
try try
{ {
@ -134,7 +134,7 @@ namespace Emby.Notifications
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error sending notification to {0}", ex, service.Name); _logger.LogError(ex, "Error sending notification to {0}", service.Name);
} }
} }
@ -146,7 +146,7 @@ namespace Emby.Notifications
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error in IsEnabledForUser", ex); _logger.LogError(ex, "Error in IsEnabledForUser");
return false; return false;
} }
} }
@ -177,7 +177,7 @@ namespace Emby.Notifications
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error in GetNotificationTypes", ex); _logger.LogError(ex, "Error in GetNotificationTypes");
return new List<NotificationTypeInfo>(); return new List<NotificationTypeInfo>();
} }

View File

@ -8,7 +8,7 @@ using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Notifications; using MediaBrowser.Controller.Notifications;
using MediaBrowser.Controller.Plugins; using MediaBrowser.Controller.Plugins;
using MediaBrowser.Controller.Session; using MediaBrowser.Controller.Session;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using MediaBrowser.Model.Notifications; using MediaBrowser.Model.Notifications;
using MediaBrowser.Model.Tasks; using MediaBrowser.Model.Tasks;
using System; using System;
@ -137,7 +137,7 @@ namespace Emby.Notifications
var notification = new NotificationRequest var notification = new NotificationRequest
{ {
Description = "Please see emby.media for details.", Description = "Please see jellyfin.media for details.",
NotificationType = type, NotificationType = type,
Name = _localization.GetLocalizedString("NewVersionIsAvailable") Name = _localization.GetLocalizedString("NewVersionIsAvailable")
}; };
@ -273,7 +273,7 @@ namespace Emby.Notifications
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error sending notification", ex); _logger.LogError(ex, "Error sending notification");
} }
} }

View File

@ -9,7 +9,7 @@ using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Providers; using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Entities; using MediaBrowser.Model.Entities;
using MediaBrowser.Model.IO; using MediaBrowser.Model.IO;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using TagLib; using TagLib;
using TagLib.IFD; using TagLib.IFD;
using TagLib.IFD.Entries; using TagLib.IFD.Entries;
@ -170,9 +170,9 @@ namespace Emby.Photos
} }
} }
} }
catch (Exception e) catch (Exception ex)
{ {
_logger.ErrorException("Image Provider - Error reading image tag for {0}", e, item.Path); _logger.LogError(ex, "Image Provider - Error reading image tag for {0}", item.Path);
} }
} }

View File

@ -10,7 +10,7 @@ using MediaBrowser.Controller.Session;
using MediaBrowser.Controller.Subtitles; using MediaBrowser.Controller.Subtitles;
using MediaBrowser.Model.Activity; using MediaBrowser.Model.Activity;
using MediaBrowser.Model.Events; using MediaBrowser.Model.Events;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using MediaBrowser.Model.Tasks; using MediaBrowser.Model.Tasks;
using MediaBrowser.Model.Updates; using MediaBrowser.Model.Updates;
using System; using System;
@ -129,7 +129,7 @@ namespace Emby.Server.Implementations.Activity
if (item == null) if (item == null)
{ {
//_logger.Warn("PlaybackStopped reported with null media info."); //_logger.LogWarning("PlaybackStopped reported with null media info.");
return; return;
} }
@ -160,7 +160,7 @@ namespace Emby.Server.Implementations.Activity
if (item == null) if (item == null)
{ {
//_logger.Warn("PlaybackStart reported with null media info."); //_logger.LogWarning("PlaybackStart reported with null media info.");
return; return;
} }
@ -284,7 +284,7 @@ namespace Emby.Server.Implementations.Activity
Name = string.Format(_localization.GetLocalizedString("FailedLoginAttemptWithUserName"), e.Argument.Username), Name = string.Format(_localization.GetLocalizedString("FailedLoginAttemptWithUserName"), e.Argument.Username),
Type = "AuthenticationFailed", Type = "AuthenticationFailed",
ShortOverview = string.Format(_localization.GetLocalizedString("LabelIpAddressValue"), e.Argument.RemoteEndPoint), ShortOverview = string.Format(_localization.GetLocalizedString("LabelIpAddressValue"), e.Argument.RemoteEndPoint),
Severity = LogSeverity.Error Severity = LogLevel.Error
}); });
} }
@ -466,9 +466,9 @@ namespace Emby.Server.Implementations.Activity
{ {
Name = string.Format(_localization.GetLocalizedString("ScheduledTaskFailedWithName"), task.Name), Name = string.Format(_localization.GetLocalizedString("ScheduledTaskFailedWithName"), task.Name),
Type = NotificationType.TaskFailed.ToString(), Type = NotificationType.TaskFailed.ToString(),
Overview = string.Join(Environment.NewLine, vals.ToArray(vals.Count)), Overview = string.Join(Environment.NewLine, vals.ToArray()),
ShortOverview = runningTime, ShortOverview = runningTime,
Severity = LogSeverity.Error Severity = LogLevel.Error
}); });
} }
} }

View File

@ -2,7 +2,7 @@
using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Library;
using MediaBrowser.Model.Activity; using MediaBrowser.Model.Activity;
using MediaBrowser.Model.Events; using MediaBrowser.Model.Events;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using MediaBrowser.Model.Querying; using MediaBrowser.Model.Querying;
using System; using System;
using System.Linq; using System.Linq;

View File

@ -6,7 +6,7 @@ using System.Linq;
using Emby.Server.Implementations.Data; using Emby.Server.Implementations.Data;
using MediaBrowser.Controller; using MediaBrowser.Controller;
using MediaBrowser.Model.Activity; using MediaBrowser.Model.Activity;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using MediaBrowser.Model.Querying; using MediaBrowser.Model.Querying;
using SQLitePCL.pretty; using SQLitePCL.pretty;
using MediaBrowser.Model.Extensions; using MediaBrowser.Model.Extensions;
@ -34,7 +34,7 @@ namespace Emby.Server.Implementations.Activity
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.ErrorException("Error loading database file. Will reset and retry.", ex); Logger.LogError(ex, "Error loading database file. Will reset and retry.");
FileSystem.DeleteFile(DbFilePath); FileSystem.DeleteFile(DbFilePath);
@ -73,7 +73,7 @@ namespace Emby.Server.Implementations.Activity
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.ErrorException("Error migrating activity log database", ex); Logger.LogError(ex, "Error migrating activity log database");
} }
} }
@ -87,36 +87,34 @@ namespace Emby.Server.Implementations.Activity
} }
using (WriteLock.Write()) using (WriteLock.Write())
using (var connection = CreateConnection())
{ {
using (var connection = CreateConnection()) connection.RunInTransaction(db =>
{ {
connection.RunInTransaction(db => using (var statement = db.PrepareStatement("insert into ActivityLog (Name, Overview, ShortOverview, Type, ItemId, UserId, DateCreated, LogSeverity) values (@Name, @Overview, @ShortOverview, @Type, @ItemId, @UserId, @DateCreated, @LogSeverity)"))
{ {
using (var statement = db.PrepareStatement("insert into ActivityLog (Name, Overview, ShortOverview, Type, ItemId, UserId, DateCreated, LogSeverity) values (@Name, @Overview, @ShortOverview, @Type, @ItemId, @UserId, @DateCreated, @LogSeverity)")) statement.TryBind("@Name", entry.Name);
statement.TryBind("@Overview", entry.Overview);
statement.TryBind("@ShortOverview", entry.ShortOverview);
statement.TryBind("@Type", entry.Type);
statement.TryBind("@ItemId", entry.ItemId);
if (entry.UserId.Equals(Guid.Empty))
{ {
statement.TryBind("@Name", entry.Name); statement.TryBindNull("@UserId");
statement.TryBind("@Overview", entry.Overview);
statement.TryBind("@ShortOverview", entry.ShortOverview);
statement.TryBind("@Type", entry.Type);
statement.TryBind("@ItemId", entry.ItemId);
if (entry.UserId.Equals(Guid.Empty))
{
statement.TryBindNull("@UserId");
}
else
{
statement.TryBind("@UserId", entry.UserId.ToString("N"));
}
statement.TryBind("@DateCreated", entry.Date.ToDateTimeParamValue());
statement.TryBind("@LogSeverity", entry.Severity.ToString());
statement.MoveNext();
} }
}, TransactionMode); else
} {
statement.TryBind("@UserId", entry.UserId.ToString("N"));
}
statement.TryBind("@DateCreated", entry.Date.ToDateTimeParamValue());
statement.TryBind("@LogSeverity", entry.Severity.ToString());
statement.MoveNext();
}
}, TransactionMode);
} }
} }
@ -128,132 +126,128 @@ namespace Emby.Server.Implementations.Activity
} }
using (WriteLock.Write()) using (WriteLock.Write())
using (var connection = CreateConnection())
{ {
using (var connection = CreateConnection()) connection.RunInTransaction(db =>
{ {
connection.RunInTransaction(db => using (var statement = db.PrepareStatement("Update ActivityLog set Name=@Name,Overview=@Overview,ShortOverview=@ShortOverview,Type=@Type,ItemId=@ItemId,UserId=@UserId,DateCreated=@DateCreated,LogSeverity=@LogSeverity where Id=@Id"))
{ {
using (var statement = db.PrepareStatement("Update ActivityLog set Name=@Name,Overview=@Overview,ShortOverview=@ShortOverview,Type=@Type,ItemId=@ItemId,UserId=@UserId,DateCreated=@DateCreated,LogSeverity=@LogSeverity where Id=@Id")) statement.TryBind("@Id", entry.Id);
statement.TryBind("@Name", entry.Name);
statement.TryBind("@Overview", entry.Overview);
statement.TryBind("@ShortOverview", entry.ShortOverview);
statement.TryBind("@Type", entry.Type);
statement.TryBind("@ItemId", entry.ItemId);
if (entry.UserId.Equals(Guid.Empty))
{ {
statement.TryBind("@Id", entry.Id); statement.TryBindNull("@UserId");
statement.TryBind("@Name", entry.Name);
statement.TryBind("@Overview", entry.Overview);
statement.TryBind("@ShortOverview", entry.ShortOverview);
statement.TryBind("@Type", entry.Type);
statement.TryBind("@ItemId", entry.ItemId);
if (entry.UserId.Equals(Guid.Empty))
{
statement.TryBindNull("@UserId");
}
else
{
statement.TryBind("@UserId", entry.UserId.ToString("N"));
}
statement.TryBind("@DateCreated", entry.Date.ToDateTimeParamValue());
statement.TryBind("@LogSeverity", entry.Severity.ToString());
statement.MoveNext();
} }
}, TransactionMode); else
} {
statement.TryBind("@UserId", entry.UserId.ToString("N"));
}
statement.TryBind("@DateCreated", entry.Date.ToDateTimeParamValue());
statement.TryBind("@LogSeverity", entry.Severity.ToString());
statement.MoveNext();
}
}, TransactionMode);
} }
} }
public QueryResult<ActivityLogEntry> GetActivityLogEntries(DateTime? minDate, bool? hasUserId, int? startIndex, int? limit) public QueryResult<ActivityLogEntry> GetActivityLogEntries(DateTime? minDate, bool? hasUserId, int? startIndex, int? limit)
{ {
using (WriteLock.Read()) using (WriteLock.Read())
using (var connection = CreateConnection(true))
{ {
using (var connection = CreateConnection(true)) var commandText = BaseActivitySelectText;
var whereClauses = new List<string>();
if (minDate.HasValue)
{ {
var commandText = BaseActivitySelectText; whereClauses.Add("DateCreated>=@DateCreated");
var whereClauses = new List<string>();
if (minDate.HasValue)
{
whereClauses.Add("DateCreated>=@DateCreated");
}
if (hasUserId.HasValue)
{
if (hasUserId.Value)
{
whereClauses.Add("UserId not null");
}
else
{
whereClauses.Add("UserId is null");
}
}
var whereTextWithoutPaging = whereClauses.Count == 0 ?
string.Empty :
" where " + string.Join(" AND ", whereClauses.ToArray(whereClauses.Count));
if (startIndex.HasValue && startIndex.Value > 0)
{
var pagingWhereText = whereClauses.Count == 0 ?
string.Empty :
" where " + string.Join(" AND ", whereClauses.ToArray(whereClauses.Count));
whereClauses.Add(string.Format("Id NOT IN (SELECT Id FROM ActivityLog {0} ORDER BY DateCreated DESC LIMIT {1})",
pagingWhereText,
startIndex.Value.ToString(_usCulture)));
}
var whereText = whereClauses.Count == 0 ?
string.Empty :
" where " + string.Join(" AND ", whereClauses.ToArray(whereClauses.Count));
commandText += whereText;
commandText += " ORDER BY DateCreated DESC";
if (limit.HasValue)
{
commandText += " LIMIT " + limit.Value.ToString(_usCulture);
}
var statementTexts = new List<string>();
statementTexts.Add(commandText);
statementTexts.Add("select count (Id) from ActivityLog" + whereTextWithoutPaging);
return connection.RunInTransaction(db =>
{
var list = new List<ActivityLogEntry>();
var result = new QueryResult<ActivityLogEntry>();
var statements = PrepareAllSafe(db, statementTexts).ToList();
using (var statement = statements[0])
{
if (minDate.HasValue)
{
statement.TryBind("@DateCreated", minDate.Value.ToDateTimeParamValue());
}
foreach (var row in statement.ExecuteQuery())
{
list.Add(GetEntry(row));
}
}
using (var statement = statements[1])
{
if (minDate.HasValue)
{
statement.TryBind("@DateCreated", minDate.Value.ToDateTimeParamValue());
}
result.TotalRecordCount = statement.ExecuteQuery().SelectScalarInt().First();
}
result.Items = list.ToArray(list.Count);
return result;
}, ReadTransactionMode);
} }
if (hasUserId.HasValue)
{
if (hasUserId.Value)
{
whereClauses.Add("UserId not null");
}
else
{
whereClauses.Add("UserId is null");
}
}
var whereTextWithoutPaging = whereClauses.Count == 0 ?
string.Empty :
" where " + string.Join(" AND ", whereClauses.ToArray());
if (startIndex.HasValue && startIndex.Value > 0)
{
var pagingWhereText = whereClauses.Count == 0 ?
string.Empty :
" where " + string.Join(" AND ", whereClauses.ToArray());
whereClauses.Add(string.Format("Id NOT IN (SELECT Id FROM ActivityLog {0} ORDER BY DateCreated DESC LIMIT {1})",
pagingWhereText,
startIndex.Value.ToString(_usCulture)));
}
var whereText = whereClauses.Count == 0 ?
string.Empty :
" where " + string.Join(" AND ", whereClauses.ToArray());
commandText += whereText;
commandText += " ORDER BY DateCreated DESC";
if (limit.HasValue)
{
commandText += " LIMIT " + limit.Value.ToString(_usCulture);
}
var statementTexts = new List<string>();
statementTexts.Add(commandText);
statementTexts.Add("select count (Id) from ActivityLog" + whereTextWithoutPaging);
return connection.RunInTransaction(db =>
{
var list = new List<ActivityLogEntry>();
var result = new QueryResult<ActivityLogEntry>();
var statements = PrepareAllSafe(db, statementTexts).ToList();
using (var statement = statements[0])
{
if (minDate.HasValue)
{
statement.TryBind("@DateCreated", minDate.Value.ToDateTimeParamValue());
}
foreach (var row in statement.ExecuteQuery())
{
list.Add(GetEntry(row));
}
}
using (var statement = statements[1])
{
if (minDate.HasValue)
{
statement.TryBind("@DateCreated", minDate.Value.ToDateTimeParamValue());
}
result.TotalRecordCount = statement.ExecuteQuery().SelectScalarInt().First();
}
result.Items = list.ToArray();
return result;
}, ReadTransactionMode);
} }
} }
@ -308,7 +302,7 @@ namespace Emby.Server.Implementations.Activity
index++; index++;
if (reader[index].SQLiteType != SQLiteType.Null) if (reader[index].SQLiteType != SQLiteType.Null)
{ {
info.Severity = (LogSeverity)Enum.Parse(typeof(LogSeverity), reader[index].ToString(), true); info.Severity = (LogLevel)Enum.Parse(typeof(LogLevel), reader[index].ToString(), true);
} }
return info; return info;

View File

@ -9,7 +9,7 @@ using MediaBrowser.Common.Events;
using MediaBrowser.Common.Extensions; using MediaBrowser.Common.Extensions;
using MediaBrowser.Model.Configuration; using MediaBrowser.Model.Configuration;
using MediaBrowser.Model.IO; using MediaBrowser.Model.IO;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using MediaBrowser.Model.Serialization; using MediaBrowser.Model.Serialization;
namespace Emby.Server.Implementations.AppBase namespace Emby.Server.Implementations.AppBase
@ -97,14 +97,14 @@ namespace Emby.Server.Implementations.AppBase
/// Initializes a new instance of the <see cref="BaseConfigurationManager" /> class. /// Initializes a new instance of the <see cref="BaseConfigurationManager" /> class.
/// </summary> /// </summary>
/// <param name="applicationPaths">The application paths.</param> /// <param name="applicationPaths">The application paths.</param>
/// <param name="logManager">The log manager.</param> /// <param name="loggerFactory">The logger factory.</param>
/// <param name="xmlSerializer">The XML serializer.</param> /// <param name="xmlSerializer">The XML serializer.</param>
protected BaseConfigurationManager(IApplicationPaths applicationPaths, ILogManager logManager, IXmlSerializer xmlSerializer, IFileSystem fileSystem) protected BaseConfigurationManager(IApplicationPaths applicationPaths, ILoggerFactory loggerFactory, IXmlSerializer xmlSerializer, IFileSystem fileSystem)
{ {
CommonApplicationPaths = applicationPaths; CommonApplicationPaths = applicationPaths;
XmlSerializer = xmlSerializer; XmlSerializer = xmlSerializer;
FileSystem = fileSystem; FileSystem = fileSystem;
Logger = logManager.GetLogger(GetType().Name); Logger = loggerFactory.CreateLogger(GetType().Name);
UpdateCachePath(); UpdateCachePath();
} }
@ -123,7 +123,7 @@ namespace Emby.Server.Implementations.AppBase
/// </summary> /// </summary>
public void SaveConfiguration() public void SaveConfiguration()
{ {
Logger.Info("Saving system configuration"); Logger.LogInformation("Saving system configuration");
var path = CommonApplicationPaths.SystemConfigurationFilePath; var path = CommonApplicationPaths.SystemConfigurationFilePath;
FileSystem.CreateDirectory(FileSystem.GetDirectoryName(path)); FileSystem.CreateDirectory(FileSystem.GetDirectoryName(path));
@ -259,7 +259,7 @@ namespace Emby.Server.Implementations.AppBase
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.ErrorException("Error loading configuration file: {0}", ex, path); Logger.LogError(ex, "Error loading configuration file: {path}", path);
return Activator.CreateInstance(configurationType); return Activator.CreateInstance(configurationType);
} }

View File

@ -48,13 +48,11 @@ using MediaBrowser.Controller.Channels;
using MediaBrowser.Controller.Chapters; using MediaBrowser.Controller.Chapters;
using MediaBrowser.Controller.Collections; using MediaBrowser.Controller.Collections;
using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Connect;
using MediaBrowser.Controller.Devices; using MediaBrowser.Controller.Devices;
using MediaBrowser.Controller.Dlna; using MediaBrowser.Controller.Dlna;
using MediaBrowser.Controller.Drawing; using MediaBrowser.Controller.Drawing;
using MediaBrowser.Controller.Dto; using MediaBrowser.Controller.Dto;
using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.IO;
using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.LiveTv; using MediaBrowser.Controller.LiveTv;
using MediaBrowser.Controller.MediaEncoding; using MediaBrowser.Controller.MediaEncoding;
@ -80,7 +78,6 @@ using MediaBrowser.Model.Dlna;
using MediaBrowser.Model.Events; using MediaBrowser.Model.Events;
using MediaBrowser.Model.Globalization; using MediaBrowser.Model.Globalization;
using MediaBrowser.Model.IO; using MediaBrowser.Model.IO;
using MediaBrowser.Model.Logging;
using MediaBrowser.Model.MediaInfo; using MediaBrowser.Model.MediaInfo;
using MediaBrowser.Model.Net; using MediaBrowser.Model.Net;
using MediaBrowser.Model.News; using MediaBrowser.Model.News;
@ -117,6 +114,7 @@ using X509Certificate = System.Security.Cryptography.X509Certificates.X509Certif
using MediaBrowser.Controller.Authentication; using MediaBrowser.Controller.Authentication;
using System.Diagnostics; using System.Diagnostics;
using ServiceStack.Text.Jsv; using ServiceStack.Text.Jsv;
using Microsoft.Extensions.Logging;
namespace Emby.Server.Implementations namespace Emby.Server.Implementations
{ {
@ -202,10 +200,10 @@ namespace Emby.Server.Implementations
public IPlugin[] Plugins { get; protected set; } public IPlugin[] Plugins { get; protected set; }
/// <summary> /// <summary>
/// Gets or sets the log manager. /// Gets or sets the logger factory.
/// </summary> /// </summary>
/// <value>The log manager.</value> /// <value>The logger factory.</value>
public ILogManager LogManager { get; protected set; } public ILoggerFactory LoggerFactory { get; protected set; }
/// <summary> /// <summary>
/// Gets the application paths. /// Gets the application paths.
@ -275,12 +273,12 @@ namespace Emby.Server.Implementations
/// <returns>IConfigurationManager.</returns> /// <returns>IConfigurationManager.</returns>
protected IConfigurationManager GetConfigurationManager() protected IConfigurationManager GetConfigurationManager()
{ {
return new ServerConfigurationManager(ApplicationPaths, LogManager, XmlSerializer, FileSystemManager); return new ServerConfigurationManager(ApplicationPaths, LoggerFactory, XmlSerializer, FileSystemManager);
} }
protected virtual IResourceFileManager CreateResourceFileManager() protected virtual IResourceFileManager CreateResourceFileManager()
{ {
return new ResourceFileManager(HttpResultFactory, LogManager.GetLogger("ResourceManager"), FileSystemManager); return new ResourceFileManager(HttpResultFactory, LoggerFactory.CreateLogger("ResourceManager"), FileSystemManager);
} }
/// <summary> /// <summary>
@ -391,7 +389,7 @@ namespace Emby.Server.Implementations
/// Initializes a new instance of the <see cref="ApplicationHost" /> class. /// Initializes a new instance of the <see cref="ApplicationHost" /> class.
/// </summary> /// </summary>
public ApplicationHost(ServerApplicationPaths applicationPaths, public ApplicationHost(ServerApplicationPaths applicationPaths,
ILogManager logManager, ILoggerFactory loggerFactory,
StartupOptions options, StartupOptions options,
IFileSystem fileSystem, IFileSystem fileSystem,
IPowerManagement powerManagement, IPowerManagement powerManagement,
@ -405,7 +403,7 @@ namespace Emby.Server.Implementations
// hack alert, until common can target .net core // hack alert, until common can target .net core
BaseExtensions.CryptographyProvider = CryptographyProvider; BaseExtensions.CryptographyProvider = CryptographyProvider;
XmlSerializer = new MyXmlSerializer(fileSystem, logManager.GetLogger("XmlSerializer")); XmlSerializer = new MyXmlSerializer(fileSystem, loggerFactory.CreateLogger("XmlSerializer"));
NetworkManager = networkManager; NetworkManager = networkManager;
networkManager.LocalSubnetsFn = GetConfiguredLocalSubnets; networkManager.LocalSubnetsFn = GetConfiguredLocalSubnets;
@ -413,13 +411,13 @@ namespace Emby.Server.Implementations
SystemEvents = systemEvents; SystemEvents = systemEvents;
ApplicationPaths = applicationPaths; ApplicationPaths = applicationPaths;
LogManager = logManager; LoggerFactory = loggerFactory;
FileSystemManager = fileSystem; FileSystemManager = fileSystem;
ConfigurationManager = GetConfigurationManager(); ConfigurationManager = GetConfigurationManager();
// Initialize this early in case the -v command line option is used // Initialize this early in case the -v command line option is used
Logger = LogManager.GetLogger("App"); Logger = LoggerFactory.CreateLogger("App");
StartupOptions = options; StartupOptions = options;
ReleaseAssetFilename = releaseAssetFilename; ReleaseAssetFilename = releaseAssetFilename;
@ -427,7 +425,7 @@ namespace Emby.Server.Implementations
ImageEncoder = imageEncoder; ImageEncoder = imageEncoder;
SetBaseExceptionMessage(); //SetBaseExceptionMessage();
fileSystem.AddShortcutHandler(new MbLinkShortcutHandler(fileSystem)); fileSystem.AddShortcutHandler(new MbLinkShortcutHandler(fileSystem));
@ -480,7 +478,7 @@ namespace Emby.Server.Implementations
{ {
if (_deviceId == null) if (_deviceId == null)
{ {
_deviceId = new DeviceId(ApplicationPaths, LogManager.GetLogger("SystemId"), FileSystemManager); _deviceId = new DeviceId(ApplicationPaths, LoggerFactory.CreateLogger("SystemId"), FileSystemManager);
} }
return _deviceId.Value; return _deviceId.Value;
@ -545,7 +543,7 @@ namespace Emby.Server.Implementations
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.ErrorException("Error creating {0}", ex, type.FullName); Logger.LogError(ex, "Error creating {type}", type.FullName);
// Don't blow up in release mode // Don't blow up in release mode
return null; return null;
} }
@ -625,7 +623,7 @@ namespace Emby.Server.Implementations
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.ErrorException("Error loading assembly {0}", ex, file); Logger.LogError(ex, "Error loading assembly {file}", file);
return null; return null;
} }
} }
@ -648,7 +646,7 @@ namespace Emby.Server.Implementations
/// <typeparam name="T"></typeparam> /// <typeparam name="T"></typeparam>
/// <param name="manageLiftime">if set to <c>true</c> [manage liftime].</param> /// <param name="manageLiftime">if set to <c>true</c> [manage liftime].</param>
/// <returns>IEnumerable{``0}.</returns> /// <returns>IEnumerable{``0}.</returns>
public IEnumerable<T> GetExports<T>(bool manageLiftime = true) public IEnumerable<T> GetExports<T>(bool manageLifetime = true)
{ {
var parts = GetExportTypes<T>() var parts = GetExportTypes<T>()
.Select(CreateInstanceSafe) .Select(CreateInstanceSafe)
@ -656,7 +654,7 @@ namespace Emby.Server.Implementations
.Cast<T>() .Cast<T>()
.ToList(); .ToList();
if (manageLiftime) if (manageLifetime)
{ {
lock (DisposableParts) lock (DisposableParts)
{ {
@ -667,7 +665,7 @@ namespace Emby.Server.Implementations
return parts; return parts;
} }
public List<Tuple<T, string>> GetExportsWithInfo<T>(bool manageLiftime = true) public List<Tuple<T, string>> GetExportsWithInfo<T>(bool manageLifetime = true)
{ {
var parts = GetExportTypes<T>() var parts = GetExportTypes<T>()
.Select(i => .Select(i =>
@ -683,7 +681,7 @@ namespace Emby.Server.Implementations
.Where(i => i != null) .Where(i => i != null)
.ToList(); .ToList();
if (manageLiftime) if (manageLifetime)
{ {
lock (DisposableParts) lock (DisposableParts)
{ {
@ -694,6 +692,8 @@ namespace Emby.Server.Implementations
return parts; return parts;
} }
// TODO: @bond
/*
private void SetBaseExceptionMessage() private void SetBaseExceptionMessage()
{ {
var builder = GetBaseExceptionMessage(ApplicationPaths); var builder = GetBaseExceptionMessage(ApplicationPaths);
@ -701,8 +701,8 @@ namespace Emby.Server.Implementations
builder.Insert(0, string.Format("Version: {0}{1}", ApplicationVersion, Environment.NewLine)); builder.Insert(0, string.Format("Version: {0}{1}", ApplicationVersion, Environment.NewLine));
builder.Insert(0, "*** Error Report ***" + Environment.NewLine); builder.Insert(0, "*** Error Report ***" + Environment.NewLine);
LogManager.ExceptionMessagePrefix = builder.ToString(); LoggerFactory.ExceptionMessagePrefix = builder.ToString();
} }*/
/// <summary> /// <summary>
/// Runs the startup tasks. /// Runs the startup tasks.
@ -726,20 +726,20 @@ namespace Emby.Server.Implementations
// } // }
//} //}
Logger.Info("ServerId: {0}", SystemId); Logger.LogInformation("ServerId: {0}", SystemId);
var entryPoints = GetExports<IServerEntryPoint>().ToList(); var entryPoints = GetExports<IServerEntryPoint>();
RunEntryPoints(entryPoints, true); RunEntryPoints(entryPoints, true);
Logger.Info("Core startup complete"); Logger.LogInformation("Core startup complete");
HttpServer.GlobalResponse = null; HttpServer.GlobalResponse = null;
Logger.Info("Post-init migrations complete"); Logger.LogInformation("Post-init migrations complete");
RunEntryPoints(entryPoints, false); RunEntryPoints(entryPoints, false);
Logger.Info("All entry points have started"); Logger.LogInformation("All entry points have started");
LogManager.RemoveConsoleOutput(); //LoggerFactory.RemoveConsoleOutput();
} }
private void RunEntryPoints(IEnumerable<IServerEntryPoint> entryPoints, bool isBeforeStartup) private void RunEntryPoints(IEnumerable<IServerEntryPoint> entryPoints, bool isBeforeStartup)
@ -752,7 +752,7 @@ namespace Emby.Server.Implementations
} }
var name = entryPoint.GetType().FullName; var name = entryPoint.GetType().FullName;
Logger.Info("Starting entry point {0}", name); Logger.LogInformation("Starting entry point {0}", name);
var now = DateTime.UtcNow; var now = DateTime.UtcNow;
try try
{ {
@ -760,9 +760,9 @@ namespace Emby.Server.Implementations
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.ErrorException("Error in {0}", ex, name); Logger.LogError(ex, "Error in {name}", name);
} }
Logger.Info("Entry point completed: {0}. Duration: {1} seconds", name, (DateTime.UtcNow - now).TotalSeconds.ToString(CultureInfo.InvariantCulture), "ImageInfos"); Logger.LogInformation("Entry point completed: {0}. Duration: {1} seconds", name, (DateTime.UtcNow - now).TotalSeconds.ToString(CultureInfo.InvariantCulture), "ImageInfos");
} }
} }
@ -777,13 +777,13 @@ namespace Emby.Server.Implementations
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.ErrorException("Error configuring autorun", ex); Logger.LogError(ex, "Error configuring autorun");
} }
} }
private IJsonSerializer CreateJsonSerializer() private IJsonSerializer CreateJsonSerializer()
{ {
return new JsonSerializer(FileSystemManager, LogManager.GetLogger("JsonSerializer")); return new JsonSerializer(FileSystemManager, LoggerFactory.CreateLogger("JsonSerializer"));
} }
public void Init() public void Init()
@ -801,11 +801,7 @@ namespace Emby.Server.Implementations
JsonSerializer = CreateJsonSerializer(); JsonSerializer = CreateJsonSerializer();
OnLoggerLoaded(true); OnLoggerLoaded(true);
LogManager.LoggerLoaded += (s, e) => OnLoggerLoaded(false); //LoggerFactory.LoggerLoaded += (s, e) => OnLoggerLoaded(false);
LogManager.LogSeverity = ConfigurationManager.CommonConfiguration.EnableDebugLevelLogging
? LogSeverity.Debug
: LogSeverity.Info;
DiscoverTypes(); DiscoverTypes();
@ -818,7 +814,7 @@ namespace Emby.Server.Implementations
protected virtual void OnLoggerLoaded(bool isFirstLoad) protected virtual void OnLoggerLoaded(bool isFirstLoad)
{ {
Logger.Info("Application version: {0}", ApplicationVersion); Logger.LogInformation("Application version: {0}", ApplicationVersion);
if (!isFirstLoad) if (!isFirstLoad)
{ {
@ -834,13 +830,13 @@ namespace Emby.Server.Implementations
pluginBuilder.AppendLine(string.Format("{0} {1}", plugin.Name, plugin.Version)); pluginBuilder.AppendLine(string.Format("{0} {1}", plugin.Name, plugin.Version));
} }
Logger.LogMultiline("Plugins:", LogSeverity.Info, pluginBuilder); Logger.LogInformation("Plugins: {plugins}", pluginBuilder.ToString());
} }
} }
protected virtual IHttpClient CreateHttpClient() protected virtual IHttpClient CreateHttpClient()
{ {
return new HttpClientManager.HttpClientManager(ApplicationPaths, LogManager.GetLogger("HttpClient"), FileSystemManager, GetDefaultUserAgent); return new HttpClientManager.HttpClientManager(ApplicationPaths, LoggerFactory.CreateLogger("HttpClient"), FileSystemManager, GetDefaultUserAgent);
} }
public static IStreamHelper StreamHelper { get; set; } public static IStreamHelper StreamHelper { get; set; }
@ -858,7 +854,7 @@ namespace Emby.Server.Implementations
RegisterSingleInstance(JsonSerializer); RegisterSingleInstance(JsonSerializer);
RegisterSingleInstance(SystemEvents); RegisterSingleInstance(SystemEvents);
RegisterSingleInstance(LogManager, false); RegisterSingleInstance(LoggerFactory, false);
RegisterSingleInstance(Logger); RegisterSingleInstance(Logger);
RegisterSingleInstance(EnvironmentInfo); RegisterSingleInstance(EnvironmentInfo);
@ -873,7 +869,7 @@ namespace Emby.Server.Implementations
IsoManager = new IsoManager(); IsoManager = new IsoManager();
RegisterSingleInstance(IsoManager); RegisterSingleInstance(IsoManager);
TaskManager = new TaskManager(ApplicationPaths, JsonSerializer, LogManager.GetLogger("TaskManager"), FileSystemManager, SystemEvents); TaskManager = new TaskManager(ApplicationPaths, JsonSerializer, LoggerFactory.CreateLogger("TaskManager"), FileSystemManager, SystemEvents);
RegisterSingleInstance(TaskManager); RegisterSingleInstance(TaskManager);
RegisterSingleInstance(XmlSerializer); RegisterSingleInstance(XmlSerializer);
@ -890,21 +886,21 @@ namespace Emby.Server.Implementations
RegisterSingleInstance(CryptographyProvider); RegisterSingleInstance(CryptographyProvider);
SocketFactory = new SocketFactory(LogManager.GetLogger("SocketFactory")); SocketFactory = new SocketFactory(LoggerFactory.CreateLogger("SocketFactory"));
RegisterSingleInstance(SocketFactory); RegisterSingleInstance(SocketFactory);
RegisterSingleInstance(PowerManagement); RegisterSingleInstance(PowerManagement);
SecurityManager = new PluginSecurityManager(this, HttpClient, JsonSerializer, ApplicationPaths, LogManager, FileSystemManager, CryptographyProvider); SecurityManager = new PluginSecurityManager(this, HttpClient, JsonSerializer, ApplicationPaths, LoggerFactory, FileSystemManager, CryptographyProvider);
RegisterSingleInstance(SecurityManager); RegisterSingleInstance(SecurityManager);
InstallationManager = new InstallationManager(LogManager.GetLogger("InstallationManager"), this, ApplicationPaths, HttpClient, JsonSerializer, SecurityManager, ServerConfigurationManager, FileSystemManager, CryptographyProvider, PackageRuntime); InstallationManager = new InstallationManager(LoggerFactory.CreateLogger("InstallationManager"), this, ApplicationPaths, HttpClient, JsonSerializer, SecurityManager, ServerConfigurationManager, FileSystemManager, CryptographyProvider, PackageRuntime);
RegisterSingleInstance(InstallationManager); RegisterSingleInstance(InstallationManager);
ZipClient = new ZipClient(FileSystemManager); ZipClient = new ZipClient(FileSystemManager);
RegisterSingleInstance(ZipClient); RegisterSingleInstance(ZipClient);
HttpResultFactory = new HttpResultFactory(LogManager, FileSystemManager, JsonSerializer, CreateBrotliCompressor()); HttpResultFactory = new HttpResultFactory(LoggerFactory, FileSystemManager, JsonSerializer, CreateBrotliCompressor());
RegisterSingleInstance(HttpResultFactory); RegisterSingleInstance(HttpResultFactory);
RegisterSingleInstance<IServerApplicationHost>(this); RegisterSingleInstance<IServerApplicationHost>(this);
@ -915,36 +911,36 @@ namespace Emby.Server.Implementations
IAssemblyInfo assemblyInfo = new AssemblyInfo(); IAssemblyInfo assemblyInfo = new AssemblyInfo();
RegisterSingleInstance<IAssemblyInfo>(assemblyInfo); RegisterSingleInstance<IAssemblyInfo>(assemblyInfo);
LocalizationManager = new LocalizationManager(ServerConfigurationManager, FileSystemManager, JsonSerializer, LogManager.GetLogger("LocalizationManager"), assemblyInfo, new TextLocalizer()); LocalizationManager = new LocalizationManager(ServerConfigurationManager, FileSystemManager, JsonSerializer, LoggerFactory.CreateLogger("LocalizationManager"), assemblyInfo, new TextLocalizer());
StringExtensions.LocalizationManager = LocalizationManager; StringExtensions.LocalizationManager = LocalizationManager;
RegisterSingleInstance(LocalizationManager); RegisterSingleInstance(LocalizationManager);
TextEncoding = new TextEncoding.TextEncoding(FileSystemManager, LogManager.GetLogger("TextEncoding"), JsonSerializer); TextEncoding = new TextEncoding.TextEncoding(FileSystemManager, LoggerFactory.CreateLogger("TextEncoding"), JsonSerializer);
RegisterSingleInstance(TextEncoding); RegisterSingleInstance(TextEncoding);
BlurayExaminer = new BdInfoExaminer(FileSystemManager, TextEncoding); BlurayExaminer = new BdInfoExaminer(FileSystemManager, TextEncoding);
RegisterSingleInstance(BlurayExaminer); RegisterSingleInstance(BlurayExaminer);
RegisterSingleInstance<IXmlReaderSettingsFactory>(new XmlReaderSettingsFactory()); RegisterSingleInstance<IXmlReaderSettingsFactory>(new XmlReaderSettingsFactory());
UserDataManager = new UserDataManager(LogManager, ServerConfigurationManager, () => UserManager); UserDataManager = new UserDataManager(LoggerFactory, ServerConfigurationManager, () => UserManager);
RegisterSingleInstance(UserDataManager); RegisterSingleInstance(UserDataManager);
UserRepository = GetUserRepository(); UserRepository = GetUserRepository();
// This is only needed for disposal purposes. If removing this, make sure to have the manager handle disposing it // This is only needed for disposal purposes. If removing this, make sure to have the manager handle disposing it
RegisterSingleInstance(UserRepository); RegisterSingleInstance(UserRepository);
var displayPreferencesRepo = new SqliteDisplayPreferencesRepository(LogManager.GetLogger("SqliteDisplayPreferencesRepository"), JsonSerializer, ApplicationPaths, FileSystemManager); var displayPreferencesRepo = new SqliteDisplayPreferencesRepository(LoggerFactory.CreateLogger("SqliteDisplayPreferencesRepository"), JsonSerializer, ApplicationPaths, FileSystemManager);
DisplayPreferencesRepository = displayPreferencesRepo; DisplayPreferencesRepository = displayPreferencesRepo;
RegisterSingleInstance(DisplayPreferencesRepository); RegisterSingleInstance(DisplayPreferencesRepository);
var itemRepo = new SqliteItemRepository(ServerConfigurationManager, this, JsonSerializer, LogManager.GetLogger("SqliteItemRepository"), assemblyInfo, FileSystemManager, EnvironmentInfo, TimerFactory); var itemRepo = new SqliteItemRepository(ServerConfigurationManager, this, JsonSerializer, LoggerFactory.CreateLogger("SqliteItemRepository"), assemblyInfo, FileSystemManager, EnvironmentInfo, TimerFactory);
ItemRepository = itemRepo; ItemRepository = itemRepo;
RegisterSingleInstance(ItemRepository); RegisterSingleInstance(ItemRepository);
AuthenticationRepository = GetAuthenticationRepository(); AuthenticationRepository = GetAuthenticationRepository();
RegisterSingleInstance(AuthenticationRepository); RegisterSingleInstance(AuthenticationRepository);
UserManager = new UserManager(LogManager.GetLogger("UserManager"), ServerConfigurationManager, UserRepository, XmlSerializer, NetworkManager, () => ImageProcessor, () => DtoService, this, JsonSerializer, FileSystemManager, CryptographyProvider); UserManager = new UserManager(LoggerFactory.CreateLogger("UserManager"), ServerConfigurationManager, UserRepository, XmlSerializer, NetworkManager, () => ImageProcessor, () => DtoService, this, JsonSerializer, FileSystemManager, CryptographyProvider);
RegisterSingleInstance(UserManager); RegisterSingleInstance(UserManager);
LibraryManager = new LibraryManager(this, Logger, TaskManager, UserManager, ServerConfigurationManager, UserDataManager, () => LibraryMonitor, FileSystemManager, () => ProviderManager, () => UserViewManager); LibraryManager = new LibraryManager(this, Logger, TaskManager, UserManager, ServerConfigurationManager, UserDataManager, () => LibraryMonitor, FileSystemManager, () => ProviderManager, () => UserViewManager);
@ -953,16 +949,16 @@ namespace Emby.Server.Implementations
var musicManager = new MusicManager(LibraryManager); var musicManager = new MusicManager(LibraryManager);
RegisterSingleInstance<IMusicManager>(new MusicManager(LibraryManager)); RegisterSingleInstance<IMusicManager>(new MusicManager(LibraryManager));
LibraryMonitor = new LibraryMonitor(LogManager, TaskManager, LibraryManager, ServerConfigurationManager, FileSystemManager, TimerFactory, SystemEvents, EnvironmentInfo); LibraryMonitor = new LibraryMonitor(LoggerFactory, TaskManager, LibraryManager, ServerConfigurationManager, FileSystemManager, TimerFactory, SystemEvents, EnvironmentInfo);
RegisterSingleInstance(LibraryMonitor); RegisterSingleInstance(LibraryMonitor);
RegisterSingleInstance<ISearchEngine>(() => new SearchEngine(LogManager, LibraryManager, UserManager)); RegisterSingleInstance<ISearchEngine>(() => new SearchEngine(LoggerFactory, LibraryManager, UserManager));
CertificateInfo = GetCertificateInfo(true); CertificateInfo = GetCertificateInfo(true);
Certificate = GetCertificate(CertificateInfo); Certificate = GetCertificate(CertificateInfo);
HttpServer = new HttpListenerHost(this, HttpServer = new HttpListenerHost(this,
LogManager.GetLogger("HttpServer"), LoggerFactory.CreateLogger("HttpServer"),
ServerConfigurationManager, ServerConfigurationManager,
"web/index.html", "web/index.html",
NetworkManager, NetworkManager,
@ -983,37 +979,37 @@ namespace Emby.Server.Implementations
var encryptionManager = new EncryptionManager(); var encryptionManager = new EncryptionManager();
RegisterSingleInstance<IEncryptionManager>(encryptionManager); RegisterSingleInstance<IEncryptionManager>(encryptionManager);
DeviceManager = new DeviceManager(AuthenticationRepository, JsonSerializer, LibraryManager, LocalizationManager, UserManager, FileSystemManager, LibraryMonitor, ServerConfigurationManager, LogManager.GetLogger("DeviceManager"), NetworkManager); DeviceManager = new DeviceManager(AuthenticationRepository, JsonSerializer, LibraryManager, LocalizationManager, UserManager, FileSystemManager, LibraryMonitor, ServerConfigurationManager, LoggerFactory.CreateLogger("DeviceManager"), NetworkManager);
RegisterSingleInstance(DeviceManager); RegisterSingleInstance(DeviceManager);
var newsService = new Emby.Server.Implementations.News.NewsService(ApplicationPaths, JsonSerializer); var newsService = new Emby.Server.Implementations.News.NewsService(ApplicationPaths, JsonSerializer);
RegisterSingleInstance<INewsService>(newsService); RegisterSingleInstance<INewsService>(newsService);
MediaSourceManager = new MediaSourceManager(ItemRepository, ApplicationPaths, LocalizationManager, UserManager, LibraryManager, LogManager.GetLogger("MediaSourceManager"), JsonSerializer, FileSystemManager, UserDataManager, TimerFactory, () => MediaEncoder); MediaSourceManager = new MediaSourceManager(ItemRepository, ApplicationPaths, LocalizationManager, UserManager, LibraryManager, LoggerFactory.CreateLogger("MediaSourceManager"), JsonSerializer, FileSystemManager, UserDataManager, TimerFactory, () => MediaEncoder);
RegisterSingleInstance(MediaSourceManager); RegisterSingleInstance(MediaSourceManager);
SubtitleManager = new SubtitleManager(LogManager.GetLogger("SubtitleManager"), FileSystemManager, LibraryMonitor, MediaSourceManager, ServerConfigurationManager, LocalizationManager); SubtitleManager = new SubtitleManager(LoggerFactory.CreateLogger("SubtitleManager"), FileSystemManager, LibraryMonitor, MediaSourceManager, ServerConfigurationManager, LocalizationManager);
RegisterSingleInstance(SubtitleManager); RegisterSingleInstance(SubtitleManager);
ProviderManager = new ProviderManager(HttpClient, SubtitleManager, ServerConfigurationManager, LibraryMonitor, LogManager, FileSystemManager, ApplicationPaths, () => LibraryManager, JsonSerializer); ProviderManager = new ProviderManager(HttpClient, SubtitleManager, ServerConfigurationManager, LibraryMonitor, LoggerFactory, FileSystemManager, ApplicationPaths, () => LibraryManager, JsonSerializer);
RegisterSingleInstance(ProviderManager); RegisterSingleInstance(ProviderManager);
DtoService = new DtoService(LogManager.GetLogger("DtoService"), LibraryManager, UserDataManager, ItemRepository, ImageProcessor, ServerConfigurationManager, FileSystemManager, ProviderManager, () => ChannelManager, this, () => DeviceManager, () => MediaSourceManager, () => LiveTvManager); DtoService = new DtoService(LoggerFactory.CreateLogger("DtoService"), LibraryManager, UserDataManager, ItemRepository, ImageProcessor, ServerConfigurationManager, FileSystemManager, ProviderManager, () => ChannelManager, this, () => DeviceManager, () => MediaSourceManager, () => LiveTvManager);
RegisterSingleInstance(DtoService); RegisterSingleInstance(DtoService);
ChannelManager = new ChannelManager(UserManager, DtoService, LibraryManager, LogManager.GetLogger("ChannelManager"), ServerConfigurationManager, FileSystemManager, UserDataManager, JsonSerializer, LocalizationManager, HttpClient, ProviderManager); ChannelManager = new ChannelManager(UserManager, DtoService, LibraryManager, LoggerFactory.CreateLogger("ChannelManager"), ServerConfigurationManager, FileSystemManager, UserDataManager, JsonSerializer, LocalizationManager, HttpClient, ProviderManager);
RegisterSingleInstance(ChannelManager); RegisterSingleInstance(ChannelManager);
SessionManager = new SessionManager(UserDataManager, LogManager.GetLogger("SessionManager"), LibraryManager, UserManager, musicManager, DtoService, ImageProcessor, JsonSerializer, this, HttpClient, AuthenticationRepository, DeviceManager, MediaSourceManager, TimerFactory); SessionManager = new SessionManager(UserDataManager, LoggerFactory.CreateLogger("SessionManager"), LibraryManager, UserManager, musicManager, DtoService, ImageProcessor, JsonSerializer, this, HttpClient, AuthenticationRepository, DeviceManager, MediaSourceManager, TimerFactory);
RegisterSingleInstance(SessionManager); RegisterSingleInstance(SessionManager);
var dlnaManager = new DlnaManager(XmlSerializer, FileSystemManager, ApplicationPaths, LogManager.GetLogger("Dlna"), JsonSerializer, this, assemblyInfo); var dlnaManager = new DlnaManager(XmlSerializer, FileSystemManager, ApplicationPaths, LoggerFactory.CreateLogger("Dlna"), JsonSerializer, this, assemblyInfo);
RegisterSingleInstance<IDlnaManager>(dlnaManager); RegisterSingleInstance<IDlnaManager>(dlnaManager);
CollectionManager = new CollectionManager(LibraryManager, ApplicationPaths, LocalizationManager, FileSystemManager, LibraryMonitor, LogManager.GetLogger("CollectionManager"), ProviderManager); CollectionManager = new CollectionManager(LibraryManager, ApplicationPaths, LocalizationManager, FileSystemManager, LibraryMonitor, LoggerFactory.CreateLogger("CollectionManager"), ProviderManager);
RegisterSingleInstance(CollectionManager); RegisterSingleInstance(CollectionManager);
PlaylistManager = new PlaylistManager(LibraryManager, FileSystemManager, LibraryMonitor, LogManager.GetLogger("PlaylistManager"), UserManager, ProviderManager); PlaylistManager = new PlaylistManager(LibraryManager, FileSystemManager, LibraryMonitor, LoggerFactory.CreateLogger("PlaylistManager"), UserManager, ProviderManager);
RegisterSingleInstance<IPlaylistManager>(PlaylistManager); RegisterSingleInstance<IPlaylistManager>(PlaylistManager);
LiveTvManager = new LiveTvManager(this, HttpClient, ServerConfigurationManager, Logger, ItemRepository, ImageProcessor, UserDataManager, DtoService, UserManager, LibraryManager, TaskManager, LocalizationManager, JsonSerializer, ProviderManager, FileSystemManager, SecurityManager, () => ChannelManager); LiveTvManager = new LiveTvManager(this, HttpClient, ServerConfigurationManager, Logger, ItemRepository, ImageProcessor, UserDataManager, DtoService, UserManager, LibraryManager, TaskManager, LocalizationManager, JsonSerializer, ProviderManager, FileSystemManager, SecurityManager, () => ChannelManager);
@ -1022,12 +1018,12 @@ namespace Emby.Server.Implementations
UserViewManager = new UserViewManager(LibraryManager, LocalizationManager, UserManager, ChannelManager, LiveTvManager, ServerConfigurationManager); UserViewManager = new UserViewManager(LibraryManager, LocalizationManager, UserManager, ChannelManager, LiveTvManager, ServerConfigurationManager);
RegisterSingleInstance(UserViewManager); RegisterSingleInstance(UserViewManager);
NotificationManager = new NotificationManager(LogManager, UserManager, ServerConfigurationManager); NotificationManager = new NotificationManager(LoggerFactory, UserManager, ServerConfigurationManager);
RegisterSingleInstance(NotificationManager); RegisterSingleInstance(NotificationManager);
RegisterSingleInstance<IDeviceDiscovery>(new DeviceDiscovery(LogManager.GetLogger("IDeviceDiscovery"), ServerConfigurationManager, SocketFactory, TimerFactory)); RegisterSingleInstance<IDeviceDiscovery>(new DeviceDiscovery(LoggerFactory.CreateLogger("IDeviceDiscovery"), ServerConfigurationManager, SocketFactory, TimerFactory));
ChapterManager = new ChapterManager(LibraryManager, LogManager.GetLogger("ChapterManager"), ServerConfigurationManager, ItemRepository); ChapterManager = new ChapterManager(LibraryManager, LoggerFactory.CreateLogger("ChapterManager"), ServerConfigurationManager, ItemRepository);
RegisterSingleInstance(ChapterManager); RegisterSingleInstance(ChapterManager);
RegisterMediaEncoder(assemblyInfo); RegisterMediaEncoder(assemblyInfo);
@ -1037,7 +1033,7 @@ namespace Emby.Server.Implementations
var activityLogRepo = GetActivityLogRepository(); var activityLogRepo = GetActivityLogRepository();
RegisterSingleInstance(activityLogRepo); RegisterSingleInstance(activityLogRepo);
RegisterSingleInstance<IActivityManager>(new ActivityManager(LogManager.GetLogger("ActivityManager"), activityLogRepo, UserManager)); RegisterSingleInstance<IActivityManager>(new ActivityManager(LoggerFactory.CreateLogger("ActivityManager"), activityLogRepo, UserManager));
var authContext = new AuthorizationContext(AuthenticationRepository, UserManager); var authContext = new AuthorizationContext(AuthenticationRepository, UserManager);
RegisterSingleInstance<IAuthorizationContext>(authContext); RegisterSingleInstance<IAuthorizationContext>(authContext);
@ -1046,14 +1042,14 @@ namespace Emby.Server.Implementations
AuthService = new AuthService(UserManager, authContext, ServerConfigurationManager, SessionManager, NetworkManager); AuthService = new AuthService(UserManager, authContext, ServerConfigurationManager, SessionManager, NetworkManager);
RegisterSingleInstance<IAuthService>(AuthService); RegisterSingleInstance<IAuthService>(AuthService);
SubtitleEncoder = new MediaBrowser.MediaEncoding.Subtitles.SubtitleEncoder(LibraryManager, LogManager.GetLogger("SubtitleEncoder"), ApplicationPaths, FileSystemManager, MediaEncoder, JsonSerializer, HttpClient, MediaSourceManager, ProcessFactory, TextEncoding); SubtitleEncoder = new MediaBrowser.MediaEncoding.Subtitles.SubtitleEncoder(LibraryManager, LoggerFactory.CreateLogger("SubtitleEncoder"), ApplicationPaths, FileSystemManager, MediaEncoder, JsonSerializer, HttpClient, MediaSourceManager, ProcessFactory, TextEncoding);
RegisterSingleInstance(SubtitleEncoder); RegisterSingleInstance(SubtitleEncoder);
RegisterSingleInstance(CreateResourceFileManager()); RegisterSingleInstance(CreateResourceFileManager());
displayPreferencesRepo.Initialize(); displayPreferencesRepo.Initialize();
var userDataRepo = new SqliteUserDataRepository(LogManager.GetLogger("SqliteUserDataRepository"), ApplicationPaths, FileSystemManager); var userDataRepo = new SqliteUserDataRepository(LoggerFactory.CreateLogger("SqliteUserDataRepository"), ApplicationPaths, FileSystemManager);
SetStaticProperties(); SetStaticProperties();
@ -1082,9 +1078,9 @@ namespace Emby.Server.Implementations
} }
} }
public static void LogEnvironmentInfo(ILogger logger, IApplicationPaths appPaths, bool isStartup) public static void LogEnvironmentInfo(ILogger Logger, IApplicationPaths appPaths, bool isStartup)
{ {
logger.LogMultiline("Emby", LogSeverity.Info, GetBaseExceptionMessage(appPaths)); Logger.LogInformation("Jellyfin:\n{ex}", GetBaseExceptionMessage(appPaths).ToString());
} }
protected static StringBuilder GetBaseExceptionMessage(IApplicationPaths appPaths) protected static StringBuilder GetBaseExceptionMessage(IApplicationPaths appPaths)
@ -1103,17 +1099,6 @@ namespace Emby.Server.Implementations
builder.AppendLine(string.Format("64-Bit OS: {0}", Environment.Is64BitOperatingSystem)); builder.AppendLine(string.Format("64-Bit OS: {0}", Environment.Is64BitOperatingSystem));
builder.AppendLine(string.Format("64-Bit Process: {0}", Environment.Is64BitProcess)); builder.AppendLine(string.Format("64-Bit Process: {0}", Environment.Is64BitProcess));
builder.AppendLine(string.Format("User Interactive: {0}", Environment.UserInteractive)); builder.AppendLine(string.Format("User Interactive: {0}", Environment.UserInteractive));
Type type = Type.GetType("Mono.Runtime");
if (type != null)
{
MethodInfo displayName = type.GetMethod("GetDisplayName", BindingFlags.NonPublic | BindingFlags.Static);
if (displayName != null)
{
builder.AppendLine("Mono: " + displayName.Invoke(null, null));
}
}
builder.AppendLine(string.Format("Processor count: {0}", Environment.ProcessorCount)); builder.AppendLine(string.Format("Processor count: {0}", Environment.ProcessorCount));
builder.AppendLine(string.Format("Program data path: {0}", appPaths.ProgramDataPath)); builder.AppendLine(string.Format("Program data path: {0}", appPaths.ProgramDataPath));
builder.AppendLine(string.Format("Application directory: {0}", appPaths.ProgramSystemPath)); builder.AppendLine(string.Format("Application directory: {0}", appPaths.ProgramSystemPath));
@ -1130,7 +1115,7 @@ namespace Emby.Server.Implementations
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.ErrorException("Error setting http limit", ex); Logger.LogError(ex, "Error setting http limit");
} }
} }
@ -1189,7 +1174,7 @@ namespace Emby.Server.Implementations
//localCert.PrivateKey = PrivateKey.CreateFromFile(pvk_file).RSA; //localCert.PrivateKey = PrivateKey.CreateFromFile(pvk_file).RSA;
if (!localCert.HasPrivateKey) if (!localCert.HasPrivateKey)
{ {
Logger.Error("No private key included in SSL cert {0}.", certificateLocation); Logger.LogError("No private key included in SSL cert {0}.", certificateLocation);
return null; return null;
} }
@ -1197,14 +1182,14 @@ namespace Emby.Server.Implementations
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.ErrorException("Error loading cert from {0}", ex, certificateLocation); Logger.LogError(ex, "Error loading cert from {certificateLocation}", certificateLocation);
return null; return null;
} }
} }
private IImageProcessor GetImageProcessor() private IImageProcessor GetImageProcessor()
{ {
return new ImageProcessor(LogManager.GetLogger("ImageProcessor"), ServerConfigurationManager.ApplicationPaths, FileSystemManager, JsonSerializer, ImageEncoder, () => LibraryManager, TimerFactory, () => MediaEncoder); return new ImageProcessor(LoggerFactory.CreateLogger("ImageProcessor"), ServerConfigurationManager.ApplicationPaths, FileSystemManager, JsonSerializer, ImageEncoder, () => LibraryManager, TimerFactory, () => MediaEncoder);
} }
protected virtual FFMpegInstallInfo GetFfmpegInstallInfo() protected virtual FFMpegInstallInfo GetFfmpegInstallInfo()
@ -1262,7 +1247,8 @@ namespace Emby.Server.Implementations
probePath = info.ProbePath; probePath = info.ProbePath;
var hasExternalEncoder = string.Equals(info.Version, "external", StringComparison.OrdinalIgnoreCase); var hasExternalEncoder = string.Equals(info.Version, "external", StringComparison.OrdinalIgnoreCase);
var mediaEncoder = new MediaBrowser.MediaEncoding.Encoder.MediaEncoder(LogManager.GetLogger("MediaEncoder"), var mediaEncoder = new MediaBrowser.MediaEncoding.Encoder.MediaEncoder(
LoggerFactory.CreateLogger("MediaEncoder"),
JsonSerializer, JsonSerializer,
encoderPath, encoderPath,
probePath, probePath,
@ -1292,7 +1278,7 @@ namespace Emby.Server.Implementations
/// <returns>Task{IUserRepository}.</returns> /// <returns>Task{IUserRepository}.</returns>
private IUserRepository GetUserRepository() private IUserRepository GetUserRepository()
{ {
var repo = new SqliteUserRepository(LogManager.GetLogger("SqliteUserRepository"), ApplicationPaths, JsonSerializer); var repo = new SqliteUserRepository(LoggerFactory.CreateLogger("SqliteUserRepository"), ApplicationPaths, JsonSerializer);
repo.Initialize(); repo.Initialize();
@ -1301,7 +1287,7 @@ namespace Emby.Server.Implementations
private IAuthenticationRepository GetAuthenticationRepository() private IAuthenticationRepository GetAuthenticationRepository()
{ {
var repo = new AuthenticationRepository(LogManager.GetLogger("AuthenticationRepository"), ServerConfigurationManager); var repo = new AuthenticationRepository(LoggerFactory.CreateLogger("AuthenticationRepository"), ServerConfigurationManager);
repo.Initialize(); repo.Initialize();
@ -1310,7 +1296,7 @@ namespace Emby.Server.Implementations
private IActivityRepository GetActivityLogRepository() private IActivityRepository GetActivityLogRepository()
{ {
var repo = new ActivityRepository(LogManager.GetLogger("ActivityRepository"), ServerConfigurationManager.ApplicationPaths, FileSystemManager); var repo = new ActivityRepository(LoggerFactory.CreateLogger("ActivityRepository"), ServerConfigurationManager.ApplicationPaths, FileSystemManager);
repo.Initialize(); repo.Initialize();
@ -1325,7 +1311,7 @@ namespace Emby.Server.Implementations
((SqliteItemRepository)ItemRepository).ImageProcessor = ImageProcessor; ((SqliteItemRepository)ItemRepository).ImageProcessor = ImageProcessor;
// For now there's no real way to inject these properly // For now there's no real way to inject these properly
BaseItem.Logger = LogManager.GetLogger("BaseItem"); BaseItem.Logger = LoggerFactory.CreateLogger("BaseItem");
BaseItem.ConfigurationManager = ServerConfigurationManager; BaseItem.ConfigurationManager = ServerConfigurationManager;
BaseItem.LibraryManager = LibraryManager; BaseItem.LibraryManager = LibraryManager;
BaseItem.ProviderManager = ProviderManager; BaseItem.ProviderManager = ProviderManager;
@ -1425,7 +1411,7 @@ namespace Emby.Server.Implementations
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.ErrorException("Error getting plugin Id from {0}.", ex, plugin.GetType().FullName); Logger.LogError(ex, "Error getting plugin Id from {pluginName}.", plugin.GetType().FullName);
} }
} }
@ -1437,7 +1423,7 @@ namespace Emby.Server.Implementations
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.ErrorException("Error loading plugin {0}", ex, plugin.GetType().FullName); Logger.LogError(ex, "Error loading plugin {pluginName}", plugin.GetType().FullName);
return null; return null;
} }
@ -1449,7 +1435,7 @@ namespace Emby.Server.Implementations
/// </summary> /// </summary>
protected void DiscoverTypes() protected void DiscoverTypes()
{ {
Logger.Info("Loading assemblies"); Logger.LogInformation("Loading assemblies");
var assemblyInfos = GetComposablePartAssemblies(); var assemblyInfos = GetComposablePartAssemblies();
@ -1460,11 +1446,11 @@ namespace Emby.Server.Implementations
if (path == null) if (path == null)
{ {
Logger.Info("Loading {0}", assembly.FullName); Logger.LogInformation("Loading {assemblyName}", assembly.FullName);
} }
else else
{ {
Logger.Info("Loading {0} from {1}", assembly.FullName, path); Logger.LogInformation("Loading {assemblyName} from {path}", assembly.FullName, path);
} }
} }
@ -1506,7 +1492,7 @@ namespace Emby.Server.Implementations
{ {
if (loaderException != null) if (loaderException != null)
{ {
Logger.Error("LoaderException: " + loaderException.Message); Logger.LogError("LoaderException: " + loaderException.Message);
} }
} }
} }
@ -1517,7 +1503,7 @@ namespace Emby.Server.Implementations
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.ErrorException("Error loading types from assembly", ex); Logger.LogError(ex, "Error loading types from assembly");
return new List<Tuple<Type, string>>(); return new List<Tuple<Type, string>>();
} }
@ -1564,7 +1550,7 @@ namespace Emby.Server.Implementations
? "The http server is unable to start due to a Socket error. This can occasionally happen when the operating system takes longer than usual to release the IP bindings from the previous session. This can take up to five minutes. Please try waiting or rebooting the system." ? "The http server is unable to start due to a Socket error. This can occasionally happen when the operating system takes longer than usual to release the IP bindings from the previous session. This can take up to five minutes. Please try waiting or rebooting the system."
: "Error starting Http Server"; : "Error starting Http Server";
Logger.ErrorException(msg, ex); Logger.LogError(ex, msg);
if (HttpPort == ServerConfiguration.DefaultHttpPort) if (HttpPort == ServerConfiguration.DefaultHttpPort)
{ {
@ -1580,7 +1566,7 @@ namespace Emby.Server.Implementations
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.ErrorException("Error starting http server", ex); Logger.LogError(ex, "Error starting http server");
throw; throw;
} }
@ -1615,7 +1601,7 @@ namespace Emby.Server.Implementations
// } // }
// catch (Exception ex) // catch (Exception ex)
// { // {
// Logger.ErrorException("Error creating ssl cert", ex); // Logger.LogError(ex, "Error creating ssl cert");
// return null; // return null;
// } // }
// } // }
@ -1672,7 +1658,7 @@ namespace Emby.Server.Implementations
if (requiresRestart) if (requiresRestart)
{ {
Logger.Info("App needs to be restarted due to configuration change."); Logger.LogInformation("App needs to be restarted due to configuration change.");
NotifyPendingRestart(); NotifyPendingRestart();
} }
@ -1683,7 +1669,7 @@ namespace Emby.Server.Implementations
/// </summary> /// </summary>
public void NotifyPendingRestart() public void NotifyPendingRestart()
{ {
Logger.Info("App needs to be restarted."); Logger.LogInformation("App needs to be restarted.");
var changed = !HasPendingRestart; var changed = !HasPendingRestart;
@ -1720,10 +1706,10 @@ namespace Emby.Server.Implementations
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.ErrorException("Error sending server restart notification", ex); Logger.LogError(ex, "Error sending server restart notification");
} }
Logger.Info("Calling RestartInternal"); Logger.LogInformation("Calling RestartInternal");
RestartInternal(); RestartInternal();
}); });
@ -1849,13 +1835,13 @@ namespace Emby.Server.Implementations
{ {
var result = Version.Parse(FileVersionInfo.GetVersionInfo(path).FileVersion); var result = Version.Parse(FileVersionInfo.GetVersionInfo(path).FileVersion);
Logger.Info("File {0} has version {1}", path, result); Logger.LogInformation("File {0} has version {1}", path, result);
return result; return result;
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.ErrorException("Error getting version number from {0}", ex, path); Logger.LogError(ex, "Error getting version number from {path}", path);
return new Version(1, 0); return new Version(1, 0);
} }
@ -1940,13 +1926,13 @@ namespace Emby.Server.Implementations
if (version < minRequiredVersion) if (version < minRequiredVersion)
{ {
Logger.Info("Not loading {0} {1} because the minimum supported version is {2}. Please update to the newer version", filename, version, minRequiredVersion); Logger.LogInformation("Not loading {filename} {version} because the minimum supported version is {minRequiredVersion}. Please update to the newer version", filename, version, minRequiredVersion);
return false; return false;
} }
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.ErrorException("Error getting version number from {0}", ex, path); Logger.LogError(ex, "Error getting version number from {path}", path);
return false; return false;
} }
@ -1962,6 +1948,7 @@ namespace Emby.Server.Implementations
public async Task<SystemInfo> GetSystemInfo(CancellationToken cancellationToken) public async Task<SystemInfo> GetSystemInfo(CancellationToken cancellationToken)
{ {
var localAddress = await GetLocalApiUrl(cancellationToken).ConfigureAwait(false); var localAddress = await GetLocalApiUrl(cancellationToken).ConfigureAwait(false);
var wanAddress = await GetWanApiUrl(cancellationToken).ConfigureAwait(false);
return new SystemInfo return new SystemInfo
{ {
@ -1984,8 +1971,7 @@ namespace Emby.Server.Implementations
CanSelfRestart = CanSelfRestart, CanSelfRestart = CanSelfRestart,
CanSelfUpdate = CanSelfUpdate, CanSelfUpdate = CanSelfUpdate,
CanLaunchWebBrowser = CanLaunchWebBrowser, CanLaunchWebBrowser = CanLaunchWebBrowser,
// TODO - remove WanAddress WanAddress = wanAddress,
WanAddress = "0.0.0.0",
HasUpdateAvailable = HasUpdateAvailable, HasUpdateAvailable = HasUpdateAvailable,
SupportsAutoRunAtStartup = SupportsAutoRunAtStartup, SupportsAutoRunAtStartup = SupportsAutoRunAtStartup,
TranscodingTempPath = ApplicationPaths.TranscodingTempPath, TranscodingTempPath = ApplicationPaths.TranscodingTempPath,
@ -2012,14 +1998,13 @@ namespace Emby.Server.Implementations
public async Task<PublicSystemInfo> GetPublicSystemInfo(CancellationToken cancellationToken) public async Task<PublicSystemInfo> GetPublicSystemInfo(CancellationToken cancellationToken)
{ {
var localAddress = await GetLocalApiUrl(cancellationToken).ConfigureAwait(false); var localAddress = await GetLocalApiUrl(cancellationToken).ConfigureAwait(false);
var wanAddress = await GetWanApiUrl(cancellationToken).ConfigureAwait(false);
return new PublicSystemInfo return new PublicSystemInfo
{ {
Version = ApplicationVersion.ToString(), Version = ApplicationVersion.ToString(),
Id = SystemId, Id = SystemId,
OperatingSystem = EnvironmentInfo.OperatingSystem.ToString(), OperatingSystem = EnvironmentInfo.OperatingSystem.ToString(),
// TODO - remove WanAddress WanAddress = wanAddress,
WanAddress = "0.0.0.0",
ServerName = FriendlyName, ServerName = FriendlyName,
LocalAddress = localAddress LocalAddress = localAddress
}; };
@ -2054,12 +2039,38 @@ namespace Emby.Server.Implementations
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.ErrorException("Error getting local Ip address information", ex); Logger.LogError(ex, "Error getting local Ip address information");
} }
return null; return null;
} }
public async Task<string> GetWanApiUrl(CancellationToken cancellationToken)
{
var url = "http://ipv4.icanhazip.com";
try
{
using (var response = await HttpClient.Get(new HttpRequestOptions
{
Url = url,
LogErrorResponseBody = false,
LogErrors = false,
LogRequest = false,
TimeoutMs = 10000,
BufferContent = false,
CancellationToken = cancellationToken
}))
{
return GetLocalApiUrl(response.ReadToEnd().Trim());
}
}
catch(Exception ex)
{
Logger.LogError(ex, "Error getting WAN Ip address information");
}
return null;
}
public string GetLocalApiUrl(IpAddressInfo ipAddress) public string GetLocalApiUrl(IpAddressInfo ipAddress)
{ {
if (ipAddress.AddressFamily == IpAddressFamily.InterNetworkV6) if (ipAddress.AddressFamily == IpAddressFamily.InterNetworkV6)
@ -2185,19 +2196,19 @@ namespace Emby.Server.Implementations
var valid = string.Equals(Name, result, StringComparison.OrdinalIgnoreCase); var valid = string.Equals(Name, result, StringComparison.OrdinalIgnoreCase);
_validAddressResults.AddOrUpdate(apiUrl, valid, (k, v) => valid); _validAddressResults.AddOrUpdate(apiUrl, valid, (k, v) => valid);
Logger.Debug("Ping test result to {0}. Success: {1}", apiUrl, valid); Logger.LogDebug("Ping test result to {0}. Success: {1}", apiUrl, valid);
return valid; return valid;
} }
} }
} }
catch (OperationCanceledException) catch (OperationCanceledException)
{ {
Logger.Debug("Ping test result to {0}. Success: {1}", apiUrl, "Cancelled"); Logger.LogDebug("Ping test result to {0}. Success: {1}", apiUrl, "Cancelled");
throw; throw;
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.Debug("Ping test result to {0}. Success: {1} {2}", apiUrl, false, ex.Message); Logger.LogDebug(ex, "Ping test result to {0}. Success: {1}", apiUrl, false);
_validAddressResults.AddOrUpdate(apiUrl, false, (k, v) => false); _validAddressResults.AddOrUpdate(apiUrl, false, (k, v) => false);
return false; return false;
@ -2236,7 +2247,7 @@ namespace Emby.Server.Implementations
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.ErrorException("Error sending server shutdown notification", ex); Logger.LogError(ex, "Error sending server shutdown notification");
} }
ShutdownInternal(); ShutdownInternal();
@ -2249,7 +2260,7 @@ namespace Emby.Server.Implementations
/// </summary> /// </summary>
private void RegisterServerWithAdministratorAccess() private void RegisterServerWithAdministratorAccess()
{ {
Logger.Info("Requesting administrative access to authorize http server"); Logger.LogInformation("Requesting administrative access to authorize http server");
try try
{ {
@ -2261,7 +2272,7 @@ namespace Emby.Server.Implementations
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.ErrorException("Error authorizing server", ex); Logger.LogError(ex, "Error authorizing server");
} }
} }
@ -2428,9 +2439,7 @@ namespace Emby.Server.Implementations
} }
catch (Exception ex) catch (Exception ex)
{ {
Console.WriteLine("Error launching url: {0}", url); Logger.LogError(ex, "Error launching url: {url}", url);
Logger.ErrorException("Error launching url: {0}", ex, url);
throw; throw;
} }
} }
@ -2450,7 +2459,7 @@ namespace Emby.Server.Implementations
/// <param name="package">The package.</param> /// <param name="package">The package.</param>
protected void OnApplicationUpdated(PackageVersionInfo package) protected void OnApplicationUpdated(PackageVersionInfo package)
{ {
Logger.Info("Application has been updated to version {0}", package.versionStr); Logger.LogInformation("Application has been updated to version {0}", package.versionStr);
EventHelper.FireEventIfNotNull(ApplicationUpdated, this, new GenericEventArgs<PackageVersionInfo> EventHelper.FireEventIfNotNull(ApplicationUpdated, this, new GenericEventArgs<PackageVersionInfo>
{ {
@ -2485,15 +2494,15 @@ namespace Emby.Server.Implementations
{ {
var type = GetType(); var type = GetType();
LogManager.AddConsoleOutput(); //LoggerFactory.AddConsoleOutput();
Logger.Info("Disposing " + type.Name); Logger.LogInformation("Disposing " + type.Name);
var parts = DisposableParts.Distinct().Where(i => i.GetType() != type).ToList(); var parts = DisposableParts.Distinct().Where(i => i.GetType() != type).ToList();
DisposableParts.Clear(); DisposableParts.Clear();
foreach (var part in parts) foreach (var part in parts)
{ {
Logger.Info("Disposing " + part.GetType().Name); Logger.LogInformation("Disposing " + part.GetType().Name);
try try
{ {
@ -2501,7 +2510,7 @@ namespace Emby.Server.Implementations
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.ErrorException("Error disposing {0}", ex, part.GetType().Name); Logger.LogError(ex, "Error disposing {0}", part.GetType().Name);
} }
} }
} }

View File

@ -10,7 +10,7 @@ using MediaBrowser.Model.Channels;
using MediaBrowser.Model.Dto; using MediaBrowser.Model.Dto;
using MediaBrowser.Model.Entities; using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Extensions; using MediaBrowser.Model.Extensions;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using MediaBrowser.Model.MediaInfo; using MediaBrowser.Model.MediaInfo;
using MediaBrowser.Model.Net; using MediaBrowser.Model.Net;
using MediaBrowser.Model.Querying; using MediaBrowser.Model.Querying;
@ -239,7 +239,7 @@ namespace Emby.Server.Implementations.Channels
all = all.Take(query.Limit.Value).ToList(); all = all.Take(query.Limit.Value).ToList();
} }
var returnItems = all.ToArray(all.Count); var returnItems = all.ToArray();
if (query.RefreshLatestChannelItems) if (query.RefreshLatestChannelItems)
{ {
@ -300,7 +300,7 @@ namespace Emby.Server.Implementations.Channels
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error getting channel information for {0}", ex, channelInfo.Name); _logger.LogError(ex, "Error getting channel information for {0}", channelInfo.Name);
} }
numComplete++; numComplete++;
@ -484,10 +484,9 @@ namespace Emby.Server.Implementations.Channels
_libraryManager.CreateItem(item, null); _libraryManager.CreateItem(item, null);
} }
await item.RefreshMetadata(new MetadataRefreshOptions(_fileSystem) await item.RefreshMetadata(new MetadataRefreshOptions(new DirectoryService(_logger, _fileSystem))
{ {
ForceSave = !isNew && forceUpdate ForceSave = !isNew && forceUpdate
}, cancellationToken); }, cancellationToken);
return item; return item;
@ -709,7 +708,7 @@ namespace Emby.Server.Implementations.Channels
// Not yet sure why this is causing a problem // Not yet sure why this is causing a problem
query.GroupByPresentationUniqueKey = false; query.GroupByPresentationUniqueKey = false;
//_logger.Debug("GetChannelItemsInternal"); //_logger.LogDebug("GetChannelItemsInternal");
// null if came from cache // null if came from cache
if (itemsResult != null) if (itemsResult != null)
@ -849,7 +848,7 @@ namespace Emby.Server.Implementations.Channels
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error writing to channel cache file: {0}", ex, path); _logger.LogError(ex, "Error writing to channel cache file: {path}", path);
} }
} }
@ -912,7 +911,7 @@ namespace Emby.Server.Implementations.Channels
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error retrieving channel item from database", ex); _logger.LogError(ex, "Error retrieving channel item from database");
} }
if (item == null) if (item == null)
@ -1011,7 +1010,7 @@ namespace Emby.Server.Implementations.Channels
{ {
item.Name = info.Name; item.Name = info.Name;
item.Genres = info.Genres.ToArray(); item.Genres = info.Genres.ToArray();
item.Studios = info.Studios.ToArray(info.Studios.Count); item.Studios = info.Studios.ToArray();
item.CommunityRating = info.CommunityRating; item.CommunityRating = info.CommunityRating;
item.Overview = info.Overview; item.Overview = info.Overview;
item.IndexNumber = info.IndexNumber; item.IndexNumber = info.IndexNumber;
@ -1021,7 +1020,7 @@ namespace Emby.Server.Implementations.Channels
item.ProviderIds = info.ProviderIds; item.ProviderIds = info.ProviderIds;
item.OfficialRating = info.OfficialRating; item.OfficialRating = info.OfficialRating;
item.DateCreated = info.DateCreated ?? DateTime.UtcNow; item.DateCreated = info.DateCreated ?? DateTime.UtcNow;
item.Tags = info.Tags.ToArray(info.Tags.Count); item.Tags = info.Tags.ToArray();
item.OriginalTitle = info.OriginalTitle; item.OriginalTitle = info.OriginalTitle;
} }
else if (info.Type == ChannelItemType.Folder && info.FolderType == ChannelFolderType.Container) else if (info.Type == ChannelItemType.Folder && info.FolderType == ChannelFolderType.Container)
@ -1043,7 +1042,7 @@ namespace Emby.Server.Implementations.Channels
var hasAlbumArtists = item as IHasAlbumArtist; var hasAlbumArtists = item as IHasAlbumArtist;
if (hasAlbumArtists != null) if (hasAlbumArtists != null)
{ {
hasAlbumArtists.AlbumArtists = info.AlbumArtists.ToArray(info.AlbumArtists.Count); hasAlbumArtists.AlbumArtists = info.AlbumArtists.ToArray();
} }
var trailer = item as Trailer; var trailer = item as Trailer;
@ -1051,7 +1050,7 @@ namespace Emby.Server.Implementations.Channels
{ {
if (!info.TrailerTypes.SequenceEqual(trailer.TrailerTypes)) if (!info.TrailerTypes.SequenceEqual(trailer.TrailerTypes))
{ {
_logger.Debug("Forcing update due to TrailerTypes {0}", item.Name); _logger.LogDebug("Forcing update due to TrailerTypes {0}", item.Name);
forceUpdate = true; forceUpdate = true;
} }
trailer.TrailerTypes = info.TrailerTypes.ToArray(); trailer.TrailerTypes = info.TrailerTypes.ToArray();
@ -1060,7 +1059,7 @@ namespace Emby.Server.Implementations.Channels
if (info.DateModified > item.DateModified) if (info.DateModified > item.DateModified)
{ {
item.DateModified = info.DateModified; item.DateModified = info.DateModified;
_logger.Debug("Forcing update due to DateModified {0}", item.Name); _logger.LogDebug("Forcing update due to DateModified {0}", item.Name);
forceUpdate = true; forceUpdate = true;
} }
@ -1069,20 +1068,20 @@ namespace Emby.Server.Implementations.Channels
//{ //{
// item.ExternalEtag = info.Etag; // item.ExternalEtag = info.Etag;
// forceUpdate = true; // forceUpdate = true;
// _logger.Debug("Forcing update due to ExternalEtag {0}", item.Name); // _logger.LogDebug("Forcing update due to ExternalEtag {0}", item.Name);
//} //}
if (!internalChannelId.Equals(item.ChannelId)) if (!internalChannelId.Equals(item.ChannelId))
{ {
forceUpdate = true; forceUpdate = true;
_logger.Debug("Forcing update due to ChannelId {0}", item.Name); _logger.LogDebug("Forcing update due to ChannelId {0}", item.Name);
} }
item.ChannelId = internalChannelId; item.ChannelId = internalChannelId;
if (!item.ParentId.Equals(parentFolderId)) if (!item.ParentId.Equals(parentFolderId))
{ {
forceUpdate = true; forceUpdate = true;
_logger.Debug("Forcing update due to parent folder Id {0}", item.Name); _logger.LogDebug("Forcing update due to parent folder Id {0}", item.Name);
} }
item.ParentId = parentFolderId; item.ParentId = parentFolderId;
@ -1092,7 +1091,7 @@ namespace Emby.Server.Implementations.Channels
if (!string.Equals(hasSeries.SeriesName, info.SeriesName, StringComparison.OrdinalIgnoreCase)) if (!string.Equals(hasSeries.SeriesName, info.SeriesName, StringComparison.OrdinalIgnoreCase))
{ {
forceUpdate = true; forceUpdate = true;
_logger.Debug("Forcing update due to SeriesName {0}", item.Name); _logger.LogDebug("Forcing update due to SeriesName {0}", item.Name);
} }
hasSeries.SeriesName = info.SeriesName; hasSeries.SeriesName = info.SeriesName;
} }
@ -1100,7 +1099,7 @@ namespace Emby.Server.Implementations.Channels
if (!string.Equals(item.ExternalId, info.Id, StringComparison.OrdinalIgnoreCase)) if (!string.Equals(item.ExternalId, info.Id, StringComparison.OrdinalIgnoreCase))
{ {
forceUpdate = true; forceUpdate = true;
_logger.Debug("Forcing update due to ExternalId {0}", item.Name); _logger.LogDebug("Forcing update due to ExternalId {0}", item.Name);
} }
item.ExternalId = info.Id; item.ExternalId = info.Id;
@ -1125,7 +1124,7 @@ namespace Emby.Server.Implementations.Channels
if (!string.IsNullOrEmpty(info.ImageUrl) && !item.HasImage(ImageType.Primary)) if (!string.IsNullOrEmpty(info.ImageUrl) && !item.HasImage(ImageType.Primary))
{ {
item.SetImagePath(ImageType.Primary, info.ImageUrl); item.SetImagePath(ImageType.Primary, info.ImageUrl);
_logger.Debug("Forcing update due to ImageUrl {0}", item.Name); _logger.LogDebug("Forcing update due to ImageUrl {0}", item.Name);
forceUpdate = true; forceUpdate = true;
} }
@ -1134,7 +1133,7 @@ namespace Emby.Server.Implementations.Channels
if (item.Tags.Contains("livestream", StringComparer.OrdinalIgnoreCase)) if (item.Tags.Contains("livestream", StringComparer.OrdinalIgnoreCase))
{ {
item.Tags = item.Tags.Except(new[] { "livestream" }, StringComparer.OrdinalIgnoreCase).ToArray(); item.Tags = item.Tags.Except(new[] { "livestream" }, StringComparer.OrdinalIgnoreCase).ToArray();
_logger.Debug("Forcing update due to Tags {0}", item.Name); _logger.LogDebug("Forcing update due to Tags {0}", item.Name);
forceUpdate = true; forceUpdate = true;
} }
} }
@ -1143,7 +1142,7 @@ namespace Emby.Server.Implementations.Channels
if (!item.Tags.Contains("livestream", StringComparer.OrdinalIgnoreCase)) if (!item.Tags.Contains("livestream", StringComparer.OrdinalIgnoreCase))
{ {
item.Tags = item.Tags.Concat(new[] { "livestream" }).ToArray(); item.Tags = item.Tags.Concat(new[] { "livestream" }).ToArray();
_logger.Debug("Forcing update due to Tags {0}", item.Name); _logger.LogDebug("Forcing update due to Tags {0}", item.Name);
forceUpdate = true; forceUpdate = true;
} }
} }
@ -1178,7 +1177,7 @@ namespace Emby.Server.Implementations.Channels
if (isNew || forceUpdate || item.DateLastRefreshed == default(DateTime)) if (isNew || forceUpdate || item.DateLastRefreshed == default(DateTime))
{ {
_providerManager.QueueRefresh(item.Id, new MetadataRefreshOptions(_fileSystem), RefreshPriority.Normal); _providerManager.QueueRefresh(item.Id, new MetadataRefreshOptions(new DirectoryService(_logger, _fileSystem)), RefreshPriority.Normal);
} }
return item; return item;

View File

@ -1,7 +1,7 @@
using MediaBrowser.Controller.Channels; using MediaBrowser.Controller.Channels;
using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Library;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using System; using System;
using System.Linq; using System.Linq;
using System.Threading; using System.Threading;
@ -64,7 +64,7 @@ namespace Emby.Server.Implementations.Channels
private void CleanChannel(Guid id, CancellationToken cancellationToken) private void CleanChannel(Guid id, CancellationToken cancellationToken)
{ {
_logger.Info("Cleaning channel {0} from database", id); _logger.LogInformation("Cleaning channel {0} from database", id);
// Delete all channel items // Delete all channel items
var allIds = _libraryManager.GetItemIds(new InternalItemsQuery var allIds = _libraryManager.GetItemIds(new InternalItemsQuery

View File

@ -1,8 +1,9 @@
using MediaBrowser.Controller.Channels; using MediaBrowser.Controller.Channels;
using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Library;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using MediaBrowser.Common.Progress; using MediaBrowser.Common.Progress;
using MediaBrowser.Model.Tasks; using MediaBrowser.Model.Tasks;
@ -54,7 +55,7 @@ namespace Emby.Server.Implementations.Channels
get { return true; } get { return true; }
} }
public async Task Execute(System.Threading.CancellationToken cancellationToken, IProgress<double> progress) public async Task Execute(CancellationToken cancellationToken, IProgress<double> progress)
{ {
var manager = (ChannelManager)_channelManager; var manager = (ChannelManager)_channelManager;

View File

@ -4,7 +4,7 @@ using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.Movies; using MediaBrowser.Controller.Entities.Movies;
using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Providers; using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
@ -143,7 +143,7 @@ namespace Emby.Server.Implementations.Collections
if (options.ItemIdList.Length > 0) if (options.ItemIdList.Length > 0)
{ {
AddToCollection(collection.Id, options.ItemIdList, false, new MetadataRefreshOptions(_fileSystem) AddToCollection(collection.Id, options.ItemIdList, false, new MetadataRefreshOptions(new DirectoryService(_logger, _fileSystem))
{ {
// The initial adding of items is going to create a local metadata file // The initial adding of items is going to create a local metadata file
// This will cause internet metadata to be skipped as a result // This will cause internet metadata to be skipped as a result
@ -152,7 +152,7 @@ namespace Emby.Server.Implementations.Collections
} }
else else
{ {
_providerManager.QueueRefresh(collection.Id, new MetadataRefreshOptions(_fileSystem), RefreshPriority.High); _providerManager.QueueRefresh(collection.Id, new MetadataRefreshOptions(new DirectoryService(_logger, _fileSystem)), RefreshPriority.High);
} }
EventHelper.FireEventIfNotNull(CollectionCreated, this, new CollectionCreatedEventArgs EventHelper.FireEventIfNotNull(CollectionCreated, this, new CollectionCreatedEventArgs
@ -173,12 +173,12 @@ namespace Emby.Server.Implementations.Collections
public void AddToCollection(Guid collectionId, IEnumerable<string> ids) public void AddToCollection(Guid collectionId, IEnumerable<string> ids)
{ {
AddToCollection(collectionId, ids, true, new MetadataRefreshOptions(_fileSystem)); AddToCollection(collectionId, ids, true, new MetadataRefreshOptions(new DirectoryService(_logger, _fileSystem)));
} }
public void AddToCollection(Guid collectionId, IEnumerable<Guid> ids) public void AddToCollection(Guid collectionId, IEnumerable<Guid> ids)
{ {
AddToCollection(collectionId, ids.Select(i => i.ToString("N")), true, new MetadataRefreshOptions(_fileSystem)); AddToCollection(collectionId, ids.Select(i => i.ToString("N")), true, new MetadataRefreshOptions(new DirectoryService(_logger, _fileSystem)));
} }
private void AddToCollection(Guid collectionId, IEnumerable<string> ids, bool fireEvent, MetadataRefreshOptions refreshOptions) private void AddToCollection(Guid collectionId, IEnumerable<string> ids, bool fireEvent, MetadataRefreshOptions refreshOptions)
@ -219,7 +219,7 @@ namespace Emby.Server.Implementations.Collections
{ {
var newList = collection.LinkedChildren.ToList(); var newList = collection.LinkedChildren.ToList();
newList.AddRange(list); newList.AddRange(list);
collection.LinkedChildren = newList.ToArray(newList.Count); collection.LinkedChildren = newList.ToArray();
collection.UpdateRatingToItems(linkedChildrenList); collection.UpdateRatingToItems(linkedChildrenList);
@ -265,7 +265,7 @@ namespace Emby.Server.Implementations.Collections
if (child == null) if (child == null)
{ {
_logger.Warn("No collection title exists with the supplied Id"); _logger.LogWarning("No collection title exists with the supplied Id");
continue; continue;
} }
@ -283,7 +283,7 @@ namespace Emby.Server.Implementations.Collections
} }
collection.UpdateToRepository(ItemUpdateType.MetadataEdit, CancellationToken.None); collection.UpdateToRepository(ItemUpdateType.MetadataEdit, CancellationToken.None);
_providerManager.QueueRefresh(collection.Id, new MetadataRefreshOptions(_fileSystem) _providerManager.QueueRefresh(collection.Id, new MetadataRefreshOptions(new DirectoryService(_logger, _fileSystem))
{ {
ForceSave = true ForceSave = true
}, RefreshPriority.High); }, RefreshPriority.High);
@ -365,7 +365,7 @@ namespace Emby.Server.Implementations.Collections
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error creating camera uploads library", ex); _logger.LogError(ex, "Error creating camera uploads library");
} }
_config.Configuration.CollectionsUpgraded = true; _config.Configuration.CollectionsUpgraded = true;

View File

@ -14,7 +14,7 @@ using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Model.Configuration; using MediaBrowser.Model.Configuration;
using MediaBrowser.Model.Events; using MediaBrowser.Model.Events;
using MediaBrowser.Model.IO; using MediaBrowser.Model.IO;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using MediaBrowser.Model.Serialization; using MediaBrowser.Model.Serialization;
using MediaBrowser.Model.Extensions; using MediaBrowser.Model.Extensions;
@ -30,11 +30,11 @@ namespace Emby.Server.Implementations.Configuration
/// Initializes a new instance of the <see cref="ServerConfigurationManager" /> class. /// Initializes a new instance of the <see cref="ServerConfigurationManager" /> class.
/// </summary> /// </summary>
/// <param name="applicationPaths">The application paths.</param> /// <param name="applicationPaths">The application paths.</param>
/// <param name="logManager">The log manager.</param> /// <param name="loggerFactory">The paramref name="loggerFactory" factory.</param>
/// <param name="xmlSerializer">The XML serializer.</param> /// <param name="xmlSerializer">The XML serializer.</param>
/// <param name="fileSystem">The file system.</param> /// <param name="fileSystem">The file system.</param>
public ServerConfigurationManager(IApplicationPaths applicationPaths, ILogManager logManager, IXmlSerializer xmlSerializer, IFileSystem fileSystem) public ServerConfigurationManager(IApplicationPaths applicationPaths, ILoggerFactory loggerFactory, IXmlSerializer xmlSerializer, IFileSystem fileSystem)
: base(applicationPaths, logManager, xmlSerializer, fileSystem) : base(applicationPaths, loggerFactory, xmlSerializer, fileSystem)
{ {
UpdateMetadataPath(); UpdateMetadataPath();
} }

View File

@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.Globalization; using System.Globalization;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using SQLitePCL.pretty; using SQLitePCL.pretty;
using System.Linq; using System.Linq;
using SQLitePCL; using SQLitePCL;
@ -75,22 +75,22 @@ namespace Emby.Server.Implementations.Data
if (!_versionLogged) if (!_versionLogged)
{ {
_versionLogged = true; _versionLogged = true;
Logger.Info("Sqlite version: " + SQLite3.Version); Logger.LogInformation("Sqlite version: " + SQLite3.Version);
Logger.Info("Sqlite compiler options: " + string.Join(",", SQLite3.CompilerOptions.ToArray())); Logger.LogInformation("Sqlite compiler options: " + string.Join(",", SQLite3.CompilerOptions.ToArray()));
} }
ConnectionFlags connectionFlags; ConnectionFlags connectionFlags;
if (isReadOnly) if (isReadOnly)
{ {
//Logger.Info("Opening read connection"); //Logger.LogInformation("Opening read connection");
//connectionFlags = ConnectionFlags.ReadOnly; //connectionFlags = ConnectionFlags.ReadOnly;
connectionFlags = ConnectionFlags.Create; connectionFlags = ConnectionFlags.Create;
connectionFlags |= ConnectionFlags.ReadWrite; connectionFlags |= ConnectionFlags.ReadWrite;
} }
else else
{ {
//Logger.Info("Opening write connection"); //Logger.LogInformation("Opening write connection");
connectionFlags = ConnectionFlags.Create; connectionFlags = ConnectionFlags.Create;
connectionFlags |= ConnectionFlags.ReadWrite; connectionFlags |= ConnectionFlags.ReadWrite;
} }
@ -114,7 +114,7 @@ namespace Emby.Server.Implementations.Data
{ {
_defaultWal = db.Query("PRAGMA journal_mode").SelectScalarString().First(); _defaultWal = db.Query("PRAGMA journal_mode").SelectScalarString().First();
Logger.Info("Default journal_mode for {0} is {1}", DbFilePath, _defaultWal); Logger.LogInformation("Default journal_mode for {0} is {1}", DbFilePath, _defaultWal);
} }
var queries = new List<string> var queries = new List<string>
@ -235,7 +235,7 @@ namespace Emby.Server.Implementations.Data
} }
db.ExecuteAll(string.Join(";", queries.ToArray())); db.ExecuteAll(string.Join(";", queries.ToArray()));
Logger.Info("PRAGMA synchronous=" + db.Query("PRAGMA synchronous").SelectScalarString().First()); Logger.LogInformation("PRAGMA synchronous=" + db.Query("PRAGMA synchronous").SelectScalarString().First());
} }
protected virtual bool EnableTempStoreMemory protected virtual bool EnableTempStoreMemory
@ -323,7 +323,7 @@ namespace Emby.Server.Implementations.Data
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.ErrorException("Error disposing database", ex); Logger.LogError(ex, "Error disposing database");
} }
} }

View File

@ -3,7 +3,7 @@ using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Persistence; using MediaBrowser.Controller.Persistence;
using MediaBrowser.Model.Entities; using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
@ -47,7 +47,7 @@ namespace Emby.Server.Implementations.Data
var numComplete = 0; var numComplete = 0;
var numItems = itemIds.Count; var numItems = itemIds.Count;
_logger.Debug("Cleaning {0} items with dead parent links", numItems); _logger.LogDebug("Cleaning {0} items with dead parent links", numItems);
foreach (var itemId in itemIds) foreach (var itemId in itemIds)
{ {
@ -57,7 +57,7 @@ namespace Emby.Server.Implementations.Data
if (item != null) if (item != null)
{ {
_logger.Info("Cleaning item {0} type: {1} path: {2}", item.Name, item.GetType().Name, item.Path ?? string.Empty); _logger.LogInformation("Cleaning item {0} type: {1} path: {2}", item.Name, item.GetType().Name, item.Path ?? string.Empty);
_libraryManager.DeleteItem(item, new DeleteOptions _libraryManager.DeleteItem(item, new DeleteOptions
{ {
@ -75,4 +75,4 @@ namespace Emby.Server.Implementations.Data
progress.Report(100); progress.Report(100);
} }
} }
} }

View File

@ -7,7 +7,7 @@ using MediaBrowser.Common.Extensions;
using MediaBrowser.Controller.Persistence; using MediaBrowser.Controller.Persistence;
using MediaBrowser.Model.Entities; using MediaBrowser.Model.Entities;
using MediaBrowser.Model.IO; using MediaBrowser.Model.IO;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using MediaBrowser.Model.Serialization; using MediaBrowser.Model.Serialization;
using SQLitePCL.pretty; using SQLitePCL.pretty;
@ -53,7 +53,7 @@ namespace Emby.Server.Implementations.Data
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.ErrorException("Error loading database file. Will reset and retry.", ex); Logger.LogError(ex, "Error loading database file. Will reset and retry.");
FileSystem.DeleteFile(DbFilePath); FileSystem.DeleteFile(DbFilePath);
@ -251,4 +251,4 @@ namespace Emby.Server.Implementations.Data
return GetDisplayPreferences(displayPreferencesId, new Guid(userId), client); return GetDisplayPreferences(displayPreferencesId, new Guid(userId), client);
} }
} }
} }

View File

@ -24,7 +24,7 @@ using MediaBrowser.Model.Dto;
using MediaBrowser.Model.Entities; using MediaBrowser.Model.Entities;
using MediaBrowser.Model.IO; using MediaBrowser.Model.IO;
using MediaBrowser.Model.LiveTv; using MediaBrowser.Model.LiveTv;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using MediaBrowser.Model.Querying; using MediaBrowser.Model.Querying;
using MediaBrowser.Model.Serialization; using MediaBrowser.Model.Serialization;
using MediaBrowser.Model.Reflection; using MediaBrowser.Model.Reflection;
@ -667,7 +667,7 @@ namespace Emby.Server.Implementations.Data
var userDataKey = tuple.Item4; var userDataKey = tuple.Item4;
SaveItem(item, topParent, userDataKey, saveItemStatement); SaveItem(item, topParent, userDataKey, saveItemStatement);
//Logger.Debug(_saveItemCommand.CommandText); //logger.LogDebug(_saveItemCommand.CommandText);
var inheritedTags = tuple.Item5; var inheritedTags = tuple.Item5;
@ -886,12 +886,12 @@ namespace Emby.Server.Implementations.Data
if (topParent != null) if (topParent != null)
{ {
//Logger.Debug("Item {0} has top parent {1}", item.Id, topParent.Id); //logger.LogDebug("Item {0} has top parent {1}", item.Id, topParent.Id);
saveItemStatement.TryBind("@TopParentId", topParent.Id.ToString("N")); saveItemStatement.TryBind("@TopParentId", topParent.Id.ToString("N"));
} }
else else
{ {
//Logger.Debug("Item {0} has null top parent", item.Id); //logger.LogDebug("Item {0} has null top parent", item.Id);
saveItemStatement.TryBindNull("@TopParentId"); saveItemStatement.TryBindNull("@TopParentId");
} }
@ -1148,7 +1148,7 @@ namespace Emby.Server.Implementations.Data
} }
} }
item.ImageInfos = list.ToArray(list.Count); item.ImageInfos = list.ToArray();
} }
public string ToValueString(ItemImageInfo image) public string ToValueString(ItemImageInfo image)
@ -1230,7 +1230,7 @@ namespace Emby.Server.Implementations.Data
} }
CheckDisposed(); CheckDisposed();
//Logger.Info("Retrieving item {0}", id.ToString("N")); //logger.LogInformation("Retrieving item {0}", id.ToString("N"));
using (WriteLock.Read()) using (WriteLock.Read())
{ {
using (var connection = CreateConnection(true)) using (var connection = CreateConnection(true))
@ -1345,7 +1345,7 @@ namespace Emby.Server.Implementations.Data
if (type == null) if (type == null)
{ {
//Logger.Debug("Unknown type {0}", typeString); //logger.LogDebug("Unknown type {0}", typeString);
return null; return null;
} }
@ -1364,7 +1364,7 @@ namespace Emby.Server.Implementations.Data
} }
catch (SerializationException ex) catch (SerializationException ex)
{ {
Logger.ErrorException("Error deserializing item", ex); Logger.LogError(ex, "Error deserializing item");
} }
} }
} }
@ -2566,7 +2566,7 @@ namespace Emby.Server.Implementations.Data
excludeIds.Add(item.Id); excludeIds.Add(item.Id);
excludeIds.AddRange(item.ExtraIds); excludeIds.AddRange(item.ExtraIds);
query.ExcludeItemIds = excludeIds.ToArray(excludeIds.Count); query.ExcludeItemIds = excludeIds.ToArray();
query.ExcludeProviderIds = item.ProviderIds; query.ExcludeProviderIds = item.ProviderIds;
} }
@ -2587,7 +2587,7 @@ namespace Emby.Server.Implementations.Data
list.Add(builder.ToString()); list.Add(builder.ToString());
} }
return list.ToArray(list.Count); return list.ToArray();
} }
private void BindSearchParams(InternalItemsQuery query, IStatement statement) private void BindSearchParams(InternalItemsQuery query, IStatement statement)
@ -2666,7 +2666,7 @@ namespace Emby.Server.Implementations.Data
if (groups.Count > 0) if (groups.Count > 0)
{ {
return " Group by " + string.Join(",", groups.ToArray(groups.Count)); return " Group by " + string.Join(",", groups.ToArray());
} }
return string.Empty; return string.Empty;
@ -2686,7 +2686,7 @@ namespace Emby.Server.Implementations.Data
CheckDisposed(); CheckDisposed();
//Logger.Info("GetItemList: " + _environmentInfo.StackTrace); //logger.LogInformation("GetItemList: " + _environmentInfo.StackTrace);
var now = DateTime.UtcNow; var now = DateTime.UtcNow;
@ -2703,7 +2703,7 @@ namespace Emby.Server.Implementations.Data
var whereText = whereClauses.Count == 0 ? var whereText = whereClauses.Count == 0 ?
string.Empty : string.Empty :
" where " + string.Join(" AND ", whereClauses.ToArray(whereClauses.Count)); " where " + string.Join(" AND ", whereClauses.ToArray());
commandText += whereText; commandText += whereText;
@ -2744,7 +2744,7 @@ namespace Emby.Server.Implementations.Data
CheckDisposed(); CheckDisposed();
//Logger.Info("GetItemList: " + _environmentInfo.StackTrace); //logger.LogInformation("GetItemList: " + _environmentInfo.StackTrace);
var now = DateTime.UtcNow; var now = DateTime.UtcNow;
@ -2761,7 +2761,7 @@ namespace Emby.Server.Implementations.Data
var whereText = whereClauses.Count == 0 ? var whereText = whereClauses.Count == 0 ?
string.Empty : string.Empty :
" where " + string.Join(" AND ", whereClauses.ToArray(whereClauses.Count)); " where " + string.Join(" AND ", whereClauses.ToArray());
commandText += whereText; commandText += whereText;
@ -2910,14 +2910,14 @@ namespace Emby.Server.Implementations.Data
if (elapsed >= slowThreshold) if (elapsed >= slowThreshold)
{ {
Logger.Debug("{2} query time (slow): {0}ms. Query: {1}", Logger.LogDebug("{2} query time (slow): {0}ms. Query: {1}",
Convert.ToInt32(elapsed), Convert.ToInt32(elapsed),
commandText, commandText,
methodName); methodName);
} }
else else
{ {
//Logger.Debug("{2} query time: {0}ms. Query: {1}", //logger.LogDebug("{2} query time: {0}ms. Query: {1}",
// Convert.ToInt32(elapsed), // Convert.ToInt32(elapsed),
// commandText, // commandText,
// methodName); // methodName);
@ -2938,11 +2938,11 @@ namespace Emby.Server.Implementations.Data
var returnList = GetItemList(query); var returnList = GetItemList(query);
return new QueryResult<BaseItem> return new QueryResult<BaseItem>
{ {
Items = returnList.ToArray(returnList.Count), Items = returnList.ToArray(),
TotalRecordCount = returnList.Count TotalRecordCount = returnList.Count
}; };
} }
//Logger.Info("GetItems: " + _environmentInfo.StackTrace); //logger.LogInformation("GetItems: " + _environmentInfo.StackTrace);
var now = DateTime.UtcNow; var now = DateTime.UtcNow;
@ -2961,7 +2961,7 @@ namespace Emby.Server.Implementations.Data
var whereText = whereClauses.Count == 0 ? var whereText = whereClauses.Count == 0 ?
string.Empty : string.Empty :
" where " + string.Join(" AND ", whereClauses.ToArray(whereClauses.Count)); " where " + string.Join(" AND ", whereClauses.ToArray());
var whereTextWithoutPaging = whereText; var whereTextWithoutPaging = whereText;
@ -3079,7 +3079,7 @@ namespace Emby.Server.Implementations.Data
LogQueryTime("GetItems", commandText, now); LogQueryTime("GetItems", commandText, now);
result.Items = list.ToArray(list.Count); result.Items = list.ToArray();
return result; return result;
}, ReadTransactionMode); }, ReadTransactionMode);
@ -3216,7 +3216,7 @@ namespace Emby.Server.Implementations.Data
} }
CheckDisposed(); CheckDisposed();
//Logger.Info("GetItemIdsList: " + _environmentInfo.StackTrace); //logger.LogInformation("GetItemIdsList: " + _environmentInfo.StackTrace);
var now = DateTime.UtcNow; var now = DateTime.UtcNow;
@ -3227,7 +3227,7 @@ namespace Emby.Server.Implementations.Data
var whereText = whereClauses.Count == 0 ? var whereText = whereClauses.Count == 0 ?
string.Empty : string.Empty :
" where " + string.Join(" AND ", whereClauses.ToArray(whereClauses.Count)); " where " + string.Join(" AND ", whereClauses.ToArray());
commandText += whereText; commandText += whereText;
@ -3299,7 +3299,7 @@ namespace Emby.Server.Implementations.Data
var whereText = whereClauses.Count == 0 ? var whereText = whereClauses.Count == 0 ?
string.Empty : string.Empty :
" where " + string.Join(" AND ", whereClauses.ToArray(whereClauses.Count)); " where " + string.Join(" AND ", whereClauses.ToArray());
commandText += whereText; commandText += whereText;
@ -3372,11 +3372,11 @@ namespace Emby.Server.Implementations.Data
var returnList = GetItemIdsList(query); var returnList = GetItemIdsList(query);
return new QueryResult<Guid> return new QueryResult<Guid>
{ {
Items = returnList.ToArray(returnList.Count), Items = returnList.ToArray(),
TotalRecordCount = returnList.Count TotalRecordCount = returnList.Count
}; };
} }
//Logger.Info("GetItemIds: " + _environmentInfo.StackTrace); //logger.LogInformation("GetItemIds: " + _environmentInfo.StackTrace);
var now = DateTime.UtcNow; var now = DateTime.UtcNow;
@ -3387,7 +3387,7 @@ namespace Emby.Server.Implementations.Data
var whereText = whereClauses.Count == 0 ? var whereText = whereClauses.Count == 0 ?
string.Empty : string.Empty :
" where " + string.Join(" AND ", whereClauses.ToArray(whereClauses.Count)); " where " + string.Join(" AND ", whereClauses.ToArray());
var whereTextWithoutPaging = whereText; var whereTextWithoutPaging = whereText;
@ -3495,7 +3495,7 @@ namespace Emby.Server.Implementations.Data
LogQueryTime("GetItemIds", commandText, now); LogQueryTime("GetItemIds", commandText, now);
result.Items = list.ToArray(list.Count); result.Items = list.ToArray();
return result; return result;
}, ReadTransactionMode); }, ReadTransactionMode);
@ -3690,7 +3690,7 @@ namespace Emby.Server.Implementations.Data
statement.TryBind("@IsMovie", true); statement.TryBind("@IsMovie", true);
} }
whereClauses.Add("(" + string.Join(" OR ", programAttribtues.ToArray(programAttribtues.Count)) + ")"); whereClauses.Add("(" + string.Join(" OR ", programAttribtues.ToArray()) + ")");
} }
else if (query.IsMovie.HasValue) else if (query.IsMovie.HasValue)
{ {
@ -5565,7 +5565,7 @@ where AncestorIdText not null and ItemValues.Value not null and ItemValues.Type
} }
CheckDisposed(); CheckDisposed();
//Logger.Info("GetItemValues: " + _environmentInfo.StackTrace); //logger.LogInformation("GetItemValues: " + _environmentInfo.StackTrace);
var now = DateTime.UtcNow; var now = DateTime.UtcNow;
@ -5734,7 +5734,7 @@ where AncestorIdText not null and ItemValues.Value not null and ItemValues.Type
var list = new List<Tuple<BaseItem, ItemCounts>>(); var list = new List<Tuple<BaseItem, ItemCounts>>();
var result = new QueryResult<Tuple<BaseItem, ItemCounts>>(); var result = new QueryResult<Tuple<BaseItem, ItemCounts>>();
//Logger.Info("GetItemValues {0}", string.Join(";", statementTexts.ToArray())); //logger.LogInformation("GetItemValues {0}", string.Join(";", statementTexts.ToArray()));
var statements = PrepareAllSafe(db, statementTexts); var statements = PrepareAllSafe(db, statementTexts);
if (!isReturningZeroItems) if (!isReturningZeroItems)
@ -5813,7 +5813,7 @@ where AncestorIdText not null and ItemValues.Value not null and ItemValues.Type
{ {
result.TotalRecordCount = list.Count; result.TotalRecordCount = list.Count;
} }
result.Items = list.ToArray(list.Count); result.Items = list.ToArray();
return result; return result;

View File

@ -7,7 +7,7 @@ using MediaBrowser.Common.Configuration;
using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Persistence; using MediaBrowser.Controller.Persistence;
using MediaBrowser.Model.IO; using MediaBrowser.Model.IO;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using SQLitePCL.pretty; using SQLitePCL.pretty;
using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Library;
@ -416,4 +416,4 @@ namespace Emby.Server.Implementations.Data
// handled by library database // handled by library database
} }
} }
} }

View File

@ -6,7 +6,7 @@ using MediaBrowser.Controller;
using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Persistence; using MediaBrowser.Controller.Persistence;
using MediaBrowser.Model.IO; using MediaBrowser.Model.IO;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using MediaBrowser.Model.Serialization; using MediaBrowser.Model.Serialization;
using SQLitePCL.pretty; using SQLitePCL.pretty;
@ -74,7 +74,7 @@ namespace Emby.Server.Implementations.Data
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.ErrorException("Error migrating users database", ex); Logger.LogError(ex, "Error migrating users database");
} }
} }
@ -233,4 +233,4 @@ namespace Emby.Server.Implementations.Data
} }
} }
} }
} }

View File

@ -3,7 +3,7 @@ using System.IO;
using System.Text; using System.Text;
using MediaBrowser.Common.Configuration; using MediaBrowser.Common.Configuration;
using MediaBrowser.Model.IO; using MediaBrowser.Model.IO;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
namespace Emby.Server.Implementations.Devices namespace Emby.Server.Implementations.Devices
{ {
@ -34,7 +34,7 @@ namespace Emby.Server.Implementations.Devices
return value; return value;
} }
_logger.Error("Invalid value found in device id file"); _logger.LogError("Invalid value found in device id file");
} }
} }
catch (DirectoryNotFoundException) catch (DirectoryNotFoundException)
@ -45,7 +45,7 @@ namespace Emby.Server.Implementations.Devices
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error reading file", ex); _logger.LogError(ex, "Error reading file");
} }
return null; return null;
@ -66,7 +66,7 @@ namespace Emby.Server.Implementations.Devices
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error writing to file", ex); _logger.LogError(ex, "Error writing to file");
} }
} }

View File

@ -6,7 +6,7 @@ using MediaBrowser.Controller.Library;
using MediaBrowser.Model.Devices; using MediaBrowser.Model.Devices;
using MediaBrowser.Model.Events; using MediaBrowser.Model.Events;
using MediaBrowser.Model.Extensions; using MediaBrowser.Model.Extensions;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using MediaBrowser.Model.Net; using MediaBrowser.Model.Net;
using MediaBrowser.Model.Querying; using MediaBrowser.Model.Querying;
using MediaBrowser.Model.Session; using MediaBrowser.Model.Session;
@ -289,7 +289,7 @@ namespace Emby.Server.Implementations.Devices
var list = history.FilesUploaded.ToList(); var list = history.FilesUploaded.ToList();
list.Add(file); list.Add(file);
history.FilesUploaded = list.ToArray(list.Count); history.FilesUploaded = list.ToArray();
_json.SerializeToFile(history, path); _json.SerializeToFile(history, path);
} }
@ -434,7 +434,7 @@ namespace Emby.Server.Implementations.Devices
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error creating camera uploads library", ex); _logger.LogError(ex, "Error creating camera uploads library");
} }
_config.Configuration.CameraUploadUpgraded = true; _config.Configuration.CameraUploadUpgraded = true;
@ -501,4 +501,4 @@ namespace Emby.Server.Implementations.Devices
return config.GetConfiguration<DevicesOptions>("devices"); return config.GetConfiguration<DevicesOptions>("devices");
} }
} }
} }

View File

@ -16,7 +16,7 @@ using MediaBrowser.Controller.Sync;
using MediaBrowser.Model.Drawing; using MediaBrowser.Model.Drawing;
using MediaBrowser.Model.Dto; using MediaBrowser.Model.Dto;
using MediaBrowser.Model.Entities; using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using MediaBrowser.Model.Querying; using MediaBrowser.Model.Querying;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
@ -225,7 +225,7 @@ namespace Emby.Server.Implementations.Dto
catch (Exception ex) catch (Exception ex)
{ {
// Have to use a catch-all unfortunately because some .net image methods throw plain Exceptions // Have to use a catch-all unfortunately because some .net image methods throw plain Exceptions
_logger.ErrorException("Error generating PrimaryImageAspectRatio for {0}", ex, item.Name); _logger.LogError(ex, "Error generating PrimaryImageAspectRatio for {itemName}", item.Name);
} }
} }
@ -547,7 +547,7 @@ namespace Emby.Server.Implementations.Dto
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error getting {0} image info", ex, type); _logger.LogError(ex, "Error getting {type} image info", type);
return null; return null;
} }
} }
@ -560,7 +560,7 @@ namespace Emby.Server.Implementations.Dto
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error getting {0} image info for {1}", ex, image.Type, image.Path); _logger.LogError(ex, "Error getting {imageType} image info for {path}", image.Type, image.Path);
return null; return null;
} }
} }
@ -619,7 +619,7 @@ namespace Emby.Server.Implementations.Dto
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error getting person {0}", ex, c); _logger.LogError(ex, "Error getting person {Name}", c);
return null; return null;
} }
@ -648,7 +648,7 @@ namespace Emby.Server.Implementations.Dto
} }
} }
dto.People = list.ToArray(list.Count); dto.People = list.ToArray();
} }
/// <summary> /// <summary>
@ -1451,7 +1451,7 @@ namespace Emby.Server.Implementations.Dto
} }
catch (Exception ex) catch (Exception ex)
{ {
//_logger.ErrorException("Failed to determine primary image aspect ratio for {0}", ex, imageInfo.Path); _logger.LogError(ex, "Failed to determine primary image aspect ratio for {0}", imageInfo.Path);
return null; return null;
} }
} }
@ -1464,7 +1464,7 @@ namespace Emby.Server.Implementations.Dto
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error in image enhancer: {0}", ex, enhancer.GetType().Name); _logger.LogError(ex, "Error in image enhancer: {0}", enhancer.GetType().Name);
} }
} }

View File

@ -38,7 +38,7 @@
<GenerateAssemblyInfo>false</GenerateAssemblyInfo> <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<EmbeddedResource Include="Localization\iso6392.txt" /> <EmbeddedResource Include="Localization\iso6392.txt" />
<EmbeddedResource Include="Localization\countries.json" /> <EmbeddedResource Include="Localization\countries.json" />
<EmbeddedResource Include="Localization\Core\*.json" /> <EmbeddedResource Include="Localization\Core\*.json" />
@ -46,6 +46,6 @@
<EmbeddedResource Include="TextEncoding\NLangDetect\Utils\messages.properties" /> <EmbeddedResource Include="TextEncoding\NLangDetect\Utils\messages.properties" />
<EmbeddedResource Include="Localization\Ratings\*.txt" /> <EmbeddedResource Include="Localization\Ratings\*.txt" />
<EmbeddedResource Include="values.txt" /> <EmbeddedResource Include="values.txt" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@ -2,7 +2,7 @@
using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Plugins; using MediaBrowser.Controller.Plugins;
using MediaBrowser.Controller.Session; using MediaBrowser.Controller.Session;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using MediaBrowser.Model.Tasks; using MediaBrowser.Model.Tasks;
using System; using System;
using System.Linq; using System.Linq;
@ -65,7 +65,7 @@ namespace Emby.Server.Implementations.EntryPoints
{ {
DisposeTimer(); DisposeTimer();
_logger.Info("Automatically restarting the system because it is idle and a restart is required."); _logger.LogInformation("Automatically restarting the system because it is idle and a restart is required.");
try try
{ {
@ -73,7 +73,7 @@ namespace Emby.Server.Implementations.EntryPoints
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error restarting server", ex); _logger.LogError(ex, "Error restarting server");
} }
} }
} }
@ -98,7 +98,7 @@ namespace Emby.Server.Implementations.EntryPoints
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error getting timers", ex); _logger.LogError(ex, "Error getting timers");
} }
} }

View File

@ -9,10 +9,9 @@ using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Plugins; using MediaBrowser.Controller.Plugins;
using MediaBrowser.Model.Dlna; using MediaBrowser.Model.Dlna;
using MediaBrowser.Model.Events; using MediaBrowser.Model.Events;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using MediaBrowser.Model.Threading; using MediaBrowser.Model.Threading;
using Mono.Nat; using Mono.Nat;
using MediaBrowser.Model.Extensions;
using System.Threading; using System.Threading;
namespace Emby.Server.Implementations.EntryPoints namespace Emby.Server.Implementations.EntryPoints
@ -30,9 +29,9 @@ namespace Emby.Server.Implementations.EntryPoints
private NatManager _natManager; private NatManager _natManager;
public ExternalPortForwarding(ILogManager logmanager, IServerApplicationHost appHost, IServerConfigurationManager config, IDeviceDiscovery deviceDiscovery, IHttpClient httpClient, ITimerFactory timerFactory) public ExternalPortForwarding(ILoggerFactory loggerFactory, IServerApplicationHost appHost, IServerConfigurationManager config, IDeviceDiscovery deviceDiscovery, IHttpClient httpClient, ITimerFactory timerFactory)
{ {
_logger = logmanager.GetLogger("PortMapper"); _logger = loggerFactory.CreateLogger("PortMapper");
_appHost = appHost; _appHost = appHost;
_config = config; _config = config;
_deviceDiscovery = deviceDiscovery; _deviceDiscovery = deviceDiscovery;
@ -59,7 +58,7 @@ namespace Emby.Server.Implementations.EntryPoints
values.Add(_appHost.EnableHttps.ToString()); values.Add(_appHost.EnableHttps.ToString());
values.Add((config.EnableRemoteAccess).ToString()); values.Add((config.EnableRemoteAccess).ToString());
return string.Join("|", values.ToArray(values.Count)); return string.Join("|", values.ToArray());
} }
void _config_ConfigurationUpdated(object sender, EventArgs e) void _config_ConfigurationUpdated(object sender, EventArgs e)
@ -85,7 +84,7 @@ namespace Emby.Server.Implementations.EntryPoints
private void Start() private void Start()
{ {
_logger.Debug("Starting NAT discovery"); _logger.LogDebug("Starting NAT discovery");
if (_natManager == null) if (_natManager == null)
{ {
_natManager = new NatManager(_logger, _httpClient); _natManager = new NatManager(_logger, _httpClient);
@ -140,7 +139,7 @@ namespace Emby.Server.Implementations.EntryPoints
_usnsHandled.Add(identifier); _usnsHandled.Add(identifier);
} }
_logger.Debug("Found NAT device: " + identifier); _logger.LogDebug("Found NAT device: " + identifier);
IPAddress address; IPAddress address;
if (IPAddress.TryParse(info.Location.Host, out address)) if (IPAddress.TryParse(info.Location.Host, out address))
@ -167,6 +166,7 @@ namespace Emby.Server.Implementations.EntryPoints
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, "Error");
return; return;
} }
@ -217,7 +217,7 @@ namespace Emby.Server.Implementations.EntryPoints
catch catch
{ {
// Commenting out because users are reporting problems out of our control // Commenting out because users are reporting problems out of our control
//_logger.ErrorException("Error creating port forwarding rules", ex); //_logger.LogError(ex, "Error creating port forwarding rules");
} }
} }
@ -254,6 +254,7 @@ namespace Emby.Server.Implementations.EntryPoints
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, "Error creating http port map");
return; return;
} }
@ -263,12 +264,13 @@ namespace Emby.Server.Implementations.EntryPoints
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, "Error creating https port map");
} }
} }
private Task CreatePortMap(INatDevice device, int privatePort, int publicPort) private Task CreatePortMap(INatDevice device, int privatePort, int publicPort)
{ {
_logger.Debug("Creating port map on local port {0} to public port {1} with device {2}", privatePort, publicPort, device.LocalAddress.ToString()); _logger.LogDebug("Creating port map on local port {0} to public port {1} with device {2}", privatePort, publicPort, device.LocalAddress.ToString());
return device.CreatePortMap(new Mapping(Protocol.Tcp, privatePort, publicPort) return device.CreatePortMap(new Mapping(Protocol.Tcp, privatePort, publicPort)
{ {
@ -285,7 +287,7 @@ namespace Emby.Server.Implementations.EntryPoints
private void DisposeNat() private void DisposeNat()
{ {
_logger.Debug("Stopping NAT discovery"); _logger.LogDebug("Stopping NAT discovery");
if (_timer != null) if (_timer != null)
{ {
@ -310,10 +312,10 @@ namespace Emby.Server.Implementations.EntryPoints
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error stopping NAT Discovery", ex); _logger.LogError(ex, "Error stopping NAT Discovery");
} }
} }
} }
} }
} }
} }

View File

@ -1,7 +1,7 @@
using MediaBrowser.Controller; using MediaBrowser.Controller;
using MediaBrowser.Controller.Plugins; using MediaBrowser.Controller.Plugins;
using MediaBrowser.Controller.Session; using MediaBrowser.Controller.Session;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using System; using System;
using System.Linq; using System.Linq;
using MediaBrowser.Model.System; using MediaBrowser.Model.System;
@ -49,7 +49,7 @@ namespace Emby.Server.Implementations.EntryPoints
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error resetting system standby timer", ex); _logger.LogError(ex, "Error resetting system standby timer");
} }
} }

View File

@ -3,7 +3,7 @@ using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Plugins; using MediaBrowser.Controller.Plugins;
using MediaBrowser.Controller.Session; using MediaBrowser.Controller.Session;
using MediaBrowser.Model.Entities; using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Globalization; using System.Globalization;
@ -331,7 +331,7 @@ namespace Emby.Server.Implementations.EntryPoints
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error in GetLibraryUpdateInfo", ex); _logger.LogError(ex, "Error in GetLibraryUpdateInfo");
return; return;
} }
@ -346,7 +346,7 @@ namespace Emby.Server.Implementations.EntryPoints
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error sending LibraryChanged message", ex); _logger.LogError(ex, "Error sending LibraryChanged message");
} }
} }
} }

View File

@ -5,7 +5,7 @@ using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.LiveTv; using MediaBrowser.Controller.LiveTv;
using MediaBrowser.Controller.Plugins; using MediaBrowser.Controller.Plugins;
using MediaBrowser.Controller.Session; using MediaBrowser.Controller.Session;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
namespace Emby.Server.Implementations.EntryPoints namespace Emby.Server.Implementations.EntryPoints
{ {
@ -66,7 +66,7 @@ namespace Emby.Server.Implementations.EntryPoints
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error sending message", ex); _logger.LogError(ex, "Error sending message");
} }
} }

View File

@ -7,6 +7,7 @@ using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using MediaBrowser.Controller.Providers; using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.IO; using MediaBrowser.Model.IO;
using Microsoft.Extensions.Logging;
namespace Emby.Server.Implementations.EntryPoints namespace Emby.Server.Implementations.EntryPoints
{ {
@ -15,10 +16,12 @@ namespace Emby.Server.Implementations.EntryPoints
/// </summary> /// </summary>
public class RefreshUsersMetadata : IScheduledTask, IConfigurableScheduledTask public class RefreshUsersMetadata : IScheduledTask, IConfigurableScheduledTask
{ {
private readonly ILogger _logger;
/// <summary> /// <summary>
/// The _user manager /// The _user manager
/// </summary> /// </summary>
private readonly IUserManager _userManager; private readonly IUserManager _userManager;
private IFileSystem _fileSystem; private IFileSystem _fileSystem;
public string Name => "Refresh Users"; public string Name => "Refresh Users";
@ -41,8 +44,9 @@ namespace Emby.Server.Implementations.EntryPoints
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="RefreshUsersMetadata" /> class. /// Initializes a new instance of the <see cref="RefreshUsersMetadata" /> class.
/// </summary> /// </summary>
public RefreshUsersMetadata(IUserManager userManager, IFileSystem fileSystem) public RefreshUsersMetadata(ILogger logger, IUserManager userManager, IFileSystem fileSystem)
{ {
_logger = logger;
_userManager = userManager; _userManager = userManager;
_fileSystem = fileSystem; _fileSystem = fileSystem;
} }
@ -55,7 +59,7 @@ namespace Emby.Server.Implementations.EntryPoints
{ {
cancellationToken.ThrowIfCancellationRequested(); cancellationToken.ThrowIfCancellationRequested();
await user.RefreshMetadata(new MetadataRefreshOptions(_fileSystem), cancellationToken).ConfigureAwait(false); await user.RefreshMetadata(new MetadataRefreshOptions(new DirectoryService(_logger, _fileSystem)), cancellationToken).ConfigureAwait(false);
} }
} }

View File

@ -156,14 +156,10 @@ namespace Emby.Server.Implementations.EntryPoints
try try
{ {
await _sessionManager.SendMessageToAdminSessions(name, data, CancellationToken.None); await _sessionManager.SendMessageToAdminSessions(name, data, CancellationToken.None);
}
catch (ObjectDisposedException)
{
} }
catch (Exception) catch (Exception)
{ {
//Logger.ErrorException("Error sending message", ex);
} }
} }
@ -172,14 +168,10 @@ namespace Emby.Server.Implementations.EntryPoints
try try
{ {
await _sessionManager.SendMessageToUserSessions(new List<Guid> { user.Id }, name, data, CancellationToken.None); await _sessionManager.SendMessageToUserSessions(new List<Guid> { user.Id }, name, data, CancellationToken.None);
}
catch (ObjectDisposedException)
{
} }
catch (Exception) catch (Exception)
{ {
//Logger.ErrorException("Error sending message", ex);
} }
} }

View File

@ -1,7 +1,7 @@
using Emby.Server.Implementations.Browser; using Emby.Server.Implementations.Browser;
using MediaBrowser.Controller; using MediaBrowser.Controller;
using MediaBrowser.Controller.Plugins; using MediaBrowser.Controller.Plugins;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Configuration;
namespace Emby.Server.Implementations.EntryPoints namespace Emby.Server.Implementations.EntryPoints
@ -61,4 +61,4 @@ namespace Emby.Server.Implementations.EntryPoints
{ {
} }
} }
} }

View File

@ -1,7 +1,7 @@
using System; using System;
using MediaBrowser.Controller; using MediaBrowser.Controller;
using MediaBrowser.Controller.Plugins; using MediaBrowser.Controller.Plugins;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using MediaBrowser.Model.Serialization; using MediaBrowser.Model.Serialization;
using Emby.Server.Implementations.Udp; using Emby.Server.Implementations.Udp;
using MediaBrowser.Model.Net; using MediaBrowser.Model.Net;
@ -45,9 +45,6 @@ namespace Emby.Server.Implementations.EntryPoints
/// </summary> /// </summary>
public void Run() public void Run()
{ {
// ToDo: Fix This
return;
var udpServer = new UdpServer(_logger, _appHost, _json, _socketFactory); var udpServer = new UdpServer(_logger, _appHost, _json, _socketFactory);
try try
@ -58,7 +55,7 @@ namespace Emby.Server.Implementations.EntryPoints
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Failed to start UDP Server", ex); _logger.LogError(ex, "Failed to start UDP Server");
} }
} }

View File

@ -3,7 +3,7 @@ using MediaBrowser.Common.Net;
using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Plugins; using MediaBrowser.Controller.Plugins;
using MediaBrowser.Controller.Session; using MediaBrowser.Controller.Session;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using System; using System;
using System.Collections.Concurrent; using System.Collections.Concurrent;
using System.Collections.Generic; using System.Collections.Generic;
@ -58,7 +58,7 @@ namespace Emby.Server.Implementations.EntryPoints
session.ApplicationVersion session.ApplicationVersion
}; };
var key = string.Join("_", keys.ToArray(keys.Count)).GetMD5(); var key = string.Join("_", keys.ToArray()).GetMD5();
ClientInfo info; ClientInfo info;
if (!_apps.TryGetValue(key, out info)) if (!_apps.TryGetValue(key, out info))
@ -91,7 +91,7 @@ namespace Emby.Server.Implementations.EntryPoints
} }
catch (Exception ex) catch (Exception ex)
{ {
//_logger.ErrorException("Error sending anonymous usage statistics.", ex); _logger.LogError(ex, "Error sending anonymous usage statistics.");
} }
} }
@ -119,7 +119,7 @@ namespace Emby.Server.Implementations.EntryPoints
} }
catch (Exception ex) catch (Exception ex)
{ {
//_logger.ErrorException("Error sending anonymous usage statistics.", ex); _logger.LogError(ex, "Error sending anonymous usage statistics.");
} }
} }

View File

@ -9,7 +9,7 @@ using System.Linq;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using MediaBrowser.Controller; using MediaBrowser.Controller;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
namespace Emby.Server.Implementations.EntryPoints namespace Emby.Server.Implementations.EntryPoints
{ {
@ -75,7 +75,7 @@ namespace Emby.Server.Implementations.EntryPoints
throw new ArgumentException("Client info must have a device Id"); throw new ArgumentException("Client info must have a device Id");
} }
_logger.Info("App Activity: app: {0}, version: {1}, deviceId: {2}, deviceName: {3}", _logger.LogInformation("App Activity: app: {0}, version: {1}, deviceId: {2}, deviceName: {3}",
app.AppName ?? "Unknown App", app.AppName ?? "Unknown App",
app.AppVersion ?? "Unknown", app.AppVersion ?? "Unknown",
app.DeviceId, app.DeviceId,

View File

@ -3,7 +3,7 @@ using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Plugins; using MediaBrowser.Controller.Plugins;
using MediaBrowser.Controller.Session; using MediaBrowser.Controller.Session;
using MediaBrowser.Model.Entities; using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using MediaBrowser.Model.Session; using MediaBrowser.Model.Session;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;

View File

@ -92,4 +92,4 @@ namespace Emby.Server.Implementations.EnvironmentInfo
Environment.SetEnvironmentVariable(name, value); Environment.SetEnvironmentVariable(name, value);
} }
} }
} }

View File

@ -1,7 +1,7 @@
using MediaBrowser.Common.Configuration; using MediaBrowser.Common.Configuration;
using MediaBrowser.Common.Net; using MediaBrowser.Common.Net;
using MediaBrowser.Model.IO; using MediaBrowser.Model.IO;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;

View File

@ -14,7 +14,7 @@ using MediaBrowser.Common.Configuration;
using MediaBrowser.Common.Extensions; using MediaBrowser.Common.Extensions;
using MediaBrowser.Common.Net; using MediaBrowser.Common.Net;
using MediaBrowser.Model.IO; using MediaBrowser.Model.IO;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using MediaBrowser.Model.Net; using MediaBrowser.Model.Net;
using MediaBrowser.Controller.IO; using MediaBrowser.Controller.IO;
@ -131,7 +131,7 @@ namespace Emby.Server.Implementations.HttpClientManager
var userInfo = uriAddress.UserInfo; var userInfo = uriAddress.UserInfo;
if (!string.IsNullOrWhiteSpace(userInfo)) if (!string.IsNullOrWhiteSpace(userInfo))
{ {
_logger.Info("Found userInfo in url: {0} ... url: {1}", userInfo, url); _logger.LogInformation("Found userInfo in url: {0} ... url: {1}", userInfo, url);
url = url.Replace(userInfo + "@", string.Empty); url = url.Replace(userInfo + "@", string.Empty);
} }
@ -421,11 +421,11 @@ namespace Emby.Server.Implementations.HttpClientManager
{ {
if (options.LogRequestAsDebug) if (options.LogRequestAsDebug)
{ {
_logger.Debug("HttpClientManager {0}: {1}", httpMethod.ToUpper(), options.Url); _logger.LogDebug("HttpClientManager {0}: {1}", httpMethod.ToUpper(), options.Url);
} }
else else
{ {
_logger.Info("HttpClientManager {0}: {1}", httpMethod.ToUpper(), options.Url); _logger.LogInformation("HttpClientManager {0}: {1}", httpMethod.ToUpper(), options.Url);
} }
} }
@ -595,11 +595,11 @@ namespace Emby.Server.Implementations.HttpClientManager
{ {
if (options.LogRequestAsDebug) if (options.LogRequestAsDebug)
{ {
_logger.Debug("HttpClientManager.GetTempFileResponse url: {0}", options.Url); _logger.LogDebug("HttpClientManager.GetTempFileResponse url: {0}", options.Url);
} }
else else
{ {
_logger.Info("HttpClientManager.GetTempFileResponse url: {0}", options.Url); _logger.LogInformation("HttpClientManager.GetTempFileResponse url: {0}", options.Url);
} }
} }
@ -685,7 +685,7 @@ namespace Emby.Server.Implementations.HttpClientManager
{ {
if (options.LogErrors) if (options.LogErrors)
{ {
_logger.ErrorException("Error " + webException.Status + " getting response from " + options.Url, webException); _logger.LogError(webException, "Error {status} getting response from {url}", webException.Status, options.Url);
} }
var exception = new HttpException(webException.Message, webException); var exception = new HttpException(webException.Message, webException);
@ -723,7 +723,7 @@ namespace Emby.Server.Implementations.HttpClientManager
if (options.LogErrors) if (options.LogErrors)
{ {
_logger.ErrorException("Error getting response from " + options.Url, ex); _logger.LogError(ex, "Error getting response from {url}", options.Url);
} }
return ex; return ex;
@ -789,7 +789,7 @@ namespace Emby.Server.Implementations.HttpClientManager
if (options.LogErrors) if (options.LogErrors)
{ {
_logger.Error(msg); _logger.LogError(msg);
} }
client.LastTimeout = DateTime.UtcNow; client.LastTimeout = DateTime.UtcNow;
@ -824,7 +824,7 @@ namespace Emby.Server.Implementations.HttpClientManager
{ {
var msg = reader.ReadToEnd(); var msg = reader.ReadToEnd();
_logger.Error(msg); _logger.LogError(msg);
} }
} }
} }

View File

@ -5,7 +5,7 @@ using System.Net;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using MediaBrowser.Model.IO; using MediaBrowser.Model.IO;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using MediaBrowser.Model.Services; using MediaBrowser.Model.Services;
using System.Linq; using System.Linq;
@ -102,7 +102,7 @@ namespace Emby.Server.Implementations.HttpServer
var rangeString = string.Format("bytes {0}-{1}/{2}", RangeStart, RangeEnd, TotalContentLength); var rangeString = string.Format("bytes {0}-{1}/{2}", RangeStart, RangeEnd, TotalContentLength);
Headers["Content-Range"] = rangeString; Headers["Content-Range"] = rangeString;
Logger.Info("Setting range response values for {0}. RangeRequest: {1} Content-Length: {2}, Content-Range: {3}", Path, RangeHeader, lengthString, rangeString); Logger.LogInformation("Setting range response values for {0}. RangeRequest: {1} Content-Length: {2}, Content-Range: {3}", Path, RangeHeader, lengthString, rangeString);
} }
/// <summary> /// <summary>
@ -173,7 +173,7 @@ namespace Emby.Server.Implementations.HttpServer
if (extension == null || !SkipLogExtensions.Contains(extension, StringComparer.OrdinalIgnoreCase)) if (extension == null || !SkipLogExtensions.Contains(extension, StringComparer.OrdinalIgnoreCase))
{ {
Logger.Debug("Transmit file {0}", path); Logger.LogDebug("Transmit file {0}", path);
} }
//var count = FileShare == FileShareMode.ReadWrite ? TotalContentLength : 0; //var count = FileShare == FileShareMode.ReadWrite ? TotalContentLength : 0;

View File

@ -1,7 +1,7 @@
using MediaBrowser.Common.Extensions; using MediaBrowser.Common.Extensions;
using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Net; using MediaBrowser.Controller.Net;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Globalization; using System.Globalization;
@ -252,11 +252,11 @@ namespace Emby.Server.Implementations.HttpServer
if (logExceptionStackTrace) if (logExceptionStackTrace)
{ {
_logger.ErrorException("Error processing request", ex); _logger.LogError(ex, "Error processing request");
} }
else if (logExceptionMessage) else if (logExceptionMessage)
{ {
_logger.Error(ex.Message); _logger.LogError(ex.Message);
} }
var httpRes = httpReq.Response; var httpRes = httpReq.Response;
@ -272,9 +272,9 @@ namespace Emby.Server.Implementations.HttpServer
httpRes.ContentType = "text/html"; httpRes.ContentType = "text/html";
await Write(httpRes, NormalizeExceptionMessage(ex.Message)).ConfigureAwait(false); await Write(httpRes, NormalizeExceptionMessage(ex.Message)).ConfigureAwait(false);
} }
catch catch (Exception errorEx)
{ {
//_logger.ErrorException("Error this.ProcessRequest(context)(Exception while writing error to the response)", errorEx); _logger.LogError(errorEx, "Error this.ProcessRequest(context)(Exception while writing error to the response)");
} }
} }
@ -320,10 +320,10 @@ namespace Emby.Server.Implementations.HttpServer
if (_listener != null) if (_listener != null)
{ {
_logger.Info("Stopping HttpListener..."); _logger.LogInformation("Stopping HttpListener...");
var task = _listener.Stop(); var task = _listener.Stop();
Task.WaitAll(task); Task.WaitAll(task);
_logger.Info("HttpListener stopped"); _logger.LogInformation("HttpListener stopped");
} }
} }
@ -713,12 +713,12 @@ namespace Emby.Server.Implementations.HttpServer
var pathParts = pathInfo.TrimStart('/').Split('/'); var pathParts = pathInfo.TrimStart('/').Split('/');
if (pathParts.Length == 0) if (pathParts.Length == 0)
{ {
_logger.Error("Path parts empty for PathInfo: {0}, Url: {1}", pathInfo, httpReq.RawUrl); _logger.LogError("Path parts empty for PathInfo: {pathInfo}, Url: {RawUrl}", pathInfo, httpReq.RawUrl);
return null; return null;
} }
string contentType; string contentType;
var restPath = ServiceHandler.FindMatchingRestPath(httpReq.HttpMethod, pathInfo, _logger, out contentType); var restPath = ServiceHandler.FindMatchingRestPath(httpReq.HttpMethod, pathInfo, out contentType);
if (restPath != null) if (restPath != null)
{ {
@ -729,7 +729,7 @@ namespace Emby.Server.Implementations.HttpServer
}; };
} }
_logger.Error("Could not find handler for {0}", pathInfo); _logger.LogError("Could not find handler for {pathInfo}", pathInfo);
return null; return null;
} }
@ -783,7 +783,7 @@ namespace Emby.Server.Implementations.HttpServer
ServiceController = new ServiceController(); ServiceController = new ServiceController();
_logger.Info("Calling ServiceStack AppHost.Init"); _logger.LogInformation("Calling ServiceStack AppHost.Init");
var types = services.Select(r => r.GetType()).ToArray(); var types = services.Select(r => r.GetType()).ToArray();
@ -825,7 +825,7 @@ namespace Emby.Server.Implementations.HttpServer
}); });
} }
return routes.ToArray(routes.Count); return routes.ToArray();
} }
public Func<string, object> GetParseFn(Type propertyType) public Func<string, object> GetParseFn(Type propertyType)
@ -853,7 +853,7 @@ namespace Emby.Server.Implementations.HttpServer
//using (var reader = new StreamReader(stream)) //using (var reader = new StreamReader(stream))
//{ //{
// var json = reader.ReadToEnd(); // var json = reader.ReadToEnd();
// Logger.Info(json); // logger.LogInformation(json);
// return _jsonSerializer.DeserializeFromString(json, type); // return _jsonSerializer.DeserializeFromString(json, type);
//} //}
return _jsonSerializer.DeserializeFromStreamAsync(stream, type); return _jsonSerializer.DeserializeFromStreamAsync(stream, type);
@ -919,7 +919,7 @@ namespace Emby.Server.Implementations.HttpServer
return Task.CompletedTask; return Task.CompletedTask;
} }
//_logger.Debug("Websocket message received: {0}", result.MessageType); _logger.LogDebug("Websocket message received: {0}", result.MessageType);
var tasks = _webSocketListeners.Select(i => Task.Run(async () => var tasks = _webSocketListeners.Select(i => Task.Run(async () =>
{ {
@ -929,7 +929,7 @@ namespace Emby.Server.Implementations.HttpServer
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("{0} failed processing WebSocket message {1}", ex, i.GetType().Name, result.MessageType ?? string.Empty); _logger.LogError(ex, "{0} failed processing WebSocket message {1}", i.GetType().Name, result.MessageType ?? string.Empty);
} }
})); }));
@ -954,4 +954,4 @@ namespace Emby.Server.Implementations.HttpServer
_listener.Start(UrlPrefixes); _listener.Start(UrlPrefixes);
} }
} }
} }

View File

@ -1,6 +1,6 @@
using MediaBrowser.Common.Extensions; using MediaBrowser.Common.Extensions;
using MediaBrowser.Controller.Net; using MediaBrowser.Controller.Net;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using MediaBrowser.Model.Serialization; using MediaBrowser.Model.Serialization;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
@ -37,12 +37,12 @@ namespace Emby.Server.Implementations.HttpServer
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="HttpResultFactory" /> class. /// Initializes a new instance of the <see cref="HttpResultFactory" /> class.
/// </summary> /// </summary>
public HttpResultFactory(ILogManager logManager, IFileSystem fileSystem, IJsonSerializer jsonSerializer, IBrotliCompressor brotliCompressor) public HttpResultFactory(ILoggerFactory loggerfactory, IFileSystem fileSystem, IJsonSerializer jsonSerializer, IBrotliCompressor brotliCompressor)
{ {
_fileSystem = fileSystem; _fileSystem = fileSystem;
_jsonSerializer = jsonSerializer; _jsonSerializer = jsonSerializer;
_brotliCompressor = brotliCompressor; _brotliCompressor = brotliCompressor;
_logger = logManager.GetLogger("HttpResultFactory"); _logger = loggerfactory.CreateLogger("HttpResultFactory");
} }
/// <summary> /// <summary>
@ -112,12 +112,15 @@ namespace Emby.Server.Implementations.HttpServer
/// </summary> /// </summary>
private IHasHeaders GetHttpResult(IRequest requestContext, byte[] content, string contentType, bool addCachePrevention, IDictionary<string, string> responseHeaders = null) private IHasHeaders GetHttpResult(IRequest requestContext, byte[] content, string contentType, bool addCachePrevention, IDictionary<string, string> responseHeaders = null)
{ {
string compressionType = null;
bool isHeadRequest = false;
if (requestContext != null) {
compressionType = GetCompressionType(requestContext, content, contentType);
isHeadRequest = string.Equals(requestContext.Verb, "head", StringComparison.OrdinalIgnoreCase);
}
IHasHeaders result; IHasHeaders result;
var compressionType = requestContext == null ? null : GetCompressionType(requestContext, content, contentType);
var isHeadRequest = string.Equals(requestContext.Verb, "head", StringComparison.OrdinalIgnoreCase);
if (string.IsNullOrEmpty(compressionType)) if (string.IsNullOrEmpty(compressionType))
{ {
var contentLength = content.Length; var contentLength = content.Length;
@ -791,4 +794,4 @@ namespace Emby.Server.Implementations.HttpServer
{ {
byte[] Compress(byte[] content); byte[] Compress(byte[] content);
} }
} }

View File

@ -1,4 +1,4 @@
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using System; using System;
using System.Globalization; using System.Globalization;
using MediaBrowser.Model.Services; using MediaBrowser.Model.Services;
@ -11,7 +11,7 @@ namespace Emby.Server.Implementations.HttpServer
{ {
if (headers == null) if (headers == null)
{ {
logger.Info("{0} {1}. UserAgent: {2}", "HTTP " + method, url, userAgent ?? string.Empty); logger.LogInformation("{0} {1}. UserAgent: {2}", "HTTP " + method, url, userAgent ?? string.Empty);
} }
else else
{ {
@ -30,7 +30,7 @@ namespace Emby.Server.Implementations.HttpServer
index++; index++;
} }
logger.Info("HTTP {0} {1}. {2}", method, url, headerText); logger.LogInformation("HTTP {0} {1}. {2}", method, url, headerText);
} }
} }
@ -49,7 +49,7 @@ namespace Emby.Server.Implementations.HttpServer
//var headerText = headers == null ? string.Empty : "Headers: " + string.Join(", ", headers.Where(i => i.Name.IndexOf("Access-", StringComparison.OrdinalIgnoreCase) == -1).Select(i => i.Name + "=" + i.Value).ToArray()); //var headerText = headers == null ? string.Empty : "Headers: " + string.Join(", ", headers.Where(i => i.Name.IndexOf("Access-", StringComparison.OrdinalIgnoreCase) == -1).Select(i => i.Name + "=" + i.Value).ToArray());
var headerText = string.Empty; var headerText = string.Empty;
logger.Info("HTTP Response {0} to {1}. Time: {2}{3}. {4} {5}", statusCode, endPoint, Convert.ToInt32(durationMs).ToString(CultureInfo.InvariantCulture), logSuffix, url, headerText); logger.LogInformation("HTTP Response {0} to {1}. Time: {2}{3}. {4} {5}", statusCode, endPoint, Convert.ToInt32(durationMs).ToString(CultureInfo.InvariantCulture), logSuffix, url, headerText);
} }
} }
} }

View File

@ -1,4 +1,4 @@
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Globalization; using System.Globalization;
@ -226,4 +226,4 @@ namespace Emby.Server.Implementations.HttpServer
public string StatusDescription { get; set; } public string StatusDescription { get; set; }
} }
} }

View File

@ -1,4 +1,4 @@
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using System; using System;
using System.Globalization; using System.Globalization;
using System.Text; using System.Text;
@ -34,7 +34,7 @@ namespace Emby.Server.Implementations.HttpServer
if (exception != null) if (exception != null)
{ {
_logger.ErrorException("Error processing request for {0}", exception, req.RawUrl); _logger.LogError(exception, "Error processing request for {RawUrl}", req.RawUrl);
if (!string.IsNullOrEmpty(exception.Message)) if (!string.IsNullOrEmpty(exception.Message))
{ {

View File

@ -1,4 +1,4 @@
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Globalization; using System.Globalization;

View File

@ -1,7 +1,7 @@
using System.Text; using System.Text;
using MediaBrowser.Common.Events; using MediaBrowser.Common.Events;
using MediaBrowser.Controller.Net; using MediaBrowser.Controller.Net;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using MediaBrowser.Model.Net; using MediaBrowser.Model.Net;
using MediaBrowser.Model.Serialization; using MediaBrowser.Model.Serialization;
using System; using System;
@ -180,7 +180,7 @@ namespace Emby.Server.Implementations.HttpServer
if (!message.StartsWith("{", StringComparison.OrdinalIgnoreCase)) if (!message.StartsWith("{", StringComparison.OrdinalIgnoreCase))
{ {
// This info is useful sometimes but also clogs up the log // This info is useful sometimes but also clogs up the log
//_logger.Error("Received web socket message that is not a json structure: " + message); _logger.LogDebug("Received web socket message that is not a json structure: {message}", message);
return; return;
} }
@ -204,7 +204,7 @@ namespace Emby.Server.Implementations.HttpServer
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error processing web socket message", ex); _logger.LogError(ex, "Error processing web socket message");
} }
} }

View File

@ -12,7 +12,7 @@ using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.IO; using MediaBrowser.Controller.IO;
using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Library;
using MediaBrowser.Model.Extensions; using MediaBrowser.Model.Extensions;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using MediaBrowser.Model.System; using MediaBrowser.Model.System;
using MediaBrowser.Model.Tasks; using MediaBrowser.Model.Tasks;
using MediaBrowser.Model.Threading; using MediaBrowser.Model.Threading;
@ -38,7 +38,7 @@ namespace Emby.Server.Implementations.IO
public FileRefresher(string path, IFileSystem fileSystem, IServerConfigurationManager configurationManager, ILibraryManager libraryManager, ITaskManager taskManager, ILogger logger, ITimerFactory timerFactory, IEnvironmentInfo environmentInfo, ILibraryManager libraryManager1) public FileRefresher(string path, IFileSystem fileSystem, IServerConfigurationManager configurationManager, ILibraryManager libraryManager, ITaskManager taskManager, ILogger logger, ITimerFactory timerFactory, IEnvironmentInfo environmentInfo, ILibraryManager libraryManager1)
{ {
logger.Debug("New file refresher created for {0}", path); logger.LogDebug("New file refresher created for {0}", path);
Path = path; Path = path;
_fileSystem = fileSystem; _fileSystem = fileSystem;
@ -108,7 +108,7 @@ namespace Emby.Server.Implementations.IO
{ {
lock (_timerLock) lock (_timerLock)
{ {
Logger.Debug("Resetting file refresher from {0} to {1}", Path, path); Logger.LogDebug("Resetting file refresher from {0} to {1}", Path, path);
Path = path; Path = path;
AddAffectedPath(path); AddAffectedPath(path);
@ -130,7 +130,7 @@ namespace Emby.Server.Implementations.IO
paths = _affectedPaths.ToList(); paths = _affectedPaths.ToList();
} }
Logger.Debug("Timer stopped."); Logger.LogDebug("Timer stopped.");
DisposeTimer(); DisposeTimer();
EventHelper.FireEventIfNotNull(Completed, this, EventArgs.Empty, Logger); EventHelper.FireEventIfNotNull(Completed, this, EventArgs.Empty, Logger);
@ -141,7 +141,7 @@ namespace Emby.Server.Implementations.IO
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.ErrorException("Error processing directory changes", ex); Logger.LogError(ex, "Error processing directory changes");
} }
} }
@ -161,7 +161,7 @@ namespace Emby.Server.Implementations.IO
continue; continue;
} }
Logger.Info(item.Name + " (" + item.Path + ") will be refreshed."); Logger.LogInformation("{name} ({path}}) will be refreshed.", item.Name, item.Path);
try try
{ {
@ -172,11 +172,11 @@ namespace Emby.Server.Implementations.IO
// For now swallow and log. // For now swallow and log.
// Research item: If an IOException occurs, the item may be in a disconnected state (media unavailable) // Research item: If an IOException occurs, the item may be in a disconnected state (media unavailable)
// Should we remove it from it's parent? // Should we remove it from it's parent?
Logger.ErrorException("Error refreshing {0}", ex, item.Name); Logger.LogError(ex, "Error refreshing {name}", item.Name);
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.ErrorException("Error refreshing {0}", ex, item.Name); Logger.LogError(ex, "Error refreshing {name}", item.Name);
} }
} }
} }

View File

@ -9,7 +9,7 @@ using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Plugins; using MediaBrowser.Controller.Plugins;
using MediaBrowser.Model.IO; using MediaBrowser.Model.IO;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using MediaBrowser.Model.System; using MediaBrowser.Model.System;
using MediaBrowser.Model.Tasks; using MediaBrowser.Model.Tasks;
using MediaBrowser.Model.Threading; using MediaBrowser.Model.Threading;
@ -114,7 +114,7 @@ namespace Emby.Server.Implementations.IO
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.ErrorException("Error in ReportFileSystemChanged for {0}", ex, path); Logger.LogError(ex, "Error in ReportFileSystemChanged for {path}", path);
} }
} }
} }
@ -141,7 +141,7 @@ namespace Emby.Server.Implementations.IO
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="LibraryMonitor" /> class. /// Initializes a new instance of the <see cref="LibraryMonitor" /> class.
/// </summary> /// </summary>
public LibraryMonitor(ILogManager logManager, ITaskManager taskManager, ILibraryManager libraryManager, IServerConfigurationManager configurationManager, IFileSystem fileSystem, ITimerFactory timerFactory, ISystemEvents systemEvents, IEnvironmentInfo environmentInfo) public LibraryMonitor(ILoggerFactory loggerFactory, ITaskManager taskManager, ILibraryManager libraryManager, IServerConfigurationManager configurationManager, IFileSystem fileSystem, ITimerFactory timerFactory, ISystemEvents systemEvents, IEnvironmentInfo environmentInfo)
{ {
if (taskManager == null) if (taskManager == null)
{ {
@ -150,7 +150,7 @@ namespace Emby.Server.Implementations.IO
LibraryManager = libraryManager; LibraryManager = libraryManager;
TaskManager = taskManager; TaskManager = taskManager;
Logger = logManager.GetLogger(GetType().Name); Logger = loggerFactory.CreateLogger(GetType().Name);
ConfigurationManager = configurationManager; ConfigurationManager = configurationManager;
_fileSystem = fileSystem; _fileSystem = fileSystem;
_timerFactory = timerFactory; _timerFactory = timerFactory;
@ -291,7 +291,7 @@ namespace Emby.Server.Implementations.IO
if (!_fileSystem.DirectoryExists(path)) if (!_fileSystem.DirectoryExists(path))
{ {
// Seeing a crash in the mono runtime due to an exception being thrown on a different thread // Seeing a crash in the mono runtime due to an exception being thrown on a different thread
Logger.Info("Skipping realtime monitor for {0} because the path does not exist", path); Logger.LogInformation("Skipping realtime monitor for {0} because the path does not exist", path);
return; return;
} }
@ -344,7 +344,7 @@ namespace Emby.Server.Implementations.IO
if (_fileSystemWatchers.TryAdd(path, newWatcher)) if (_fileSystemWatchers.TryAdd(path, newWatcher))
{ {
newWatcher.EnableRaisingEvents = true; newWatcher.EnableRaisingEvents = true;
Logger.Info("Watching directory " + path); Logger.LogInformation("Watching directory " + path);
} }
else else
{ {
@ -354,7 +354,7 @@ namespace Emby.Server.Implementations.IO
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.ErrorException("Error watching path: {0}", ex, path); Logger.LogError(ex, "Error watching path: {path}", path);
} }
}); });
} }
@ -382,7 +382,7 @@ namespace Emby.Server.Implementations.IO
{ {
using (watcher) using (watcher)
{ {
Logger.Info("Stopping directory watching for path {0}", watcher.Path); Logger.LogInformation("Stopping directory watching for path {path}", watcher.Path);
watcher.Created -= watcher_Changed; watcher.Created -= watcher_Changed;
watcher.Deleted -= watcher_Changed; watcher.Deleted -= watcher_Changed;
@ -439,7 +439,7 @@ namespace Emby.Server.Implementations.IO
var ex = e.GetException(); var ex = e.GetException();
var dw = (FileSystemWatcher)sender; var dw = (FileSystemWatcher)sender;
Logger.ErrorException("Error in Directory watcher for: " + dw.Path, ex); Logger.LogError(ex, "Error in Directory watcher for: {path}", dw.Path);
DisposeWatcher(dw, true); DisposeWatcher(dw, true);
} }
@ -453,7 +453,7 @@ namespace Emby.Server.Implementations.IO
{ {
try try
{ {
//Logger.Debug("Changed detected of type " + e.ChangeType + " to " + e.FullPath); //logger.LogDebug("Changed detected of type " + e.ChangeType + " to " + e.FullPath);
var path = e.FullPath; var path = e.FullPath;
@ -461,7 +461,7 @@ namespace Emby.Server.Implementations.IO
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.ErrorException("Exception in ReportFileSystemChanged. Path: {0}", ex, e.FullPath); Logger.LogError(ex, "Exception in ReportFileSystemChanged. Path: {FullPath}", e.FullPath);
} }
} }
@ -487,13 +487,13 @@ namespace Emby.Server.Implementations.IO
{ {
if (_fileSystem.AreEqual(i, path)) if (_fileSystem.AreEqual(i, path))
{ {
//Logger.Debug("Ignoring change to {0}", path); Logger.LogDebug("Ignoring change to {path}", path);
return true; return true;
} }
if (_fileSystem.ContainsSubPath(i, path)) if (_fileSystem.ContainsSubPath(i, path))
{ {
//Logger.Debug("Ignoring change to {0}", path); Logger.LogDebug("Ignoring change to {path}", path);
return true; return true;
} }
@ -503,7 +503,7 @@ namespace Emby.Server.Implementations.IO
{ {
if (_fileSystem.AreEqual(parent, path)) if (_fileSystem.AreEqual(parent, path))
{ {
//Logger.Debug("Ignoring change to {0}", path); Logger.LogDebug("Ignoring change to {path}", path);
return true; return true;
} }
} }

View File

@ -5,7 +5,7 @@ using System.IO;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using MediaBrowser.Model.IO; using MediaBrowser.Model.IO;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using MediaBrowser.Model.System; using MediaBrowser.Model.System;
namespace Emby.Server.Implementations.IO namespace Emby.Server.Implementations.IO
@ -175,7 +175,7 @@ namespace Emby.Server.Implementations.IO
path = System.IO.Path.GetFullPath(path); path = System.IO.Path.GetFullPath(path);
return path; return path;
} }
catch (ArgumentException ex) catch (ArgumentException)
{ {
return filePath; return filePath;
} }
@ -395,7 +395,7 @@ namespace Emby.Server.Implementations.IO
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.ErrorException("Error determining CreationTimeUtc for {0}", ex, info.FullName); Logger.LogError(ex, "Error determining CreationTimeUtc for {FullName}", info.FullName);
return DateTime.MinValue; return DateTime.MinValue;
} }
} }
@ -434,7 +434,7 @@ namespace Emby.Server.Implementations.IO
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.ErrorException("Error determining LastAccessTimeUtc for {0}", ex, info.FullName); Logger.LogError(ex, "Error determining LastAccessTimeUtc for {FullName}", info.FullName);
return DateTime.MinValue; return DateTime.MinValue;
} }
} }

View File

@ -89,7 +89,7 @@ namespace SharpCifs
{ {
Runtime.GetBytesForString(string.Empty, DefaultOemEncoding); Runtime.GetBytesForString(string.Empty, DefaultOemEncoding);
} }
catch (Exception ex) catch (Exception)
{ {
if (_log.Level >= 2) if (_log.Level >= 2)
{ {

View File

@ -153,7 +153,7 @@ namespace SharpCifs.Dcerpc
DcerpcMessage bind = new DcerpcBind(Binding, this); DcerpcMessage bind = new DcerpcBind(Binding, this);
Sendrecv(bind); Sendrecv(bind);
} }
catch (IOException ioe) catch (IOException)
{ {
State = 0; State = 0;
throw; throw;

View File

@ -130,7 +130,7 @@ namespace SharpCifs.Netbios
{ {
name = Runtime.GetStringForBytes(tmp, 0, length).Trim(); name = Runtime.GetStringForBytes(tmp, 0, length).Trim();
} }
catch (Exception ex) catch (Exception)
{ {
} }

View File

@ -117,8 +117,9 @@ namespace SharpCifs.Netbios
{ {
Baddr = Config.GetInetAddress("jcifs.netbios.baddr", Extensions.GetAddressByName("255.255.255.255")); Baddr = Config.GetInetAddress("jcifs.netbios.baddr", Extensions.GetAddressByName("255.255.255.255"));
} }
catch (Exception ex) catch (Exception)
{ {
} }
_sndBuf = new byte[SndBufSize]; _sndBuf = new byte[SndBufSize];
@ -302,7 +303,10 @@ namespace SharpCifs.Netbios
} }
} }
catch (TimeoutException) { } catch (TimeoutException)
{
}
catch (Exception ex) catch (Exception ex)
{ {
if (_log.Level > 2) if (_log.Level > 2)

View File

@ -192,7 +192,7 @@ namespace SharpCifs.Smb
catch (Exception e) catch (Exception e)
{ {
throw new SmbException(e.Message, e); throw new SmbException(e.Message, e);
} }
} }
default: default:

View File

@ -2,6 +2,7 @@ using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using System.Collections.ObjectModel; using System.Collections.ObjectModel;
// TODO: @bond Remove
namespace SharpCifs.Util.Sharpen namespace SharpCifs.Util.Sharpen
{ {
internal static class Collections<T> internal static class Collections<T>

View File

@ -163,7 +163,7 @@ namespace Emby.Server.Implementations.IO
var bytesRead = await CopyToAsyncInternal(source, target, buffer, cancellationToken).ConfigureAwait(false); var bytesRead = await CopyToAsyncInternal(source, target, buffer, cancellationToken).ConfigureAwait(false);
//var position = fs.Position; //var position = fs.Position;
//_logger.Debug("Streamed {0} bytes to position {1} from file {2}", bytesRead, position, path); //_logger.LogDebug("Streamed {0} bytes to position {1} from file {2}", bytesRead, position, path);
if (bytesRead == 0) if (bytesRead == 0)
{ {

View File

@ -9,7 +9,7 @@ using System.Linq;
using MediaBrowser.Controller.IO; using MediaBrowser.Controller.IO;
using MediaBrowser.Model.IO; using MediaBrowser.Model.IO;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
namespace Emby.Server.Implementations.Library namespace Emby.Server.Implementations.Library
{ {

View File

@ -12,7 +12,7 @@ using MediaBrowser.Controller.Resolvers;
using MediaBrowser.Controller.Sorting; using MediaBrowser.Controller.Sorting;
using MediaBrowser.Model.Configuration; using MediaBrowser.Model.Configuration;
using MediaBrowser.Model.Entities; using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using MediaBrowser.Model.Querying; using MediaBrowser.Model.Querying;
using Emby.Naming.Audio; using Emby.Naming.Audio;
using Emby.Naming.Common; using Emby.Naming.Common;
@ -351,7 +351,7 @@ namespace Emby.Server.Implementations.Library
if (item is LiveTvProgram) if (item is LiveTvProgram)
{ {
_logger.Debug("Deleting item, Type: {0}, Name: {1}, Path: {2}, Id: {3}", _logger.LogDebug("Deleting item, Type: {0}, Name: {1}, Path: {2}, Id: {3}",
item.GetType().Name, item.GetType().Name,
item.Name ?? "Unknown name", item.Name ?? "Unknown name",
item.Path ?? string.Empty, item.Path ?? string.Empty,
@ -359,7 +359,7 @@ namespace Emby.Server.Implementations.Library
} }
else else
{ {
_logger.Info("Deleting item, Type: {0}, Name: {1}, Path: {2}, Id: {3}", _logger.LogInformation("Deleting item, Type: {0}, Name: {1}, Path: {2}, Id: {3}",
item.GetType().Name, item.GetType().Name,
item.Name ?? "Unknown name", item.Name ?? "Unknown name",
item.Path ?? string.Empty, item.Path ?? string.Empty,
@ -372,7 +372,7 @@ namespace Emby.Server.Implementations.Library
foreach (var metadataPath in GetMetadataPaths(item, children)) foreach (var metadataPath in GetMetadataPaths(item, children))
{ {
_logger.Debug("Deleting path {0}", metadataPath); _logger.LogDebug("Deleting path {0}", metadataPath);
try try
{ {
@ -384,7 +384,7 @@ namespace Emby.Server.Implementations.Library
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error deleting {0}", ex, metadataPath); _logger.LogError(ex, "Error deleting {metadataPath}", metadataPath);
} }
} }
@ -398,14 +398,13 @@ namespace Emby.Server.Implementations.Library
{ {
try try
{ {
_logger.LogDebug("Deleting path {path}", fileSystemInfo.FullName);
if (fileSystemInfo.IsDirectory) if (fileSystemInfo.IsDirectory)
{ {
_logger.Debug("Deleting path {0}", fileSystemInfo.FullName);
_fileSystem.DeleteDirectory(fileSystemInfo.FullName, true); _fileSystem.DeleteDirectory(fileSystemInfo.FullName, true);
} }
else else
{ {
_logger.Debug("Deleting path {0}", fileSystemInfo.FullName);
_fileSystem.DeleteFile(fileSystemInfo.FullName); _fileSystem.DeleteFile(fileSystemInfo.FullName);
} }
} }
@ -489,7 +488,7 @@ namespace Emby.Server.Implementations.Library
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error in {0} resolving {1}", ex, resolver.GetType().Name, args.Path); _logger.LogError(ex, "Error in {resolver} resolving {path}", resolver.GetType().Name, args.Path);
return null; return null;
} }
} }
@ -587,7 +586,7 @@ namespace Emby.Server.Implementations.Library
{ {
if (parent != null && parent.IsPhysicalRoot) if (parent != null && parent.IsPhysicalRoot)
{ {
_logger.ErrorException("Error in GetFilteredFileSystemEntries isPhysicalRoot: {0} IsVf: {1}", ex, isPhysicalRoot, isVf); _logger.LogError(ex, "Error in GetFilteredFileSystemEntries isPhysicalRoot: {0} IsVf: {1}", isPhysicalRoot, isVf);
files = new FileSystemMetadata[] { }; files = new FileSystemMetadata[] { };
} }
@ -639,7 +638,7 @@ namespace Emby.Server.Implementations.Library
foreach (var dupe in dupes) foreach (var dupe in dupes)
{ {
_logger.Info("Found duplicate path: {0}", dupe); _logger.LogInformation("Found duplicate path: {0}", dupe);
} }
var newList = list.Except(dupes, StringComparer.OrdinalIgnoreCase).Select(_fileSystem.GetDirectoryInfo).ToList(); var newList = list.Except(dupes, StringComparer.OrdinalIgnoreCase).Select(_fileSystem.GetDirectoryInfo).ToList();
@ -713,7 +712,7 @@ namespace Emby.Server.Implementations.Library
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error resolving path {0}", ex, f.FullName); _logger.LogError(ex, "Error resolving path {path}", f.FullName);
return null; return null;
} }
}).Where(i => i != null); }).Where(i => i != null);
@ -730,12 +729,12 @@ namespace Emby.Server.Implementations.Library
_fileSystem.CreateDirectory(rootFolderPath); _fileSystem.CreateDirectory(rootFolderPath);
var rootFolder = GetItemById(GetNewItemId(rootFolderPath, typeof(AggregateFolder))) as AggregateFolder ?? (AggregateFolder)ResolvePath(_fileSystem.GetDirectoryInfo(rootFolderPath)); var rootFolder = GetItemById(GetNewItemId(rootFolderPath, typeof(AggregateFolder))) as AggregateFolder ?? ((Folder)ResolvePath(_fileSystem.GetDirectoryInfo(rootFolderPath))).DeepCopy<Folder,AggregateFolder>();
// In case program data folder was moved // In case program data folder was moved
if (!string.Equals(rootFolder.Path, rootFolderPath, StringComparison.Ordinal)) if (!string.Equals(rootFolder.Path, rootFolderPath, StringComparison.Ordinal))
{ {
_logger.Info("Resetting root folder path to {0}", rootFolderPath); _logger.LogInformation("Resetting root folder path to {0}", rootFolderPath);
rootFolder.Path = rootFolderPath; rootFolder.Path = rootFolderPath;
} }
@ -799,13 +798,13 @@ namespace Emby.Server.Implementations.Library
if (tmpItem == null) if (tmpItem == null)
{ {
tmpItem = (UserRootFolder)ResolvePath(_fileSystem.GetDirectoryInfo(userRootPath)); tmpItem = ((Folder)ResolvePath(_fileSystem.GetDirectoryInfo(userRootPath))).DeepCopy<Folder,UserRootFolder>();
} }
// In case program data folder was moved // In case program data folder was moved
if (!string.Equals(tmpItem.Path, userRootPath, StringComparison.Ordinal)) if (!string.Equals(tmpItem.Path, userRootPath, StringComparison.Ordinal))
{ {
_logger.Info("Resetting user root folder path to {0}", userRootPath); _logger.LogInformation("Resetting user root folder path to {0}", userRootPath);
tmpItem.Path = userRootPath; tmpItem.Path = userRootPath;
} }
@ -827,7 +826,7 @@ namespace Emby.Server.Implementations.Library
throw new ArgumentNullException("path"); throw new ArgumentNullException("path");
} }
//_logger.Info("FindByPath {0}", path); //_logger.LogInformation("FindByPath {0}", path);
var query = new InternalItemsQuery var query = new InternalItemsQuery
{ {
@ -1065,11 +1064,11 @@ namespace Emby.Server.Implementations.Library
await RootFolder.RefreshMetadata(cancellationToken).ConfigureAwait(false); await RootFolder.RefreshMetadata(cancellationToken).ConfigureAwait(false);
// Start by just validating the children of the root, but go no further // Start by just validating the children of the root, but go no further
await RootFolder.ValidateChildren(new SimpleProgress<double>(), cancellationToken, new MetadataRefreshOptions(_fileSystem), recursive: false); await RootFolder.ValidateChildren(new SimpleProgress<double>(), cancellationToken, new MetadataRefreshOptions(new DirectoryService(_logger, _fileSystem)), recursive: false);
await GetUserRootFolder().RefreshMetadata(cancellationToken).ConfigureAwait(false); await GetUserRootFolder().RefreshMetadata(cancellationToken).ConfigureAwait(false);
await GetUserRootFolder().ValidateChildren(new SimpleProgress<double>(), cancellationToken, new MetadataRefreshOptions(_fileSystem), recursive: false).ConfigureAwait(false); await GetUserRootFolder().ValidateChildren(new SimpleProgress<double>(), cancellationToken, new MetadataRefreshOptions(new DirectoryService(_logger, _fileSystem)), recursive: false).ConfigureAwait(false);
// Quickly scan CollectionFolders for changes // Quickly scan CollectionFolders for changes
foreach (var folder in GetUserRootFolder().Children.OfType<Folder>().ToList()) foreach (var folder in GetUserRootFolder().Children.OfType<Folder>().ToList())
@ -1080,7 +1079,7 @@ namespace Emby.Server.Implementations.Library
private async Task PerformLibraryValidation(IProgress<double> progress, CancellationToken cancellationToken) private async Task PerformLibraryValidation(IProgress<double> progress, CancellationToken cancellationToken)
{ {
_logger.Info("Validating media library"); _logger.LogInformation("Validating media library");
await ValidateTopLibraryFolders(cancellationToken).ConfigureAwait(false); await ValidateTopLibraryFolders(cancellationToken).ConfigureAwait(false);
@ -1089,7 +1088,7 @@ namespace Emby.Server.Implementations.Library
innerProgress.RegisterAction(pct => progress.Report(pct * .96)); innerProgress.RegisterAction(pct => progress.Report(pct * .96));
// Now validate the entire media library // Now validate the entire media library
await RootFolder.ValidateChildren(innerProgress, cancellationToken, new MetadataRefreshOptions(_fileSystem), recursive: true).ConfigureAwait(false); await RootFolder.ValidateChildren(innerProgress, cancellationToken, new MetadataRefreshOptions(new DirectoryService(_logger, _fileSystem)), recursive: true).ConfigureAwait(false);
progress.Report(96); progress.Report(96);
@ -1135,7 +1134,7 @@ namespace Emby.Server.Implementations.Library
progress.Report(innerPercent); progress.Report(innerPercent);
}); });
_logger.Debug("Running post-scan task {0}", task.GetType().Name); _logger.LogDebug("Running post-scan task {0}", task.GetType().Name);
try try
{ {
@ -1143,12 +1142,12 @@ namespace Emby.Server.Implementations.Library
} }
catch (OperationCanceledException) catch (OperationCanceledException)
{ {
_logger.Info("Post-scan task cancelled: {0}", task.GetType().Name); _logger.LogInformation("Post-scan task cancelled: {0}", task.GetType().Name);
throw; throw;
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error running postscan task", ex); _logger.LogError(ex, "Error running postscan task");
} }
numComplete++; numComplete++;
@ -1199,7 +1198,7 @@ namespace Emby.Server.Implementations.Library
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error resolving shortcut file {0}", ex, i); _logger.LogError(ex, "Error resolving shortcut file {file}", i);
return null; return null;
} }
}) })
@ -1262,7 +1261,7 @@ namespace Emby.Server.Implementations.Library
item = RetrieveItem(id); item = RetrieveItem(id);
//_logger.Debug("GetitemById {0}", id); //_logger.LogDebug("GetitemById {0}", id);
if (item != null) if (item != null)
{ {
@ -1440,7 +1439,7 @@ namespace Emby.Server.Implementations.Library
return true; return true;
} }
//_logger.Debug("Query requires ancestor query due to type: " + i.GetType().Name); //_logger.LogDebug("Query requires ancestor query due to type: " + i.GetType().Name);
return false; return false;
})) }))
@ -1493,7 +1492,7 @@ namespace Emby.Server.Implementations.Library
return new QueryResult<BaseItem> return new QueryResult<BaseItem>
{ {
Items = list.ToArray(list.Count) Items = list.ToArray()
}; };
} }
@ -1506,7 +1505,7 @@ namespace Emby.Server.Implementations.Library
return true; return true;
} }
//_logger.Debug("Query requires ancestor query due to type: " + i.GetType().Name); //_logger.LogDebug("Query requires ancestor query due to type: " + i.GetType().Name);
return false; return false;
})) }))
@ -1650,7 +1649,7 @@ namespace Emby.Server.Implementations.Library
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error getting intros", ex); _logger.LogError(ex, "Error getting intros");
return new List<IntroInfo>(); return new List<IntroInfo>();
} }
@ -1670,7 +1669,7 @@ namespace Emby.Server.Implementations.Library
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error getting intro files", ex); _logger.LogError(ex, "Error getting intro files");
return new List<string>(); return new List<string>();
} }
@ -1693,7 +1692,7 @@ namespace Emby.Server.Implementations.Library
if (video == null) if (video == null)
{ {
_logger.Error("Unable to locate item with Id {0}.", info.ItemId.Value); _logger.LogError("Unable to locate item with Id {ID}.", info.ItemId.Value);
} }
} }
else if (!string.IsNullOrEmpty(info.Path)) else if (!string.IsNullOrEmpty(info.Path))
@ -1705,7 +1704,7 @@ namespace Emby.Server.Implementations.Library
if (video == null) if (video == null)
{ {
_logger.Error("Intro resolver returned null for {0}.", info.Path); _logger.LogError("Intro resolver returned null for {path}.", info.Path);
} }
else else
{ {
@ -1724,12 +1723,12 @@ namespace Emby.Server.Implementations.Library
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error resolving path {0}.", ex, info.Path); _logger.LogError(ex, "Error resolving path {path}.", info.Path);
} }
} }
else else
{ {
_logger.Error("IntroProvider returned an IntroInfo with null Path and ItemId."); _logger.LogError("IntroProvider returned an IntroInfo with null Path and ItemId.");
} }
return video; return video;
@ -1873,7 +1872,7 @@ namespace Emby.Server.Implementations.Library
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error in ItemAdded event handler", ex); _logger.LogError(ex, "Error in ItemAdded event handler");
} }
} }
} }
@ -1904,7 +1903,7 @@ namespace Emby.Server.Implementations.Library
} }
//var logName = item.LocationType == LocationType.Remote ? item.Name ?? item.Path : item.Path ?? item.Name; //var logName = item.LocationType == LocationType.Remote ? item.Name ?? item.Path : item.Path ?? item.Name;
//_logger.Debug("Saving {0} to database.", logName); //_logger.LogDebug("Saving {0} to database.", logName);
ItemRepository.SaveItems(items, cancellationToken); ItemRepository.SaveItems(items, cancellationToken);
@ -1929,7 +1928,7 @@ namespace Emby.Server.Implementations.Library
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error in ItemUpdated event handler", ex); _logger.LogError(ex, "Error in ItemUpdated event handler");
} }
} }
} }
@ -1965,7 +1964,7 @@ namespace Emby.Server.Implementations.Library
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error in ItemRemoved event handler", ex); _logger.LogError(ex, "Error in ItemRemoved event handler");
} }
} }
} }
@ -2176,7 +2175,7 @@ namespace Emby.Server.Implementations.Library
if (refresh) if (refresh)
{ {
item.UpdateToRepository(ItemUpdateType.MetadataImport, CancellationToken.None); item.UpdateToRepository(ItemUpdateType.MetadataImport, CancellationToken.None);
_providerManagerFactory().QueueRefresh(item.Id, new MetadataRefreshOptions(_fileSystem), RefreshPriority.Normal); _providerManagerFactory().QueueRefresh(item.Id, new MetadataRefreshOptions(new DirectoryService(_logger, _fileSystem)), RefreshPriority.Normal);
} }
return item; return item;
@ -2231,7 +2230,7 @@ namespace Emby.Server.Implementations.Library
if (refresh) if (refresh)
{ {
_providerManagerFactory().QueueRefresh(item.Id, new MetadataRefreshOptions(_fileSystem) _providerManagerFactory().QueueRefresh(item.Id, new MetadataRefreshOptions(new DirectoryService(_logger, _fileSystem))
{ {
// Need to force save to increment DateLastSaved // Need to force save to increment DateLastSaved
ForceSave = true ForceSave = true
@ -2295,7 +2294,7 @@ namespace Emby.Server.Implementations.Library
if (refresh) if (refresh)
{ {
_providerManagerFactory().QueueRefresh(item.Id, new MetadataRefreshOptions(_fileSystem) _providerManagerFactory().QueueRefresh(item.Id, new MetadataRefreshOptions(new DirectoryService(_logger, _fileSystem))
{ {
// Need to force save to increment DateLastSaved // Need to force save to increment DateLastSaved
ForceSave = true ForceSave = true
@ -2369,7 +2368,7 @@ namespace Emby.Server.Implementations.Library
if (refresh) if (refresh)
{ {
_providerManagerFactory().QueueRefresh(item.Id, new MetadataRefreshOptions(_fileSystem) _providerManagerFactory().QueueRefresh(item.Id, new MetadataRefreshOptions(new DirectoryService(_logger, _fileSystem))
{ {
// Need to force save to increment DateLastSaved // Need to force save to increment DateLastSaved
ForceSave = true ForceSave = true
@ -2808,7 +2807,7 @@ namespace Emby.Server.Implementations.Library
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error getting person", ex); _logger.LogError(ex, "Error getting person");
return null; return null;
} }
@ -2836,7 +2835,7 @@ namespace Emby.Server.Implementations.Library
{ {
try try
{ {
_logger.Debug("ConvertImageToLocal item {0} - image url: {1}", item.Id, url); _logger.LogDebug("ConvertImageToLocal item {0} - image url: {1}", item.Id, url);
await _providerManagerFactory().SaveImage(item, url, image.Type, imageIndex, CancellationToken.None).ConfigureAwait(false); await _providerManagerFactory().SaveImage(item, url, image.Type, imageIndex, CancellationToken.None).ConfigureAwait(false);

View File

@ -7,7 +7,7 @@ using MediaBrowser.Controller.MediaEncoding;
using MediaBrowser.Model.Dlna; using MediaBrowser.Model.Dlna;
using MediaBrowser.Model.Dto; using MediaBrowser.Model.Dto;
using MediaBrowser.Model.Entities; using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using MediaBrowser.Model.MediaInfo; using MediaBrowser.Model.MediaInfo;
using System.Collections.Generic; using System.Collections.Generic;
using MediaBrowser.Model.Serialization; using MediaBrowser.Model.Serialization;
@ -48,7 +48,7 @@ namespace Emby.Server.Implementations.Library
{ {
mediaInfo = _json.DeserializeFromFile<MediaInfo>(cacheFilePath); mediaInfo = _json.DeserializeFromFile<MediaInfo>(cacheFilePath);
//_logger.Debug("Found cached media info"); //_logger.LogDebug("Found cached media info");
} }
catch catch
{ {
@ -63,7 +63,7 @@ namespace Emby.Server.Implementations.Library
delayMs = Math.Max(3000, delayMs); delayMs = Math.Max(3000, delayMs);
if (delayMs > 0) if (delayMs > 0)
{ {
_logger.Info("Waiting {0}ms before probing the live stream", delayMs); _logger.LogInformation("Waiting {0}ms before probing the live stream", delayMs);
await Task.Delay(delayMs, cancellationToken).ConfigureAwait(false); await Task.Delay(delayMs, cancellationToken).ConfigureAwait(false);
} }
} }
@ -83,7 +83,7 @@ namespace Emby.Server.Implementations.Library
Directory.CreateDirectory(Path.GetDirectoryName(cacheFilePath)); Directory.CreateDirectory(Path.GetDirectoryName(cacheFilePath));
_json.SerializeToFile(mediaInfo, cacheFilePath); _json.SerializeToFile(mediaInfo, cacheFilePath);
//_logger.Debug("Saved media info to {0}", cacheFilePath); //_logger.LogDebug("Saved media info to {0}", cacheFilePath);
} }
} }
@ -104,7 +104,7 @@ namespace Emby.Server.Implementations.Library
mediaStreams = newList; mediaStreams = newList;
} }
_logger.Info("Live tv media info probe took {0} seconds", (DateTime.UtcNow - now).TotalSeconds.ToString(CultureInfo.InvariantCulture)); _logger.LogInformation("Live tv media info probe took {0} seconds", (DateTime.UtcNow - now).TotalSeconds.ToString(CultureInfo.InvariantCulture));
mediaSource.Bitrate = mediaInfo.Bitrate; mediaSource.Bitrate = mediaInfo.Bitrate;
mediaSource.Container = mediaInfo.Container; mediaSource.Container = mediaInfo.Container;

View File

@ -4,9 +4,10 @@ using MediaBrowser.Controller.Entities.Audio;
using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.MediaEncoding; using MediaBrowser.Controller.MediaEncoding;
using MediaBrowser.Controller.Persistence; using MediaBrowser.Controller.Persistence;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Dto; using MediaBrowser.Model.Dto;
using MediaBrowser.Model.Entities; using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using MediaBrowser.Model.MediaInfo; using MediaBrowser.Model.MediaInfo;
using MediaBrowser.Model.Serialization; using MediaBrowser.Model.Serialization;
using System; using System;
@ -127,7 +128,7 @@ namespace Emby.Server.Implementations.Library
if (allowMediaProbe && mediaSources[0].Type != MediaSourceType.Placeholder && !mediaSources[0].MediaStreams.Any(i => i.Type == MediaStreamType.Audio || i.Type == MediaStreamType.Video)) if (allowMediaProbe && mediaSources[0].Type != MediaSourceType.Placeholder && !mediaSources[0].MediaStreams.Any(i => i.Type == MediaStreamType.Audio || i.Type == MediaStreamType.Video))
{ {
await item.RefreshMetadata(new MediaBrowser.Controller.Providers.MetadataRefreshOptions(_fileSystem) await item.RefreshMetadata(new MediaBrowser.Controller.Providers.MetadataRefreshOptions(new DirectoryService(_logger, _fileSystem))
{ {
EnableRemoteContentProbe = true, EnableRemoteContentProbe = true,
MetadataRefreshMode = MediaBrowser.Controller.Providers.MetadataRefreshMode.FullRefresh MetadataRefreshMode = MediaBrowser.Controller.Providers.MetadataRefreshMode.FullRefresh
@ -255,7 +256,7 @@ namespace Emby.Server.Implementations.Library
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error getting media sources", ex); _logger.LogError(ex, "Error getting media sources");
return new List<MediaSourceInfo>(); return new List<MediaSourceInfo>();
} }
} }
@ -476,12 +477,12 @@ namespace Emby.Server.Implementations.Library
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error probing live tv stream", ex); _logger.LogError(ex, "Error probing live tv stream");
AddMediaInfo(mediaSource, isAudio); AddMediaInfo(mediaSource, isAudio);
} }
var json = _jsonSerializer.SerializeToString(mediaSource); var json = _jsonSerializer.SerializeToString(mediaSource);
_logger.Info("Live stream opened: " + json); _logger.LogInformation("Live stream opened: " + json);
var clone = _jsonSerializer.DeserializeFromString<MediaSourceInfo>(json); var clone = _jsonSerializer.DeserializeFromString<MediaSourceInfo>(json);
if (!request.UserId.Equals(Guid.Empty)) if (!request.UserId.Equals(Guid.Empty))
@ -624,7 +625,7 @@ namespace Emby.Server.Implementations.Library
{ {
mediaInfo = _jsonSerializer.DeserializeFromFile<MediaInfo>(cacheFilePath); mediaInfo = _jsonSerializer.DeserializeFromFile<MediaInfo>(cacheFilePath);
//_logger.Debug("Found cached media info"); //_logger.LogDebug("Found cached media info");
} }
catch (Exception ex) catch (Exception ex)
{ {
@ -658,7 +659,7 @@ namespace Emby.Server.Implementations.Library
_fileSystem.CreateDirectory(_fileSystem.GetDirectoryName(cacheFilePath)); _fileSystem.CreateDirectory(_fileSystem.GetDirectoryName(cacheFilePath));
_jsonSerializer.SerializeToFile(mediaInfo, cacheFilePath); _jsonSerializer.SerializeToFile(mediaInfo, cacheFilePath);
//_logger.Debug("Saved media info to {0}", cacheFilePath); //_logger.LogDebug("Saved media info to {0}", cacheFilePath);
} }
} }
@ -679,7 +680,7 @@ namespace Emby.Server.Implementations.Library
mediaStreams = newList; mediaStreams = newList;
} }
_logger.Info("Live tv media info probe took {0} seconds", (DateTime.UtcNow - now).TotalSeconds.ToString(CultureInfo.InvariantCulture)); _logger.LogInformation("Live tv media info probe took {0} seconds", (DateTime.UtcNow - now).TotalSeconds.ToString(CultureInfo.InvariantCulture));
mediaSource.Bitrate = mediaInfo.Bitrate; mediaSource.Bitrate = mediaInfo.Bitrate;
mediaSource.Container = mediaInfo.Container; mediaSource.Container = mediaInfo.Container;
@ -815,16 +816,16 @@ namespace Emby.Server.Implementations.Library
{ {
liveStream.ConsumerCount--; liveStream.ConsumerCount--;
_logger.Info("Live stream {0} consumer count is now {1}", liveStream.OriginalStreamId, liveStream.ConsumerCount); _logger.LogInformation("Live stream {0} consumer count is now {1}", liveStream.OriginalStreamId, liveStream.ConsumerCount);
if (liveStream.ConsumerCount <= 0) if (liveStream.ConsumerCount <= 0)
{ {
_openStreams.Remove(id); _openStreams.Remove(id);
_logger.Info("Closing live stream {0}", id); _logger.LogInformation("Closing live stream {0}", id);
await liveStream.Close().ConfigureAwait(false); await liveStream.Close().ConfigureAwait(false);
_logger.Info("Live stream {0} closed successfully", id); _logger.LogInformation("Live stream {0} closed successfully", id);
} }
} }
} }
@ -883,4 +884,4 @@ namespace Emby.Server.Implementations.Library
} }
} }
} }
} }

View File

@ -3,7 +3,7 @@ using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Providers; using MediaBrowser.Controller.Providers;
using MediaBrowser.Controller.Resolvers; using MediaBrowser.Controller.Resolvers;
using MediaBrowser.Model.Entities; using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using Emby.Naming.Audio; using Emby.Naming.Audio;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
@ -128,7 +128,7 @@ namespace Emby.Server.Implementations.Library.Resolvers.Audio
{ {
if (IsMultiDiscFolder(path, libraryOptions)) if (IsMultiDiscFolder(path, libraryOptions))
{ {
logger.Debug("Found multi-disc folder: " + path); logger.LogDebug("Found multi-disc folder: " + path);
discSubfolderCount++; discSubfolderCount++;
} }
else else

View File

@ -2,7 +2,7 @@
using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Resolvers; using MediaBrowser.Controller.Resolvers;
using MediaBrowser.Model.Entities; using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using System; using System;
using System.IO; using System.IO;
using System.Linq; using System.Linq;

View File

@ -7,7 +7,7 @@ using System.IO;
using System.Linq; using System.Linq;
using MediaBrowser.Controller.Providers; using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.IO; using MediaBrowser.Model.IO;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
namespace Emby.Server.Implementations.Library.Resolvers namespace Emby.Server.Implementations.Library.Resolvers
{ {

View File

@ -14,7 +14,7 @@ using System.Linq;
using MediaBrowser.Controller.Drawing; using MediaBrowser.Controller.Drawing;
using MediaBrowser.Controller.IO; using MediaBrowser.Controller.IO;
using MediaBrowser.Model.IO; using MediaBrowser.Model.IO;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
namespace Emby.Server.Implementations.Library.Resolvers.Movies namespace Emby.Server.Implementations.Library.Resolvers.Movies
{ {

View File

@ -5,7 +5,7 @@ using MediaBrowser.Controller.Library;
using MediaBrowser.Model.Globalization; using MediaBrowser.Model.Globalization;
using Emby.Naming.Common; using Emby.Naming.Common;
using Emby.Naming.TV; using Emby.Naming.TV;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
namespace Emby.Server.Implementations.Library.Resolvers.TV namespace Emby.Server.Implementations.Library.Resolvers.TV
{ {
@ -72,7 +72,7 @@ namespace Emby.Server.Implementations.Library.Resolvers.TV
{ {
if (episodeInfo.EpisodeNumber.HasValue && episodeInfo.SeasonNumber.HasValue) if (episodeInfo.EpisodeNumber.HasValue && episodeInfo.SeasonNumber.HasValue)
{ {
_logger.Debug("Found folder underneath series with episode number: {0}. Season {1}. Episode {2}", _logger.LogDebug("Found folder underneath series with episode number: {0}. Season {1}. Episode {2}",
path, path,
episodeInfo.SeasonNumber.Value, episodeInfo.SeasonNumber.Value,
episodeInfo.EpisodeNumber.Value); episodeInfo.EpisodeNumber.Value);

View File

@ -3,7 +3,7 @@ using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Providers; using MediaBrowser.Controller.Providers;
using MediaBrowser.Controller.Resolvers; using MediaBrowser.Controller.Resolvers;
using MediaBrowser.Model.Entities; using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using Emby.Naming.Common; using Emby.Naming.Common;
using Emby.Naming.TV; using Emby.Naming.TV;
using System; using System;
@ -131,14 +131,14 @@ namespace Emby.Server.Implementations.Library.Resolvers.TV
{ {
//if ((attributes & FileAttributes.Hidden) == FileAttributes.Hidden) //if ((attributes & FileAttributes.Hidden) == FileAttributes.Hidden)
//{ //{
// //logger.Debug("Igoring series file or folder marked hidden: {0}", child.FullName); // //logger.LogDebug("Igoring series file or folder marked hidden: {0}", child.FullName);
// continue; // continue;
//} //}
// Can't enforce this because files saved by Bitcasa are always marked System // Can't enforce this because files saved by Bitcasa are always marked System
//if ((attributes & FileAttributes.System) == FileAttributes.System) //if ((attributes & FileAttributes.System) == FileAttributes.System)
//{ //{
// logger.Debug("Igoring series subfolder marked system: {0}", child.FullName); // logger.LogDebug("Igoring series subfolder marked system: {0}", child.FullName);
// continue; // continue;
//} //}
@ -146,7 +146,7 @@ namespace Emby.Server.Implementations.Library.Resolvers.TV
{ {
if (IsSeasonFolder(child.FullName, isTvContentType, libraryManager)) if (IsSeasonFolder(child.FullName, isTvContentType, libraryManager))
{ {
//logger.Debug("{0} is a series because of season folder {1}.", path, child.FullName); //logger.LogDebug("{0} is a series because of season folder {1}.", path, child.FullName);
return true; return true;
} }
} }
@ -181,7 +181,7 @@ namespace Emby.Server.Implementations.Library.Resolvers.TV
} }
} }
//logger.Debug("{0} is not a series folder.", path); //logger.LogDebug("{0} is not a series folder.", path);
return false; return false;
} }

View File

@ -1,7 +1,7 @@
using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.Audio; using MediaBrowser.Controller.Entities.Audio;
using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Library;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using MediaBrowser.Model.Querying; using MediaBrowser.Model.Querying;
using MediaBrowser.Model.Search; using MediaBrowser.Model.Search;
using System; using System;
@ -23,12 +23,12 @@ namespace Emby.Server.Implementations.Library
private readonly IUserManager _userManager; private readonly IUserManager _userManager;
private readonly ILogger _logger; private readonly ILogger _logger;
public SearchEngine(ILogManager logManager, ILibraryManager libraryManager, IUserManager userManager) public SearchEngine(ILoggerFactory loggerFactory, ILibraryManager libraryManager, IUserManager userManager)
{ {
_libraryManager = libraryManager; _libraryManager = libraryManager;
_userManager = userManager; _userManager = userManager;
_logger = logManager.GetLogger("SearchEngine"); _logger = loggerFactory.CreateLogger("SearchEngine");
} }
public QueryResult<SearchHintInfo> GetSearchHints(SearchQuery query) public QueryResult<SearchHintInfo> GetSearchHints(SearchQuery query)
@ -161,8 +161,8 @@ namespace Emby.Server.Implementations.Library
var searchQuery = new InternalItemsQuery(user) var searchQuery = new InternalItemsQuery(user)
{ {
SearchTerm = searchTerm, SearchTerm = searchTerm,
ExcludeItemTypes = excludeItemTypes.ToArray(excludeItemTypes.Count), ExcludeItemTypes = excludeItemTypes.ToArray(),
IncludeItemTypes = includeItemTypes.ToArray(includeItemTypes.Count), IncludeItemTypes = includeItemTypes.ToArray(),
Limit = query.Limit, Limit = query.Limit,
IncludeItemsByName = string.IsNullOrEmpty(query.ParentId), IncludeItemsByName = string.IsNullOrEmpty(query.ParentId),
ParentId = string.IsNullOrEmpty(query.ParentId) ? Guid.Empty : new Guid(query.ParentId), ParentId = string.IsNullOrEmpty(query.ParentId) ? Guid.Empty : new Guid(query.ParentId),

View File

@ -6,7 +6,7 @@ using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Persistence; using MediaBrowser.Controller.Persistence;
using MediaBrowser.Model.Dto; using MediaBrowser.Model.Dto;
using MediaBrowser.Model.Entities; using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using System; using System;
using System.Collections.Concurrent; using System.Collections.Concurrent;
using System.Collections.Generic; using System.Collections.Generic;
@ -32,10 +32,10 @@ namespace Emby.Server.Implementations.Library
private Func<IUserManager> _userManager; private Func<IUserManager> _userManager;
public UserDataManager(ILogManager logManager, IServerConfigurationManager config, Func<IUserManager> userManager) public UserDataManager(ILoggerFactory loggerFactory, IServerConfigurationManager config, Func<IUserManager> userManager)
{ {
_config = config; _config = config;
_logger = logManager.GetLogger(GetType().Name); _logger = loggerFactory.CreateLogger(GetType().Name);
_userManager = userManager; _userManager = userManager;
} }

View File

@ -15,7 +15,7 @@ using MediaBrowser.Model.Connect;
using MediaBrowser.Model.Dto; using MediaBrowser.Model.Dto;
using MediaBrowser.Model.Entities; using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Events; using MediaBrowser.Model.Events;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using MediaBrowser.Model.Serialization; using MediaBrowser.Model.Serialization;
using MediaBrowser.Model.Users; using MediaBrowser.Model.Users;
using System; using System;
@ -340,7 +340,7 @@ namespace Emby.Server.Implementations.Library
UpdateInvalidLoginAttemptCount(user, user.Policy.InvalidLoginAttemptCount + 1); UpdateInvalidLoginAttemptCount(user, user.Policy.InvalidLoginAttemptCount + 1);
} }
_logger.Info("Authentication request for {0} {1}.", user.Name, success ? "has succeeded" : "has been denied"); _logger.LogInformation("Authentication request for {0} {1}.", user.Name, success ? "has succeeded" : "has been denied");
return success ? user : null; return success ? user : null;
} }
@ -392,7 +392,7 @@ namespace Emby.Server.Implementations.Library
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error authenticating with provider {0}", ex, provider.Name); _logger.LogError(ex, "Error authenticating with provider {provider}", provider.Name);
return false; return false;
} }
@ -461,7 +461,7 @@ namespace Emby.Server.Implementations.Library
if (newValue >= maxCount) if (newValue >= maxCount)
{ {
//_logger.Debug("Disabling user {0} due to {1} unsuccessful login attempts.", user.Name, newValue.ToString(CultureInfo.InvariantCulture)); //_logger.LogDebug("Disabling user {0} due to {1} unsuccessful login attempts.", user.Name, newValue.ToString(CultureInfo.InvariantCulture));
//user.Policy.IsDisabled = true; //user.Policy.IsDisabled = true;
//fireLockout = true; //fireLockout = true;
@ -575,7 +575,7 @@ namespace Emby.Server.Implementations.Library
catch (Exception ex) catch (Exception ex)
{ {
// Have to use a catch-all unfortunately because some .net image methods throw plain Exceptions // Have to use a catch-all unfortunately because some .net image methods throw plain Exceptions
_logger.ErrorException("Error generating PrimaryImageAspectRatio for {0}", ex, user.Name); _logger.LogError(ex, "Error generating PrimaryImageAspectRatio for {user}", user.Name);
} }
} }
@ -599,7 +599,7 @@ namespace Emby.Server.Implementations.Library
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error getting {0} image info for {1}", ex, image.Type, image.Path); _logger.LogError(ex, "Error getting {imageType} image info for {imagePath}", image.Type, image.Path);
return null; return null;
} }
} }
@ -613,7 +613,7 @@ namespace Emby.Server.Implementations.Library
{ {
foreach (var user in Users) foreach (var user in Users)
{ {
await user.RefreshMetadata(new MetadataRefreshOptions(_fileSystem), cancellationToken).ConfigureAwait(false); await user.RefreshMetadata(new MetadataRefreshOptions(new DirectoryService(_logger, _fileSystem)), cancellationToken).ConfigureAwait(false);
} }
} }
@ -775,7 +775,7 @@ namespace Emby.Server.Implementations.Library
} }
catch (IOException ex) catch (IOException ex)
{ {
_logger.ErrorException("Error deleting file {0}", ex, configPath); _logger.LogError(ex, "Error deleting file {path}", configPath);
} }
DeleteUserPolicy(user); DeleteUserPolicy(user);
@ -1045,7 +1045,7 @@ namespace Emby.Server.Implementations.Library
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error reading policy file: {0}", ex, path); _logger.LogError(ex, "Error reading policy file: {path}", path);
return GetDefaultPolicy(user); return GetDefaultPolicy(user);
} }
@ -1109,7 +1109,7 @@ namespace Emby.Server.Implementations.Library
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error deleting policy file", ex); _logger.LogError(ex, "Error deleting policy file");
} }
} }
@ -1144,7 +1144,7 @@ namespace Emby.Server.Implementations.Library
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error reading policy file: {0}", ex, path); _logger.LogError(ex, "Error reading policy file: {path}", path);
return new UserConfiguration(); return new UserConfiguration();
} }

View File

@ -354,7 +354,7 @@ namespace Emby.Server.Implementations.Library
Limit = limit * 5, Limit = limit * 5,
IsPlayed = isPlayed, IsPlayed = isPlayed,
DtoOptions = options, DtoOptions = options,
MediaTypes = mediaTypes.ToArray(mediaTypes.Count) MediaTypes = mediaTypes.ToArray()
}; };
if (parents.Count == 0) if (parents.Count == 0)

View File

@ -1,5 +1,5 @@
using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Library;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using System; using System;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;

View File

@ -1,6 +1,6 @@
using MediaBrowser.Controller.Entities.Audio; using MediaBrowser.Controller.Entities.Audio;
using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Library;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
@ -70,7 +70,7 @@ namespace Emby.Server.Implementations.Library.Validators
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.ErrorException("Error refreshing {0}", ex, name); _logger.LogError(ex, "Error refreshing {ArtistName}", name);
} }
numComplete++; numComplete++;
@ -95,7 +95,7 @@ namespace Emby.Server.Implementations.Library.Validators
continue; continue;
} }
_logger.Info("Deleting dead {2} {0} {1}.", item.Id.ToString("N"), item.Name, item.GetType().Name); _logger.LogInformation("Deleting dead {2} {0} {1}.", item.Id.ToString("N"), item.Name, item.GetType().Name);
_libraryManager.DeleteItem(item, new DeleteOptions _libraryManager.DeleteItem(item, new DeleteOptions
{ {

View File

@ -1,5 +1,5 @@
using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Library;
using MediaBrowser.Model.Logging; using Microsoft.Extensions.Logging;
using System; using System;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;

Some files were not shown because too many files have changed in this diff Show More