Update: Support extended logging arguments

This commit is contained in:
Gary Sharp
2013-05-15 16:19:04 +10:00
parent 0914a85be6
commit 7389d7521f
13 changed files with 44 additions and 27 deletions
@@ -18,6 +18,7 @@ namespace Disco.Services.Logging.Models
public int EventTypeId { get; set; }
[Required]
public DateTime Timestamp { get; set; }
[Column(TypeName="ntext"), MaxLength]
public string Arguments { get; set; }
}
}
@@ -27,12 +27,7 @@ namespace Disco.Services.Logging.Models
object[] Arguments = null;
if (jsonArguments != null)
{
//var alArguments = fastJSON.JSON.Instance.Parse(jsonArguments) as ArrayList; // Old fastJSON Implementation
Arguments = JsonConvert.DeserializeObject<object[]>(jsonArguments);
//if (alArguments != null)
//{
// Arguments = alArguments.ToArray();
//}
}
return Create(logModule, eventType, Timestamp, Arguments);
}
@@ -11,13 +11,13 @@ namespace Disco.Services.Logging.Targets
{
public LogPersistContext(string ConnectionString) : base(ConnectionString) { }
static LogPersistContext()
{
Database.SetInitializer<LogPersistContext>(new LogPersistContextInitializer());
}
public DbSet<Models.LogModule> Modules { get; set; }
public DbSet<Models.LogEventType> EventTypes { get; set; }
public DbSet<Models.LogEvent> Events { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
//modelBuilder.Conventions.Remove<IncludeMetadataConvention>();
}
}
}
@@ -0,0 +1,20 @@
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Disco.Services.Logging.Targets
{
public class LogPersistContextInitializer : IDatabaseInitializer<LogPersistContext>
{
public void InitializeDatabase(LogPersistContext context)
{
if (!context.Database.Exists())
{
context.Database.Create();
}
}
}
}