mta-mono/MultiTheftAuto/Debug.cs
2015-12-12 13:10:23 +03:00

65 lines
1.6 KiB
C#

using System;
using System.Runtime.CompilerServices;
using System.Diagnostics;
using System.Reflection;
using System.IO;
namespace MultiTheftAuto
{
public static class Debug
{
private static string assemblyName = Resource.GetCurrent().GetName();
[MethodImpl( MethodImplOptions.InternalCall )]
private static extern void Log( string message );
[MethodImpl( MethodImplOptions.InternalCall )]
private static extern void Info( string message );
[MethodImpl( MethodImplOptions.InternalCall )]
private static extern void Error( string message );
public static void Log( string message, params string[] args )
{
Log( String.Format( message, args ) );
}
public static string FormatPath( string path )
{
string filepath = "";
bool start = false;
foreach( string s in path.Split( '\\' ) )
{
if( start )
{
if( filepath.Length > 0 )
{
filepath += "\\";
}
filepath += s;
}
if( s == assemblyName )
{
start = true;
}
}
return filepath;
}
public static void Info( string message, [CallerMemberName] string memberName = "", [CallerFilePath] string filePath = "", [CallerLineNumber] int lineNumber = 0 )
{
Info( String.Format( "{0}:{1}: {2}", FormatPath( filePath ), lineNumber, message ) );
}
public static void Error( string message, [CallerMemberName] string memberName = "", [CallerFilePath] string filePath = "", [CallerLineNumber] int lineNumber = 0 )
{
Error( String.Format( "{0}:{1}: {2}", FormatPath( filePath ), lineNumber, message ) );
}
}
}