当前位置: 首页>>代码示例>>C#>>正文


C# Logger.Set方法代码示例

本文整理汇总了C#中System.Logger.Set方法的典型用法代码示例。如果您正苦于以下问题:C# Logger.Set方法的具体用法?C# Logger.Set怎么用?C# Logger.Set使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在System.Logger的用法示例。


在下文中一共展示了Logger.Set方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: DnsCache

        //リソース定義(Dat)で初期化する場合
        public DnsCache(Logger logger, OneOption oneOption, Dat dat, string dName)
        {
            const uint ttl = 0; //有効期限なし
            var ns = "";//SOA追加時に使用するため、NSレコードを見つけたときにサーバ名を保存しておく

            //オプションを読み込んで、ローカルデータを初期化する
            //this.oneOption = oneOption;
            _soaExpire = (uint)(int)oneOption.GetValue("soaExpire");

            DomainName = dName;

            foreach (var o in dat) {
                if (o.Enable) {
                    var type = Convert.ToInt32(o.StrList[0]);
                    var name = o.StrList[1];
                    var alias = o.StrList[2];
                    var ip = new Ip(o.StrList[3]);
                    var n = Convert.ToInt32(o.StrList[4]);

                    var dnsType = DnsType.A;
                    if (type == 1) {
                        dnsType = DnsType.Ns;
                    } else if (type == 2) {
                        dnsType = DnsType.Mx;
                    } else if (type == 3) {
                        dnsType = DnsType.Cname;
                    } else if (type == 4) {
                        dnsType = DnsType.Aaaa;
                    }
                    var priority = (ushort)n;
                    //uint addr = ip.AddrV4;        //class Ip -> uint;

                    //最後に.がついていない場合、ドメイン名を追加する
                    if (name.LastIndexOf('.') != name.Length - 1) {
                        name = name + "." + DomainName;
                    }
                    if (alias.LastIndexOf('.') != alias.Length - 1) {
                        alias = alias + "." + DomainName;
                    }

                    //CNAME以外は、PTRレコードを自動的に生成する
                    if (dnsType != DnsType.Cname) {
                        //PTR名を作成 [例] 192.168.0.1 -> 1.0.168.192.in-addr.arpa;
                        if (ip.InetKind == InetKind.V4) { //IPv4
                            string ptrName = string.Format("{0}.{1}.{2}.{3}.in-addr.arpa.", ip.IpV4[3], ip.IpV4[2], ip.IpV4[1], ip.IpV4[0]);
                            Add(new OneRR(ptrName, DnsType.Ptr, ttl, DnsUtil.Str2DnsName(name)));
                        } else { //IPv6
                            var sb = new StringBuilder();
                            foreach (var a in ip.IpV6) {
                                sb.Append(string.Format("{0:x4}", a));
                            }
                            string ipStr = sb.ToString();
                            if (ipStr.Length == 32) {
                                sb = new StringBuilder();
                                for (int e = 31; e >= 0; e--) {
                                    sb.Append(ipStr[e]);
                                    sb.Append('.');
                                }
                                Add(new OneRR(sb + "ip6.arpa.", DnsType.Ptr, ttl, DnsUtil.Str2DnsName(name)));
                            }
                        }
                    }

                    //データベースへの追加
                    if (dnsType == DnsType.A) {
                        if (ip.InetKind == InetKind.V4) {
                            //ネットワークバイト配列の取得
                            Add(new OneRR(name, DnsType.A, ttl, ip.NetBytes()));
                        } else {
                            logger.Set(LogKind.Error, null, 19, string.Format("address {0}", ip));
                        }
                    } else if (dnsType == DnsType.Aaaa) {
                        if (ip.InetKind == InetKind.V6) {
                            Add(new OneRR(name, DnsType.Aaaa, ttl, ip.NetBytes()));
                        } else {
                            logger.Set(LogKind.Error, null, 20, string.Format("address {0}", ip));
                        }
                    } else if (dnsType == DnsType.Ns) {
                        ns = name;//SOA追加時に使用するため、ネームサーバの名前を保存する

                        // A or AAAAレコードも追加
                        Add(new OneRR(name, (ip.InetKind == InetKind.V4) ? DnsType.A : DnsType.Aaaa, ttl, ip.NetBytes()));

                        Add(new OneRR(DomainName, DnsType.Ns, ttl, DnsUtil.Str2DnsName(name)));
                    } else if (dnsType == DnsType.Mx) {
                        // A or AAAAレコードも追加
                        Add(new OneRR(name, DnsType.A, ttl, ip.NetBytes()));

                        //プライオリィ
                        byte[] dataName = DnsUtil.Str2DnsName(name);//DNS名前形式に変換
                        byte[] data = Bytes.Create(Util.htons(priority), dataName);
                        Add(new OneRR(DomainName, DnsType.Mx, ttl, data));
                    } else if (dnsType == DnsType.Cname) {
                        Add(new OneRR(alias, DnsType.Cname, ttl, DnsUtil.Str2DnsName(name)));
                    }
                }

                //SOAレコードの追加
                if (ns != "") { //NSサーバ名が必須
//.........这里部分代码省略.........
开发者ID:jsakamoto,项目名称:bjd5,代码行数:101,代码来源:DnsCache.cs


注:本文中的System.Logger.Set方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。