コード例 #1
0
        /// <summary>
        /// 存储日志信息
        /// </summary>
        /// <param name="model"></param>
        public static void StorageData(SealedLogModel model)
        {
            if (model == null)
            {
                return;
            }
            Document doc = new Document();

            //文件路径
            doc.Add(new Field("Time", model.Time.ToDefaultTrimTime(), Field.Store.YES, Field.Index.NOT_ANALYZED));
            //文件名
            doc.Add(new Field("Level", model.Level.ToString(), Field.Store.YES, Field.Index.NOT_ANALYZED));
            doc.Add(new Field("Content", model.ToString(), Field.Store.YES, Field.Index.ANALYZED));
            lock (m_lock)
            {
                IndexWriter fsWriter = GetWriter(model.ProjectName);
                try
                {
                    fsWriter.AddDocument(doc);
                    fsWriter.Commit();
                }catch (Exception e)
                {
                    LogHelper.Critical(e.ToJson());
                }
            }
        }
コード例 #2
0
        public void Storage()
        {
            String path = Path.Combine(LoggerModel.Path, "testtxt", "write.lock");

            if (System.IO.File.Exists(path))
            {
                return;
            }
            path = Path.Combine(Environment.CurrentDirectory, "testtxt.txt");
            if (System.IO.File.Exists(path))
            {
                FileInfo file = new FileInfo(path);
                //文件内容
                using (var contents = new StreamReader(file.FullName, Encoding.UTF8))
                {
                    Random rnd = new Random();
                    while (!contents.EndOfStream)
                    {
                        int            level  = rnd.Next(0, 4);
                        SealedLogModel detail = new SealedLogModel()
                        {
                            Level       = (SealedLogLevel)level,
                            ProjectName = "testtxt",
                            Sign        = "测试",
                            Time        = DateTime.Now.AddMinutes(level),
                            Value       = contents.ReadLine()
                        };
                        LucenceHelper.StorageData(detail);
                    }
                }
            }
        }
コード例 #3
0
        static void Main(string[] args)
        {
            String path = Path.Combine(Environment.CurrentDirectory, "testtxt.txt");

            if (File.Exists(path))
            {
                FileInfo file = new FileInfo(path);
                //文件内容
                using (var contents = new StreamReader(file.FullName, Encoding.UTF8))
                {
                    Random rnd = new Random();
                    while (!contents.EndOfStream)
                    {
                        int            level  = rnd.Next(0, 4);
                        SealedLogModel detail = new SealedLogModel()
                        {
                            Level       = (SealedLogLevel)level,
                            ProjectName = "testtxt",
                            Sign        = "测试",
                            Time        = DateTime.Now.AddMinutes(level),
                            Value       = contents.ReadLine()
                        };
                        LucenceHelper.StorageData(detail);
                    }
                }
            }
            Console.WriteLine("Hello World!");

            while (true)
            {
                String query = Console.ReadLine();
                LucenceHelper.SearchData("testtxt", query);
            }
        }
コード例 #4
0
 public override bool Process(string message)
 {
     if (String.IsNullOrWhiteSpace(message))
     {
         return(true);
     }
     try
     {
         SealedLogModel model = message.ToObject <SealedLogModel>();
         LucenceHelper.StorageData(model);
     }
     catch (Exception e)
     {
         LogHelper.Error("LoggerMqConsume", e.Message);
         return(false);
     }
     return(true);
 }
コード例 #5
0
ファイル: LuceneHelper.cs プロジェクト: BestHYC/CoreFramework
 public override bool Process(string message)
 {
     if (String.IsNullOrWhiteSpace(message))
     {
         return(true);
     }
     try
     {
         SealedLogModel model = message.ToObject <SealedLogModel>();
         Document       doc   = new Document();
         //文件路径
         doc.Add(new Field("Time", model.Time.ToDefaultTrimTime(), Field.Store.YES, Field.Index.NOT_ANALYZED));
         //文件名
         doc.Add(new Field("Level", model.Level.ToString(), Field.Store.YES, Field.Index.NOT_ANALYZED));
         doc.Add(new Field("Content", model.ToString(), Field.Store.YES, Field.Index.ANALYZED));
         fsWriter.AddDocument(doc);
         fsWriter.Commit();
     }
     catch (Exception)
     {
         return(false);
     }
     return(true);
 }