zoukankan      html  css  js  c++  java
  • Net Nlog 持久化到数据库

    1.添加Nuget: NLog

    2.配置 NLog.config

    <?xml version="1.0" encoding="utf-8" ?>
    <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"
          autoReload="true"
          throwExceptions="false"
          internalLogLevel="Off" internalLogFile="c:	emp
    log-internal.log">
        <variable name="myvar" value="myvalue"/>
        <targets>
            <target xsi:type="Database" name="rollfile_trace_db" connectionString="Data Source=xxx;Initial Catalog=xxx;User Id=xxx;Password=xxx">
                <commandText>
                    insert into Setting_Log([Code], [AddTime], [AddUser], [ControllerName], [ActionName], [Remark]) values (@Code, @AddTime, @AddUser, @ControllerName, @ActionName, @Remark);
                </commandText>
                <!--日志主键,添加时间,添加人-->
                <parameter name="@Code" layout="${event-properties:Code}"/>
                <parameter name="@AddTime" layout="${event-properties:AddTime}"/>
                <parameter name="@AddUser" layout="${event-properties:AddUser}"/>
                <!--触发控制器名,Action-->
                <parameter name="@ControllerName" layout="${event-properties:ControllerName}"/>
                <parameter name="@ActionName" layout="${event-properties:ActionName}"/>
                <!--日志信息-->
                <parameter name="@Remark" layout="${event-properties:Remark}"/>
            </target>
        </targets>
        <rules>
            <!--所有 Trace 等级日志会记录到DB,禁止设置其他 Trace 等级日志-->
            <logger name="*" level="Trace" writeTo="rollfile_trace_db" />
        </rules>
    </nlog>

    3.后端配置Nlog参数

            /// <summary>
            /// 日志记录到数据库
            /// </summary>
            /// <param name="code"></param>
            /// <param name="controllerName"></param>
            /// <param name="actionName"></param>
            /// <param name="remark"></param>
            public void Log(string code, string controllerName, string actionName, string remark)
            {
                var ei = new LogEventInfo();
                ei.Properties["Code"] = code;
                ei.Properties["AddTime"] = DateTimeExtend.GetValidDate.ToLongString();
                ei.Properties["AddUser"] = AuthTiketHelper.GetPersonNo();
                ei.Properties["ControllerName"] = controllerName;
                ei.Properties["ActionName"] = actionName;
                ei.Properties["Remark"] = remark;
                ei.Level = LogLevel.Trace;
                _logger.Log(ei);
            }
  • 相关阅读:
    命令行参数
    数组的使用
    Hello World 和 模块分解
    20155234 2016-2017-2 《Java程序设计》第2周学习总结
    20155234 2016-2017-2 《Java程序设计》第1 周学习总结
    与虚拟机和linux的初次接触
    优秀技能经验及对java学习展望
    预备作业01
    20155231 实验三 敏捷开发与XP实践
    20155231 第十一周课堂代码练习
  • 原文地址:https://www.cnblogs.com/Cailf/p/15138466.html
Copyright © 2011-2022 走看看