static void Main(string[] args)
{
log = LogManager.GetCurrentClassLogger();
log.Info("Version: {0}", RocksmithToolkitLib.ToolkitVersion.version);
log.Info("OS: {0}", Environment.OSVersion.ToString());
log.Info("Command: {0}", Environment.CommandLine.ToString());
AppDomain.CurrentDomain.UnhandledException += (s, e) =>
{
var exception = (Exception)e.ExceptionObject;
MessageBox.Show(String.Format("Application.ThreadException\n{0}\n{1}\nPlease send us \"_RSToolkit_{2}.log\", you can find it in Toolkit folder.",
exception.ToString(), exception.Message.ToString(), DateTime.Now.ToString("yyyy-MM-dd")), "Unhandled Exception catched!");
log.ErrorException(String.Format("\n{0}\n{1}\nException catched:\n{2}\n", exception.Source, exception.TargetSite, exception.InnerException), exception);
};
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
// UI thread exceptions handling.
Application.ThreadException += (s, e) =>
{
var exception = (Exception)e.Exception;
MessageBox.Show(String.Format("Application.ThreadException\n{0}\n{1}\nPlease send us \"_RSToolkit_{2}.log\", you can find it in Toolkit folder.",
exception.ToString(), exception.Message.ToString(), DateTime.Now.ToString("yyyy-MM-dd")), "Thread Exception catched!");
log.ErrorException(String.Format("\n{0}\n{1}\nException catched:\n{2}\n", exception.Source, exception.TargetSite, exception.InnerException), exception);
};
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.CurrentCulture = new System.Globalization.CultureInfo("en-US");
Application.Run(new MainForm(args));
}