-
Notifications
You must be signed in to change notification settings - Fork 12
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Cleanup simplify and rewrite to add .NET Core support.
- 2 NuGet packages are now generated, ChromeLogger.AspNet and ChromeLogger.AspNetCore
- Loading branch information
1 parent
81b32a4
commit 6e45d1c
Showing
26 changed files
with
439 additions
and
409 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -106,3 +106,5 @@ Generated_Code #added for RIA/Silverlight projects | |
_UpgradeReport_Files/ | ||
Backup*/ | ||
UpgradeLog*.XML | ||
|
||
.vs |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
root = true | ||
|
||
[*] | ||
end_of_line = crlf | ||
insert_final_newline = true | ||
|
||
[*.{cs,xaml}] | ||
indent_style = space | ||
indent_size = 4 |
This file was deleted.
Oops, something went wrong.
Binary file not shown.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
<Project Sdk="Microsoft.NET.Sdk"> | ||
|
||
<PropertyGroup> | ||
<TargetFramework>net461</TargetFramework> | ||
<RootNamespace>ChromeLogger</RootNamespace> | ||
<Description>chrome extension for server side console logging with ASP.NET Classic (System.Web)</Description> | ||
<Copyright>Copyright © Chris Missal 2013-2020</Copyright> | ||
<PackageLicenseExpression>MIT</PackageLicenseExpression> | ||
<PackageProjectUrl>https://github.com/ChrisMissal/chromelogger</PackageProjectUrl> | ||
<PackageIcon>icon128.png</PackageIcon> | ||
<RepositoryUrl>https://github.com/ChrisMissal/chromelogger</RepositoryUrl> | ||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild> | ||
<AssemblyVersion>1.0.0.0</AssemblyVersion> | ||
<FileVersion>1.0.0.0</FileVersion> | ||
<PackageTags>chrome console server-side asp.net</PackageTags> | ||
</PropertyGroup> | ||
|
||
<ItemGroup> | ||
<Reference Include="System.Web" /> | ||
</ItemGroup> | ||
|
||
<ItemGroup> | ||
<None Include="..\icon128.png"> | ||
<Pack>True</Pack> | ||
<PackagePath></PackagePath> | ||
</None> | ||
</ItemGroup> | ||
|
||
<ItemGroup> | ||
<PackageReference Include="System.Text.Json" Version="4.7.2" /> | ||
</ItemGroup> | ||
|
||
<Import Project="..\ChromeLogger\ChromeLogger.projitems" Label="Shared" /> | ||
|
||
</Project> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
using System.Collections.Specialized; | ||
using System.Diagnostics.CodeAnalysis; | ||
using System.Web; | ||
|
||
namespace ChromeLogger | ||
{ | ||
[SuppressMessage("ReSharper", "UnusedType.Global")] | ||
[SuppressMessage("ReSharper", "UnusedMember.Global")] | ||
public static class Logger | ||
{ | ||
static IChromeLogger CurrentContextLogger | ||
{ | ||
get | ||
{ | ||
IChromeLogger logger; | ||
var contextItems = HttpContext.Current.Items; | ||
if (!contextItems.Contains(CoreChromeLogger.HeaderName)) | ||
{ | ||
logger = new CoreChromeLogger(); | ||
contextItems[CoreChromeLogger.HeaderName] = logger; | ||
} | ||
else | ||
{ | ||
logger = (IChromeLogger)contextItems[CoreChromeLogger.HeaderName]; | ||
} | ||
|
||
return logger; | ||
} | ||
} | ||
|
||
public static void Log(object data) => CurrentContextLogger.Log(data); | ||
public static void Warn(object data) => CurrentContextLogger.Warn(data); | ||
public static void Error(object data) => CurrentContextLogger.Error(data); | ||
public static void Info(object data) => CurrentContextLogger.Info(data); | ||
public static void Group(object data) => CurrentContextLogger.Group(data); | ||
public static void GroupEnd(object data) => CurrentContextLogger.GroupEnd(data); | ||
public static void GroupCollapsed(object data) => CurrentContextLogger.GroupCollapsed(data); | ||
|
||
public static NameValueCollection GetHeader() | ||
{ | ||
var header = CurrentContextLogger.GetHttpHeader(); | ||
return new NameValueCollection { { header.Key, header.Value } }; | ||
} | ||
} | ||
} |
16 changes: 16 additions & 0 deletions
16
src/ChromeLogger.AspNetCore/ApplicationBuilderExtensions.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
using Microsoft.AspNetCore.Builder; | ||
|
||
namespace ChromeLogger | ||
{ | ||
public static class ApplicationBuilderExtensions | ||
{ | ||
/// <summary> | ||
/// Attaches the chrome logger header setting middleware to the pipeline. | ||
/// This method must be called at the start of the startup class Configure method. | ||
/// </summary> | ||
public static IApplicationBuilder UseChromeLogger(this IApplicationBuilder app) | ||
{ | ||
return app.UseMiddleware<ChromeLoggerMiddleware>(); | ||
} | ||
} | ||
} |
42 changes: 42 additions & 0 deletions
42
src/ChromeLogger.AspNetCore/ChromeLogger.AspNetCore.csproj
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
<Project Sdk="Microsoft.NET.Sdk"> | ||
|
||
<PropertyGroup> | ||
<TargetFrameworks>netstandard2.0;netcoreapp3.1</TargetFrameworks> | ||
<RootNamespace>ChromeLogger</RootNamespace> | ||
<Description>chrome extension for server side console logging with ASP.NET Core</Description> | ||
<Copyright>Copyright © Chris Missal 2013-2020</Copyright> | ||
<PackageLicenseExpression>MIT</PackageLicenseExpression> | ||
<PackageProjectUrl>https://github.com/ChrisMissal/chromelogger</PackageProjectUrl> | ||
<PackageIcon>icon128.png</PackageIcon> | ||
<RepositoryUrl>https://github.com/ChrisMissal/chromelogger</RepositoryUrl> | ||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild> | ||
<AssemblyVersion>1.0.0.0</AssemblyVersion> | ||
<FileVersion>1.0.0.0</FileVersion> | ||
<PackageTags>chrome console server-side asp.net-core</PackageTags> | ||
</PropertyGroup> | ||
|
||
<!-- ReSharper disable once UnknownProperty --> | ||
<ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'"> | ||
<PackageReference Include="Microsoft.AspNetCore.Http" Version="2.2.2" /> | ||
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="3.1.6" /> | ||
</ItemGroup> | ||
|
||
<!-- ReSharper disable once UnknownProperty --> | ||
<ItemGroup Condition="'$(TargetFramework)' == 'netcoreapp3.1'"> | ||
<FrameworkReference Include="Microsoft.AspNetCore.App" /> | ||
</ItemGroup> | ||
|
||
<ItemGroup> | ||
<None Include="..\icon128.png"> | ||
<Pack>True</Pack> | ||
<PackagePath></PackagePath> | ||
</None> | ||
</ItemGroup> | ||
|
||
<ItemGroup> | ||
<PackageReference Include="System.Text.Json" Version="4.7.2" /> | ||
</ItemGroup> | ||
|
||
<Import Project="..\ChromeLogger\ChromeLogger.projitems" Label="Shared" /> | ||
|
||
</Project> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
using System.Collections.Generic; | ||
using Microsoft.AspNetCore.Http; | ||
|
||
namespace ChromeLogger | ||
{ | ||
public class ChromeLogger : IChromeLogger | ||
{ | ||
readonly IHttpContextAccessor _contextAccessor; | ||
|
||
IChromeLogger CurrentContextLogger | ||
{ | ||
get | ||
{ | ||
if (this._contextAccessor.HttpContext.Items.TryGetValue( | ||
CoreChromeLogger.HeaderName, | ||
out var loggerObj) | ||
&& loggerObj is IChromeLogger logger) | ||
{ | ||
return logger; | ||
} | ||
|
||
logger = new CoreChromeLogger(); | ||
this._contextAccessor.HttpContext.Items[CoreChromeLogger.HeaderName] = logger; | ||
return logger; | ||
} | ||
} | ||
|
||
public ChromeLogger(IHttpContextAccessor contextAccessor) | ||
{ | ||
this._contextAccessor = contextAccessor; | ||
} | ||
|
||
public void Log(object data) => this.CurrentContextLogger.Log(data); | ||
public void Warn(object data) => this.CurrentContextLogger.Warn(data); | ||
public void Error(object data) => this.CurrentContextLogger.Error(data); | ||
public void Info(object data) => this.CurrentContextLogger.Info(data); | ||
public void Group(object data) => this.CurrentContextLogger.Group(data); | ||
public void GroupEnd(object data) => this.CurrentContextLogger.GroupEnd(data); | ||
public void GroupCollapsed(object data) => this.CurrentContextLogger.GroupCollapsed(data); | ||
public KeyValuePair<string, string> GetHttpHeader() => this.CurrentContextLogger.GetHttpHeader(); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
using System.Diagnostics.CodeAnalysis; | ||
using System.Threading.Tasks; | ||
using Microsoft.AspNetCore.Http; | ||
|
||
namespace ChromeLogger | ||
{ | ||
[SuppressMessage("ReSharper", "UnusedMember.Global")] | ||
[SuppressMessage("ReSharper", "ClassNeverInstantiated.Global")] | ||
public class ChromeLoggerMiddleware | ||
{ | ||
readonly RequestDelegate _next; | ||
readonly IChromeLogger _chromeLogger; | ||
|
||
public ChromeLoggerMiddleware(RequestDelegate next, IChromeLogger chromeLogger) | ||
{ | ||
this._next = next; | ||
this._chromeLogger = chromeLogger; | ||
} | ||
|
||
public Task Invoke(HttpContext context) | ||
{ | ||
context.Response.OnStarting( | ||
h => | ||
{ | ||
var headers = (IHeaderDictionary)h; | ||
var header = this._chromeLogger.GetHttpHeader(); | ||
headers[header.Key] = header.Value; | ||
return Task.CompletedTask; | ||
}, | ||
context.Response.Headers); | ||
|
||
return this._next(context); | ||
} | ||
} | ||
} |
Oops, something went wrong.