Cleanup the Axiom project
This commit is contained in:
@@ -3,12 +3,7 @@
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<Nullable>disable</Nullable>
|
||||
<NoWarn>CS8604;CS0108;CS8602;CS8601;CS8620;CS8618;CS8603;CS8767;CS8625;CS8604;CS8600;CS8604</NoWarn>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="log4net, Version=2.0.8.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\log4net.2.0.8\lib\net45-full\log4net.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Configuration;
|
||||
using log4net;
|
||||
using System.Globalization;
|
||||
using Axiom.Utils;
|
||||
|
||||
@@ -13,7 +12,6 @@ namespace Axiom.Interpreter
|
||||
{
|
||||
public class Assembler
|
||||
{
|
||||
private static ILog logger = LogManager.GetLogger(typeof(Assembler));
|
||||
private BinaryReader binaryReader;
|
||||
private SymbolTable symbolTable;
|
||||
private CodeStack codeStack = new CodeStack();
|
||||
@@ -128,7 +126,7 @@ namespace Axiom.Interpreter
|
||||
case Parser.ParserSymbols.codeend2 :
|
||||
break;
|
||||
default :
|
||||
logger.Info(String.Format("No action for symbol {0}",Parser.SymbolToString(symbol)));
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("No action for symbol {0}",Parser.SymbolToString(symbol)));
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -136,7 +134,7 @@ namespace Axiom.Interpreter
|
||||
}
|
||||
catch(Exception exception)
|
||||
{
|
||||
logger.ErrorFormat("Exception during Assembly:{0}",exception);
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("Exception during Assembly:{0}",exception));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -248,7 +246,7 @@ namespace Axiom.Interpreter
|
||||
List<String> disassembly=Disassemble();
|
||||
foreach(String line in disassembly)
|
||||
{
|
||||
logger.Info(line);
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,line);
|
||||
}
|
||||
}
|
||||
// Fixup is used for combining multiple assembly streams. It resolves jump targets across each of these streams by offsetting the target address destinations by the relative code lengths of the streams.
|
||||
@@ -759,7 +757,7 @@ namespace Axiom.Interpreter
|
||||
{
|
||||
isInError=true;
|
||||
lastMessage=exception.ToString();
|
||||
logger.ErrorFormat("Exception:{0}",exception);
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("Exception:{0}",exception));
|
||||
}
|
||||
}
|
||||
public void VariableAccess()
|
||||
|
||||
@@ -4,7 +4,6 @@ using System.Linq;
|
||||
using System.Text;
|
||||
using System.IO;
|
||||
using System.Data;
|
||||
using log4net;
|
||||
using Axiom.Utils;
|
||||
|
||||
// FileName : CodeRunner.cs
|
||||
@@ -14,7 +13,6 @@ namespace Axiom.Interpreter
|
||||
{
|
||||
public class CodeRunner : IDisposable
|
||||
{
|
||||
private static ILog logger = LogManager.GetLogger(typeof(CodeRunner));
|
||||
private SymbolTable symbolTable = null;
|
||||
private Dictionary<int, Stream> precompiles = new Dictionary<int, Stream>();
|
||||
private bool useCache=false;
|
||||
@@ -144,7 +142,7 @@ namespace Axiom.Interpreter
|
||||
{
|
||||
LastMessage="Failed to scan the input document, possible invalid character sequence.";
|
||||
IsInError=true;
|
||||
logger.ErrorFormat(LastMessage);
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,LastMessage);
|
||||
return false;
|
||||
}
|
||||
binaryWriter.BaseStream.Seek(0, SeekOrigin.Begin);
|
||||
@@ -158,7 +156,7 @@ namespace Axiom.Interpreter
|
||||
{
|
||||
LastMessage=String.Format("Failed to parse the input, {0} at {1}", parser.LastMessage, parser.LastLineNumber);
|
||||
IsInError=true;
|
||||
logger.ErrorFormat(LastMessage);
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,LastMessage);
|
||||
return false;
|
||||
}
|
||||
parserWriter.BaseStream.Seek(0, SeekOrigin.Begin);
|
||||
@@ -170,7 +168,7 @@ namespace Axiom.Interpreter
|
||||
{
|
||||
LastMessage=String.Format("Error: Failed to run the assembler, {0}", assembler.LastMessage);
|
||||
IsInError=true;
|
||||
logger.ErrorFormat(LastMessage);
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,LastMessage);
|
||||
return false;
|
||||
}
|
||||
if (Trace) DumpSymbolTable();
|
||||
@@ -182,7 +180,7 @@ namespace Axiom.Interpreter
|
||||
{
|
||||
LastMessage=String.Format("Exception:{0}",exception.ToString());
|
||||
IsInError=true;
|
||||
logger.ErrorFormat(LastMessage);
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,LastMessage);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
@@ -218,7 +216,7 @@ namespace Axiom.Interpreter
|
||||
{
|
||||
LastMessage="Failed to scan the input document, possible invalid character sequence.";
|
||||
IsInError=true;
|
||||
logger.ErrorFormat(LastMessage);
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,LastMessage);
|
||||
return disassembly;
|
||||
}
|
||||
binaryWriter.BaseStream.Seek(0, SeekOrigin.Begin);
|
||||
@@ -232,7 +230,7 @@ namespace Axiom.Interpreter
|
||||
{
|
||||
LastMessage=String.Format("Failed to parse the input, {0} at {1}", parser.LastMessage, parser.LastLineNumber);
|
||||
IsInError=true;
|
||||
logger.ErrorFormat(LastMessage);
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,LastMessage);
|
||||
return disassembly;
|
||||
}
|
||||
parserWriter.BaseStream.Seek(0, SeekOrigin.Begin);
|
||||
@@ -245,7 +243,7 @@ namespace Axiom.Interpreter
|
||||
{
|
||||
LastMessage=String.Format("Exception:{0}",exception.ToString());
|
||||
IsInError=true;
|
||||
logger.ErrorFormat(LastMessage);
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,LastMessage);
|
||||
return disassembly;
|
||||
}
|
||||
finally
|
||||
@@ -269,7 +267,7 @@ namespace Axiom.Interpreter
|
||||
try
|
||||
{
|
||||
int hashcode = expression.GetHashCode();
|
||||
if (Trace) logger.InfoFormat("Trace:{0}", expression);
|
||||
if (Trace) MDTrace.WriteLine(LogLevel.DEBUG,String.Format("Trace:{0}", expression));
|
||||
if (precompiles.ContainsKey(hashcode))
|
||||
{
|
||||
precompiledStream = precompiles[hashcode]; // if the precompiled cache contains the expression then fetch it
|
||||
@@ -287,7 +285,7 @@ namespace Axiom.Interpreter
|
||||
if(assembler.IsInError)
|
||||
{
|
||||
LastMessage=String.Format("Error: Failed to run the assembler, {0}", assembler.LastMessage);
|
||||
logger.ErrorFormat(LastMessage);
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,LastMessage);
|
||||
return false;
|
||||
}
|
||||
assembler.Dispose();
|
||||
@@ -297,7 +295,7 @@ namespace Axiom.Interpreter
|
||||
catch (Exception exception)
|
||||
{
|
||||
LastMessage=String.Format("Exception:{0}", exception.ToString());
|
||||
logger.ErrorFormat(LastMessage);
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,LastMessage);
|
||||
return false;
|
||||
}
|
||||
finally
|
||||
@@ -343,7 +341,7 @@ namespace Axiom.Interpreter
|
||||
catch (Exception exception)
|
||||
{
|
||||
axiomResult.LastMessage = String.Format("Exception:{0}", exception.ToString());
|
||||
logger.Error(axiomResult.LastMessage);
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,axiomResult.LastMessage);
|
||||
return axiomResult;
|
||||
}
|
||||
finally
|
||||
@@ -370,7 +368,7 @@ namespace Axiom.Interpreter
|
||||
if(!scanner.Analyze())
|
||||
{
|
||||
LastMessage = "Failed to scan the input document, possible invalid character sequence";
|
||||
logger.Info(LastMessage);
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,LastMessage);
|
||||
return null;
|
||||
}
|
||||
binaryReader.Close();
|
||||
@@ -384,7 +382,7 @@ namespace Axiom.Interpreter
|
||||
if (parser.IsInError)
|
||||
{
|
||||
LastMessage = String.Format("Error:{0} at {1}", parser.LastMessage, parser.LastLineNumber);
|
||||
logger.Info(LastMessage);
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,LastMessage);
|
||||
return null;
|
||||
}
|
||||
parserReader.Close();
|
||||
@@ -398,7 +396,7 @@ namespace Axiom.Interpreter
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
logger.ErrorFormat("Exception:{0}", exception.ToString());
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,String.Format("Exception:{0}", exception.ToString()));
|
||||
return null;
|
||||
}
|
||||
finally
|
||||
@@ -410,12 +408,12 @@ namespace Axiom.Interpreter
|
||||
}
|
||||
private void DumpSymbolTable()
|
||||
{
|
||||
logger.Info("********************************************************* O U T P U T ************************************************");
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,"********************************************************* O U T P U T ************************************************");
|
||||
List<Symbol> list = new List<Symbol>(symbolTable.Values);
|
||||
list = (from Symbol symbol in list where symbol.TypeOfSymbol.Equals(Symbol.SymbolType.UserSymbol) select symbol).ToList();
|
||||
foreach (Symbol symbol in list)
|
||||
{
|
||||
logger.Info(String.Format("SYMBOL NAME:'{0}',VALUE:'{1}'", symbol.SymbolName, null == symbol.GenericData ? "<null>" : symbol.GenericData.ToString()));
|
||||
MDTrace.WriteLine(LogLevel.DEBUG,(String.Format("SYMBOL NAME:'{0}',VALUE:'{1}'", symbol.SymbolName, null == symbol.GenericData ? "<null>" : symbol.GenericData.ToString())));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using log4net;
|
||||
using Axiom.Utils;
|
||||
|
||||
// FileName : Emitter.cs
|
||||
// Author : Sean Kessler
|
||||
@@ -10,7 +10,6 @@ namespace Axiom.Interpreter
|
||||
{
|
||||
public class Emitter
|
||||
{
|
||||
private static ILog logger = LogManager.GetLogger(typeof(Emitter));
|
||||
private bool emitting = true;
|
||||
private int lastSymbol;
|
||||
private BinaryReader inputStream;
|
||||
@@ -38,28 +37,28 @@ namespace Axiom.Interpreter
|
||||
{
|
||||
if (!emitting) return;
|
||||
outputStream.Write((int)code);
|
||||
if(Debug)logger.Info(Scanner.SymbolToString(code));
|
||||
if(Debug)MDTrace.WriteLine(LogLevel.DEBUG,Scanner.SymbolToString(code));
|
||||
}
|
||||
public void Emit(Scanner.ScanSymbols code,int value)
|
||||
{
|
||||
if (!emitting) return;
|
||||
outputStream.Write((int)code);
|
||||
outputStream.Write(value);
|
||||
if(Debug)logger.Info(Scanner.SymbolToString(code)+","+value.ToString());
|
||||
if(Debug)MDTrace.WriteLine(LogLevel.DEBUG,Scanner.SymbolToString(code)+","+value.ToString());
|
||||
}
|
||||
public void Emit(Scanner.ScanSymbols code,double value)
|
||||
{
|
||||
if (!emitting) return;
|
||||
outputStream.Write((int)code);
|
||||
outputStream.Write(value);
|
||||
if(Debug)logger.Info(Scanner.SymbolToString(code)+","+value.ToString());
|
||||
if(Debug)MDTrace.WriteLine(LogLevel.DEBUG,Scanner.SymbolToString(code)+","+value.ToString());
|
||||
}
|
||||
public void Emit(Scanner.ScanSymbols code,String value)
|
||||
{
|
||||
if (!emitting) return;
|
||||
outputStream.Write((int)code);
|
||||
outputStream.Write(value);
|
||||
if(Debug)logger.Info(Scanner.SymbolToString(code)+","+value.ToString());
|
||||
if(Debug)MDTrace.WriteLine(LogLevel.DEBUG,Scanner.SymbolToString(code)+","+value.ToString());
|
||||
}
|
||||
// **********************************************************************************************************************************************
|
||||
public long CodePointer()
|
||||
@@ -76,7 +75,7 @@ namespace Axiom.Interpreter
|
||||
long positionBefore=outputStream.BaseStream.Position;
|
||||
outputStream.Write((int)code);
|
||||
long positionAfter=outputStream.BaseStream.Position;
|
||||
if(Debug)logger.Info(Parser.SymbolToString(code)+"["+positionBefore+","+positionAfter+"]");
|
||||
if(Debug)MDTrace.WriteLine(LogLevel.DEBUG,Parser.SymbolToString(code)+"["+positionBefore+","+positionAfter+"]");
|
||||
|
||||
}
|
||||
public void Emit(Parser.ParserSymbols code,Object value)
|
||||
@@ -88,7 +87,7 @@ namespace Axiom.Interpreter
|
||||
outputStream.Write(type.ToString());
|
||||
outputStream.Write(value.ToString());
|
||||
long positionAfter=outputStream.BaseStream.Position;
|
||||
if(Debug)logger.Info(Parser.SymbolToString(code)+","+type.ToString()+","+value.ToString()+"["+positionBefore+","+positionAfter+"]");
|
||||
if(Debug)MDTrace.WriteLine(LogLevel.DEBUG,Parser.SymbolToString(code)+","+type.ToString()+","+value.ToString()+"["+positionBefore+","+positionAfter+"]");
|
||||
}
|
||||
public void Emit(Parser.ParserSymbols code,Object value,int intValue)
|
||||
{
|
||||
@@ -100,7 +99,7 @@ namespace Axiom.Interpreter
|
||||
outputStream.Write(value.ToString());
|
||||
outputStream.Write(intValue);
|
||||
long positionAfter=outputStream.BaseStream.Position;
|
||||
if(Debug)logger.Info(Parser.SymbolToString(code)+","+type.ToString()+","+value.ToString()+","+intValue+"["+positionBefore+","+positionAfter+"]");
|
||||
if(Debug)MDTrace.WriteLine(LogLevel.DEBUG,Parser.SymbolToString(code)+","+type.ToString()+","+value.ToString()+","+intValue+"["+positionBefore+","+positionAfter+"]");
|
||||
}
|
||||
public void Emit(Parser.ParserSymbols code,long value)
|
||||
{
|
||||
@@ -109,7 +108,7 @@ namespace Axiom.Interpreter
|
||||
outputStream.Write((int)code);
|
||||
outputStream.Write(value);
|
||||
long positionAfter=outputStream.BaseStream.Position;
|
||||
if(Debug)logger.Info(Parser.SymbolToString(code)+","+value.ToString()+","+value.ToString()+"["+positionBefore+","+positionAfter+"]");
|
||||
if(Debug)MDTrace.WriteLine(LogLevel.DEBUG,Parser.SymbolToString(code)+","+value.ToString()+","+value.ToString()+"["+positionBefore+","+positionAfter+"]");
|
||||
}
|
||||
public void EmitAsNull(Parser.ParserSymbols code)
|
||||
{
|
||||
@@ -120,7 +119,7 @@ namespace Axiom.Interpreter
|
||||
outputStream.Write(type.ToString());
|
||||
outputStream.Write("null".ToString());
|
||||
long positionAfter=outputStream.BaseStream.Position;
|
||||
if(Debug)logger.Info(Parser.SymbolToString(code)+","+type.ToString()+","+"null".ToString()+"["+positionBefore+","+positionAfter+"]");
|
||||
if(Debug)MDTrace.WriteLine(LogLevel.DEBUG,Parser.SymbolToString(code)+","+type.ToString()+","+"null".ToString()+"["+positionBefore+","+positionAfter+"]");
|
||||
}
|
||||
// ************************************************************************
|
||||
public void Emit(int code, int op)
|
||||
|
||||
@@ -1,8 +1,5 @@
|
||||
using System;
|
||||
using System.Text;
|
||||
using log4net;
|
||||
//using MarketData.DataAccess;
|
||||
//using MarketData.MarketDataModel;
|
||||
using System.Diagnostics;
|
||||
using Axiom.Utils;
|
||||
|
||||
@@ -13,7 +10,6 @@ namespace Axiom.Interpreter
|
||||
{
|
||||
public class GenericData
|
||||
{
|
||||
private static ILog logger = LogManager.GetLogger(typeof(GenericData));
|
||||
private Object objData = null;
|
||||
private String objDataType = "";
|
||||
private bool isModified=false;
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Data;
|
||||
using log4net;
|
||||
using System.Reflection;
|
||||
using Axiom.Utils;
|
||||
|
||||
@@ -13,7 +12,6 @@ namespace Axiom.Interpreter
|
||||
{
|
||||
public class SymbolTable : Dictionary<String, Symbol>
|
||||
{
|
||||
private static ILog logger = LogManager.GetLogger(typeof(SymbolTable));
|
||||
private Dictionary<int, Symbol> symbolsById = new Dictionary<int, Symbol>();
|
||||
public SymbolTable()
|
||||
{
|
||||
|
||||
151
Axiom/Axiom.Core/Utility/MDTrace.cs
Executable file
151
Axiom/Axiom.Core/Utility/MDTrace.cs
Executable file
@@ -0,0 +1,151 @@
|
||||
using System.Diagnostics;
|
||||
using System.Text;
|
||||
using System.Reflection;
|
||||
|
||||
// Author:Sean Kessler
|
||||
// Date:11/2005
|
||||
|
||||
namespace Axiom.Utils
|
||||
{
|
||||
public enum LogLevel : uint
|
||||
{
|
||||
NONE=0x0000,
|
||||
INFO=0x0002,
|
||||
DEBUG=0x0004,
|
||||
VERBOSE=0x0008
|
||||
};
|
||||
/// <summary>MarketDataTrace - Utility for .</summary>
|
||||
public class MDTrace
|
||||
{
|
||||
private static LogLevel logLevel=LogLevel.DEBUG;
|
||||
|
||||
/// <summary>MarketDataTrace - Private constructor prevents instantiation.</summary>
|
||||
/// <returns>none</returns>
|
||||
private MDTrace()
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>LogLevel - Get/Set Log level.</summary>
|
||||
/// <param name="logLevel">The log level.</param>
|
||||
/// <returns>LogLevel</returns>
|
||||
public static LogLevel LogLevel
|
||||
{
|
||||
get{return logLevel;}
|
||||
set{logLevel=value;}
|
||||
}
|
||||
/// <summary>WriteLine - Writes a line of text to trace log.</summary>
|
||||
/// <param name="message">string content of message to write.</param>
|
||||
/// <returns>void</returns>
|
||||
public static void Write(LogLevel logLevel,string message)
|
||||
{
|
||||
if(MDTrace.logLevel<logLevel)return;
|
||||
Trace.Write(GetThreadRep()+GetLogLevelRep()+"["+DateTime.Now.ToString()+"]"+GetMethodInfo()+message);
|
||||
Flush();
|
||||
}
|
||||
|
||||
/// <summary>WriteLine - Writes a line of text to trace log.</summary>
|
||||
/// <param name="message">string content of message to write.</param>
|
||||
/// <returns>void</returns>
|
||||
public static void WriteLine(string message)
|
||||
{
|
||||
WriteLine(LogLevel.DEBUG,GetThreadRep()+GetLogLevelRep()+"["+DateTime.Now.ToString()+"]"+" "+GetMethodInfo()+message);
|
||||
Console.WriteLine(message);
|
||||
}
|
||||
/// <summary>WriteLine - Writes a line of text to trace log.</summary>
|
||||
/// <param name="message">string content of message to write.</param>
|
||||
/// <returns>void</returns>
|
||||
public static void WriteLine(LogLevel logLevel,Exception exception)
|
||||
{
|
||||
if(MDTrace.logLevel<logLevel)return;
|
||||
Trace.WriteLine(GetThreadRep()+GetLogLevelRep()+"["+DateTime.Now.ToString()+"]"+" "+GetMethodInfo()+exception.ToString());
|
||||
Console.WriteLine(exception);
|
||||
Flush();
|
||||
}
|
||||
/// <summary>WriteLine - Writes a line of text to trace log.</summary>
|
||||
/// <param name="message">string content of message to write.</param>
|
||||
/// <returns>void</returns>
|
||||
public static void WriteLine(LogLevel logLevel,string message,int skipFrames=2)
|
||||
{
|
||||
if(MDTrace.logLevel<logLevel)return;
|
||||
Trace.WriteLine(GetThreadRep()+GetLogLevelRep()+"["+DateTime.Now.ToString()+"]"+" "+GetMethodInfo(skipFrames)+message);
|
||||
Console.WriteLine(message);
|
||||
Flush();
|
||||
}
|
||||
|
||||
/// <summary>WriteLine - Writes a line of text to trace log.</summary>
|
||||
/// <param name="message">string content of message to write.</param>
|
||||
/// <returns>void</returns>
|
||||
public static void WriteLine(LogLevel logLevel,ConsoleColor consoleColor,string message,int skipFrames=2)
|
||||
{
|
||||
if(MDTrace.logLevel<logLevel)return;
|
||||
Trace.WriteLine(GetThreadRep()+GetLogLevelRep()+"["+DateTime.Now.ToString()+"]"+" "+GetMethodInfo(skipFrames)+message);
|
||||
ConsoleColor currentColor=Console.ForegroundColor;
|
||||
Console.ForegroundColor = consoleColor;
|
||||
Console.WriteLine(message);
|
||||
Console.ForegroundColor=currentColor;
|
||||
Flush();
|
||||
}
|
||||
/// <summary>Indent - set trace log indentation.</summary>
|
||||
/// <returns>void</returns>
|
||||
public static void Indent()
|
||||
{
|
||||
Trace.Indent();
|
||||
}
|
||||
/// <summary>Unindent - set trace log indentation back.</summary>
|
||||
/// <returns>void</returns>
|
||||
public static void Unindent()
|
||||
{
|
||||
Trace.Unindent();
|
||||
}
|
||||
/// <summary>Flush - Flush trace log buffers to disk.</summary>
|
||||
/// <returns>void</returns>
|
||||
public static void Flush()
|
||||
{
|
||||
Trace.Flush();
|
||||
}
|
||||
/// <summary>GetLogLevel - Return current log level.</summary>
|
||||
/// <returns>LogLevel</returns>
|
||||
public static LogLevel GetLogLevel(String strLogLevel)
|
||||
{
|
||||
if(strLogLevel.Equals("debug"))return LogLevel.DEBUG;
|
||||
else if(strLogLevel.Equals("verbose"))return LogLevel.VERBOSE;
|
||||
else if(strLogLevel.Equals("info"))return LogLevel.INFO;
|
||||
else return LogLevel.NONE;
|
||||
}
|
||||
|
||||
/// <summary>GetLogLevel - Return current log level.</summary>
|
||||
/// <returns>LogLevel</returns>
|
||||
private static string GetLogLevelRep()
|
||||
{
|
||||
if (MDTrace.logLevel == LogLevel.DEBUG) return "[TRACE.DEBUG]";
|
||||
else if (MDTrace.logLevel == LogLevel.VERBOSE) return "[TRACE.VERBOSE]";
|
||||
else if (MDTrace.logLevel == LogLevel.INFO) return "[TRACE.INFO]";
|
||||
else return "[TRACE.NONE]";
|
||||
}
|
||||
/// <summary>GetThreadRep - Return threading information.</summary>
|
||||
/// <returns>LogLevel</returns>
|
||||
private static string GetThreadRep()
|
||||
{
|
||||
return "[Thread="+Thread.CurrentThread.GetHashCode()+"]";
|
||||
}
|
||||
/// <summary>GetMethodInfo - Returns information about the calling method 2 frames up.</summary>
|
||||
/// <returns>String</returns>
|
||||
private static String GetMethodInfo(int skipFrames=2)
|
||||
{
|
||||
StringBuilder sb=new StringBuilder();
|
||||
StackFrame frame=new StackFrame(skipFrames,true);
|
||||
if(null==frame)return $"No Stack Frame at:{skipFrames}";
|
||||
MethodBase methodBase=frame.GetMethod();
|
||||
ParameterInfo[] parameters=methodBase.GetParameters();
|
||||
sb.Append("[").Append(methodBase.DeclaringType.FullName).Append("::").Append(methodBase.Name).Append("(");
|
||||
for(int index=0;index<parameters.Length;index++)
|
||||
{
|
||||
ParameterInfo parameter=(ParameterInfo)parameters[index];
|
||||
sb.Append(parameter.Name);
|
||||
if(!(index==parameters.Length-1))sb.Append(",");
|
||||
}
|
||||
sb.Append(")]");
|
||||
return sb.ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4,13 +4,11 @@ using System.Linq;
|
||||
using System.Text;
|
||||
using System.IO;
|
||||
using System.Globalization;
|
||||
using log4net;
|
||||
|
||||
namespace Axiom.Utils
|
||||
{
|
||||
public class Utility
|
||||
{
|
||||
private static ILog logger = LogManager.GetLogger(typeof(Utility));
|
||||
private Utility()
|
||||
{
|
||||
}
|
||||
@@ -64,7 +62,6 @@ namespace Axiom.Utils
|
||||
}
|
||||
public static DateTime ParseDate(String strDate)
|
||||
{
|
||||
logger.InfoFormat("Parsing date {0}",strDate);
|
||||
System.Globalization.CultureInfo cultureInfo = new System.Globalization.CultureInfo("en-US");
|
||||
String[] formats = new[] { "yyyy/MM/dd","M-d-yyyy", "dd-MM-yyyy", "MM-dd-yyyy", "M.d.yyyy", "dd.MM.yyyy", "MM.dd.yyyy","yyyyMMdd" }.Union(cultureInfo.DateTimeFormat.GetAllDateTimePatterns()).ToArray();
|
||||
strDate = strDate.Trim();
|
||||
|
||||
Reference in New Issue
Block a user