示例#1
0
 /// <summary>
 /// 初始化並建立Logger
 /// </summary>
 public static void Init
 (
     AppOption app,
     MailNotifyOption mail,
     MongoOptionV2 mo
 )
 {
     Log.Logger = DefaultWriteTo(app, mail, mo).CreateLogger();
 }
示例#2
0
        /// <summary>
        /// 取得預設的初始化設定WriteTo
        /// </summary>
        public static LoggerConfiguration DefaultWriteTo
        (
            AppOption app,
            MailNotifyOption mail,
            MongoOptionV2 mo
        )
        {
            string author = app.AuthorName;

            var writeto = new LoggerConfiguration().MinimumLevel.Verbose();

            //ColoredConsole
            writeto = writeto.WriteTo.LiterateConsole(restrictedToMinimumLevel: Serilog.Events.LogEventLevel.Verbose);

            //SlowNotify
            if (mail != null)
            {
                writeto = writeto.WriteTo.Email(
                    fromEmail: mail.MailList[0],
                    toEmails: mail.MailList,
                    mailServer: mail.MailServer,               // "smtp.mailgun.org",
                    networkCredential: mail.NetworkCredential, //new System.Net.NetworkCredential("*****@*****.**", "test123456"),
                    mailSubject: string.Format(mail.MailSubjectTemplate /*"【{0}】出問題了,請檢查"*/, app.ProjectName),
                    restrictedToMinimumLevel: mail.LogLevel,
                    batchPostingLimit: mail.BatchPostingLimit
                    );
            }

            //MongoDBCapped
            if (mo != null)
            {
                writeto = writeto.WriteTo.MongoDBCapped(
                    databaseUrl: mo.DatabaseUrl,
                    restrictedToMinimumLevel: mo.LogLevel,
                    cappedMaxSizeMb: mo.CollectionMB,
                    cappedMaxDocuments: null,
                    collectionName: mo.CollectionName,
                    batchPostingLimit: mo.BatchPostingLimit,
                    period: mo.BatchTimePostingLimit,
                    formatProvider: null);
            }

            writeto = writeto.Enrich.WithProperty("dApp", app.ProjectName).Enrich.WithProperty("dAuthor", app.AuthorName); //因為可能公用,所以自動加上dApp維度

            return(writeto);
        }
示例#3
0
        public static LoggerConfiguration DefaultWriteTo
        (
            AppOption app,
            MailNotifyOption mail,
            MongoOption mo
        )
        {
            var mov2 = new MongoOptionV2()
            {
                BatchPostingLimit     = mo.BatchPostingLimit,
                BatchTimePostingLimit = mo.BatchTimePostingLimit,
                CollectionMB          = mo.CollectionMB,
                CollectionName        = mo.CollectionName,
                LogLevel    = mo.LogLevel,
                DatabaseUrl = string.Format("mongodb://{0}:{1}/{2}", mo.MongoDBIp, "27017", app.AuthorName + "_" + app.ProjectName)
            };

            return(DefaultWriteTo(app, mail, mov2));
        }