mirror of
https://github.com/Jackett/Jackett.git
synced 2025-09-17 17:34:09 +02:00
Add logging
This commit is contained in:
@@ -99,6 +99,9 @@
|
|||||||
<HintPath>..\packages\Microsoft.AspNet.WebApi.Owin.5.2.3\lib\net45\System.Web.Http.Owin.dll</HintPath>
|
<HintPath>..\packages\Microsoft.AspNet.WebApi.Owin.5.2.3\lib\net45\System.Web.Http.Owin.dll</HintPath>
|
||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
|
<Reference Include="System.Web.Http.Tracing">
|
||||||
|
<HintPath>..\packages\Microsoft.AspNet.WebApi.Tracing.5.2.3\lib\net45\System.Web.Http.Tracing.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
<Reference Include="System.Xml.Linq" />
|
<Reference Include="System.Xml.Linq" />
|
||||||
<Reference Include="System.Data.DataSetExtensions" />
|
<Reference Include="System.Data.DataSetExtensions" />
|
||||||
<Reference Include="Microsoft.CSharp" />
|
<Reference Include="Microsoft.CSharp" />
|
||||||
@@ -112,7 +115,9 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="App.config" />
|
<None Include="App.config" />
|
||||||
<None Include="packages.config" />
|
<None Include="packages.config">
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
</None>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\CurlSharp\CurlSharp.csproj">
|
<ProjectReference Include="..\CurlSharp\CurlSharp.csproj">
|
||||||
|
@@ -18,23 +18,29 @@ namespace JackettConsole
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (args.Length > 0)
|
foreach (var arg in args)
|
||||||
{
|
{
|
||||||
switch (args[0].ToLowerInvariant())
|
switch (arg.ToLowerInvariant())
|
||||||
{
|
{
|
||||||
case "/i": // install
|
case "/i": // Install
|
||||||
Engine.ServiceConfig.Install();
|
Engine.ServiceConfig.Install();
|
||||||
return;
|
return;
|
||||||
case "/r": // reserve port/url & install
|
case "/r": // Reserve port/url & install
|
||||||
Engine.Server.ReserveUrls(doInstall: true);
|
Engine.Server.ReserveUrls(doInstall: true);
|
||||||
return;
|
return;
|
||||||
case "/c": // change port
|
case "/c": // Change port
|
||||||
Engine.Server.ReserveUrls(doInstall: false);
|
Engine.Server.ReserveUrls(doInstall: false);
|
||||||
return;
|
return;
|
||||||
case "/u": // uninstall
|
case "/u": // Uninstall
|
||||||
Engine.Server.ReserveUrls(doInstall: false);
|
Engine.Server.ReserveUrls(doInstall: false);
|
||||||
Engine.ServiceConfig.Uninstall();
|
Engine.ServiceConfig.Uninstall();
|
||||||
return;
|
return;
|
||||||
|
case "/l": // Logging
|
||||||
|
Engine.LogRequests = true;
|
||||||
|
break;
|
||||||
|
case "/t": // Tracing
|
||||||
|
Engine.TracingEnabled = true;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -8,6 +8,7 @@
|
|||||||
<package id="Microsoft.AspNet.WebApi.Core" version="5.2.3" targetFramework="net452" userInstalled="true" />
|
<package id="Microsoft.AspNet.WebApi.Core" version="5.2.3" targetFramework="net452" userInstalled="true" />
|
||||||
<package id="Microsoft.AspNet.WebApi.Owin" version="5.2.3" targetFramework="net452" userInstalled="true" />
|
<package id="Microsoft.AspNet.WebApi.Owin" version="5.2.3" targetFramework="net452" userInstalled="true" />
|
||||||
<package id="Microsoft.AspNet.WebApi.OwinSelfHost" version="5.2.3" targetFramework="net452" userInstalled="true" />
|
<package id="Microsoft.AspNet.WebApi.OwinSelfHost" version="5.2.3" targetFramework="net452" userInstalled="true" />
|
||||||
|
<package id="Microsoft.AspNet.WebApi.Tracing" version="5.2.3" targetFramework="net452" />
|
||||||
<package id="Microsoft.Owin" version="3.0.1" targetFramework="net452" userInstalled="true" />
|
<package id="Microsoft.Owin" version="3.0.1" targetFramework="net452" userInstalled="true" />
|
||||||
<package id="Microsoft.Owin.FileSystems" version="3.0.1" targetFramework="net452" userInstalled="true" />
|
<package id="Microsoft.Owin.FileSystems" version="3.0.1" targetFramework="net452" userInstalled="true" />
|
||||||
<package id="Microsoft.Owin.Host.HttpListener" version="2.0.2" targetFramework="net452" userInstalled="true" />
|
<package id="Microsoft.Owin.Host.HttpListener" version="2.0.2" targetFramework="net452" userInstalled="true" />
|
||||||
|
@@ -95,6 +95,9 @@
|
|||||||
<SpecificVersion>False</SpecificVersion>
|
<SpecificVersion>False</SpecificVersion>
|
||||||
<HintPath>..\packages\Microsoft.AspNet.WebApi.Owin.5.2.3\lib\net45\System.Web.Http.Owin.dll</HintPath>
|
<HintPath>..\packages\Microsoft.AspNet.WebApi.Owin.5.2.3\lib\net45\System.Web.Http.Owin.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
|
<Reference Include="System.Web.Http.Tracing">
|
||||||
|
<HintPath>..\packages\Microsoft.AspNet.WebApi.Tracing.5.2.3\lib\net45\System.Web.Http.Tracing.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
<Reference Include="System.Xml.Linq" />
|
<Reference Include="System.Xml.Linq" />
|
||||||
<Reference Include="System.Data.DataSetExtensions" />
|
<Reference Include="System.Data.DataSetExtensions" />
|
||||||
<Reference Include="Microsoft.CSharp" />
|
<Reference Include="Microsoft.CSharp" />
|
||||||
|
@@ -8,6 +8,7 @@
|
|||||||
<package id="Microsoft.AspNet.WebApi.Core" version="5.2.3" targetFramework="net452" />
|
<package id="Microsoft.AspNet.WebApi.Core" version="5.2.3" targetFramework="net452" />
|
||||||
<package id="Microsoft.AspNet.WebApi.Owin" version="5.2.3" targetFramework="net452" />
|
<package id="Microsoft.AspNet.WebApi.Owin" version="5.2.3" targetFramework="net452" />
|
||||||
<package id="Microsoft.AspNet.WebApi.OwinSelfHost" version="5.2.3" targetFramework="net452" />
|
<package id="Microsoft.AspNet.WebApi.OwinSelfHost" version="5.2.3" targetFramework="net452" />
|
||||||
|
<package id="Microsoft.AspNet.WebApi.Tracing" version="5.2.3" targetFramework="net452" />
|
||||||
<package id="Microsoft.Owin" version="3.0.1" targetFramework="net452" />
|
<package id="Microsoft.Owin" version="3.0.1" targetFramework="net452" />
|
||||||
<package id="Microsoft.Owin.FileSystems" version="3.0.1" targetFramework="net452" />
|
<package id="Microsoft.Owin.FileSystems" version="3.0.1" targetFramework="net452" />
|
||||||
<package id="Microsoft.Owin.Host.HttpListener" version="3.0.1" targetFramework="net452" />
|
<package id="Microsoft.Owin.Host.HttpListener" version="3.0.1" targetFramework="net452" />
|
||||||
|
@@ -31,6 +31,18 @@ namespace Jackett
|
|||||||
Logger.Info("Starting Jackett " + ConfigService.GetVersion());
|
Logger.Info("Starting Jackett " + ConfigService.GetVersion());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static bool TracingEnabled
|
||||||
|
{
|
||||||
|
get;
|
||||||
|
set;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool LogRequests
|
||||||
|
{
|
||||||
|
get;
|
||||||
|
set;
|
||||||
|
}
|
||||||
|
|
||||||
public static IContainer GetContainer()
|
public static IContainer GetContainer()
|
||||||
{
|
{
|
||||||
return container;
|
return container;
|
||||||
|
@@ -121,6 +121,9 @@
|
|||||||
<HintPath>..\packages\Microsoft.AspNet.WebApi.Owin.5.2.3\lib\net45\System.Web.Http.Owin.dll</HintPath>
|
<HintPath>..\packages\Microsoft.AspNet.WebApi.Owin.5.2.3\lib\net45\System.Web.Http.Owin.dll</HintPath>
|
||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
|
<Reference Include="System.Web.Http.Tracing">
|
||||||
|
<HintPath>..\packages\Microsoft.AspNet.WebApi.Tracing.5.2.3\lib\net45\System.Web.Http.Tracing.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
<Reference Include="System.Windows.Forms" />
|
<Reference Include="System.Windows.Forms" />
|
||||||
<Reference Include="System.Xml.Linq" />
|
<Reference Include="System.Xml.Linq" />
|
||||||
<Reference Include="System.Data.DataSetExtensions" />
|
<Reference Include="System.Data.DataSetExtensions" />
|
||||||
@@ -199,6 +202,8 @@
|
|||||||
<Compile Include="CurlHelper.cs" />
|
<Compile Include="CurlHelper.cs" />
|
||||||
<Compile Include="Indexers\AlphaRatio.cs" />
|
<Compile Include="Indexers\AlphaRatio.cs" />
|
||||||
<Compile Include="Utils\StringUtil.cs" />
|
<Compile Include="Utils\StringUtil.cs" />
|
||||||
|
<Compile Include="Utils\WebAPIRequestLogger.cs" />
|
||||||
|
<Compile Include="Utils\WebAPIToNLogTracer.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="App.config" />
|
<None Include="App.config" />
|
||||||
|
@@ -13,6 +13,8 @@ using Microsoft.Owin.StaticFiles;
|
|||||||
using Microsoft.Owin.FileSystems;
|
using Microsoft.Owin.FileSystems;
|
||||||
using Autofac;
|
using Autofac;
|
||||||
using Jackett.Services;
|
using Jackett.Services;
|
||||||
|
using System.Web.Http.Tracing;
|
||||||
|
using Jackett.Utils;
|
||||||
|
|
||||||
[assembly: OwinStartup(typeof(Startup))]
|
[assembly: OwinStartup(typeof(Startup))]
|
||||||
namespace Jackett
|
namespace Jackett
|
||||||
@@ -23,6 +25,17 @@ namespace Jackett
|
|||||||
{
|
{
|
||||||
// Configure Web API for self-host.
|
// Configure Web API for self-host.
|
||||||
var config = new HttpConfiguration();
|
var config = new HttpConfiguration();
|
||||||
|
// Setup tracing if enabled
|
||||||
|
if (Engine.TracingEnabled)
|
||||||
|
{
|
||||||
|
config.EnableSystemDiagnosticsTracing();
|
||||||
|
config.Services.Replace(typeof(ITraceWriter), new WebAPIToNLogTracer());
|
||||||
|
}
|
||||||
|
// Add request logging if enabled
|
||||||
|
if (Engine.LogRequests)
|
||||||
|
{
|
||||||
|
config.MessageHandlers.Add(new WebAPIRequestLogger());
|
||||||
|
}
|
||||||
config.DependencyResolver = new AutofacWebApiDependencyResolver(Engine.GetContainer());
|
config.DependencyResolver = new AutofacWebApiDependencyResolver(Engine.GetContainer());
|
||||||
config.MapHttpAttributeRoutes();
|
config.MapHttpAttributeRoutes();
|
||||||
|
|
||||||
|
36
src/Jackett/Utils/WebAPIRequestLogger.cs
Normal file
36
src/Jackett/Utils/WebAPIRequestLogger.cs
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Net.Http;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace Jackett.Utils
|
||||||
|
{
|
||||||
|
class WebAPIRequestLogger : DelegatingHandler
|
||||||
|
{
|
||||||
|
protected override async Task<HttpResponseMessage> SendAsync(
|
||||||
|
HttpRequestMessage request, CancellationToken cancellationToken)
|
||||||
|
{
|
||||||
|
//logging request body
|
||||||
|
string requestBody = await request.Content.ReadAsStringAsync();
|
||||||
|
Trace.WriteLine(requestBody);
|
||||||
|
Engine.Logger.Debug(request.Method + ": " + request.RequestUri);
|
||||||
|
Engine.Logger.Debug("Body: " + requestBody);
|
||||||
|
|
||||||
|
//let other handlers process the request
|
||||||
|
return await base.SendAsync(request, cancellationToken)
|
||||||
|
.ContinueWith(task =>
|
||||||
|
{
|
||||||
|
//once response is ready, log it
|
||||||
|
var responseBody = task.Result.Content.ReadAsStringAsync().Result;
|
||||||
|
Trace.WriteLine(responseBody);
|
||||||
|
Engine.Logger.Debug("Response: " + responseBody);
|
||||||
|
|
||||||
|
return task.Result;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
53
src/Jackett/Utils/WebAPIToNLogTracer.cs
Normal file
53
src/Jackett/Utils/WebAPIToNLogTracer.cs
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Net.Http;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Web.Http.Tracing;
|
||||||
|
|
||||||
|
namespace Jackett.Utils
|
||||||
|
{
|
||||||
|
public class WebAPIToNLogTracer : ITraceWriter
|
||||||
|
{
|
||||||
|
public void Trace(HttpRequestMessage request, string category, TraceLevel level,
|
||||||
|
Action<TraceRecord> traceAction)
|
||||||
|
{
|
||||||
|
if (Engine.TracingEnabled)
|
||||||
|
{
|
||||||
|
TraceRecord rec = new TraceRecord(request, category, level);
|
||||||
|
traceAction(rec);
|
||||||
|
WriteTrace(rec);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void WriteTrace(TraceRecord rec)
|
||||||
|
{
|
||||||
|
var message = string.Format("{0} {1} {2}", rec.Operator, rec.Operation, rec.Message);
|
||||||
|
switch (rec.Level)
|
||||||
|
{
|
||||||
|
case TraceLevel.Debug:
|
||||||
|
Engine.Logger.Debug(message);
|
||||||
|
break;
|
||||||
|
case TraceLevel.Error:
|
||||||
|
Engine.Logger.Error(message);
|
||||||
|
break;
|
||||||
|
case TraceLevel.Fatal:
|
||||||
|
Engine.Logger.Fatal(message);
|
||||||
|
break;
|
||||||
|
case TraceLevel.Info:
|
||||||
|
Engine.Logger.Info(message);
|
||||||
|
break;
|
||||||
|
case TraceLevel.Off:
|
||||||
|
// Do nothing?
|
||||||
|
break;
|
||||||
|
case TraceLevel.Warn:
|
||||||
|
Engine.Logger.Warn(message);
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
System.Diagnostics.Trace.WriteLine(message, rec.Category);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -10,6 +10,7 @@
|
|||||||
<package id="Microsoft.AspNet.WebApi.Core" version="5.2.3" targetFramework="net451" userInstalled="true" />
|
<package id="Microsoft.AspNet.WebApi.Core" version="5.2.3" targetFramework="net451" userInstalled="true" />
|
||||||
<package id="Microsoft.AspNet.WebApi.Owin" version="5.2.3" targetFramework="net451" userInstalled="true" />
|
<package id="Microsoft.AspNet.WebApi.Owin" version="5.2.3" targetFramework="net451" userInstalled="true" />
|
||||||
<package id="Microsoft.AspNet.WebApi.OwinSelfHost" version="5.2.3" targetFramework="net451" userInstalled="true" />
|
<package id="Microsoft.AspNet.WebApi.OwinSelfHost" version="5.2.3" targetFramework="net451" userInstalled="true" />
|
||||||
|
<package id="Microsoft.AspNet.WebApi.Tracing" version="5.2.3" targetFramework="net451" />
|
||||||
<package id="Microsoft.Owin" version="3.0.1" targetFramework="net451" userInstalled="true" />
|
<package id="Microsoft.Owin" version="3.0.1" targetFramework="net451" userInstalled="true" />
|
||||||
<package id="Microsoft.Owin.FileSystems" version="3.0.1" targetFramework="net451" userInstalled="true" />
|
<package id="Microsoft.Owin.FileSystems" version="3.0.1" targetFramework="net451" userInstalled="true" />
|
||||||
<package id="Microsoft.Owin.Host.HttpListener" version="2.0.2" targetFramework="net451" userInstalled="true" />
|
<package id="Microsoft.Owin.Host.HttpListener" version="2.0.2" targetFramework="net451" userInstalled="true" />
|
||||||
|
Reference in New Issue
Block a user