在Audit.WebAPI

时间:2019-04-10 07:29:09

标签: c# asp.net-core audit.net

我正在使用.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进行审核日志记录,任何其他建议都会很好。

1 个答案:

答案 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"));