我正在使用.net core将Audit Log写入postgres数据库。我正在关注文章Audit.WebAPI。一切正常。日志正确写入数据库。我的要求是在登录数据库时传递一些其他信息,但是我无法做到这一点。请帮助我。
PostgreSQL表:
CREATE TABLE log.auditlog
(
id integer NOT NULL DEFAULT nextval('log.auditlog_id_seq'::regclass),
inserted_date timestamp without time zone NOT NULL DEFAULT now(),
updated_date timestamp without time zone NOT NULL DEFAULT now(),
data jsonb NOT NULL,
module character varying(100),
CONSTRAINT auditlog_pkey PRIMARY KEY (id)
)
在这里,我将额外的列名添加为 module ,并希望将数据设置到其中。
.Net Core
Audit.Core.Configuration.DataProvider = new PostgreSqlDataProvider()
{
ConnectionString = "Server=localhost;Port=5432;User Id=postgres;Password=1234;Database=postgres;",//Local
TableName = "auditlog",
IdColumnName = "id",
DataColumnName = "data",
DataType = "JSONB",
Schema = "log",
LastUpdatedDateColumnName = "updated_date"
};
通过.NET Core进行审核日志记录,任何其他建议都会很好。
答案 0 :(得分:2)
从版本14.2.2开始,您现在可以使用CustomColumn()
流利的API在PostgreSQL表上指定自定义列:
Audit.Core.Configuration.Setup()
.UsePostgreSql(config => config
.ConnectionString("Server=localhost;Port=5432;User Id=postgres;Password=1234;Database=postgres;")
.TableName("auditlog")
.IdColumnName("id")
.DataColumn("data", DataType.JSONB)
.Schema("log")
.LastUpdatedColumnName("updated_date")
.CustomColumn("event_type", ev => ev.EventType)
.CustomColumn("module", ev => "MyModule"));