我们正在使用 Python FastAPI 编写一个 Web 服务,该服务将托管在 Kubernetes 中。出于审计目的,我们需要保存特定路由的request/的原始 JSON 正文。JSON的主体大小约为1MB,最好这不应该影响响应时间。我们怎样才能做到这一点?responserequestresponse
是否有一个很好的策略来记录ASP MVC应用程序上的用户活动?(ActionFilters/HTTPModules).
像上次用户活动的东西(就像StackOverflow"23分钟前看到的那样"),甚至是使用的页面和控制器,并进一步推动了点击的按钮或链接.
我安装了ELMAH但据我所知它只是用于错误记录.
PD:谷歌分析不是一个选项.
我想更改日志文件中的时间戳,以便它反映我当前的时区,以便我可以更快的速度调试错误,
我可以更改日志文件中的时区吗?
目前我的配置是:
logging.basicConfig(filename='audit.log',
filemode='w',
level=logging.INFO,
format='%(asctime)s %(message)s',
datefmt='%m/%d/%Y %I:%M:%S %p')
Run Code Online (Sandbox Code Playgroud) 我有一个班级客户.我希望能够审计这个类的属性的变化(不是整个类 - 只是它的属性).
public class Client {
private Long id;
private String firstName;
private String lastName;
private String email;
private String mobileNumber;
private Branch companyBranch;
Run Code Online (Sandbox Code Playgroud)
实际上,使用@Audited注释审核整个实体非常容易.
但我想要的是使用我的类结构审核这些更改.
这是我想要的结果类:
public class Action {
private String fieldName;
private String oldValue;
private String newValue;
private String action;
private Long modifiedBy;
private Date changeDate;
private Long clientID;
Run Code Online (Sandbox Code Playgroud)
结果应如下所示:
fieldName +"已从"+ oldValue +"更改为"+ newValue +","clientID +"更改为"modifiedBy;
我这样做的原因是我需要将这些更改存储到Action表下的DB中 - 因为我将来自不同实体的审核属性,我想将它们存储在一起,然后有能力在需要时获取它们.
我怎样才能做到这一点?
谢谢
我知道那里有几个类似的帖子,但我找不到任何解决这个问题的方法.
我想在Entity Framework 6中添加,更改或删除实体(软删除)时添加(某种)AudioLog.我已经重写了SaveChanges,因为我只想为EntityStates添加,修改或删除的日志条目,我在第一次调用SaveChanges之前获取列表.问题是,因为我需要记录已执行的操作,我需要检查实体的EntityState.但是在调用SaveChanges之后,所有条目的EntityState都是Unchanged.
public override int SaveChanges()
{
using (var scope = new TransactionScope())
{
var modifiedEntries = ChangeTracker.Entries()
.Where(e => e.State == EntityState.Added || e.State == EntityState.Deleted || e.State == EntityState.Modified)
.ToList();
int changes = base.SaveChanges();
foreach (var entry in modifiedEntries)
{
ApplyAuditLog(entry);
}
base.SaveChanges();
scope.Complete();
return changes;
}
}
private void ApplyAuditLog(DbEntityEntry entry)
{
ILog entity = entry.Entity as ILog;
if (entity != null)
{
LogOperation operation;
switch (entry.State)
{
case EntityState.Added:
operation = LogOperation.CreateEntity;
break;
case …Run Code Online (Sandbox Code Playgroud) c# entity-framework savechanges audit-logging entity-framework-6
我在我的数据访问层使用JPA-2.0和Hibernate.
出于审计日志记录的目的,我通过在persistence.xml中配置下面的属性来使用Hibernate的EmptyInterceptor:
<property name="hibernate.ejb.interceptor"
value="com.mycom.audit.AuditLogInterceptor" />
Run Code Online (Sandbox Code Playgroud)
凡AuditLogInterceptor扩展Hibernate的' org.hibernate.EmptyInterceptor '.
public class AuditLogInterceptor extends EmptyInterceptor {
private Long userId;
public AuditLogInterceptor() {}
@Override
public boolean onSave(Object entity, Serializable id, Object[] state,
String[] propertyNames, Type[] types) throws CallbackException {
// Need to perform database operations using JPA entity manager
return false;
}
@Override
public boolean onFlushDirty(Object entity, Serializable id,
Object[] currentState, Object[] previousState,
String[] propertyNames, Type[] types) {
// other code here
return false;
}
@Override
public void postFlush(Iterator iterator) …Run Code Online (Sandbox Code Playgroud) 我正在寻找一个Rails 4支持的gem来执行审计相关的任务.我找到了类似的宝石,但不支持Rails 4(除了纸质跟踪,但它具有我不需要的所有版本化的东西):
有没有人有任何建议?经审核的宝石似乎与我正在寻找的最相似.
谢谢!:-)
我想自动生成某种日志,记录在生产环境中通过 Django shell 进行的所有数据库更改。
我们使用模式和数据迁移脚本来更改生产数据库,并且它们是版本控制的。因此,如果我们引入一个错误,很容易追踪它。但是,如果团队中的开发人员通过 Django shell 更改数据库,从而引入问题,目前我们只能希望他们记得他们做了什么,或者/并且我们可以在 Python shell 历史记录中找到他们的命令。
例子。我们假设团队中的开发人员通过 Python shell 执行了以下代码:
>>> tm = TeamMembership.objects.get(person=alice)
>>> tm.end_date = date(2022,1,1)
>>> tm.save()
Run Code Online (Sandbox Code Playgroud)
它更改数据库中的团队成员资格对象。我想以某种方式记录下来。
我知道有很多与审计日志记录相关的 Django 包,但我只对 Django shell 触发的更改感兴趣,并且我想记录更新数据的 Python 代码。
所以我想到的问题是:
pre_save所有模型的信号来了解数据是否发生变化,但我如何知道源是否来自 Python shell?我怎么知道原始的 Python 语句是什么?有没有办法可以加密log4j.properties中的密码
以下是我的追加者
log4j.appender.DB=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.DB.URL=jdbc:mysql://localhost:3306/anilpractice
log4j.appender.DB.driver=com.mysql.jdbc.Driver
log4j.appender.DB.user=root
log4j.appender.DB.password=P@ssw0rd
log4j.appender.DB.sql=INSERT INTO logs VALUES('%x','%d{dd MMM yyyy HH:mm:ss}','%C','%p','%m')
log4j.appender.DB.layout=org.apache.log4j.PatternLayout
Run Code Online (Sandbox Code Playgroud)
请帮我解决一下如何加密.password标签?
谢谢你们.
我已将audit-logging插件安装到我的应用程序中.grails版本是2.1.1,插件版本是1.0.1.
在我的Config.groovy班上,我添加了这个
auditLog {
verbose = true // verbosely log all changed values to db
logIds = true // log db-ids of associated objects.
// Note: if you change next 2 properties, you must update your database schema!
tablename = 'audit_logs' // table name for audit logs.
transactional = false
actorClosure = { request, session ->
org.apache.shiro.SecurityUtils.getSubject()?.getPrincipal()
}
Run Code Online (Sandbox Code Playgroud)
在我的域类中,我添加了这个
class Survey {
static auditable = true
static final int NO_RUNNING_SURVERY = 0 …Run Code Online (Sandbox Code Playgroud) audit-logging ×10
logging ×3
java ×2
python ×2
spring ×2
asp.net-mvc ×1
audit-trail ×1
c# ×1
django ×1
django-shell ×1
fastapi ×1
gem ×1
grails ×1
grails-2.1 ×1
hibernate ×1
jpa ×1
jpa-2.0 ×1
jsp ×1
log4j ×1
plugins ×1
python-2.7 ×1
ruby ×1
savechanges ×1