NLog.config 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"
  5. autoReload="true"
  6. throwExceptions="false"
  7. internalLogLevel="Warn"
  8. internalLogFile="Logs/nlog-internal.log">
  9. <!--internalLogLevel="Off"-->
  10. <!-- optional, add some variables
  11. https://github.com/nlog/NLog/wiki/Configuration-file#variables
  12. -->
  13. <variable name="myvar" value="myvalue"/>
  14. <!--
  15. See https://github.com/nlog/nlog/wiki/Configuration-file
  16. for information on customizing logging rules and outputs.
  17. -->
  18. <extensions>
  19. <add assembly="NLog.Mongo"/>
  20. </extensions>
  21. <targets>
  22. <!-- write logs to file -->
  23. <target xsi:type="File" name="allfile" fileName="logs/${date:format=yyyy-MM-dd}/log.txt"
  24. layout="------------------------------------------${newline}${longdate} | ${uppercase:${level}} | ${logger} ${newline}${message} ${exception} ${newline} | url: ${aspnet-request-url} | action: ${aspnet-mvc-action}" />
  25. <target xsi:type="Null" name="blackhole" />
  26. <target xsi:type="Database" name="database" dbProvider="MySql.Data.MySqlClient.MySqlConnection,Mysql.Data">
  27. <connectionString>${var:connectionString}</connectionString>
  28. <commandText>
  29. INSERT INTO log(Platform,Category,LogLevel,Module,Action,Message,RecCode,RecTime)
  30. VALUES (@applicationId,@category,@levels, @logger, @action, @message,@reccode,@operatingTime);
  31. </commandText>
  32. <parameter name="@application" layout="EapWeb" />
  33. <parameter name="@applicationId" layout="1" />
  34. <parameter name="@levels" layout="${level}" />
  35. <parameter name="@operatingTime" layout="${date}" />
  36. <parameter name="@operatingaddress" layout="${aspnet-Request-IP}" />
  37. <parameter name="@logger" layout="${logger}" />
  38. <parameter name="@callSite" layout="${callsite}" />
  39. <parameter name="@requesturl" layout="${aspnet-request-url}" />
  40. <parameter name="@referrerurl" layout="${aspnet-request}" />
  41. <parameter name="@action" layout="${aspnet-mvc-controller}/${aspnet-mvc-action}" />
  42. <parameter name="@controller" layout="${aspnet-mvc-controller}" />
  43. <parameter name="@message" layout="${message}" />
  44. <parameter name="@exception" layout="${exception:tostring}" />
  45. <parameter name="@category" layout="${event-properties:item=category}" />
  46. <parameter name="@reccode" layout="${event-properties:item=reccode}" />
  47. </target>
  48. <!--发送到RabbitMQ-->
  49. <!--<extensions>
  50. <add assembly="Nlog.RabbitMQ.Target" />
  51. </extensions>
  52. <targets async="true">
  53. <target name="RabbitMQTarget"
  54. xsi:type="RabbitMQ"
  55. username="admin"
  56. password="admin"
  57. hostname="192.168.56.30"
  58. port="5672"
  59. vhost="/"
  60. appid="NLog.RabbitMQ.XQ"
  61. topic="XQ.Logging.${level}"
  62. exchange="eap-service-log"
  63. exchangeType="topic"
  64. useJSON="true"
  65. layout="${newline}${longdate} | ${uppercase:${level}} | ${logger} ${newline}${message} ${exception} ${newline} | url: ${aspnet-request-url} | action: ${aspnet-mvc-action}" />
  66. </targets>-->
  67. <!--发送到MongoDb-->
  68. <target xsi:type="Mongo"
  69. name="mongo" databaseName="EapLog"
  70. collectionName="Logs"
  71. connectionString="mongodb://127.0.0.1:27017/EapLog"
  72. IncludeDefaults="false"
  73. >
  74. <Field name="Application" layout="EapWeb" />
  75. <Field name="ApplicationId" layout="1" />
  76. <Field name="Levels" layout="${level}" />
  77. <Field name="OperatingTime" layout="${date}" />
  78. <Field name="OperatingAddress" layout="${aspnet-Request-IP}" />
  79. <Field name="Logger" layout="${logger}" />
  80. <Field name="CallSite" layout="${callsite}" />
  81. <Field name="Requesturl" layout="${aspnet-request-url}" />
  82. <Field name="Referrerurl" layout="${aspnet-request}" />
  83. <Field name="Action" layout="${aspnet-mvc-controller}/${aspnet-mvc-action}" />
  84. <Field name="Controller" layout="${aspnet-mvc-controller}" />
  85. <Field name="Message" layout="${message}" />
  86. <Field name="Exception" layout="${exception:tostring}" />
  87. <Field name="Category" layout="${event-properties:item=category}" />
  88. <Field name="Reccode" layout="${event-properties:item=reccode}" />
  89. </target>
  90. </targets>
  91. <rules>
  92. <!--minlevel 改为Trace 跟踪全部 Error 只捕获异常-->
  93. <logger name="*" minlevel="Error" maxlevel="Fatal" writeTo="allfile" />
  94. <!--Skip Microsoft logs and so log only own logs-->
  95. <logger name="Microsoft.*" minlevel="Trace" writeTo="blackhole" final="true" />
  96. <!--<logger name="*" minlevel="Fatal" writeTo="mongo" />-->
  97. </rules>
  98. </nlog>