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>
|
||||
<Private>True</Private>
|
||||
</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.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
@@ -112,7 +115,9 @@
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="App.config" />
|
||||
<None Include="packages.config" />
|
||||
<None Include="packages.config">
|
||||
<SubType>Designer</SubType>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\CurlSharp\CurlSharp.csproj">
|
||||
|
@@ -18,23 +18,29 @@ namespace JackettConsole
|
||||
{
|
||||
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();
|
||||
return;
|
||||
case "/r": // reserve port/url & install
|
||||
case "/r": // Reserve port/url & install
|
||||
Engine.Server.ReserveUrls(doInstall: true);
|
||||
return;
|
||||
case "/c": // change port
|
||||
case "/c": // Change port
|
||||
Engine.Server.ReserveUrls(doInstall: false);
|
||||
return;
|
||||
case "/u": // uninstall
|
||||
case "/u": // Uninstall
|
||||
Engine.Server.ReserveUrls(doInstall: false);
|
||||
Engine.ServiceConfig.Uninstall();
|
||||
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.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.Tracing" version="5.2.3" targetFramework="net452" />
|
||||
<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.Host.HttpListener" version="2.0.2" targetFramework="net452" userInstalled="true" />
|
||||
|
@@ -95,6 +95,9 @@
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\packages\Microsoft.AspNet.WebApi.Owin.5.2.3\lib\net45\System.Web.Http.Owin.dll</HintPath>
|
||||
</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.Data.DataSetExtensions" />
|
||||
<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.Owin" 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.FileSystems" 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());
|
||||
}
|
||||
|
||||
public static bool TracingEnabled
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
public static bool LogRequests
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
public static IContainer GetContainer()
|
||||
{
|
||||
return container;
|
||||
|
@@ -121,6 +121,9 @@
|
||||
<HintPath>..\packages\Microsoft.AspNet.WebApi.Owin.5.2.3\lib\net45\System.Web.Http.Owin.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</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.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
@@ -199,6 +202,8 @@
|
||||
<Compile Include="CurlHelper.cs" />
|
||||
<Compile Include="Indexers\AlphaRatio.cs" />
|
||||
<Compile Include="Utils\StringUtil.cs" />
|
||||
<Compile Include="Utils\WebAPIRequestLogger.cs" />
|
||||
<Compile Include="Utils\WebAPIToNLogTracer.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="App.config" />
|
||||
|
@@ -13,6 +13,8 @@ using Microsoft.Owin.StaticFiles;
|
||||
using Microsoft.Owin.FileSystems;
|
||||
using Autofac;
|
||||
using Jackett.Services;
|
||||
using System.Web.Http.Tracing;
|
||||
using Jackett.Utils;
|
||||
|
||||
[assembly: OwinStartup(typeof(Startup))]
|
||||
namespace Jackett
|
||||
@@ -23,6 +25,17 @@ namespace Jackett
|
||||
{
|
||||
// Configure Web API for self-host.
|
||||
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.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.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.Tracing" version="5.2.3" targetFramework="net451" />
|
||||
<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.Host.HttpListener" version="2.0.2" targetFramework="net451" userInstalled="true" />
|
||||
|
Reference in New Issue
Block a user