Logging support added.

This commit is contained in:
Andrey Shabarshov 2022-02-02 17:25:54 +00:00
parent bde2f53f59
commit 55428f92f3
7 changed files with 71 additions and 14 deletions

View File

@ -9,7 +9,7 @@ namespace QRBee.Droid.Services
{ {
internal class LocalSettings : ILocalSettings internal class LocalSettings : ILocalSettings
{ {
public string QRBeeApiUrl => "https://localhost:5000"; public string QRBeeApiUrl => "https://192.169.0.12:5000";
public async Task SaveSettings(Settings settings) public async Task SaveSettings(Settings settings)
{ {

View File

@ -16,6 +16,19 @@ namespace QRBee.ViewModels
public RegisterViewModel() public RegisterViewModel()
{ {
RegisterCommand = new Command(OnRegisterClicked); RegisterCommand = new Command(OnRegisterClicked);
var localSettings = DependencyService.Resolve<ILocalSettings>();
var settings = localSettings.LoadSettings();
Name = settings.Name;
Email = settings.Email;
DateOfBirth = settings.DateOfBirth;
CardNumber = settings.CardNumber;
ValidFrom = settings.ValidFrom;
ExpirationDate = settings.ExpirationDate;
CardHolderName = settings.CardHolderName;
CVC = settings.CVC;
IssueNo = settings.IssueNo;
} }
public Command RegisterCommand public Command RegisterCommand
@ -102,12 +115,16 @@ namespace QRBee.ViewModels
RegisterAsMerchant = false RegisterAsMerchant = false
}); });
var page = Application.Current.MainPage.Navigation.NavigationStack.LastOrDefault();
await page.DisplayAlert("Success", "You have been registered successfully", "Ok");
await Shell.Current.GoToAsync($"//{nameof(MainPage)}"); await Shell.Current.GoToAsync($"//{nameof(MainPage)}");
} }
catch (Exception) catch (Exception e)
{ {
//TODO: delete exception message in error message
var page = Application.Current.MainPage.Navigation.NavigationStack.LastOrDefault(); var page = Application.Current.MainPage.Navigation.NavigationStack.LastOrDefault();
await page.DisplayAlert("Error", "The Backend isn't working", "Ok"); await page.DisplayAlert("Error", $"The Backend isn't working: {e.Message}", "Ok");
} }
} }

View File

@ -12,15 +12,18 @@ namespace QRBee.Api.Controllers
public class QRBeeController : ControllerBase public class QRBeeController : ControllerBase
{ {
private readonly IQRBeeAPI _service; private readonly IQRBeeAPI _service;
private readonly ILogger<QRBeeController> _logger;
public QRBeeController(IQRBeeAPI service) public QRBeeController(IQRBeeAPI service, ILogger<QRBeeController> logger)
{ {
_service = service; _service = service;
_logger = logger;
} }
[HttpPost("Register")] [HttpPost("Register")]
public Task<RegistrationResponse> Register([FromBody] RegistrationRequest value) public Task<RegistrationResponse> Register([FromBody] RegistrationRequest value)
{ {
_logger.LogDebug($"Trying to register user {value.Name}");
return _service.Register(value); return _service.Register(value);
} }

View File

@ -1,3 +1,4 @@
using log4net;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
using MongoDB.Driver; using MongoDB.Driver;
using QRBee.Api; using QRBee.Api;
@ -6,6 +7,14 @@ using QRBee.Api.Services.Database;
var builder = WebApplication.CreateBuilder(args); var builder = WebApplication.CreateBuilder(args);
builder.Host.ConfigureLogging(logging =>
{
logging.ClearProviders();
GlobalContext.Properties["LOGS_ROOT"] = Environment.GetEnvironmentVariable("LOGS_ROOT") ?? "";
logging.AddLog4Net("log4net.config");
});
// Add services to the container. // Add services to the container.
builder.Services.AddControllers(); builder.Services.AddControllers();

View File

@ -12,19 +12,12 @@
"QRBeeApi": { "QRBeeApi": {
"commandName": "Project", "commandName": "Project",
"dotnetRunMessages": true, "dotnetRunMessages": true,
"launchBrowser": true, "launchBrowser": false,
"launchUrl": "swagger", "launchUrl": "swagger",
"applicationUrl": "https://localhost:7000;http://localhost:5000", "applicationUrl": "https://localhost:7000;http://localhost:5000",
"environmentVariables": { "environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development" "ASPNETCORE_ENVIRONMENT": "Development",
} "LOGS_ROOT": "C:\\Users\\andre\\logs"
},
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"launchUrl": "swagger",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
} }
} }
} }

View File

@ -8,6 +8,7 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.Extensions.Logging.Log4Net.AspNetCore" Version="6.1.0" />
<PackageReference Include="MongoDB.Driver" Version="2.14.1" /> <PackageReference Include="MongoDB.Driver" Version="2.14.1" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.2.3" /> <PackageReference Include="Swashbuckle.AspNetCore" Version="6.2.3" />
</ItemGroup> </ItemGroup>

34
QRBeeApi/log4net.config Normal file
View File

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="utf-8" ?>
<log4net>
<appender name="DebugAppender" type="log4net.Appender.DebugAppender" >
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
</layout>
</appender>
<appender name="Console" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<!-- Pattern to output the caller's file name and line number -->
<conversionPattern value="%5level [%thread] (%file:%line) - %message%newline" />
</layout>
</appender>
<appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
<file value="${LOGS_ROOT}\QRBeeAPI.log" />
<appendToFile value="false" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="50MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %-5level[%logger]: %message%newline" />
</layout>
</appender>
<root>
<level value="ALL"/>
<appender-ref ref="DebugAppender" />
<appender-ref ref="Console" />
<appender-ref ref="RollingFile" />
</root>
</log4net>