using System.Runtime.CompilerServices; using System.Text; using System.Security.Cryptography; using Newtonsoft.Json; using NLog; using NLog.AWS.Logger; using NLog.Targets.Wrappers; using NLog.Config; using NLog.Layouts; using Amazon.Runtime; namespace ServerCore { //public class ServerLog //{ // //static NLog.Logger log = LogManager.GetCurrentClassLogger(); // static NLog.Logger log = LogManager.GetLogger("Developer"); // public ServerLog() // { // } // private static string _serverType = string.Empty; // private static string _ipPort = string.Empty; // public static void Init( string serverType, string ip, int port // , string? logGroup = null // , string? logNamePattern = null // , string? logLevel = null // , string? awsRegion = null // , string? awsAccessKey = null // , string? awsSecretKey = null // , Layout? layout = null) // { // _serverType = serverType; // //StringBuilder stringBuilder= new StringBuilder(); // //stringBuilder.AppendFormat(); // _ipPort = $"{ip}:{port}"; // //LogManager.Configuration.Variables["LogPath"] = "./"; // //LogManager.Configuration.Variables["LogFileName"] = ""; // if (logGroup == string.Empty || logGroup is null || // logNamePattern == string.Empty || logNamePattern is null || // logLevel == string.Empty || logLevel is null || // awsRegion == string.Empty || awsRegion is null || // awsAccessKey == string.Empty || awsAccessKey is null || // awsSecretKey == string.Empty || awsSecretKey is null) // { // return; // } // try // { // CloudWatchLogInit(logGroup, logNamePattern, logLevel, awsRegion, awsAccessKey, awsSecretKey, layout); // } // catch // { // Log.getLogger().error($"CloudWatchLogInit Error!!! {logGroup}, {logNamePattern}, {logLevel}, {awsRegion}, {awsAccessKey}, {awsSecretKey}"); // return; // } // } // public static void End() // { // LogManager.Shutdown(); // } // private static void CloudWatchLogInit( string? logGroup, string? namePattern, string? logLevel // , string? awsRegion, string? awsAccessKey, string? awsSecretKey // , Layout? layout) // { // var current_config = LogManager.Configuration; // var aws_target = new AWSTarget() // { // LogGroup = logGroup, // Region = awsRegion, // Credentials = new BasicAWSCredentials(awsAccessKey, awsSecretKey), // Layout = layout // }; // var newRule = new LoggingRule(namePattern, LogLevel.FromString(logLevel), aws_target); // current_config.LoggingRules.Add(newRule); // LogManager.ReconfigExistingLoggers(); // } // public static string GenerateRandomUniqueKey() // { // int length = 16; // const string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; // byte[] randomBytes = new byte[length]; // string nowTime = DateTimeOffset.Now.ToUnixTimeMilliseconds().ToString(); // using (RandomNumberGenerator rng = RandomNumberGenerator.Create()) // { // rng.GetBytes(randomBytes); // } // StringBuilder result = new StringBuilder(length + nowTime.Length); // foreach (byte b in randomBytes) // { // result.Append(chars[b % chars.Length]); // } // result.Append(nowTime); // return result.ToString(); // } // public static void Trace(string message, // string player = "", // [CallerMemberName] string memberName = "", // [CallerFilePath] string sourceFilePath = "", // [CallerLineNumber] int sourceLineNumber = 0) // { // LogEventInfo logEventInfo = new LogEventInfo(LogLevel.Trace, null, message); // logEventInfo.Properties["player"] = player; // logEventInfo.Properties["memberName"] = memberName; // logEventInfo.Properties["filePath"] = sourceFilePath; // logEventInfo.Properties["lineNumber"] = sourceLineNumber; // logEventInfo.Properties["server"] = _serverType; // logEventInfo.Properties["ipport"] = _ipPort; // log.Trace(logEventInfo); // } // public static void Debug(string message, // string player = "", // [CallerMemberName] string memberName = "", // [CallerFilePath] string sourceFilePath = "", // [CallerLineNumber] int sourceLineNumber = 0) // { // LogEventInfo logEventInfo = new LogEventInfo(LogLevel.Debug, null, message); // logEventInfo.Properties["player"] = player; // logEventInfo.Properties["memberName"] = memberName; // logEventInfo.Properties["filePath"] = sourceFilePath; // logEventInfo.Properties["lineNumber"] = sourceLineNumber; // logEventInfo.Properties["server"] = _serverType; // logEventInfo.Properties["ipport"] = _ipPort; // log.Debug(logEventInfo); // } // public static void Info(string message, // string player = "", // [CallerMemberName] string memberName = "", // [CallerFilePath] string sourceFilePath = "", // [CallerLineNumber] int sourceLineNumber = 0) // { // LogEventInfo logEventInfo = new LogEventInfo(LogLevel.Info, null, message); // logEventInfo.Properties["player"] = player; // logEventInfo.Properties["memberName"] = memberName; // logEventInfo.Properties["filePath"] = sourceFilePath; // logEventInfo.Properties["lineNumber"] = sourceLineNumber; // logEventInfo.Properties["server"] = _serverType; // logEventInfo.Properties["ipport"] = _ipPort; // log.Info(logEventInfo); // } // /* // static public void Info(string message, IReadOnlyList> eventProperties, // string player = "", // [CallerMemberName] string memberName = "", // [CallerFilePath] string sourceFilePath = "", // [CallerLineNumber] int sourceLineNumber = 0) // { // var jsonProperties = new Dictionary(); // foreach (var property in eventProperties) // { // var key = property.Key.ToString(); // if (key == null) continue; // jsonProperties[key] = property.Value; // } // string jsonEventProperties = JsonConvert.SerializeObject(jsonProperties); // LogEventInfo logEventInfo = new LogEventInfo(LogLevel.Info, null, message); // logEventInfo.Properties["memberName"] = memberName; // logEventInfo.Properties["player"] = player; // logEventInfo.Properties["properties"] = jsonEventProperties; // logEventInfo.Properties["filePath"] = sourceFilePath; // logEventInfo.Properties["lineNumber"] = sourceLineNumber; // logEventInfo.Properties["server"] = _serverType; // logEventInfo.Properties["ipport"] = _ipPort; // log.Info(logEventInfo); // }*/ // public static void Warn(string message, // string player = "", // [CallerMemberName] string memberName = "", // [CallerFilePath] string sourceFilePath = "", // [CallerLineNumber] int sourceLineNumber = 0) // { // LogEventInfo logEventInfo = new LogEventInfo(LogLevel.Warn, null, message); // logEventInfo.Properties["player"] = player; // logEventInfo.Properties["filePath"] = sourceFilePath; // logEventInfo.Properties["lineNumber"] = sourceLineNumber; // logEventInfo.Properties["memberName"] = memberName; // logEventInfo.Properties["server"] = _serverType; // logEventInfo.Properties["ipport"] = _ipPort; // log.Warn(logEventInfo); // } // public static void Error(string message, // string player = "", // [CallerMemberName] string memberName = "", // [CallerFilePath] string sourceFilePath = "", // [CallerLineNumber] int sourceLineNumber = 0) // { // LogEventInfo logEventInfo = new LogEventInfo(LogLevel.Error, null, message); // logEventInfo.Properties["player"] = player; // logEventInfo.Properties["filePath"] = sourceFilePath; // logEventInfo.Properties["lineNumber"] = sourceLineNumber; // logEventInfo.Properties["memberName"] = memberName; // logEventInfo.Properties["server"] = _serverType; // logEventInfo.Properties["ipport"] = _ipPort; // log.Error(logEventInfo); // } // public static void Fatal(string message, // string player = "", // [CallerMemberName] string memberName = "", // [CallerFilePath] string sourceFilePath = "", // [CallerLineNumber] int sourceLineNumber = 0) // { // LogEventInfo logEventInfo = new LogEventInfo(LogLevel.Fatal, null, message); // logEventInfo.Properties["player"] = player; // logEventInfo.Properties["filePath"] = sourceFilePath; // logEventInfo.Properties["lineNumber"] = sourceLineNumber; // logEventInfo.Properties["memberName"] = memberName; // logEventInfo.Properties["server"] = _serverType; // logEventInfo.Properties["ipport"] = _ipPort; // log.Fatal(logEventInfo); // } // public static void Sequence(string sender, string receiver, string message, string errDesc = "") // { // NLog.Logger sequence_logger = LogManager.GetLogger("SequenceLogger"); // LogEventInfo logEventInfo = new LogEventInfo(LogLevel.Debug, "SequenceLogger", message); // logEventInfo.Properties["sender"] = sender; // logEventInfo.Properties["receiver"] = receiver; // logEventInfo.Properties["errordesc"] = (errDesc == string.Empty || errDesc.Contains("Success") == true ? $"{errDesc}" : $"ERR-{errDesc}"); // sequence_logger.Debug(logEventInfo); // } //} }