コード例 #1
0
ファイル: DbContextTarget.cs プロジェクト: njmube/NLog.Mvc
		private void WriteLogMessage(LogEventInfo logEvent)
		{
			var message = this.Layout.Render(logEvent);
			var messageElements = message.Split('|');
			
			if(messageElements.Length != 4 && messageElements.Length != 8)
			{
				ThrowInvalidLayoutException(message);
			}

			using(var context = new LoggingContext(string.Format("name={0}", this.ConnectionStringName)))
			{
				var entry = new LogEntry
				            	{
				            		TimeStamp = DateTime.Parse(messageElements[0]),
				            		Level = messageElements[1],
				            		Logger = messageElements[2], 
				            		Message = messageElements[3]
				            	};

				if(logEvent.Exception != null && messageElements.Length > 4)
				{
					entry.ExceptionType = messageElements[4];
					entry.Operation = messageElements[5];
					entry.ExceptionMessage = messageElements[6];
					entry.StackTrace = messageElements[7];
				}
				context.Log.Add(entry);
				context.SaveChanges();
			}
		}
コード例 #2
0
ファイル: LogController.cs プロジェクト: njmube/NLog.Mvc
    	public ViewResult Index()
        {
			logger.Trace("/Log/Index called");
			using(var context = new LoggingContext("LoggingContext"))
			{
				var model = new LogModel
				            	{
				            		LogEntries = context.Log.OrderByDescending(e => e.TimeStamp).ToList()
				            	};
				return View(model);
			}
        }