148 lines
4.3 KiB
C#
148 lines
4.3 KiB
C#
|
#region License
|
||
|
// Copyright (c) 2007 James Newton-King
|
||
|
//
|
||
|
// Permission is hereby granted, free of charge, to any person
|
||
|
// obtaining a copy of this software and associated documentation
|
||
|
// files (the "Software"), to deal in the Software without
|
||
|
// restriction, including without limitation the rights to use,
|
||
|
// copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||
|
// copies of the Software, and to permit persons to whom the
|
||
|
// Software is furnished to do so, subject to the following
|
||
|
// conditions:
|
||
|
//
|
||
|
// The above copyright notice and this permission notice shall be
|
||
|
// included in all copies or substantial portions of the Software.
|
||
|
//
|
||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||
|
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||
|
// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||
|
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||
|
// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||
|
// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||
|
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||
|
// OTHER DEALINGS IN THE SOFTWARE.
|
||
|
#endregion
|
||
|
|
||
|
using System;
|
||
|
|
||
|
namespace Newtonsoft.Json.Tests.TestObjects
|
||
|
{
|
||
|
/// <summary>
|
||
|
/// What types of events are there? Just sticking to a basic set of four for now.
|
||
|
/// </summary>
|
||
|
/// <remarks></remarks>
|
||
|
public enum EventType
|
||
|
{
|
||
|
Debug = 0,
|
||
|
Info = 1,
|
||
|
Warning = 2,
|
||
|
Error = 3
|
||
|
}
|
||
|
|
||
|
public sealed class Event
|
||
|
{
|
||
|
|
||
|
/// <summary>
|
||
|
/// If no current user is specified, returns Nothing (0 from VB)
|
||
|
/// </summary>
|
||
|
/// <returns></returns>
|
||
|
/// <remarks></remarks>
|
||
|
private static int GetCurrentUserId()
|
||
|
{
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
/// <summary>
|
||
|
/// Gets either the application path or the current stack trace.
|
||
|
/// NOTE: You MUST call this from the top level entry point. Otherwise,
|
||
|
/// the stack trace will be buried in Logger itself.
|
||
|
/// </summary>
|
||
|
/// <returns></returns>
|
||
|
/// <remarks></remarks>
|
||
|
private static string GetCurrentSubLocation()
|
||
|
{
|
||
|
return "";
|
||
|
}
|
||
|
|
||
|
private string _sublocation;
|
||
|
private int _userId;
|
||
|
private EventType _type;
|
||
|
private string _summary;
|
||
|
private string _details;
|
||
|
private string _stackTrace;
|
||
|
private string _tag;
|
||
|
private DateTime _time;
|
||
|
|
||
|
public Event(string summary)
|
||
|
{
|
||
|
_summary = summary;
|
||
|
_time = DateTime.Now;
|
||
|
|
||
|
if (_userId == 0) _userId = GetCurrentUserId();
|
||
|
//This call only works at top level for now.
|
||
|
//If _stackTrace = Nothing Then _stackTrace = Environment.StackTrace
|
||
|
if (_sublocation == null) _sublocation = GetCurrentSubLocation();
|
||
|
}
|
||
|
|
||
|
public Event(string sublocation, int userId, EventType type, string summary, string details, string stackTrace, string tag)
|
||
|
{
|
||
|
_sublocation = sublocation;
|
||
|
_userId = userId;
|
||
|
_type = type;
|
||
|
_summary = summary;
|
||
|
_details = details;
|
||
|
_stackTrace = stackTrace;
|
||
|
_tag = tag;
|
||
|
_time = DateTime.Now;
|
||
|
|
||
|
if (_userId == 0) _userId = GetCurrentUserId();
|
||
|
//If _stackTrace = Nothing Then _stackTrace = Environment.StackTrace
|
||
|
if (_sublocation == null) _sublocation = GetCurrentSubLocation();
|
||
|
}
|
||
|
|
||
|
public override string ToString()
|
||
|
{
|
||
|
return string.Format("{{ sublocation = {0}, userId = {1}, type = {2}, summary = {3}, details = {4}, stackTrace = {5}, tag = {6} }}", _sublocation, _userId, _type, _summary, _details, _stackTrace, _tag);
|
||
|
}
|
||
|
|
||
|
public string sublocation
|
||
|
{
|
||
|
get { return _sublocation; }
|
||
|
set { _sublocation = value; }
|
||
|
}
|
||
|
public int userId
|
||
|
{
|
||
|
get { return _userId; }
|
||
|
set { _userId = value; }
|
||
|
}
|
||
|
public EventType type
|
||
|
{
|
||
|
get { return _type; }
|
||
|
set { _type = value; }
|
||
|
}
|
||
|
public string summary
|
||
|
{
|
||
|
get { return _summary; }
|
||
|
set { _summary = value; }
|
||
|
}
|
||
|
public string details
|
||
|
{
|
||
|
get { return _details; }
|
||
|
set { _details = value; }
|
||
|
}
|
||
|
public string stackTrace
|
||
|
{
|
||
|
get { return _stackTrace; }
|
||
|
set { _stackTrace = value; }
|
||
|
}
|
||
|
public string tag
|
||
|
{
|
||
|
get { return _tag; }
|
||
|
set { _tag = value; }
|
||
|
}
|
||
|
public DateTime time
|
||
|
{
|
||
|
get { return _time; }
|
||
|
}
|
||
|
}
|
||
|
}
|