移动系统liao
2024-05-29 f8ed0a1ee63cad489c67caaf76e9527a06da2947
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<?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" autoReload="true" throwExceptions="false" internalLogLevel="Off" internalLogFile="NlogRecords.log">
  <!--Nlog内部日志记录为Off关闭。除非纠错,不可以设为Trace否则速度很慢,起码Debug以上-->
  <extensions>
    <add assembly="NLog.Web.AspNetCore" />
  </extensions>
  <targets>
    <!--通过数据库记录日志 配置
    dbProvider请选择mysql或是sqlserver,同时注意连接字符串,需要安装对应的sql数据提供程序
    MYSQL:
    dbProvider="MySql.Data.MySqlClient.MySqlConnection, MySql.Data"
    connectionString="server=localhost;database=BaseMIS;user=root;password=123456"
    MSSQL:
    dbProvider="Microsoft.Data.SqlClient.SqlConnection, Microsoft.Data.SqlClient"
    connectionString="Server=127.0.0.1;Database=BaseMIS;User ID=sa;Password=123456"
    -->
    <target name="log_database" xsi:type="Database" dbProvider="Microsoft.Data.SqlClient.SqlConnection, Microsoft.Data.SqlClient" connectionString="Server=MS-FSEUTNLCXFDB\SQLEXPRESS;Database=CoreShopProfessional;MultipleActiveResultSets=true;pooling=true;min pool size=5;max pool size=32767;connect timeout=20;Encrypt=True;TrustServerCertificate=True;integrated security=True;">
      <commandText>
        INSERT INTO SysNLogRecords
        (LogDate,LogLevel,LogType,LogTitle,Logger,Message,MachineName,MachineIp,NetRequestMethod
        ,NetRequestUrl,NetUserIsauthenticated,NetUserAuthtype,NetUserIdentity,Exception)
        VALUES
        (@LogDate,@LogLevel,@LogType,@LogTitle,@Logger,@Message,@MachineName,@MachineIp,@NetRequestMethod
        ,@NetRequestUrl,@NetUserIsauthenticated,@NetUserAuthtype,@NetUserIdentity,@Exception);
      </commandText>
      <parameter name="@LogDate" layout="${date}" />
      <parameter name="@LogLevel" layout="${level}" />
      <parameter name="@LogType" layout="${event-properties:item=LogType}" />
      <parameter name="@LogTitle" layout="${event-properties:item=LogTitle}" />
      <parameter name="@Logger" layout="${logger}" />
      <parameter name="@Message" layout="${message}" />
      <parameter name="@MachineName" layout="${machinename}" />
      <parameter name="@MachineIp" layout="${aspnet-request-ip}" />
      <parameter name="@NetRequestMethod" layout="${aspnet-request-method}" />
      <parameter name="@NetRequestUrl" layout="${aspnet-request-url}" />
      <parameter name="@NetUserIsauthenticated" layout="${aspnet-user-isauthenticated}" />
      <parameter name="@NetUserAuthtype" layout="${aspnet-user-authtype}" />
      <parameter name="@NetUserIdentity" layout="${aspnet-user-identity}" />
      <parameter name="@Exception" layout="${exception:tostring}" />
    </target>
    <target xsi:type="File" name="log_file" fileName="${basedir}/App_Data/nlog/${date:format=yyyy-MM}/${level}-${shortdate}.csv" encoding="utf-8">
      <layout xsi:type="CSVLayout">
        <column name="date" layout="${date}" />
        <column name="LogTitle" layout="${event-properties:item=LogTitle}" />
        <column name="message" layout="${message}" />
        <column name="exception" layout="${exception:format=tostring}" />
        <column name="machinename" layout="${machinename}" />
        <column name="appdomain" layout="${appdomain}" />
        <column name="assembly-version" layout=" ${assembly-version}" />
        <column name="basedir" layout="${basedir}" />
        <column name="callsite" layout="${callsite}" />
        <column name="counter" layout="${counter}" />
        <column name="nlogdir" layout="${nlogdir}" />
        <column name="processid" layout="${processid}" />
        <column name="processname" layout="${processname}" />
        <column name="specialfolder" layout="${specialfolder}" />
        <column name="stacktrace" layout="${stacktrace}" />
        <column name="longdate" layout="${longdate}" />
        <column name="event-properties" layout="${event-properties:item=EventId_Id}" />
        <column name="uppercase" layout="${uppercase:${level}}" />
        <column name="logger" layout="${logger}" />
        <column name="url" layout="${aspnet-request-url}" />
        <column name="action" layout="${aspnet-mvc-action}" />
      </layout>
    </target>
  </targets>
  <rules>
    <!--跳过所有级别的Microsoft组件的日志记录-->
    <logger name="Microsoft.*" final="true" />
    <!-- BlackHole without writeTo -->
    <!--只通过数据库记录日志,如果给了name名字,cs里用日志记录的时候,取logger需要把name当做参数-->
    <logger name="logdb" writeTo="log_database" />
    <logger name="logfile" writeTo="log_file" />
  </rules>
</nlog>