C\#로그 데이터베이스 로 SqlServer 를 사용 하 는 디자인 과 구현

머리말
간단 한 로그 데이터베이스 만 들 기
기능 은 특별히 번 거 로 울 필요 가 없다.
주로 일반 로그 와 오류 로그 기록(INFO,ERROR)
데이터 베 이 스 를 로그 로 사용 하면 좋 은 점도 있 고 나 쁜 점도 있다.
텍스트 보다 조작 이 더 쉽다.
후기 보기 로 그 는 시간 에 따라 선택 할 수 있 습 니 다.
물론 요구 도 많 고 융통성 이 없어 요.
우선 PC 에 SqlServer 를 설치 해 야 합 니 다.
로그 4net 설정 으로 하려 고 했 는데.
설정 이 너무 번 거 로 워 서 자기가 디자인 하기 로 했 어 요.부족 한 점 이 많 을 거 예요.
다음 과 같은 몇 가지 절차 로 나 뉜 다.
1.로그 데이터 시트 만 들 기
하나의 표 로 저장 합 니 다.필드 는 서로 다른 로그 형식 을 구분 하기 위해 하나 더 설정 해 야 합 니 다.
구체 적 으로 어떻게 설정 해도 간단 합 니 다.필드 가 간단 합 니 다.

using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace RH.Iot.DomainModel.RhLogDto
{
 /// <summary>
 /// SqlServer           
 /// </summary>
 [SugarTable("LogRecord")]
 public class RhLogRecordDtoSqlServer
 {
  /// <summary>
  ///   
  /// </summary>
  [SugarColumn(IsPrimaryKey = true, IsIdentity = true)]//       (string      )
  public int Id { get; set; }
  /// <summary>
  ///   
  /// </summary>
  public string DateTime { get; set; }
  /// <summary>
  ///       
  /// </summary>
  public string LevelName { get; set; }
  /// <summary>
  ///   
  /// </summary>
  public string Message { get; set; }
  /// <summary>
  ///  
  /// </summary>
  public string Exception { get; set; }
  /// <summary>
  ///      
  /// </summary>
  public RhLogRecordDtoSqlServer()
  {

  }
  /// <summary>
  ///      
  /// </summary>
  public RhLogRecordDtoSqlServer(int Id,string DateTime,string LevelName,string Message,string Exception)
  {
   this.Id = Id;
   this.DateTime = DateTime;
   this.LevelName =LevelName;
   this.Message = Message;
   this.Exception = Exception;

  }
 }
}

저 는 SqlSugar 라 는 Orm 프레임 을 썼 습 니 다.
못 하면 배 워 보 세 요.데이터베이스 로 이 프레임 워 크 를 만 나 는 게 빠 질 수 없어 요.
SqlSugar 에 대해 서 초보 적 으로 알 고 있다 면 창고 개념 을 다시 한 번 보 세 요.
그리고 프로그램 을 도입 하 세 요.원 하지 않 으 셔 도 됩 니 다.
위 는 데이터베이스 시트 의 맵 클래스 입 니 다.
그러면 표 의 작성 과 그것 의 Sql 문장

CREATE TABLE [dbo].[LogRecord] (
 [Id]  INT   IDENTITY (1, 1) NOT NULL,
 [DateTime] NVARCHAR (20) NULL,
 [LevelName] NCHAR (10)  NULL,
 [Message] NVARCHAR (MAX) NULL,
 [Exception] NVARCHAR (MAX) NULL,
 PRIMARY KEY CLUSTERED ([Id] ASC)
);
2.관련 데이터 액세스 층 만 들 기
내 가 있 는 이곳 에 창고 저장 소 를 사 용 했 으 니,너 도 자신의 방식 을 사용 할 수 있다.
3.도움말 클래스

using Microsoft.Extensions.Logging;
using RH.Iot.DomainModel.RhLogDto;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace RH.Iot.DbAccess.RhSqlServerDbAccess.RhLogDbAccess
{
 
 /// <summary>
 /// LogDbHelper        
 ///   SqlServer     
 ///              
 ///      
 ///                       txt  (   ...)
 /// </summary>
 public class RhLogDbHelper
 {
  /// <summary>
  ///   
  /// </summary>
  public RhLogRecordDtoSqlServer rhLogRecordDtoSqlServer;
  /// <summary>
  ///         
  /// </summary>
  private RhLogRecordDtoDbAccessSqlServer DbAccess;
  /// <summary>
  ///      
  /// </summary>
  /// <param name="dbAccess">          </param>
  public RhLogDbHelper(RhLogRecordDtoDbAccessSqlServer dbAccess)
  {
   DbAccess = dbAccess;
   rhLogRecordDtoSqlServer = new RhLogRecordDtoSqlServer();
  }

  public void LogInfo(string msg) {

   rhLogRecordDtoSqlServer.DateTime = DateTime.Now.ToString();
   rhLogRecordDtoSqlServer.LevelName = "INFO";
   rhLogRecordDtoSqlServer.Message = msg;
   DbAccess.InsertAsync(rhLogRecordDtoSqlServer);

  }

  public void LogError(string msg,Exception ex)
  {
   rhLogRecordDtoSqlServer.DateTime = DateTime.Now.ToString();
   rhLogRecordDtoSqlServer.LevelName = "ERROR";
   rhLogRecordDtoSqlServer.Message = msg;
   rhLogRecordDtoSqlServer.Exception = ex.ToString();
   DbAccess.InsertAsync(rhLogRecordDtoSqlServer);
   

  }
 }
}

이 내용 들 은 직접 복사 할 수 없다.
항목 참조 가 다 르 기 때 문 입 니 다.
참고 할 수 있 습 니 다.
4.사용

 RhLogDbHelper rldh = new RhLogDbHelper(new RhLogRecordDtoDbAccessSqlServer());
   rldh.LogInfo("hhahaha");
   try
   {
    int a = 1;
    int b = a / 0;
   }
   catch (Exception ex)
   {

    rldh.LogError("    ",ex);
   }
5.결과

이것 은 단지 매우 간단 한 로그 데이터베이스 일 뿐이다.
뒤에 더 많은 기능 을 추가 해 야 돼 요.
C\#로그 데이터베이스 로 SqlServer 를 사용 하 는 디자인 과 구현 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 C\#SqlServer 를 로그 데이터베이스 로 사용 하 는 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 지원 바 랍 니 다!

좋은 웹페이지 즐겨찾기