CYQ.Data V5 从入门到放弃ORM系列:教程 - Log、SysLogs两个日志类使用

简介:

Log 静态类介绍:

Public Static (Shared) Methods

GetExceptionMessage 获取异常的内部信息
WriteLogToDB Overloaded. 将日志写到数据库中[需要配置LogConn项后方生效 ]
WriteLogToTxt Overloaded. 将日志写到外部txt[web.config中配置路径,配置项为Logpath,默认路径为 "Logs/" ] 

说明:

1:这个类很简单,主要的使用方法只有:WriteLogToTxt。

2:WriteLogToDB这个方法(只是SysLogs的简单封装用法,内部用的较多,后续可能会屏蔽此方法,可以暂不介绍)。

3:GetExceptionMessage只是从Exception里获取字符串,所以没啥好说。

Log类的Demo代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
static  void  Main( string [] args)
        {
            ExeLog();
           // ExeSysLog();
            Console.Read();
        }
 
        static  void  ExeLog()
        {
            AppConfig.Log.IsWriteLog =  true ;
            AppConfig.Log.LogPath =  "自定义错误日志" ;
            Log.WriteLogToTxt( "这是错误信息" );
            Log.WriteLogToTxt( "这是错误信息" , LogType.Assert);
            Log.WriteLogToTxt( "这是错误信息" , LogType.Debug);
            Log.WriteLogToTxt( "这是错误信息" , LogType.Error);
            Log.WriteLogToTxt( "这是错误信息" , LogType.Info);
            Log.WriteLogToTxt( "这是错误信息" , LogType.Warn);
            Console.WriteLine( "请查看Debug目录" );
        }

运行后的目录情况:

说明:

1:AppConfig类对应属性都是可以配置在Web.Config或App.Config,示例代码中直接用代码配置了。

2:IsWriteLog要配置为True,才会写文本(不配置默认抛异常,不写日志)。

SysLogs 实例类:

Public Instance Properties

CreateTime 创建时间
ID 标识主键
LogType 日志类型
Message 日志内容
PageUrl 请求的地址
UserName 记录者用户名 

说明:

1:SysLogs该类主要用来写数据库日志用(Log类是写文本)。

2:需要配置LogConn的数据库链接,如果和默认在同一个数据库,配置LogConn为Conn即可。

3:实例后用Insert方法即可。

SysLogs 类的Demo代码:

复制代码
static void ExeSysLog()
        {
            AppConfig.Log.LogConn = "txt path={0}txtdb";//演示只有用文本数据库来演示了
            AppConfig.Log.LogTableName = "MyLogs";//可以更改表名
            using (SysLogs sl=new SysLogs())//往数据库里写一条错误日志
            {
                sl.Message = "这是错误信息";
                sl.PageUrl = “http://code.taobao.org/svn/cyqopen/trunk/CYQ.Data.GettingStarted/”;
                sl.UserName = "路过秋天";
                sl.LogType = "Sys";
                sl.Insert();
                List<SysLogs> list = sl.Select<SysLogs>();
                Console.WriteLine("现在的有:" + list.Count + "条数据");
            }

            // 
            Log.WriteLogToDB("呵呵", LogType.Error, "cyq");//和使用sysLogs一样。
        }
复制代码

说明:

1:需要指定LogConn:数据库对应的链接。

2:指定LogTableName:指定表名(不指定则默认表名为SysLogs)

3:如果默认没有对应的表,会自动创建。

4:实例后就是普通ORM的增删改查操作。

5:简化的写法是调用Log.WriteLogToDB。

 

总结:

经过不断的优化各简化后,最终对外的使用方法灰常的简单。

项目的Demo示例源码,用SVN checkout:http://code.taobao.org/svn/cyqopen/trunk/CYQ.Data.GettingStarted/

最后谢谢大伙的支持!


本文原创发表于博客园,作者为路过秋天,原文链接:http://www.cnblogs.com/cyq1162/p/5792204.html

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
消息中间件 Java Kafka
搭建ELK日志收集,保姆级教程
本文介绍了分布式日志采集的背景及ELK与Kafka的整合应用。传统多服务器环境下,日志查询效率低下,因此需要集中化日志管理。ELK(Elasticsearch、Logstash、Kibana)应运而生,但单独使用ELK在性能上存在瓶颈,故结合Kafka实现高效的日志采集与处理。文章还详细讲解了基于Docker Compose构建ELK+Kafka环境的方法、验证步骤,以及如何在Spring Boot项目中整合ELK+Kafka,并通过Logback配置实现日志的采集与展示。
1551 64
搭建ELK日志收集,保姆级教程
|
缓存 Java 应用服务中间件
Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
本文详解Spring Boot十大核心配置优化技巧,涵盖Tomcat连接池、数据库连接池、Jackson时区、日志管理、缓存策略、异步线程池等关键配置,结合代码示例与通俗解释,助你轻松掌握高并发场景下的性能调优方法,适用于实际项目落地。
2077 5
|
监控 容灾 算法
阿里云 SLS 多云日志接入最佳实践:链路、成本与高可用性优化
本文探讨了如何高效、经济且可靠地将海外应用与基础设施日志统一采集至阿里云日志服务(SLS),解决全球化业务扩展中的关键挑战。重点介绍了高性能日志采集Agent(iLogtail/LoongCollector)在海外场景的应用,推荐使用LoongCollector以获得更优的稳定性和网络容错能力。同时分析了多种网络接入方案,包括公网直连、全球加速优化、阿里云内网及专线/CEN/VPN接入等,并提供了成本优化策略和多目标发送配置指导,帮助企业构建稳定、低成本、高可用的全球日志系统。
1645 55
|
存储 缓存 关系型数据库
图解MySQL【日志】——Redo Log
Redo Log(重做日志)是数据库中用于记录数据页修改的物理日志,确保事务的持久性和一致性。其主要作用包括崩溃恢复、提高性能和保证事务一致性。Redo Log 通过先写日志的方式,在内存中缓存修改操作,并在适当时候刷入磁盘,减少随机写入带来的性能损耗。WAL(Write-Ahead Logging)技术的核心思想是先将修改操作记录到日志文件中,再择机写入磁盘,从而实现高效且安全的数据持久化。Redo Log 的持久化过程涉及 Redo Log Buffer 和不同刷盘时机的控制参数(如 `innodb_flush_log_at_trx_commit`),以平衡性能与数据安全性。
1184 5
图解MySQL【日志】——Redo Log
|
缓存 Java 编译器
|
监控 Java 应用服务中间件
Tomcat log日志解析
理解和解析Tomcat日志文件对于诊断和解决Web应用中的问题至关重要。通过分析 `catalina.out`、`localhost.log`、`localhost_access_log.*.txt`、`manager.log`和 `host-manager.log`等日志文件,可以快速定位和解决问题,确保Tomcat服务器的稳定运行。掌握这些日志解析技巧,可以显著提高运维和开发效率。
2032 13
|
SQL 存储 关系型数据库
简单聊聊MySQL的三大日志(Redo Log、Binlog和Undo Log)各有什么区别
在MySQL数据库管理中,理解Redo Log(重做日志)、Binlog(二进制日志)和Undo Log(回滚日志)至关重要。Redo Log确保数据持久性和崩溃恢复;Binlog用于主从复制和数据恢复,记录逻辑操作;Undo Log支持事务的原子性和隔离性,实现回滚与MVCC。三者协同工作,保障事务ACID特性。文章还详细解析了日志写入流程及可能的异常情况,帮助深入理解数据库日志机制。
2214 0
|
存储 关系型数据库 MySQL
图解MySQL【日志】——Undo Log
Undo Log(回滚日志)是 MySQL 中用于实现事务原子性和一致性的关键机制。在默认的自动提交模式下,MySQL 隐式开启事务,每条增删改语句都会记录到 Undo Log 中。其主要作用包括:
1054 0
|
SQL 数据采集 监控
基于日志服务数据加工分析Java异常日志
采集并脱敏了整个5月份的项目异常日志,准备使用日志服务数据加工做数据清洗以及分析。本案例是基于使用阿里云相关产品(OSS,RDS,SLS等)的SDK展开自身业务。需要对异常日志做解析,将原始日志中时间、错误码、错误信息、状态码、产品信息、请求方法、出错行号提取出来。然后根据提取出来的不同产品信息做多目标分发处理。对清洗后的数据做异常日志数据分析。
1382 0
基于日志服务数据加工分析Java异常日志