Localize log messages

This commit is contained in:
hishamco 2020-11-27 21:48:52 +03:00
parent f6fafbfcfa
commit 2ea0b7199b

View File

@ -1,15 +1,14 @@
using Oqtane.Shared;
using System; using System;
using Oqtane.Models;
using System.Text.Json;
using Microsoft.Extensions.Configuration;
using Microsoft.AspNetCore.Http;
using System.Collections.Generic; using System.Collections.Generic;
using System.Text.Json;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Localization;
using Oqtane.Enums; using Oqtane.Enums;
using Oqtane.Models;
using Oqtane.Repository; using Oqtane.Repository;
using Oqtane.Security; using Oqtane.Security;
// ReSharper disable StringIndexOfIsCultureSpecific.2 using Oqtane.Shared;
// ReSharper disable StringIndexOfIsCultureSpecific.1
namespace Oqtane.Infrastructure namespace Oqtane.Infrastructure
{ {
@ -20,14 +19,16 @@ namespace Oqtane.Infrastructure
private readonly IConfigurationRoot _config; private readonly IConfigurationRoot _config;
private readonly IUserPermissions _userPermissions; private readonly IUserPermissions _userPermissions;
private readonly IHttpContextAccessor _accessor; private readonly IHttpContextAccessor _accessor;
private readonly IStringLocalizer _localizer;
public LogManager(ILogRepository logs, ITenantResolver tenantResolver, IConfigurationRoot config, IUserPermissions userPermissions, IHttpContextAccessor accessor) public LogManager(ILogRepository logs, ITenantResolver tenantResolver, IConfigurationRoot config, IUserPermissions userPermissions, IHttpContextAccessor accessor, IStringLocalizer<LogManager> localizer)
{ {
_logs = logs; _logs = logs;
_tenantResolver = tenantResolver; _tenantResolver = tenantResolver;
_config = config; _config = config;
_userPermissions = userPermissions; _userPermissions = userPermissions;
_accessor = accessor; _accessor = accessor;
_localizer = localizer;
} }
public void Log(LogLevel level, object @class, LogFunction function, string message, params object[] args) public void Log(LogLevel level, object @class, LogFunction function, string message, params object[] args)
@ -123,6 +124,7 @@ namespace Oqtane.Infrastructure
log.LogDate = DateTime.UtcNow; log.LogDate = DateTime.UtcNow;
log.Server = Environment.MachineName; log.Server = Environment.MachineName;
log.MessageTemplate = log.Message; log.MessageTemplate = log.Message;
log.Message = _localizer[log.Message];
log = ProcessStructuredLog(log); log = ProcessStructuredLog(log);
try try
{ {