Created
February 8, 2022 12:49
-
-
Save coultonluke/f630bdeb8c5567d19d06a85ebbb79009 to your computer and use it in GitHub Desktop.
NLog Doesn't work in this example with LambdaEntryPoint
This file contains hidden or 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
using Microsoft.AspNetCore.Hosting; | |
using Microsoft.Extensions.Hosting; | |
using Microsoft.Extensions.Logging; | |
using NLog; | |
using NLog.Extensions.Logging; | |
using NLog.Web; | |
namespace riderlambdatest | |
{ | |
/// <summary> | |
/// This class extends from APIGatewayProxyFunction which contains the method FunctionHandlerAsync which is the | |
/// actual Lambda function entry point. The Lambda handler field should be set to | |
/// | |
/// riderlambdatest::riderlambdatest.LambdaEntryPoint::FunctionHandlerAsync | |
/// </summary> | |
public class LambdaEntryPoint : | |
// The base class must be set to match the AWS service invoking the Lambda function. If not Amazon.Lambda.AspNetCoreServer | |
// will fail to convert the incoming request correctly into a valid ASP.NET Core request. | |
// | |
// API Gateway REST API -> Amazon.Lambda.AspNetCoreServer.APIGatewayProxyFunction | |
// API Gateway HTTP API payload version 1.0 -> Amazon.Lambda.AspNetCoreServer.APIGatewayProxyFunction | |
// API Gateway HTTP API payload version 2.0 -> Amazon.Lambda.AspNetCoreServer.APIGatewayHttpApiV2ProxyFunction | |
// Application Load Balancer -> Amazon.Lambda.AspNetCoreServer.ApplicationLoadBalancerFunction | |
// | |
// Note: When using the AWS::Serverless::Function resource with an event type of "HttpApi" then payload version 2.0 | |
// will be the default and you must make Amazon.Lambda.AspNetCoreServer.APIGatewayHttpApiV2ProxyFunction the base class. | |
Amazon.Lambda.AspNetCoreServer.ApplicationLoadBalancerFunction | |
{ | |
/// <summary> | |
/// The builder has configuration, logging and Amazon API Gateway already configured. The startup class | |
/// needs to be configured in this method using the UseStartup<>() method. | |
/// </summary> | |
/// <param name="builder"></param> | |
protected override void Init(IWebHostBuilder builder) | |
{ | |
var logger = NLog.LogManager.Setup().LoadConfigurationFromAppSettings().GetCurrentClassLogger(); | |
builder | |
.UseStartup<Startup>() | |
.ConfigureLogging(logging => | |
{ | |
logging.ClearProviders(); | |
logging.AddNLog(); | |
}).UseNLog(); | |
} | |
/// <summary> | |
/// Use this override to customize the services registered with the IHostBuilder. | |
/// | |
/// It is recommended not to call ConfigureWebHostDefaults to configure the IWebHostBuilder inside this method. | |
/// Instead customize the IWebHostBuilder in the Init(IWebHostBuilder) overload. | |
/// </summary> | |
/// <param name="builder"></param> | |
protected override void Init(IHostBuilder builder) | |
{ | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment