osharp3 原来的数据日志,有配置文件中有这总开关,DataLoggingEnabled,原来的程序是,这个总开关关了,就无法记录数据日志了,,如果开了,,他不管记录不记录数据日志,系统都会存数据改动日志到DataLogCache中

我在 DbContextBase中注入了一个操作记录员类 public IOperateLoger OperateLoger { get; set; }

    public class OperateLoger : IOperateLoger,IScopeDependency
{
public IOperateLogWriter LogWriter { get;private set; }
/// <summary>
/// 获取或设置 操作人信息
/// </summary>
public IOperator Operator { get; private set; } public IDataLogCache DataLogCache { get;private set; } public OperateLoger(IOperator @operator, IOperateLogWriter operateLogWriter, IDataLogCache dataLogCache)
{
Operator = @operator;
LogWriter = operateLogWriter;
DataLogCache = dataLogCache;
} public FunctionInfo FunctionInfo { get; set; }
public OperationResult OperationResult { get; set; } public bool DataLogEnabled {
get { return FunctionInfo == null?false:FunctionInfo.DataLogEnabled; }
} public void SaveLog()
{
if(FunctionInfo.OperateLogEnabled == false)
return;
var log = new OperateLog();
log.Id = CombHelper.NewComb();
log.CreatedTime = DateTime.Now;
log.OperatorInfo.UserName = Operator.UserName;
log.OperatorInfo.UserId = Operator.UserId;
log.FunctionName = FunctionInfo.ModuleName + FunctionInfo.PowerName;
log.OperationResult = OperationResult;
if (FunctionInfo.DataLogEnabled)
{
foreach (var dataLog in DataLogCache.DataLogs)
{
log.DataLogs.Add(dataLog);
}
}
LogWriter.Write(log);
}
}

使用方法:

我们就可以通过 功能信息dto 来控制是否记录操作日志,,针对性比较强

    public class FunctionInfo
{
/// <summary>
///权限标记
/// </summary>
[Required, StringLength(50)]
public string PowerCode { get; set; } /// <summary>
///权限名称
/// </summary>
[Required, StringLength(50)]
public string PowerName { get; set; } /// <summary>
///模块标记
/// </summary>
[Required, StringLength(50)]
public string PageCode { get; set; }// /// <summary>
///模块名称
/// </summary>
[Required, StringLength(50)]
public string ModuleName { get; set; } /// <summary>
/// 获取或设置 是否启用操作日志
/// </summary>
public bool OperateLogEnabled { get; set; } /// <summary>
/// 获取或设置 是否启用数据日志
/// </summary>
public bool DataLogEnabled { get; set; }
}
相关链接:
 
附加说明:osharp3的操作日志功能
 
 数据日志的开头,还可以在实体信息记录EntityInfo上控制
配置那开了DataLoggingEnabled,可以针对某个实体在EntityInfo关闭
功能信息Function上也有操作日志和数据日志的日志开关

osharp3 操作日志之数据日志 控制增强的更多相关文章

  1. 【开源】OSharp3.0框架解说系列(6.2):操作日志与数据日志

    OSharp是什么? OSharp是个快速开发框架,但不是一个大而全的包罗万象的框架,严格的说,OSharp中什么都没有实现.与其他大而全的框架最大的不同点,就是OSharp只做抽象封装,不做实现.依 ...

  2. ORACLE 移动数据文件 控制文件 重做日志文件

    ORACLE数据库有时候需要对存储进行调整,增加分区.IO调优等等,此时需要移动数据文件.重做日志文件.控制文件等等,下文结合例子总结一下这方面的知识点. 进行数据文件.重做日志文件.控制文件的迁移前 ...

  3. Mysql之binlog日志说明及利用binlog日志恢复数据操作记录

    众所周知,binlog日志对于mysql数据库来说是十分重要的.在数据丢失的紧急情况下,我们往往会想到用binlog日志功能进行数据恢复(定时全备份+binlog日志恢复增量数据部分),化险为夷! 一 ...

  4. Mysql利用binlog日志恢复数据操作(转)

    a.开启binlog日志:1)编辑打开mysql配置文件/etc/mys.cnf[root@vm-002 ~]# vim /etc/my.cnf在[mysqld] 区块添加 log-bin=mysql ...

  5. 【转】Mysql之binlog日志说明及利用binlog日志恢复数据操作记录

    众所周知,binlog日志对于mysql数据库来说是十分重要的.在数据丢失的紧急情况下,我们往往会想到用binlog日志功能进行数据恢复(定时全备份+binlog日志恢复增量数据部分),化险为夷! 废 ...

  6. SqlServer 2014该日志未截断,因为其开始处的记录是挂起的复制操作或变更数据捕获

    环境:AlwaysOn集群 操作系统:Windows Server 2008 R2 数据库: SQL Server 2014 错误提示:“该日志未截断,因为其开始处的记录是挂起的复制操作或变更数据捕获 ...

  7. .NET Core下的日志(3):如何将日志消息输出到控制台上

    当我们利用LoggerFactory创建一个Logger对象并利用它来实现日志记录,这个过程会产生一个日志消息,日志消息的流向取决于注册到LoggerFactory之上的LoggerProvider. ...

  8. 通过DataWorks数据集成归档日志服务数据至MaxCompute进行离线分析

    通过DataWorks归档日志服务数据至MaxCompute 官方指导文档:https://help.aliyun.com/document_detail/68322.html但是会遇到大家在分区上或 ...

  9. 解说mysql之binlog日志以及利用binlog日志恢复数据

    众所周知,binlog日志对于mysql数据库来说是十分重要的.在数据丢失的紧急情况下,我们往往会想到用binlog日志功能进行数据恢复(定时全备份+binlog日志恢复增量数据部分),化险为夷! 废 ...

随机推荐

  1. 网络流 poj 3308 最小割

    t个样例 n*m的矩阵 L个伞兵 给出每行每列装激光的花费 伞兵的位置 要求杀死所有伞兵 总费用为这些费用的乘积  求花费最小 建图  源点 ->   行   -> 列  -> 汇点 ...

  2. perl split 的一种特殊用法

    参考 http://blog.chinaunix.net/uid-1919528-id-2792055.html split 函数的正规语法应该是: split /PATTERN/, EXPR 而使用 ...

  3. js,jquery转json的几种方法

    一.原生js转json, eval()方法,不需要引入外部插件; //由JSON字符串转换为JSON对象 var obj = eval('(' + jsonStr + ')'); 或者 var obj ...

  4. BZOJ 1089: [SCOI2003]严格n元树

    1089: [SCOI2003]严格n元树 Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 1591  Solved: 795[Submit][Statu ...

  5. 【BZOJ-1086】王室联邦 分块 + 块状树

    1086: [SCOI2005]王室联邦 Time Limit: 10 Sec  Memory Limit: 162 MBSec  Special JudgeSubmit: 1094  Solved: ...

  6. Android数据存储-通过SharedPreferences实现记住密码的操作

    在Android中登陆中,为了实现用户的方便,往往需要根据用户的需要进行记住密码的操作,所以,在Android数据存储中SharedPreferences恰恰可以实现这一点 下面,小编将带领大家通过S ...

  7. Sender

    多个对象用同一个方法的时候,想对多个对象分别操作的话就用Sender.  BackGroundWorker worker1 = sender as BackGroundWork.  分别去取当前的对象 ...

  8. HttpClient + Jsoup模拟登录教务处并获取课表

    1.概述 最近想做一个校园助手类的APP,由于第一次做,所以打算先把每个功能单独实现,防止乱了阵脚.利用教务处登录获取课表和成绩等是一个基本功能,所以以获取课表为例实现了这个功能.完整代码点这里,尝试 ...

  9. SQL Server 分页

    select top "+pageSize+" * from Table where id not in (select top "+(currentPage - 1) ...

  10. pyenv的使用

    开始想使用virtual实现不同的版本的py隔离,然后发现不太方便,然后发现了这货. pyenv安装(ubuntu环境 ➜ ~ git clone git://github.com/yyuu/pyen ...