From d3b792bb3e06845e9a1bcad1735d8526ba8b8968 Mon Sep 17 00:00:00 2001 From: RKrom Date: Fri, 25 Jan 2013 13:10:35 +0000 Subject: [PATCH] Fixed log file not being created. git-svn-id: http://svn.code.sf.net/p/greenshot/code/trunk@2448 7dccd23d-a4a3-4e1f-8c07-b4c1b4018ab4 --- Greenshot/log4net-debug.xml | 2 +- Greenshot/log4net.xml | 2 +- GreenshotPlugin/Core/LogHelper.cs | 25 +++++++++++++++++++++---- 3 files changed, 23 insertions(+), 6 deletions(-) diff --git a/Greenshot/log4net-debug.xml b/Greenshot/log4net-debug.xml index b6d79a668..554edbeb3 100644 --- a/Greenshot/log4net-debug.xml +++ b/Greenshot/log4net-debug.xml @@ -6,7 +6,7 @@ - + diff --git a/Greenshot/log4net.xml b/Greenshot/log4net.xml index b0c2a57b2..364756dbf 100644 --- a/Greenshot/log4net.xml +++ b/Greenshot/log4net.xml @@ -6,7 +6,7 @@ - + diff --git a/GreenshotPlugin/Core/LogHelper.cs b/GreenshotPlugin/Core/LogHelper.cs index 498875ea8..fec9385e2 100644 --- a/GreenshotPlugin/Core/LogHelper.cs +++ b/GreenshotPlugin/Core/LogHelper.cs @@ -27,6 +27,7 @@ using log4net; using log4net.Appender; using log4net.Config; using log4net.Repository.Hierarchy; +using System; namespace GreenshotPlugin.Core { /// @@ -35,7 +36,7 @@ namespace GreenshotPlugin.Core { public class LogHelper { private const string LOG4NET_FILE = "log4net.xml"; private static bool isLog4NetConfigured = false; - + private const string INIT_MESSAGE = "Greenshot initialization of log system failed"; public static bool isInitialized { get { return isLog4NetConfigured; @@ -52,12 +53,16 @@ namespace GreenshotPlugin.Core { try { XmlConfigurator.Configure(new FileInfo(log4netFilename)); isLog4NetConfigured = true; - } catch {} + } catch (Exception ex) { + MessageBox.Show(ex.Message, INIT_MESSAGE, MessageBoxButtons.OK, MessageBoxIcon.Warning); + } } else if (File.Exists(pafLog4NetFilename)) { try { XmlConfigurator.Configure(new FileInfo(pafLog4NetFilename)); isLog4NetConfigured = true; - } catch { } + } catch (Exception ex) { + MessageBox.Show(ex.Message, INIT_MESSAGE, MessageBoxButtons.OK, MessageBoxIcon.Warning); + } } if (!isLog4NetConfigured) { @@ -68,7 +73,9 @@ namespace GreenshotPlugin.Core { isLog4NetConfigured = true; IniConfig.ForceIniInStartupPath(); } - } catch {} + } catch (Exception ex){ + MessageBox.Show(ex.Message, INIT_MESSAGE, MessageBoxButtons.OK, MessageBoxIcon.Warning); + } } if (isLog4NetConfigured) { @@ -86,4 +93,14 @@ namespace GreenshotPlugin.Core { return null; } } + + /// + /// A simple helper class to support the logging to the AppData location + /// + public class SpecialFolderPatternConverter : log4net.Util.PatternConverter { + override protected void Convert(System.IO.TextWriter writer, object state) { + Environment.SpecialFolder specialFolder = (Environment.SpecialFolder)Enum.Parse(typeof(Environment.SpecialFolder), base.Option, true); + writer.Write(Environment.GetFolderPath(specialFolder)); + } + } }