增加 对选住推送日志的监控

本质上就是自己用mongodb记录一下日志。
This commit is contained in:
2026-01-05 16:08:54 +08:00
parent 7c7386d9eb
commit b746a1da1a
12 changed files with 706 additions and 180 deletions

View File

@@ -7,13 +7,12 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Confluent.Kafka" Version="2.11.0" />
<PackageReference Include="Google.Protobuf" Version="3.32.0" />
<PackageReference Include="Confluent.Kafka" Version="2.12.0" />
<PackageReference Include="MessagePack" Version="3.1.4" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
<PackageReference Include="NLog" Version="6.0.2" />
<PackageReference Include="NLog.Schema" Version="6.0.2" />
<PackageReference Include="RestSharp" Version="112.1.0" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.4" />
<PackageReference Include="NLog" Version="6.0.7" />
<PackageReference Include="NLog.Schema" Version="6.0.7" />
<PackageReference Include="RestSharp" Version="113.0.0" />
</ItemGroup>
<ItemGroup>

View File

@@ -812,6 +812,7 @@
<xs:element name="ignoreCase" type="xs:boolean" minOccurs="0" maxOccurs="1" default="false" />
<xs:element name="text" type="xs:string" minOccurs="0" maxOccurs="1" />
<xs:element name="wholeWords" type="xs:boolean" minOccurs="0" maxOccurs="1" default="false" />
<xs:element name="words" type="xs:string" minOccurs="0" maxOccurs="1" />
</xs:choice>
<xs:attribute name="backgroundColor" type="NLog.Targets.ConsoleOutputColor">
<xs:annotation>
@@ -835,7 +836,7 @@
</xs:attribute>
<xs:attribute name="text" type="xs:string">
<xs:annotation>
<xs:documentation>Text to be matched. You must specify either text or regex.</xs:documentation>
<xs:documentation>Text to be matched for Highlighting.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="wholeWords" type="xs:boolean">
@@ -843,6 +844,11 @@
<xs:documentation>Indicates whether to match whole words only.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="words" type="xs:string">
<xs:annotation>
<xs:documentation>List of words to be matched for Highlighting.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="Console">
<xs:complexContent>
@@ -1829,7 +1835,7 @@
<xs:attribute name="gelfShortMessage" type="SimpleLayoutAttribute" />
<xs:attribute name="noDelay" type="xs:boolean">
<xs:annotation>
<xs:documentation>Whether to disable the delayed ACK timer, and avoid delay of 200 ms. Default = true.</xs:documentation>
<xs:documentation>Whether to disable the delayed ACK timer, and avoid delay of 200 ms.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="layout" type="SimpleLayoutAttribute" />
@@ -2411,7 +2417,7 @@
</xs:attribute>
<xs:attribute name="noDelay" type="xs:boolean">
<xs:annotation>
<xs:documentation>Whether to disable the delayed ACK timer, and avoid delay of 200 ms. Default = true.</xs:documentation>
<xs:documentation>Whether to disable the delayed ACK timer, and avoid delay of 200 ms.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="maxMessageSize" type="xs:integer">
@@ -2545,12 +2551,12 @@
<xs:element name="name" type="xs:string" minOccurs="0" maxOccurs="1" />
<xs:element name="header" type="Layout" minOccurs="0" maxOccurs="1" />
<xs:element name="footer" type="Layout" minOccurs="0" maxOccurs="1" />
<xs:element name="replaceNewlineWithBrTagInHtml" type="xs:boolean" minOccurs="0" maxOccurs="1" default="false" />
<xs:element name="priority" type="System.Net.Mail.MailPriority" minOccurs="0" maxOccurs="1" default="Normal" />
<xs:element name="mailheader" minOccurs="0" maxOccurs="unbounded" type="NLog.Targets.MethodCallParameter" />
<xs:element name="addNewLines" type="xs:boolean" minOccurs="0" maxOccurs="1" default="false" />
<xs:element name="encoding" type="xs:string" minOccurs="0" maxOccurs="1" default="utf-8" />
<xs:element name="bcc" type="Layout" minOccurs="0" maxOccurs="1" />
<xs:element name="replaceNewlineWithBrTagInHtml" type="xs:boolean" minOccurs="0" maxOccurs="1" default="false" />
<xs:element name="to" type="Layout" minOccurs="0" maxOccurs="1" />
<xs:element name="html" type="xs:boolean" minOccurs="0" maxOccurs="1" default="false" />
<xs:element name="from" type="Layout" minOccurs="0" maxOccurs="1" />
@@ -2558,18 +2564,18 @@
<xs:element name="subject" type="Layout" minOccurs="0" maxOccurs="1" />
<xs:element name="cc" type="Layout" minOccurs="0" maxOccurs="1" />
<xs:element name="layout" type="Layout" minOccurs="0" maxOccurs="1" />
<xs:element name="secureSocketOption" type="MailKit.Security.SecureSocketOptions" minOccurs="0" maxOccurs="1" default="StartTlsWhenAvailable" />
<xs:element name="requireTLS" type="xs:boolean" minOccurs="0" maxOccurs="1" />
<xs:element name="timeout" type="xs:integer" minOccurs="0" maxOccurs="1" default="10000" />
<xs:element name="pickupDirectoryLocation" type="Layout" minOccurs="0" maxOccurs="1" />
<xs:element name="smtpServer" type="Layout" minOccurs="0" maxOccurs="1" />
<xs:element name="timeout" type="xs:integer" minOccurs="0" maxOccurs="1" default="10000" />
<xs:element name="skipCertificateValidation" type="xs:boolean" minOccurs="0" maxOccurs="1" default="false" />
<xs:element name="smtpPort" type="xs:integer" minOccurs="0" maxOccurs="1" default="25" />
<xs:element name="enableSsl" type="xs:boolean" minOccurs="0" maxOccurs="1" default="false" />
<xs:element name="secureSocketOption" type="MailKit.Security.SecureSocketOptions" minOccurs="0" maxOccurs="1" default="StartTlsWhenAvailable" />
<xs:element name="smtpPassword" type="Layout" minOccurs="0" maxOccurs="1" />
<xs:element name="enableSsl" type="xs:boolean" minOccurs="0" maxOccurs="1" default="false" />
<xs:element name="smtpUserName" type="Layout" minOccurs="0" maxOccurs="1" />
<xs:element name="smtpAuthentication" type="NLog.Targets.SmtpAuthenticationMode" minOccurs="0" maxOccurs="1" default="None" />
<xs:element name="smtpServer" type="Layout" minOccurs="0" maxOccurs="1" />
<xs:element name="useSystemNetMailSettings" type="xs:boolean" minOccurs="0" maxOccurs="1" default="false" />
<xs:element name="skipCertificateValidation" type="xs:boolean" minOccurs="0" maxOccurs="1" />
<xs:element name="requireTLS" type="xs:boolean" minOccurs="0" maxOccurs="1" default="false" />
<xs:element name="deliveryMethod" type="System.Net.Mail.SmtpDeliveryMethod" minOccurs="0" maxOccurs="1" default="Network" />
</xs:choice>
<xs:attribute name="name" type="xs:string">
@@ -2587,11 +2593,6 @@
<xs:documentation>Footer.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="replaceNewlineWithBrTagInHtml" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates whether NewLine characters in the body should be replaced with tags.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="priority" type="System.Net.Mail.MailPriority">
<xs:annotation>
<xs:documentation>Priority used for sending mails.</xs:documentation>
@@ -2612,6 +2613,11 @@
<xs:documentation>BCC email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com).</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="replaceNewlineWithBrTagInHtml" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates whether NewLine characters in the body should be replaced with tags.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="to" type="SimpleLayoutAttribute">
<xs:annotation>
<xs:documentation>Recipients' email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com).</xs:documentation>
@@ -2643,14 +2649,9 @@
</xs:annotation>
</xs:attribute>
<xs:attribute name="layout" type="SimpleLayoutAttribute" />
<xs:attribute name="secureSocketOption" type="MailKit.Security.SecureSocketOptions">
<xs:attribute name="pickupDirectoryLocation" type="SimpleLayoutAttribute">
<xs:annotation>
<xs:documentation>Provides a way of specifying the SSL and/or TLS encryption If P:NLog.MailKit.MailTarget.EnableSsl is true, then F:MailKit.Security.SecureSocketOptions.SslOnConnect will be used.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="requireTLS" type="xs:boolean">
<xs:annotation>
<xs:documentation>Get or set whether the client should use the REQUIRETLS extension if it is available.</xs:documentation>
<xs:documentation>Folder where applications save mail messages to be processed by the local SMTP server.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="timeout" type="xs:integer">
@@ -2658,14 +2659,9 @@
<xs:documentation>Indicates the SMTP client timeout.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="pickupDirectoryLocation" type="SimpleLayoutAttribute">
<xs:attribute name="skipCertificateValidation" type="xs:boolean">
<xs:annotation>
<xs:documentation>Folder where applications save mail messages to be processed by the local SMTP server.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="smtpServer" type="SimpleLayoutAttribute">
<xs:annotation>
<xs:documentation>SMTP Server to be used for sending.</xs:documentation>
<xs:documentation>Indicates whether SmtpClient should ignore invalid certificate.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="smtpPort" type="xs:integer">
@@ -2673,9 +2669,9 @@
<xs:documentation>Port number that SMTP Server is listening on.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="enableSsl" type="xs:boolean">
<xs:attribute name="secureSocketOption" type="MailKit.Security.SecureSocketOptions">
<xs:annotation>
<xs:documentation>Indicates whether SSL (secure sockets layer) should be used when communicating with SMTP server.</xs:documentation>
<xs:documentation>Provides a way of specifying the SSL and/or TLS encryption If P:NLog.MailKit.MailTarget.EnableSsl is true, then F:MailKit.Security.SecureSocketOptions.SslOnConnect will be used.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="smtpPassword" type="SimpleLayoutAttribute">
@@ -2683,6 +2679,11 @@
<xs:documentation>Password used to authenticate against SMTP server (used when SmtpAuthentication is set to "basic").</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="enableSsl" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates whether SSL (secure sockets layer) should be used when communicating with SMTP server.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="smtpUserName" type="SimpleLayoutAttribute">
<xs:annotation>
<xs:documentation>Username used to connect to SMTP server (used when SmtpAuthentication is set to "basic").</xs:documentation>
@@ -2693,14 +2694,19 @@
<xs:documentation>SMTP Authentication mode.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="smtpServer" type="SimpleLayoutAttribute">
<xs:annotation>
<xs:documentation>SMTP Server to be used for sending.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="useSystemNetMailSettings" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates whether the default Settings from System.Net.MailSettings should be used.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="skipCertificateValidation" type="xs:boolean">
<xs:attribute name="requireTLS" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates whether SmtpClient should ignore invalid certificate.</xs:documentation>
<xs:documentation>Get or set whether the client should use the REQUIRETLS extension if it is available.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="deliveryMethod" type="System.Net.Mail.SmtpDeliveryMethod">
@@ -2732,6 +2738,7 @@
<xs:enumeration value="None" />
<xs:enumeration value="Basic" />
<xs:enumeration value="Ntlm" />
<xs:enumeration value="OAuth2" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="System.Net.Mail.SmtpDeliveryMethod">
@@ -3087,7 +3094,7 @@
</xs:attribute>
<xs:attribute name="noDelay" type="xs:boolean">
<xs:annotation>
<xs:documentation>Whether to disable the delayed ACK timer, and avoid delay of 200 ms. Default = true.</xs:documentation>
<xs:documentation>Whether to disable the delayed ACK timer, and avoid delay of 200 ms.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="maxMessageSize" type="xs:integer">
@@ -3133,7 +3140,7 @@
</xs:attribute>
<xs:attribute name="formatMessage" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates whether to perform layout calculation.</xs:documentation>
<xs:documentation>Indicates whether to render P:NLog.Targets.TargetWithLayout.Layout for LogEvent</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
@@ -3576,6 +3583,205 @@
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="Splunk">
<xs:complexContent>
<xs:extension base="Target">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="name" type="xs:string" minOccurs="0" maxOccurs="1" />
<xs:element name="sslCertificatePassword" type="Layout" minOccurs="0" maxOccurs="1" />
<xs:element name="sslCertificateFile" type="Layout" minOccurs="0" maxOccurs="1" />
<xs:element name="sslProtocols" type="System.Security.Authentication.SslProtocols" minOccurs="0" maxOccurs="1" default="None" />
<xs:element name="sendTimeoutSeconds" type="xs:integer" minOccurs="0" maxOccurs="1" default="100" />
<xs:element name="onOverflow" type="NLog.Targets.NetworkTargetOverflowAction" minOccurs="0" maxOccurs="1" default="Split" />
<xs:element name="onConnectionOverflow" type="NLog.Targets.NetworkTargetConnectionsOverflowAction" minOccurs="0" maxOccurs="1" default="Discard" />
<xs:element name="onQueueOverflow" type="NLog.Targets.NetworkTargetQueueOverflowAction" minOccurs="0" maxOccurs="1" default="Discard" />
<xs:element name="maxConnections" type="xs:integer" minOccurs="0" maxOccurs="1" default="100" />
<xs:element name="keepConnection" type="xs:boolean" minOccurs="0" maxOccurs="1" default="true" />
<xs:element name="keepAliveTimeSeconds" type="xs:integer" minOccurs="0" maxOccurs="1" default="0" />
<xs:element name="connectionCacheSize" type="xs:integer" minOccurs="0" maxOccurs="1" default="5" />
<xs:element name="address" type="Layout" minOccurs="0" maxOccurs="1" />
<xs:element name="maxQueueSize" type="xs:integer" minOccurs="0" maxOccurs="1" default="10000" />
<xs:element name="SplunkField" minOccurs="0" maxOccurs="unbounded" type="NLog.Layouts.JsonAttribute" />
<xs:element name="splunkSourceType" type="Layout" minOccurs="0" maxOccurs="1" />
<xs:element name="splunkSourceName" type="Layout" minOccurs="0" maxOccurs="1" />
<xs:element name="splunkIndex" type="Layout" minOccurs="0" maxOccurs="1" />
<xs:element name="splunkHostName" type="Layout" minOccurs="0" maxOccurs="1" />
<xs:element name="noDelay" type="xs:boolean" minOccurs="0" maxOccurs="1" default="true" />
<xs:element name="compressMinBytes" type="xs:integer" minOccurs="0" maxOccurs="1" default="0" />
<xs:element name="includeScopeProperties" type="xs:boolean" minOccurs="0" maxOccurs="1" default="false" />
<xs:element name="includeEventProperties" type="xs:boolean" minOccurs="0" maxOccurs="1" default="true" />
<xs:element name="excludeProperties" type="xs:string" minOccurs="0" maxOccurs="1" />
<xs:element name="excludeEmptyProperties" type="xs:boolean" minOccurs="0" maxOccurs="1" default="false" />
<xs:element name="compress" type="NLog.Targets.NetworkTargetCompressionType" minOccurs="0" maxOccurs="1" default="None" />
<xs:element name="layout" type="Layout" minOccurs="0" maxOccurs="1" />
<xs:element name="maxMessageSize" type="xs:integer" minOccurs="0" maxOccurs="1" default="65000" />
<xs:element name="encoding" type="xs:string" minOccurs="0" maxOccurs="1" default="utf-8" />
<xs:element name="lineEnding" type="LineEndingMode" minOccurs="0" maxOccurs="1" />
<xs:element name="newLine" type="xs:boolean" minOccurs="0" maxOccurs="1" default="true" />
</xs:choice>
<xs:attribute name="name" type="xs:string">
<xs:annotation>
<xs:documentation>Name of the target.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="sslCertificatePassword" type="SimpleLayoutAttribute">
<xs:annotation>
<xs:documentation>Password for the custom SSL certificate specified by P:NLog.Targets.NetworkTarget.SslCertificateFile</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="sslCertificateFile" type="SimpleLayoutAttribute">
<xs:annotation>
<xs:documentation>File path to custom SSL certificate for TCP Socket SSL connections</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="sslProtocols" type="System.Security.Authentication.SslProtocols">
<xs:annotation>
<xs:documentation>SSL/TLS protocols. Default no SSL/TLS is used. Currently only implemented for TCP.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="sendTimeoutSeconds" type="xs:integer">
<xs:annotation>
<xs:documentation>The number of seconds a TCP socket send-operation will block before timeout error. Default = 100 secs (0 = wait forever when network cable unplugged and tcp-buffer becomes full).</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="onOverflow" type="NLog.Targets.NetworkTargetOverflowAction">
<xs:annotation>
<xs:documentation>Action that should be taken if the message is larger than P:NLog.Targets.NetworkTarget.MaxMessageSize</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="onConnectionOverflow" type="NLog.Targets.NetworkTargetConnectionsOverflowAction">
<xs:annotation>
<xs:documentation>Action that should be taken, when more connections than P:NLog.Targets.NetworkTarget.MaxConnections.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="onQueueOverflow" type="NLog.Targets.NetworkTargetQueueOverflowAction">
<xs:annotation>
<xs:documentation>Action that should be taken, when more pending messages than P:NLog.Targets.NetworkTarget.MaxQueueSize.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="maxConnections" type="xs:integer">
<xs:annotation>
<xs:documentation>Maximum simultaneous connections. Requires P:NLog.Targets.NetworkTarget.KeepConnection = false</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="keepConnection" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates whether to keep connection open whenever possible.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="keepAliveTimeSeconds" type="xs:integer">
<xs:annotation>
<xs:documentation>The number of seconds a connection will remain idle before the first keep-alive probe is sent</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="connectionCacheSize" type="xs:integer">
<xs:annotation>
<xs:documentation>Size of the connection cache (number of connections which are kept alive). Requires P:NLog.Targets.NetworkTarget.KeepConnection = true</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="address" type="SimpleLayoutAttribute">
<xs:annotation>
<xs:documentation>Network destination address.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="maxQueueSize" type="xs:integer">
<xs:annotation>
<xs:documentation>Maximum queue size for a single connection. Requires P:NLog.Targets.NetworkTarget.KeepConnection = true</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="splunkSourceType" type="SimpleLayoutAttribute" />
<xs:attribute name="splunkSourceName" type="SimpleLayoutAttribute" />
<xs:attribute name="splunkIndex" type="SimpleLayoutAttribute" />
<xs:attribute name="splunkHostName" type="SimpleLayoutAttribute" />
<xs:attribute name="noDelay" type="xs:boolean">
<xs:annotation>
<xs:documentation>Whether to disable the delayed ACK timer, and avoid delay of 200 ms.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="compressMinBytes" type="xs:integer">
<xs:annotation>
<xs:documentation>Skip compression when protocol payload is below limit to reduce overhead in cpu-usage and additional headers</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="includeScopeProperties" type="xs:boolean" />
<xs:attribute name="includeEventProperties" type="xs:boolean" />
<xs:attribute name="excludeProperties" type="xs:string" />
<xs:attribute name="excludeEmptyProperties" type="xs:boolean" />
<xs:attribute name="compress" type="NLog.Targets.NetworkTargetCompressionType">
<xs:annotation>
<xs:documentation>Type of compression for protocol payload. Useful for UDP where datagram max-size is 8192 bytes.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="layout" type="SimpleLayoutAttribute" />
<xs:attribute name="maxMessageSize" type="xs:integer">
<xs:annotation>
<xs:documentation>Maximum message size in bytes. On limit breach then P:NLog.Targets.NetworkTarget.OnOverflow action is activated.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="encoding" type="xs:string">
<xs:annotation>
<xs:documentation>Encoding to be used.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="lineEnding" type="LineEndingMode">
<xs:annotation>
<xs:documentation>End of line value if a newline is appended at the end of log message P:NLog.Targets.NetworkTarget.NewLine.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="newLine" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates whether to append newline at the end of log message.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="NLog.Layouts.JsonAttribute">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="name" type="xs:string" minOccurs="0" maxOccurs="1" />
<xs:element name="layout" type="Layout" minOccurs="0" maxOccurs="1" />
<xs:element name="defaultValue" type="Layout" minOccurs="0" maxOccurs="1" />
<xs:element name="encode" type="xs:boolean" minOccurs="0" maxOccurs="1" default="true" />
<xs:element name="escapeUnicode" type="xs:boolean" minOccurs="0" maxOccurs="1" default="false" />
<xs:element name="includeEmptyValue" type="xs:boolean" minOccurs="0" maxOccurs="1" default="false" />
<xs:element name="valueType" type="xs:string" minOccurs="0" maxOccurs="1" />
</xs:choice>
<xs:attribute name="name" type="xs:string">
<xs:annotation>
<xs:documentation>Name of the attribute.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="layout" type="SimpleLayoutAttribute">
<xs:annotation>
<xs:documentation>Layout used for rendering the attribute value.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="defaultValue" type="SimpleLayoutAttribute">
<xs:annotation>
<xs:documentation>Fallback value when result value is not available</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="encode" type="xs:boolean">
<xs:annotation>
<xs:documentation>Whether output should be encoded as Json-String-Property, or be treated as valid json.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="escapeUnicode" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates whether to escape non-ascii characters</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="includeEmptyValue" type="xs:boolean">
<xs:annotation>
<xs:documentation>Whether empty attribute value should be included in the output.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="valueType" type="xs:string">
<xs:annotation>
<xs:documentation>Result value type, for conversion of layout rendering output</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="Syslog">
<xs:complexContent>
<xs:extension base="Target">
@@ -3700,7 +3906,7 @@
<xs:attribute name="rfc3164" type="xs:boolean" />
<xs:attribute name="noDelay" type="xs:boolean">
<xs:annotation>
<xs:documentation>Whether to disable the delayed ACK timer, and avoid delay of 200 ms. Default = true.</xs:documentation>
<xs:documentation>Whether to disable the delayed ACK timer, and avoid delay of 200 ms.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="includeEventProperties" type="xs:boolean" />
@@ -4218,52 +4424,6 @@
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="NLog.Layouts.JsonAttribute">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="name" type="xs:string" minOccurs="0" maxOccurs="1" />
<xs:element name="layout" type="Layout" minOccurs="0" maxOccurs="1" />
<xs:element name="defaultValue" type="Layout" minOccurs="0" maxOccurs="1" />
<xs:element name="encode" type="xs:boolean" minOccurs="0" maxOccurs="1" default="true" />
<xs:element name="escapeUnicode" type="xs:boolean" minOccurs="0" maxOccurs="1" default="false" />
<xs:element name="includeEmptyValue" type="xs:boolean" minOccurs="0" maxOccurs="1" default="false" />
<xs:element name="valueType" type="xs:string" minOccurs="0" maxOccurs="1" />
</xs:choice>
<xs:attribute name="name" type="xs:string">
<xs:annotation>
<xs:documentation>Name of the attribute.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="layout" type="SimpleLayoutAttribute">
<xs:annotation>
<xs:documentation>Layout used for rendering the attribute value.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="defaultValue" type="SimpleLayoutAttribute">
<xs:annotation>
<xs:documentation>Fallback value when result value is not available</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="encode" type="xs:boolean">
<xs:annotation>
<xs:documentation>Whether output should be encoded as Json-String-Property, or be treated as valid json.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="escapeUnicode" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates whether to escape non-ascii characters</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="includeEmptyValue" type="xs:boolean">
<xs:annotation>
<xs:documentation>Whether empty attribute value should be included in the output.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="valueType" type="xs:string">
<xs:annotation>
<xs:documentation>Result value type, for conversion of layout rendering output</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="LayoutWithHeaderAndFooter">
<xs:complexContent>
<xs:extension base="Layout">
@@ -4455,6 +4615,94 @@
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="SplunkLayout">
<xs:complexContent>
<xs:extension base="Layout">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="attribute" minOccurs="0" maxOccurs="unbounded" type="NLog.Layouts.JsonAttribute" />
<xs:element name="includeGdc" type="xs:boolean" minOccurs="0" maxOccurs="1" default="false" />
<xs:element name="indentJson" type="xs:boolean" minOccurs="0" maxOccurs="1" default="false" />
<xs:element name="maxRecursionLimit" type="xs:integer" minOccurs="0" maxOccurs="1" default="1" />
<xs:element name="renderEmptyObject" type="xs:boolean" minOccurs="0" maxOccurs="1" default="true" />
<xs:element name="suppressSpaces" type="xs:boolean" minOccurs="0" maxOccurs="1" default="true" />
<xs:element name="excludeEmptyProperties" type="xs:boolean" minOccurs="0" maxOccurs="1" default="false" />
<xs:element name="excludeProperties" type="xs:string" minOccurs="0" maxOccurs="1" />
<xs:element name="includeEventProperties" type="xs:boolean" minOccurs="0" maxOccurs="1" default="true" />
<xs:element name="includeScopeProperties" type="xs:boolean" minOccurs="0" maxOccurs="1" default="false" />
<xs:element name="SplunkField" minOccurs="0" maxOccurs="unbounded" type="NLog.Layouts.JsonAttribute" />
<xs:element name="splunkHostName" type="Layout" minOccurs="0" maxOccurs="1" />
<xs:element name="splunkIndex" type="Layout" minOccurs="0" maxOccurs="1" />
<xs:element name="splunkSourceName" type="Layout" minOccurs="0" maxOccurs="1" />
<xs:element name="splunkSourceType" type="Layout" minOccurs="0" maxOccurs="1" />
</xs:choice>
<xs:attribute name="includeGdc" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates whether to include contents of the T:NLog.GlobalDiagnosticsContext dictionary.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="indentJson" type="xs:boolean">
<xs:annotation>
<xs:documentation>Auto indent and create new lines</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="maxRecursionLimit" type="xs:integer">
<xs:annotation>
<xs:documentation>How far should the JSON serializer follow object references before backing off</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="renderEmptyObject" type="xs:boolean">
<xs:annotation>
<xs:documentation>Option to render the empty object value {}</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="suppressSpaces" type="xs:boolean">
<xs:annotation>
<xs:documentation>Option to suppress the extra spaces in the output json.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="excludeEmptyProperties" type="xs:boolean">
<xs:annotation>
<xs:documentation>Option to exclude null/empty properties from the log event (as JSON)</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="excludeProperties" type="xs:string">
<xs:annotation>
<xs:documentation>List of property names to exclude when P:NLog.Layouts.SplunkLayout.IncludeEventProperties is true</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="includeEventProperties" type="xs:boolean">
<xs:annotation>
<xs:documentation>Option to include all properties from the log events</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="includeScopeProperties" type="xs:boolean">
<xs:annotation>
<xs:documentation>Whether to include the contents of the T:NLog.ScopeContext properties-dictionary.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="splunkHostName" type="SimpleLayoutAttribute">
<xs:annotation>
<xs:documentation>Splunk Message Host-attribute</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="splunkIndex" type="SimpleLayoutAttribute">
<xs:annotation>
<xs:documentation>Splunk Message Index-attribute, that controls which event data is to be indexed.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="splunkSourceName" type="SimpleLayoutAttribute">
<xs:annotation>
<xs:documentation>Splunk Message Source-attribute. Example the name of the application.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="splunkSourceType" type="SimpleLayoutAttribute">
<xs:annotation>
<xs:documentation>Splunk Message SourceType-attribute. SourceType can be used hint for choosing Splunk Indexer</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="SyslogLayout">
<xs:complexContent>
<xs:extension base="Layout">

View File

@@ -787,7 +787,9 @@ namespace BLWLogProduce.Services
string TopicKey = KafkaKey.BLWLog4XuanZhu_RCU_Topic;
string DetailKey = KafkaKey.UDPPackageDeviceStatus;
string logKey = KafkaKey.BLWLog_RCU_Topic;
await p.ProduceAsync(TopicKey, new Message<string, byte[]> { Key = DetailKey, Value = data });
await p.ProduceAsync(logKey, new Message<string, byte[]> { Key = DetailKey, Value = data });
}
catch (Exception ex)
{

View File

@@ -11,12 +11,12 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Confluent.Kafka" Version="2.11.0" />
<PackageReference Include="MongoDB.Driver" Version="3.4.1" />
<PackageReference Include="NLog" Version="6.0.2" />
<PackageReference Include="NLog.Schema" Version="6.0.2" />
<PackageReference Include="NPOI" Version="2.7.4" />
<PackageReference Include="RestSharp" Version="112.1.0" />
<PackageReference Include="Confluent.Kafka" Version="2.12.0" />
<PackageReference Include="MongoDB.Driver" Version="3.5.2" />
<PackageReference Include="NLog" Version="6.0.7" />
<PackageReference Include="NLog.Schema" Version="6.0.7" />
<PackageReference Include="NPOI" Version="2.7.5" />
<PackageReference Include="RestSharp" Version="113.0.0" />
</ItemGroup>
<ItemGroup>

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<NameOfLastUsedPublishProfile>E:\tian\BLS\BLWLogServer\BLWLogServer\Properties\PublishProfiles\FolderProfile.pubxml</NameOfLastUsedPublishProfile>
<NameOfLastUsedPublishProfile>E:\tian\chongxin\NewGit\Web_BLSKafka_Server_Prod\BLWLogServer\Properties\PublishProfiles\FolderProfile.pubxml</NameOfLastUsedPublishProfile>
<Controller_SelectedScaffolderID>ApiControllerEmptyScaffolder</Controller_SelectedScaffolderID>
<Controller_SelectedScaffolderCategoryPath>root/Common/Api</Controller_SelectedScaffolderCategoryPath>
</PropertyGroup>

View File

@@ -882,7 +882,7 @@ namespace BLWLogServer.Controllers
var font = workbook.CreateFont();
font.FontName = "Arial";
font.FontHeightInPoints = 11;
font.Boldweight = (short)FontBoldWeight.Bold;
font.IsBold = true;
font.Color = IndexedColors.White.Index;
style.SetFont(font);

View File

@@ -812,6 +812,7 @@
<xs:element name="ignoreCase" type="xs:boolean" minOccurs="0" maxOccurs="1" default="false" />
<xs:element name="text" type="xs:string" minOccurs="0" maxOccurs="1" />
<xs:element name="wholeWords" type="xs:boolean" minOccurs="0" maxOccurs="1" default="false" />
<xs:element name="words" type="xs:string" minOccurs="0" maxOccurs="1" />
</xs:choice>
<xs:attribute name="backgroundColor" type="NLog.Targets.ConsoleOutputColor">
<xs:annotation>
@@ -835,7 +836,7 @@
</xs:attribute>
<xs:attribute name="text" type="xs:string">
<xs:annotation>
<xs:documentation>Text to be matched. You must specify either text or regex.</xs:documentation>
<xs:documentation>Text to be matched for Highlighting.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="wholeWords" type="xs:boolean">
@@ -843,6 +844,11 @@
<xs:documentation>Indicates whether to match whole words only.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="words" type="xs:string">
<xs:annotation>
<xs:documentation>List of words to be matched for Highlighting.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="Console">
<xs:complexContent>
@@ -1829,7 +1835,7 @@
<xs:attribute name="gelfShortMessage" type="SimpleLayoutAttribute" />
<xs:attribute name="noDelay" type="xs:boolean">
<xs:annotation>
<xs:documentation>Whether to disable the delayed ACK timer, and avoid delay of 200 ms. Default = true.</xs:documentation>
<xs:documentation>Whether to disable the delayed ACK timer, and avoid delay of 200 ms.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="layout" type="SimpleLayoutAttribute" />
@@ -2411,7 +2417,7 @@
</xs:attribute>
<xs:attribute name="noDelay" type="xs:boolean">
<xs:annotation>
<xs:documentation>Whether to disable the delayed ACK timer, and avoid delay of 200 ms. Default = true.</xs:documentation>
<xs:documentation>Whether to disable the delayed ACK timer, and avoid delay of 200 ms.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="maxMessageSize" type="xs:integer">
@@ -2545,12 +2551,12 @@
<xs:element name="name" type="xs:string" minOccurs="0" maxOccurs="1" />
<xs:element name="header" type="Layout" minOccurs="0" maxOccurs="1" />
<xs:element name="footer" type="Layout" minOccurs="0" maxOccurs="1" />
<xs:element name="replaceNewlineWithBrTagInHtml" type="xs:boolean" minOccurs="0" maxOccurs="1" default="false" />
<xs:element name="priority" type="System.Net.Mail.MailPriority" minOccurs="0" maxOccurs="1" default="Normal" />
<xs:element name="mailheader" minOccurs="0" maxOccurs="unbounded" type="NLog.Targets.MethodCallParameter" />
<xs:element name="addNewLines" type="xs:boolean" minOccurs="0" maxOccurs="1" default="false" />
<xs:element name="encoding" type="xs:string" minOccurs="0" maxOccurs="1" default="utf-8" />
<xs:element name="bcc" type="Layout" minOccurs="0" maxOccurs="1" />
<xs:element name="replaceNewlineWithBrTagInHtml" type="xs:boolean" minOccurs="0" maxOccurs="1" default="false" />
<xs:element name="to" type="Layout" minOccurs="0" maxOccurs="1" />
<xs:element name="html" type="xs:boolean" minOccurs="0" maxOccurs="1" default="false" />
<xs:element name="from" type="Layout" minOccurs="0" maxOccurs="1" />
@@ -2558,18 +2564,18 @@
<xs:element name="subject" type="Layout" minOccurs="0" maxOccurs="1" />
<xs:element name="cc" type="Layout" minOccurs="0" maxOccurs="1" />
<xs:element name="layout" type="Layout" minOccurs="0" maxOccurs="1" />
<xs:element name="secureSocketOption" type="MailKit.Security.SecureSocketOptions" minOccurs="0" maxOccurs="1" default="StartTlsWhenAvailable" />
<xs:element name="requireTLS" type="xs:boolean" minOccurs="0" maxOccurs="1" />
<xs:element name="timeout" type="xs:integer" minOccurs="0" maxOccurs="1" default="10000" />
<xs:element name="pickupDirectoryLocation" type="Layout" minOccurs="0" maxOccurs="1" />
<xs:element name="smtpServer" type="Layout" minOccurs="0" maxOccurs="1" />
<xs:element name="timeout" type="xs:integer" minOccurs="0" maxOccurs="1" default="10000" />
<xs:element name="skipCertificateValidation" type="xs:boolean" minOccurs="0" maxOccurs="1" default="false" />
<xs:element name="smtpPort" type="xs:integer" minOccurs="0" maxOccurs="1" default="25" />
<xs:element name="enableSsl" type="xs:boolean" minOccurs="0" maxOccurs="1" default="false" />
<xs:element name="secureSocketOption" type="MailKit.Security.SecureSocketOptions" minOccurs="0" maxOccurs="1" default="StartTlsWhenAvailable" />
<xs:element name="smtpPassword" type="Layout" minOccurs="0" maxOccurs="1" />
<xs:element name="enableSsl" type="xs:boolean" minOccurs="0" maxOccurs="1" default="false" />
<xs:element name="smtpUserName" type="Layout" minOccurs="0" maxOccurs="1" />
<xs:element name="smtpAuthentication" type="NLog.Targets.SmtpAuthenticationMode" minOccurs="0" maxOccurs="1" default="None" />
<xs:element name="smtpServer" type="Layout" minOccurs="0" maxOccurs="1" />
<xs:element name="useSystemNetMailSettings" type="xs:boolean" minOccurs="0" maxOccurs="1" default="false" />
<xs:element name="skipCertificateValidation" type="xs:boolean" minOccurs="0" maxOccurs="1" />
<xs:element name="requireTLS" type="xs:boolean" minOccurs="0" maxOccurs="1" default="false" />
<xs:element name="deliveryMethod" type="System.Net.Mail.SmtpDeliveryMethod" minOccurs="0" maxOccurs="1" default="Network" />
</xs:choice>
<xs:attribute name="name" type="xs:string">
@@ -2587,11 +2593,6 @@
<xs:documentation>Footer.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="replaceNewlineWithBrTagInHtml" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates whether NewLine characters in the body should be replaced with tags.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="priority" type="System.Net.Mail.MailPriority">
<xs:annotation>
<xs:documentation>Priority used for sending mails.</xs:documentation>
@@ -2612,6 +2613,11 @@
<xs:documentation>BCC email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com).</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="replaceNewlineWithBrTagInHtml" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates whether NewLine characters in the body should be replaced with tags.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="to" type="SimpleLayoutAttribute">
<xs:annotation>
<xs:documentation>Recipients' email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com).</xs:documentation>
@@ -2643,14 +2649,9 @@
</xs:annotation>
</xs:attribute>
<xs:attribute name="layout" type="SimpleLayoutAttribute" />
<xs:attribute name="secureSocketOption" type="MailKit.Security.SecureSocketOptions">
<xs:attribute name="pickupDirectoryLocation" type="SimpleLayoutAttribute">
<xs:annotation>
<xs:documentation>Provides a way of specifying the SSL and/or TLS encryption If P:NLog.MailKit.MailTarget.EnableSsl is true, then F:MailKit.Security.SecureSocketOptions.SslOnConnect will be used.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="requireTLS" type="xs:boolean">
<xs:annotation>
<xs:documentation>Get or set whether the client should use the REQUIRETLS extension if it is available.</xs:documentation>
<xs:documentation>Folder where applications save mail messages to be processed by the local SMTP server.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="timeout" type="xs:integer">
@@ -2658,14 +2659,9 @@
<xs:documentation>Indicates the SMTP client timeout.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="pickupDirectoryLocation" type="SimpleLayoutAttribute">
<xs:attribute name="skipCertificateValidation" type="xs:boolean">
<xs:annotation>
<xs:documentation>Folder where applications save mail messages to be processed by the local SMTP server.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="smtpServer" type="SimpleLayoutAttribute">
<xs:annotation>
<xs:documentation>SMTP Server to be used for sending.</xs:documentation>
<xs:documentation>Indicates whether SmtpClient should ignore invalid certificate.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="smtpPort" type="xs:integer">
@@ -2673,9 +2669,9 @@
<xs:documentation>Port number that SMTP Server is listening on.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="enableSsl" type="xs:boolean">
<xs:attribute name="secureSocketOption" type="MailKit.Security.SecureSocketOptions">
<xs:annotation>
<xs:documentation>Indicates whether SSL (secure sockets layer) should be used when communicating with SMTP server.</xs:documentation>
<xs:documentation>Provides a way of specifying the SSL and/or TLS encryption If P:NLog.MailKit.MailTarget.EnableSsl is true, then F:MailKit.Security.SecureSocketOptions.SslOnConnect will be used.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="smtpPassword" type="SimpleLayoutAttribute">
@@ -2683,6 +2679,11 @@
<xs:documentation>Password used to authenticate against SMTP server (used when SmtpAuthentication is set to "basic").</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="enableSsl" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates whether SSL (secure sockets layer) should be used when communicating with SMTP server.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="smtpUserName" type="SimpleLayoutAttribute">
<xs:annotation>
<xs:documentation>Username used to connect to SMTP server (used when SmtpAuthentication is set to "basic").</xs:documentation>
@@ -2693,14 +2694,19 @@
<xs:documentation>SMTP Authentication mode.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="smtpServer" type="SimpleLayoutAttribute">
<xs:annotation>
<xs:documentation>SMTP Server to be used for sending.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="useSystemNetMailSettings" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates whether the default Settings from System.Net.MailSettings should be used.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="skipCertificateValidation" type="xs:boolean">
<xs:attribute name="requireTLS" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates whether SmtpClient should ignore invalid certificate.</xs:documentation>
<xs:documentation>Get or set whether the client should use the REQUIRETLS extension if it is available.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="deliveryMethod" type="System.Net.Mail.SmtpDeliveryMethod">
@@ -2732,6 +2738,7 @@
<xs:enumeration value="None" />
<xs:enumeration value="Basic" />
<xs:enumeration value="Ntlm" />
<xs:enumeration value="OAuth2" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="System.Net.Mail.SmtpDeliveryMethod">
@@ -3087,7 +3094,7 @@
</xs:attribute>
<xs:attribute name="noDelay" type="xs:boolean">
<xs:annotation>
<xs:documentation>Whether to disable the delayed ACK timer, and avoid delay of 200 ms. Default = true.</xs:documentation>
<xs:documentation>Whether to disable the delayed ACK timer, and avoid delay of 200 ms.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="maxMessageSize" type="xs:integer">
@@ -3133,7 +3140,7 @@
</xs:attribute>
<xs:attribute name="formatMessage" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates whether to perform layout calculation.</xs:documentation>
<xs:documentation>Indicates whether to render P:NLog.Targets.TargetWithLayout.Layout for LogEvent</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
@@ -3576,6 +3583,205 @@
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="Splunk">
<xs:complexContent>
<xs:extension base="Target">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="name" type="xs:string" minOccurs="0" maxOccurs="1" />
<xs:element name="sslCertificatePassword" type="Layout" minOccurs="0" maxOccurs="1" />
<xs:element name="sslCertificateFile" type="Layout" minOccurs="0" maxOccurs="1" />
<xs:element name="sslProtocols" type="System.Security.Authentication.SslProtocols" minOccurs="0" maxOccurs="1" default="None" />
<xs:element name="sendTimeoutSeconds" type="xs:integer" minOccurs="0" maxOccurs="1" default="100" />
<xs:element name="onOverflow" type="NLog.Targets.NetworkTargetOverflowAction" minOccurs="0" maxOccurs="1" default="Split" />
<xs:element name="onConnectionOverflow" type="NLog.Targets.NetworkTargetConnectionsOverflowAction" minOccurs="0" maxOccurs="1" default="Discard" />
<xs:element name="onQueueOverflow" type="NLog.Targets.NetworkTargetQueueOverflowAction" minOccurs="0" maxOccurs="1" default="Discard" />
<xs:element name="maxConnections" type="xs:integer" minOccurs="0" maxOccurs="1" default="100" />
<xs:element name="keepConnection" type="xs:boolean" minOccurs="0" maxOccurs="1" default="true" />
<xs:element name="keepAliveTimeSeconds" type="xs:integer" minOccurs="0" maxOccurs="1" default="0" />
<xs:element name="connectionCacheSize" type="xs:integer" minOccurs="0" maxOccurs="1" default="5" />
<xs:element name="address" type="Layout" minOccurs="0" maxOccurs="1" />
<xs:element name="maxQueueSize" type="xs:integer" minOccurs="0" maxOccurs="1" default="10000" />
<xs:element name="SplunkField" minOccurs="0" maxOccurs="unbounded" type="NLog.Layouts.JsonAttribute" />
<xs:element name="splunkSourceType" type="Layout" minOccurs="0" maxOccurs="1" />
<xs:element name="splunkSourceName" type="Layout" minOccurs="0" maxOccurs="1" />
<xs:element name="splunkIndex" type="Layout" minOccurs="0" maxOccurs="1" />
<xs:element name="splunkHostName" type="Layout" minOccurs="0" maxOccurs="1" />
<xs:element name="noDelay" type="xs:boolean" minOccurs="0" maxOccurs="1" default="true" />
<xs:element name="compressMinBytes" type="xs:integer" minOccurs="0" maxOccurs="1" default="0" />
<xs:element name="includeScopeProperties" type="xs:boolean" minOccurs="0" maxOccurs="1" default="false" />
<xs:element name="includeEventProperties" type="xs:boolean" minOccurs="0" maxOccurs="1" default="true" />
<xs:element name="excludeProperties" type="xs:string" minOccurs="0" maxOccurs="1" />
<xs:element name="excludeEmptyProperties" type="xs:boolean" minOccurs="0" maxOccurs="1" default="false" />
<xs:element name="compress" type="NLog.Targets.NetworkTargetCompressionType" minOccurs="0" maxOccurs="1" default="None" />
<xs:element name="layout" type="Layout" minOccurs="0" maxOccurs="1" />
<xs:element name="maxMessageSize" type="xs:integer" minOccurs="0" maxOccurs="1" default="65000" />
<xs:element name="encoding" type="xs:string" minOccurs="0" maxOccurs="1" default="utf-8" />
<xs:element name="lineEnding" type="LineEndingMode" minOccurs="0" maxOccurs="1" />
<xs:element name="newLine" type="xs:boolean" minOccurs="0" maxOccurs="1" default="true" />
</xs:choice>
<xs:attribute name="name" type="xs:string">
<xs:annotation>
<xs:documentation>Name of the target.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="sslCertificatePassword" type="SimpleLayoutAttribute">
<xs:annotation>
<xs:documentation>Password for the custom SSL certificate specified by P:NLog.Targets.NetworkTarget.SslCertificateFile</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="sslCertificateFile" type="SimpleLayoutAttribute">
<xs:annotation>
<xs:documentation>File path to custom SSL certificate for TCP Socket SSL connections</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="sslProtocols" type="System.Security.Authentication.SslProtocols">
<xs:annotation>
<xs:documentation>SSL/TLS protocols. Default no SSL/TLS is used. Currently only implemented for TCP.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="sendTimeoutSeconds" type="xs:integer">
<xs:annotation>
<xs:documentation>The number of seconds a TCP socket send-operation will block before timeout error. Default = 100 secs (0 = wait forever when network cable unplugged and tcp-buffer becomes full).</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="onOverflow" type="NLog.Targets.NetworkTargetOverflowAction">
<xs:annotation>
<xs:documentation>Action that should be taken if the message is larger than P:NLog.Targets.NetworkTarget.MaxMessageSize</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="onConnectionOverflow" type="NLog.Targets.NetworkTargetConnectionsOverflowAction">
<xs:annotation>
<xs:documentation>Action that should be taken, when more connections than P:NLog.Targets.NetworkTarget.MaxConnections.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="onQueueOverflow" type="NLog.Targets.NetworkTargetQueueOverflowAction">
<xs:annotation>
<xs:documentation>Action that should be taken, when more pending messages than P:NLog.Targets.NetworkTarget.MaxQueueSize.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="maxConnections" type="xs:integer">
<xs:annotation>
<xs:documentation>Maximum simultaneous connections. Requires P:NLog.Targets.NetworkTarget.KeepConnection = false</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="keepConnection" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates whether to keep connection open whenever possible.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="keepAliveTimeSeconds" type="xs:integer">
<xs:annotation>
<xs:documentation>The number of seconds a connection will remain idle before the first keep-alive probe is sent</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="connectionCacheSize" type="xs:integer">
<xs:annotation>
<xs:documentation>Size of the connection cache (number of connections which are kept alive). Requires P:NLog.Targets.NetworkTarget.KeepConnection = true</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="address" type="SimpleLayoutAttribute">
<xs:annotation>
<xs:documentation>Network destination address.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="maxQueueSize" type="xs:integer">
<xs:annotation>
<xs:documentation>Maximum queue size for a single connection. Requires P:NLog.Targets.NetworkTarget.KeepConnection = true</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="splunkSourceType" type="SimpleLayoutAttribute" />
<xs:attribute name="splunkSourceName" type="SimpleLayoutAttribute" />
<xs:attribute name="splunkIndex" type="SimpleLayoutAttribute" />
<xs:attribute name="splunkHostName" type="SimpleLayoutAttribute" />
<xs:attribute name="noDelay" type="xs:boolean">
<xs:annotation>
<xs:documentation>Whether to disable the delayed ACK timer, and avoid delay of 200 ms.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="compressMinBytes" type="xs:integer">
<xs:annotation>
<xs:documentation>Skip compression when protocol payload is below limit to reduce overhead in cpu-usage and additional headers</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="includeScopeProperties" type="xs:boolean" />
<xs:attribute name="includeEventProperties" type="xs:boolean" />
<xs:attribute name="excludeProperties" type="xs:string" />
<xs:attribute name="excludeEmptyProperties" type="xs:boolean" />
<xs:attribute name="compress" type="NLog.Targets.NetworkTargetCompressionType">
<xs:annotation>
<xs:documentation>Type of compression for protocol payload. Useful for UDP where datagram max-size is 8192 bytes.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="layout" type="SimpleLayoutAttribute" />
<xs:attribute name="maxMessageSize" type="xs:integer">
<xs:annotation>
<xs:documentation>Maximum message size in bytes. On limit breach then P:NLog.Targets.NetworkTarget.OnOverflow action is activated.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="encoding" type="xs:string">
<xs:annotation>
<xs:documentation>Encoding to be used.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="lineEnding" type="LineEndingMode">
<xs:annotation>
<xs:documentation>End of line value if a newline is appended at the end of log message P:NLog.Targets.NetworkTarget.NewLine.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="newLine" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates whether to append newline at the end of log message.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="NLog.Layouts.JsonAttribute">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="name" type="xs:string" minOccurs="0" maxOccurs="1" />
<xs:element name="layout" type="Layout" minOccurs="0" maxOccurs="1" />
<xs:element name="defaultValue" type="Layout" minOccurs="0" maxOccurs="1" />
<xs:element name="encode" type="xs:boolean" minOccurs="0" maxOccurs="1" default="true" />
<xs:element name="escapeUnicode" type="xs:boolean" minOccurs="0" maxOccurs="1" default="false" />
<xs:element name="includeEmptyValue" type="xs:boolean" minOccurs="0" maxOccurs="1" default="false" />
<xs:element name="valueType" type="xs:string" minOccurs="0" maxOccurs="1" />
</xs:choice>
<xs:attribute name="name" type="xs:string">
<xs:annotation>
<xs:documentation>Name of the attribute.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="layout" type="SimpleLayoutAttribute">
<xs:annotation>
<xs:documentation>Layout used for rendering the attribute value.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="defaultValue" type="SimpleLayoutAttribute">
<xs:annotation>
<xs:documentation>Fallback value when result value is not available</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="encode" type="xs:boolean">
<xs:annotation>
<xs:documentation>Whether output should be encoded as Json-String-Property, or be treated as valid json.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="escapeUnicode" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates whether to escape non-ascii characters</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="includeEmptyValue" type="xs:boolean">
<xs:annotation>
<xs:documentation>Whether empty attribute value should be included in the output.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="valueType" type="xs:string">
<xs:annotation>
<xs:documentation>Result value type, for conversion of layout rendering output</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="Syslog">
<xs:complexContent>
<xs:extension base="Target">
@@ -3700,7 +3906,7 @@
<xs:attribute name="rfc3164" type="xs:boolean" />
<xs:attribute name="noDelay" type="xs:boolean">
<xs:annotation>
<xs:documentation>Whether to disable the delayed ACK timer, and avoid delay of 200 ms. Default = true.</xs:documentation>
<xs:documentation>Whether to disable the delayed ACK timer, and avoid delay of 200 ms.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="includeEventProperties" type="xs:boolean" />
@@ -4218,52 +4424,6 @@
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="NLog.Layouts.JsonAttribute">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="name" type="xs:string" minOccurs="0" maxOccurs="1" />
<xs:element name="layout" type="Layout" minOccurs="0" maxOccurs="1" />
<xs:element name="defaultValue" type="Layout" minOccurs="0" maxOccurs="1" />
<xs:element name="encode" type="xs:boolean" minOccurs="0" maxOccurs="1" default="true" />
<xs:element name="escapeUnicode" type="xs:boolean" minOccurs="0" maxOccurs="1" default="false" />
<xs:element name="includeEmptyValue" type="xs:boolean" minOccurs="0" maxOccurs="1" default="false" />
<xs:element name="valueType" type="xs:string" minOccurs="0" maxOccurs="1" />
</xs:choice>
<xs:attribute name="name" type="xs:string">
<xs:annotation>
<xs:documentation>Name of the attribute.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="layout" type="SimpleLayoutAttribute">
<xs:annotation>
<xs:documentation>Layout used for rendering the attribute value.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="defaultValue" type="SimpleLayoutAttribute">
<xs:annotation>
<xs:documentation>Fallback value when result value is not available</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="encode" type="xs:boolean">
<xs:annotation>
<xs:documentation>Whether output should be encoded as Json-String-Property, or be treated as valid json.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="escapeUnicode" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates whether to escape non-ascii characters</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="includeEmptyValue" type="xs:boolean">
<xs:annotation>
<xs:documentation>Whether empty attribute value should be included in the output.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="valueType" type="xs:string">
<xs:annotation>
<xs:documentation>Result value type, for conversion of layout rendering output</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="LayoutWithHeaderAndFooter">
<xs:complexContent>
<xs:extension base="Layout">
@@ -4455,6 +4615,94 @@
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="SplunkLayout">
<xs:complexContent>
<xs:extension base="Layout">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="attribute" minOccurs="0" maxOccurs="unbounded" type="NLog.Layouts.JsonAttribute" />
<xs:element name="includeGdc" type="xs:boolean" minOccurs="0" maxOccurs="1" default="false" />
<xs:element name="indentJson" type="xs:boolean" minOccurs="0" maxOccurs="1" default="false" />
<xs:element name="maxRecursionLimit" type="xs:integer" minOccurs="0" maxOccurs="1" default="1" />
<xs:element name="renderEmptyObject" type="xs:boolean" minOccurs="0" maxOccurs="1" default="true" />
<xs:element name="suppressSpaces" type="xs:boolean" minOccurs="0" maxOccurs="1" default="true" />
<xs:element name="excludeEmptyProperties" type="xs:boolean" minOccurs="0" maxOccurs="1" default="false" />
<xs:element name="excludeProperties" type="xs:string" minOccurs="0" maxOccurs="1" />
<xs:element name="includeEventProperties" type="xs:boolean" minOccurs="0" maxOccurs="1" default="true" />
<xs:element name="includeScopeProperties" type="xs:boolean" minOccurs="0" maxOccurs="1" default="false" />
<xs:element name="SplunkField" minOccurs="0" maxOccurs="unbounded" type="NLog.Layouts.JsonAttribute" />
<xs:element name="splunkHostName" type="Layout" minOccurs="0" maxOccurs="1" />
<xs:element name="splunkIndex" type="Layout" minOccurs="0" maxOccurs="1" />
<xs:element name="splunkSourceName" type="Layout" minOccurs="0" maxOccurs="1" />
<xs:element name="splunkSourceType" type="Layout" minOccurs="0" maxOccurs="1" />
</xs:choice>
<xs:attribute name="includeGdc" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates whether to include contents of the T:NLog.GlobalDiagnosticsContext dictionary.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="indentJson" type="xs:boolean">
<xs:annotation>
<xs:documentation>Auto indent and create new lines</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="maxRecursionLimit" type="xs:integer">
<xs:annotation>
<xs:documentation>How far should the JSON serializer follow object references before backing off</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="renderEmptyObject" type="xs:boolean">
<xs:annotation>
<xs:documentation>Option to render the empty object value {}</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="suppressSpaces" type="xs:boolean">
<xs:annotation>
<xs:documentation>Option to suppress the extra spaces in the output json.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="excludeEmptyProperties" type="xs:boolean">
<xs:annotation>
<xs:documentation>Option to exclude null/empty properties from the log event (as JSON)</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="excludeProperties" type="xs:string">
<xs:annotation>
<xs:documentation>List of property names to exclude when P:NLog.Layouts.SplunkLayout.IncludeEventProperties is true</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="includeEventProperties" type="xs:boolean">
<xs:annotation>
<xs:documentation>Option to include all properties from the log events</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="includeScopeProperties" type="xs:boolean">
<xs:annotation>
<xs:documentation>Whether to include the contents of the T:NLog.ScopeContext properties-dictionary.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="splunkHostName" type="SimpleLayoutAttribute">
<xs:annotation>
<xs:documentation>Splunk Message Host-attribute</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="splunkIndex" type="SimpleLayoutAttribute">
<xs:annotation>
<xs:documentation>Splunk Message Index-attribute, that controls which event data is to be indexed.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="splunkSourceName" type="SimpleLayoutAttribute">
<xs:annotation>
<xs:documentation>Splunk Message Source-attribute. Example the name of the application.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="splunkSourceType" type="SimpleLayoutAttribute">
<xs:annotation>
<xs:documentation>Splunk Message SourceType-attribute. SourceType can be used hint for choosing Splunk Indexer</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="SyslogLayout">
<xs:complexContent>
<xs:extension base="Layout">

View File

@@ -6,6 +6,7 @@ using Confluent.Kafka;
using MongoDB.Driver;
using NLog;
using System.Collections.Generic;
using BLWData.Entity;
namespace BLWLogServer.Services
{
@@ -308,6 +309,27 @@ namespace BLWLogServer.Services
us.ZhiJieData = UDPPPP.ZhiJieData;
await collection.InsertOneAsync(us);
}
else if (k.Equals(KafkaKey.UDPPackageDeviceStatus))
{
DeviceActionChangeDataPush e = new DeviceActionChangeDataPush();
e = DeviceActionChangeDataPush.Parser.ParseFrom(v);
var collection = client.GetDatabase("udppackage").GetCollection<XuanZhuRequest_db>("xuanzhudevicestatuschanges");
XuanZhuRequest_db us = new XuanZhuRequest_db();
us.code = e.Code.ToString();
us.roomNumber = e.RoomNumber;
us.devicetype = e.Devicetype;
us.address = e.Address;
us.status = e.Status;
us.name = e.Name;
us.currentTemp = e.CurrentTemp;
us.settingTemp = e.SettingTemp;
us.fanSpeed = e.FanSpeed;
us.mode = e.Mode;
us.valve = e.Valve;
us.timestamp = e.Createtime;
await collection.InsertOneAsync(us);
}
#region

View File

@@ -7,6 +7,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Google.Protobuf" Version="3.33.2" />
<PackageReference Include="MessagePack" Version="3.1.4" />
<PackageReference Include="MongoDB.Bson" Version="3.4.1" />
</ItemGroup>

View File

@@ -1,4 +1,5 @@
using System;
using MongoDB.Bson;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
@@ -62,4 +63,10 @@ namespace CommonEntity
/// </summary>
public int valve { get; set; }
}
public class XuanZhuRequest_db : XuanZhuRequest
{
public ObjectId _id { get; set; }
public long timestamp { get; set; }
}
}

View File

@@ -8,7 +8,6 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Google.Protobuf" Version="3.32.1" />
<PackageReference Include="MessagePack" Version="3.1.4" />
</ItemGroup>