Nlog-动态修改DatabaseTarget,对数据库字符串进行加密
2023-04-18 16:24:26 博客园


(资料图)

private static Logger processLogger;  // ① LnProcessDBLog标签 LogManager.GetLogger("LnProcessDBLog");②使用前先保证不为null,否则InitNlog();    // 修改Nlog.config配置的文件    private static void InitNlog()    {        LoggingConfiguration loggingConfiguration = NLog.LogManager.Configuration;        var rule = loggingConfiguration.LoggingRules.Where(a => a.LoggerNamePattern == "LnProcessDBLog")?.FirstOrDefault();        // 方式一:        //var targetDB = rule.target....FirstOrDefault() ;  // 找到DatabaseTarget;不能转化为DatabaseTarget        //targetDB.con  // 找不到类型且找到也不可修改,只有get属性            // 方式二:先删除再添加新的        if (rule != null)        {            loggingConfiguration.LoggingRules.Remove(rule);  // 移除原来的DatabaseTarget配置        }        var logDatabase = new NLog.Targets.DatabaseTarget("LnProcessDBLog");        logDatabase.DBProvider = "System.Data.SqlClient";  // 使用的连接类库        string _connectionString = ConfigurationManager.AppSettings["DefaultConnection"];  // 加密的连接字符串        logDatabase.ConnectionString = AESEncryptHelper.Decode(_connectionString);  // 解密连接字符串        logDatabase.CommandType = CommandType.Text;  // 默认为CommandType.Text        logDatabase.CommandText = @"INSERT INTO [SYS_LOG_DETAILS]([LogDate],[LogThread],[LogLevel],[LogLogger],[LogMessage],[LogActionClick],[UserName],[UserIP],[LogOrder]) VALUES(@LogDate,@LogThread,@LogLevel,@LogLogger,@LogMessage,@LogActionClick,@UserName,@UserIP,@LogOrder)";        logDatabase.Parameters.Add(new DatabaseParameterInfo() { Name = "@LogDate", Layout = "${event-properties:item=LogDate}" });        logDatabase.Parameters.Add(new DatabaseParameterInfo() { Name = "@LogThread", Layout = "${event-properties:item=LogThread}" });        logDatabase.Parameters.Add(new DatabaseParameterInfo() { Name = "@LogLevel", Layout = "${event-properties:item=LogLevel}" });        logDatabase.Parameters.Add(new DatabaseParameterInfo() { Name = "@LogLogger", Layout = "${event-properties:item=LogLogger}" });        logDatabase.Parameters.Add(new DatabaseParameterInfo() { Name = "@LogMessage", Layout = "${event-properties:item=LogMessage}" });        logDatabase.Parameters.Add(new DatabaseParameterInfo() { Name = "@LogActionClick", Layout = "${event-properties:item=LogActionClick}" });        logDatabase.Parameters.Add(new DatabaseParameterInfo() { Name = "@LogOrder", Layout = "测试" });        logDatabase.Parameters.Add(new DatabaseParameterInfo() { Name = "@UserName", Layout = "${event-properties:item=UserName}" });        logDatabase.Parameters.Add(new DatabaseParameterInfo() { Name = "@UserIP", Layout = "${event-properties:item=UserIP}" });        loggingConfiguration.AddRule(LogLevel.Trace, LogLevel.Fatal, logDatabase, "LnProcessDBLog", true);  // 添加新的DatabaseTarget配置        NLog.LogManager.Configuration = loggingConfiguration;  // 赋值给NLog.LogManager.Configuration。        processLogger = LogManager.GetLogger("LnProcessDBLog");  // 重新给全局变量赋值。    }

热门推荐

文章排行

  1. 2023-04-18Nlog-动态修改DatabaseTarget,对数据库字符串进行加密
  2. 2023-04-18500MW!山东樊星建设工程发布2023年度光伏设备框架招标
  3. 2023-04-18大湾区营商景气指数回升 专家:企业已经重拾信心
  4. 2023-04-18全球热门:北向资金净买入22.64亿元 交易活跃度下降
  5. 2023-04-18当前滚动:小侨提醒:入境各国到底该带多少现金? 天天快播报
  6. 2023-04-18微波炉为什么不能烤红薯 微波炉烤红薯要多长时间_精选
  7. 2023-04-18世界观天下!游戏引擎巨头Unity将在上海车展首发智能座舱解决方案
  8. 2023-04-18谷歌正在开发全新搜索引擎 Magi
  9. 2023-04-18穆勒:相信拜仁仍有机会晋级 80分钟时扳成2-3是有可能的_环球快播
  10. 2023-04-18全球最资讯丨深圳龙华挂牌两宗产业地块 分别拟建设计产业园及集成电路相关基地
  11. 2023-04-181017海贼王(1017)_世界热点评
  12. 2023-04-18企业信心转强 湾区营商指数全线扬
  13. 2023-04-18今日关注:光库科技:公司没有参与上述您所提及的相关标准的制定工作
  14. 2023-04-18当前焦点!29℃→9℃,冷空气+降雨来袭!河北未来几天……
  15. 2023-04-18新资讯:4月17日基金净值:南方中证房地产ETF最新净值0.7065,跌0.17%
  16. 2023-04-18养生壶煮红茶的正确方法 养生壶如何煮红茶|精选
  17. 2023-04-17俩开头的成语 俩开头的成语接龙-视讯
  18. 2023-04-17最佳健身美女奥伦卡·库林希热卖相册|天天速读
  19. 2023-04-17环球今日报丨青龙管业:拟发行可转债募资不超过4亿元
  20. 2023-04-17天津身份证补领办理指南(材料+时限) 每日热门