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

本质上就是自己用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

@@ -1,731 +0,0 @@
// <auto-generated>
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: DeviceActionChangeDataPush.proto
// </auto-generated>
#pragma warning disable 1591, 0612, 3021, 8981
#region Designer generated code
using pb = global::Google.Protobuf;
using pbc = global::Google.Protobuf.Collections;
using pbr = global::Google.Protobuf.Reflection;
using scg = global::System.Collections.Generic;
namespace BLWData.Entity {
/// <summary>Holder for reflection information generated from DeviceActionChangeDataPush.proto</summary>
public static partial class DeviceActionChangeDataPushReflection {
#region Descriptor
/// <summary>File descriptor for DeviceActionChangeDataPush.proto</summary>
public static pbr::FileDescriptor Descriptor {
get { return descriptor; }
}
private static pbr::FileDescriptor descriptor;
static DeviceActionChangeDataPushReflection() {
byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
"CiBEZXZpY2VBY3Rpb25DaGFuZ2VEYXRhUHVzaC5wcm90bxIOQkxXRGF0YS5F",
"bnRpdHkilgIKGkRldmljZUFjdGlvbkNoYW5nZURhdGFQdXNoEgwKBGNvZGUY",
"ASABKAMSEgoKcm9vbU51bWJlchgCIAEoCRISCgpob3N0TnVtYmVyGAMgASgJ",
"EhIKCmRldmljZXR5cGUYBCABKAkSDwoHYWRkcmVzcxgFIAEoCRIMCgRuYW1l",
"GAYgASgJEg4KBnN0YXR1cxgHIAEoBRISCgpicmlnaHRuZXNzGAggASgFEhMK",
"C2N1cnJlbnRUZW1wGAkgASgFEhMKC3NldHRpbmdUZW1wGAogASgFEhAKCGZh",
"blNwZWVkGAsgASgFEgwKBG1vZGUYDCABKAUSDQoFdmFsdmUYDSABKAUSEgoK",
"Y3JlYXRldGltZRgOIAEoA2IGcHJvdG8z"));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { },
new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
new pbr::GeneratedClrTypeInfo(typeof(global::BLWData.Entity.DeviceActionChangeDataPush), global::BLWData.Entity.DeviceActionChangeDataPush.Parser, new[]{ "Code", "RoomNumber", "HostNumber", "Devicetype", "Address", "Name", "Status", "Brightness", "CurrentTemp", "SettingTemp", "FanSpeed", "Mode", "Valve", "Createtime" }, null, null, null, null)
}));
}
#endregion
}
#region Messages
/// <summary>
/// 定义一个Person消息类型
/// </summary>
[global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
public sealed partial class DeviceActionChangeDataPush : pb::IMessage<DeviceActionChangeDataPush>
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
, pb::IBufferMessage
#endif
{
private static readonly pb::MessageParser<DeviceActionChangeDataPush> _parser = new pb::MessageParser<DeviceActionChangeDataPush>(() => new DeviceActionChangeDataPush());
private pb::UnknownFieldSet _unknownFields;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pb::MessageParser<DeviceActionChangeDataPush> Parser { get { return _parser; } }
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public static pbr::MessageDescriptor Descriptor {
get { return global::BLWData.Entity.DeviceActionChangeDataPushReflection.Descriptor.MessageTypes[0]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
pbr::MessageDescriptor pb::IMessage.Descriptor {
get { return Descriptor; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public DeviceActionChangeDataPush() {
OnConstruction();
}
partial void OnConstruction();
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public DeviceActionChangeDataPush(DeviceActionChangeDataPush other) : this() {
code_ = other.code_;
roomNumber_ = other.roomNumber_;
hostNumber_ = other.hostNumber_;
devicetype_ = other.devicetype_;
address_ = other.address_;
name_ = other.name_;
status_ = other.status_;
brightness_ = other.brightness_;
currentTemp_ = other.currentTemp_;
settingTemp_ = other.settingTemp_;
fanSpeed_ = other.fanSpeed_;
mode_ = other.mode_;
valve_ = other.valve_;
createtime_ = other.createtime_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public DeviceActionChangeDataPush Clone() {
return new DeviceActionChangeDataPush(this);
}
/// <summary>Field number for the "code" field.</summary>
public const int CodeFieldNumber = 1;
private long code_;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public long Code {
get { return code_; }
set {
code_ = value;
}
}
/// <summary>Field number for the "roomNumber" field.</summary>
public const int RoomNumberFieldNumber = 2;
private string roomNumber_ = "";
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public string RoomNumber {
get { return roomNumber_; }
set {
roomNumber_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
}
}
/// <summary>Field number for the "hostNumber" field.</summary>
public const int HostNumberFieldNumber = 3;
private string hostNumber_ = "";
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public string HostNumber {
get { return hostNumber_; }
set {
hostNumber_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
}
}
/// <summary>Field number for the "devicetype" field.</summary>
public const int DevicetypeFieldNumber = 4;
private string devicetype_ = "";
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public string Devicetype {
get { return devicetype_; }
set {
devicetype_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
}
}
/// <summary>Field number for the "address" field.</summary>
public const int AddressFieldNumber = 5;
private string address_ = "";
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public string Address {
get { return address_; }
set {
address_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
}
}
/// <summary>Field number for the "name" field.</summary>
public const int NameFieldNumber = 6;
private string name_ = "";
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public string Name {
get { return name_; }
set {
name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
}
}
/// <summary>Field number for the "status" field.</summary>
public const int StatusFieldNumber = 7;
private int status_;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public int Status {
get { return status_; }
set {
status_ = value;
}
}
/// <summary>Field number for the "brightness" field.</summary>
public const int BrightnessFieldNumber = 8;
private int brightness_;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public int Brightness {
get { return brightness_; }
set {
brightness_ = value;
}
}
/// <summary>Field number for the "currentTemp" field.</summary>
public const int CurrentTempFieldNumber = 9;
private int currentTemp_;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public int CurrentTemp {
get { return currentTemp_; }
set {
currentTemp_ = value;
}
}
/// <summary>Field number for the "settingTemp" field.</summary>
public const int SettingTempFieldNumber = 10;
private int settingTemp_;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public int SettingTemp {
get { return settingTemp_; }
set {
settingTemp_ = value;
}
}
/// <summary>Field number for the "fanSpeed" field.</summary>
public const int FanSpeedFieldNumber = 11;
private int fanSpeed_;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public int FanSpeed {
get { return fanSpeed_; }
set {
fanSpeed_ = value;
}
}
/// <summary>Field number for the "mode" field.</summary>
public const int ModeFieldNumber = 12;
private int mode_;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public int Mode {
get { return mode_; }
set {
mode_ = value;
}
}
/// <summary>Field number for the "valve" field.</summary>
public const int ValveFieldNumber = 13;
private int valve_;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public int Valve {
get { return valve_; }
set {
valve_ = value;
}
}
/// <summary>Field number for the "createtime" field.</summary>
public const int CreatetimeFieldNumber = 14;
private long createtime_;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public long Createtime {
get { return createtime_; }
set {
createtime_ = value;
}
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public override bool Equals(object other) {
return Equals(other as DeviceActionChangeDataPush);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public bool Equals(DeviceActionChangeDataPush other) {
if (ReferenceEquals(other, null)) {
return false;
}
if (ReferenceEquals(other, this)) {
return true;
}
if (Code != other.Code) return false;
if (RoomNumber != other.RoomNumber) return false;
if (HostNumber != other.HostNumber) return false;
if (Devicetype != other.Devicetype) return false;
if (Address != other.Address) return false;
if (Name != other.Name) return false;
if (Status != other.Status) return false;
if (Brightness != other.Brightness) return false;
if (CurrentTemp != other.CurrentTemp) return false;
if (SettingTemp != other.SettingTemp) return false;
if (FanSpeed != other.FanSpeed) return false;
if (Mode != other.Mode) return false;
if (Valve != other.Valve) return false;
if (Createtime != other.Createtime) return false;
return Equals(_unknownFields, other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public override int GetHashCode() {
int hash = 1;
if (Code != 0L) hash ^= Code.GetHashCode();
if (RoomNumber.Length != 0) hash ^= RoomNumber.GetHashCode();
if (HostNumber.Length != 0) hash ^= HostNumber.GetHashCode();
if (Devicetype.Length != 0) hash ^= Devicetype.GetHashCode();
if (Address.Length != 0) hash ^= Address.GetHashCode();
if (Name.Length != 0) hash ^= Name.GetHashCode();
if (Status != 0) hash ^= Status.GetHashCode();
if (Brightness != 0) hash ^= Brightness.GetHashCode();
if (CurrentTemp != 0) hash ^= CurrentTemp.GetHashCode();
if (SettingTemp != 0) hash ^= SettingTemp.GetHashCode();
if (FanSpeed != 0) hash ^= FanSpeed.GetHashCode();
if (Mode != 0) hash ^= Mode.GetHashCode();
if (Valve != 0) hash ^= Valve.GetHashCode();
if (Createtime != 0L) hash ^= Createtime.GetHashCode();
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
}
return hash;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public override string ToString() {
return pb::JsonFormatter.ToDiagnosticString(this);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public void WriteTo(pb::CodedOutputStream output) {
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
output.WriteRawMessage(this);
#else
if (Code != 0L) {
output.WriteRawTag(8);
output.WriteInt64(Code);
}
if (RoomNumber.Length != 0) {
output.WriteRawTag(18);
output.WriteString(RoomNumber);
}
if (HostNumber.Length != 0) {
output.WriteRawTag(26);
output.WriteString(HostNumber);
}
if (Devicetype.Length != 0) {
output.WriteRawTag(34);
output.WriteString(Devicetype);
}
if (Address.Length != 0) {
output.WriteRawTag(42);
output.WriteString(Address);
}
if (Name.Length != 0) {
output.WriteRawTag(50);
output.WriteString(Name);
}
if (Status != 0) {
output.WriteRawTag(56);
output.WriteInt32(Status);
}
if (Brightness != 0) {
output.WriteRawTag(64);
output.WriteInt32(Brightness);
}
if (CurrentTemp != 0) {
output.WriteRawTag(72);
output.WriteInt32(CurrentTemp);
}
if (SettingTemp != 0) {
output.WriteRawTag(80);
output.WriteInt32(SettingTemp);
}
if (FanSpeed != 0) {
output.WriteRawTag(88);
output.WriteInt32(FanSpeed);
}
if (Mode != 0) {
output.WriteRawTag(96);
output.WriteInt32(Mode);
}
if (Valve != 0) {
output.WriteRawTag(104);
output.WriteInt32(Valve);
}
if (Createtime != 0L) {
output.WriteRawTag(112);
output.WriteInt64(Createtime);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
#endif
}
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
if (Code != 0L) {
output.WriteRawTag(8);
output.WriteInt64(Code);
}
if (RoomNumber.Length != 0) {
output.WriteRawTag(18);
output.WriteString(RoomNumber);
}
if (HostNumber.Length != 0) {
output.WriteRawTag(26);
output.WriteString(HostNumber);
}
if (Devicetype.Length != 0) {
output.WriteRawTag(34);
output.WriteString(Devicetype);
}
if (Address.Length != 0) {
output.WriteRawTag(42);
output.WriteString(Address);
}
if (Name.Length != 0) {
output.WriteRawTag(50);
output.WriteString(Name);
}
if (Status != 0) {
output.WriteRawTag(56);
output.WriteInt32(Status);
}
if (Brightness != 0) {
output.WriteRawTag(64);
output.WriteInt32(Brightness);
}
if (CurrentTemp != 0) {
output.WriteRawTag(72);
output.WriteInt32(CurrentTemp);
}
if (SettingTemp != 0) {
output.WriteRawTag(80);
output.WriteInt32(SettingTemp);
}
if (FanSpeed != 0) {
output.WriteRawTag(88);
output.WriteInt32(FanSpeed);
}
if (Mode != 0) {
output.WriteRawTag(96);
output.WriteInt32(Mode);
}
if (Valve != 0) {
output.WriteRawTag(104);
output.WriteInt32(Valve);
}
if (Createtime != 0L) {
output.WriteRawTag(112);
output.WriteInt64(Createtime);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
}
}
#endif
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public int CalculateSize() {
int size = 0;
if (Code != 0L) {
size += 1 + pb::CodedOutputStream.ComputeInt64Size(Code);
}
if (RoomNumber.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeStringSize(RoomNumber);
}
if (HostNumber.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeStringSize(HostNumber);
}
if (Devicetype.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeStringSize(Devicetype);
}
if (Address.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeStringSize(Address);
}
if (Name.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
}
if (Status != 0) {
size += 1 + pb::CodedOutputStream.ComputeInt32Size(Status);
}
if (Brightness != 0) {
size += 1 + pb::CodedOutputStream.ComputeInt32Size(Brightness);
}
if (CurrentTemp != 0) {
size += 1 + pb::CodedOutputStream.ComputeInt32Size(CurrentTemp);
}
if (SettingTemp != 0) {
size += 1 + pb::CodedOutputStream.ComputeInt32Size(SettingTemp);
}
if (FanSpeed != 0) {
size += 1 + pb::CodedOutputStream.ComputeInt32Size(FanSpeed);
}
if (Mode != 0) {
size += 1 + pb::CodedOutputStream.ComputeInt32Size(Mode);
}
if (Valve != 0) {
size += 1 + pb::CodedOutputStream.ComputeInt32Size(Valve);
}
if (Createtime != 0L) {
size += 1 + pb::CodedOutputStream.ComputeInt64Size(Createtime);
}
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
return size;
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public void MergeFrom(DeviceActionChangeDataPush other) {
if (other == null) {
return;
}
if (other.Code != 0L) {
Code = other.Code;
}
if (other.RoomNumber.Length != 0) {
RoomNumber = other.RoomNumber;
}
if (other.HostNumber.Length != 0) {
HostNumber = other.HostNumber;
}
if (other.Devicetype.Length != 0) {
Devicetype = other.Devicetype;
}
if (other.Address.Length != 0) {
Address = other.Address;
}
if (other.Name.Length != 0) {
Name = other.Name;
}
if (other.Status != 0) {
Status = other.Status;
}
if (other.Brightness != 0) {
Brightness = other.Brightness;
}
if (other.CurrentTemp != 0) {
CurrentTemp = other.CurrentTemp;
}
if (other.SettingTemp != 0) {
SettingTemp = other.SettingTemp;
}
if (other.FanSpeed != 0) {
FanSpeed = other.FanSpeed;
}
if (other.Mode != 0) {
Mode = other.Mode;
}
if (other.Valve != 0) {
Valve = other.Valve;
}
if (other.Createtime != 0L) {
Createtime = other.Createtime;
}
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public void MergeFrom(pb::CodedInputStream input) {
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
input.ReadRawMessage(this);
#else
uint tag;
while ((tag = input.ReadTag()) != 0) {
if ((tag & 7) == 4) {
// Abort on any end group tag.
return;
}
switch(tag) {
default:
_unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
break;
case 8: {
Code = input.ReadInt64();
break;
}
case 18: {
RoomNumber = input.ReadString();
break;
}
case 26: {
HostNumber = input.ReadString();
break;
}
case 34: {
Devicetype = input.ReadString();
break;
}
case 42: {
Address = input.ReadString();
break;
}
case 50: {
Name = input.ReadString();
break;
}
case 56: {
Status = input.ReadInt32();
break;
}
case 64: {
Brightness = input.ReadInt32();
break;
}
case 72: {
CurrentTemp = input.ReadInt32();
break;
}
case 80: {
SettingTemp = input.ReadInt32();
break;
}
case 88: {
FanSpeed = input.ReadInt32();
break;
}
case 96: {
Mode = input.ReadInt32();
break;
}
case 104: {
Valve = input.ReadInt32();
break;
}
case 112: {
Createtime = input.ReadInt64();
break;
}
}
}
#endif
}
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
uint tag;
while ((tag = input.ReadTag()) != 0) {
if ((tag & 7) == 4) {
// Abort on any end group tag.
return;
}
switch(tag) {
default:
_unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
break;
case 8: {
Code = input.ReadInt64();
break;
}
case 18: {
RoomNumber = input.ReadString();
break;
}
case 26: {
HostNumber = input.ReadString();
break;
}
case 34: {
Devicetype = input.ReadString();
break;
}
case 42: {
Address = input.ReadString();
break;
}
case 50: {
Name = input.ReadString();
break;
}
case 56: {
Status = input.ReadInt32();
break;
}
case 64: {
Brightness = input.ReadInt32();
break;
}
case 72: {
CurrentTemp = input.ReadInt32();
break;
}
case 80: {
SettingTemp = input.ReadInt32();
break;
}
case 88: {
FanSpeed = input.ReadInt32();
break;
}
case 96: {
Mode = input.ReadInt32();
break;
}
case 104: {
Valve = input.ReadInt32();
break;
}
case 112: {
Createtime = input.ReadInt64();
break;
}
}
}
}
#endif
}
#endregion
}
#endregion Designer generated code

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)
{