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 를 로그 데이터베이스 로 사용 하 는 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 지원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C#Task를 사용하여 비동기식 작업을 수행하는 방법라인이 완성된 후에 이 라인을 다시 시작할 수 없습니다.반대로 조인(Join)만 결합할 수 있습니다 (프로세스가 현재 라인을 막습니다). 임무는 조합할 수 있는 것이다. 연장을 사용하여 그것들을 한데 연결시키는 것이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.