[f-spot] Replaced Console.WriteLine by Logging calls.



commit 609861d6222a25018984e843f7d1351fd3d14cbe
Author: Peter Goetz <peter gtz gmail com>
Date:   Mon May 31 22:27:39 2010 +0200

    Replaced Console.WriteLine by Logging calls.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=620008

 .../FacebookExport/FindNullableClashes.cs          |    5 +-
 extensions/Exporters/FlickrExport/FlickrExport.cs  |    3 +-
 extensions/Exporters/FlickrExport/FlickrRemote.cs  |    9 ++-
 extensions/Exporters/FlickrExport/Makefile.am      |    3 +-
 extensions/Exporters/GalleryExport/FormClient.cs   |    1 +
 .../Exporters/GalleryExport/GalleryExport.cs       |   26 ++++----
 .../Exporters/GalleryExport/GalleryRemote.cs       |   61 +++++++++--------
 extensions/Exporters/GalleryExport/Makefile.am     |    4 +-
 extensions/Exporters/TabbloExport/TabbloExport.cs  |    2 +-
 extensions/Misc/LightTable/LightTable.cs           |    4 +-
 .../ChangePhotoPath/ChangePhotoPathController.cs   |   14 ++--
 .../Tools/ChangePhotoPath/ChangePhotoPathGui.cs    |    7 +-
 extensions/Tools/MergeDb/MergeDb.cs                |    4 +-
 extensions/Tools/MergeDb/PickFolderDialog.cs       |    3 +-
 extensions/Tools/RawPlusJpeg/RawPlusJpeg.cs        |   10 ++-
 .../Tools/RetroactiveRoll/RetroactiveRoll.cs       |    5 +-
 src/Accelerometer.cs                               |    3 +-
 src/ColorAdjustment/AutoStretch.cs                 |    3 +-
 src/Core/App.cs                                    |    4 +-
 src/Core/Photo.cs                                  |    2 +-
 src/Db.cs                                          |    2 +-
 src/FileBrowsableItem.cs                           |    2 +-
 src/FileImportBackend.cs                           |    4 +-
 src/Filters/FilterRequest.cs                       |    2 +-
 src/Histogram.cs                                   |    4 +-
 src/IOChannel.cs                                   |    5 +-
 src/ImageLoaderThread.cs                           |    2 +-
 src/Imaging/Bim.cs                                 |    4 +-
 src/Imaging/Ciff.cs                                |   14 ++--
 src/Imaging/DCRawFile.cs                           |    2 +-
 src/Imaging/Exif.cs                                |    5 +-
 src/Imaging/JpegFile.cs                            |   14 ++--
 src/Imaging/JpegHeader.cs                          |    8 +-
 src/Imaging/MrwFile.cs                             |    8 +-
 src/Imaging/PngFile.cs                             |   10 ++--
 src/Imaging/PnmFile.cs                             |    4 +-
 src/Imaging/RafFile.cs                             |    2 +-
 src/Imaging/SvgFile.cs                             |    2 +-
 src/Imaging/Tiff.cs                                |   72 ++++++++++----------
 src/Imaging/XmpFile.cs                             |    4 +-
 src/ImportCommand.cs                               |   10 ++--
 src/Jobs/SyncMetadataJob.cs                        |    5 +-
 src/Loupe.cs                                       |    3 +-
 src/MainWindow.cs                                  |    6 +-
 src/Makefile.am                                    |    3 +-
 src/MetadataStore.cs                               |   11 ++--
 src/PhotoTagMenu.cs                                |    3 +-
 src/PixbufCache.cs                                 |    2 +-
 src/PixbufUtils.cs                                 |    2 +-
 src/Platform/Gnome/ThumbnailFactory.cs             |    2 +-
 src/Preferences.cs                                 |    4 +-
 src/SendEmail.cs                                   |    2 +-
 src/SingleView.cs                                  |    2 +-
 src/TagCommands.cs                                 |    3 +-
 src/TagSelectionWidget.cs                          |    4 +-
 src/TagStore.cs                                    |    2 +-
 src/Term.cs                                        |    3 +-
 src/ThumbnailGenerator.cs                          |    2 +-
 src/UI.Dialog/AdjustTimeDialog.cs                  |   11 ++--
 src/UI.Dialog/EditExceptionDialog.cs               |    3 +-
 src/UI.Dialog/RepairDbDialog.cs                    |    3 +-
 src/UI.Dialog/SelectionRatioDialog.cs              |    3 +-
 src/UriCollection.cs                               |    8 +-
 src/Util.cs                                        |    4 +-
 src/Widgets/CompositeUtils.cs                      |    7 +-
 src/Widgets/ImageDisplay.cs                        |   13 ++--
 src/Widgets/ImageInfo.cs                           |    4 +-
 src/Widgets/Layout.cs                              |    3 +-
 src/XScreenSaverSlide.cs                           |    5 +-
 69 files changed, 254 insertions(+), 222 deletions(-)
---
diff --git a/extensions/Exporters/FacebookExport/FindNullableClashes.cs b/extensions/Exporters/FacebookExport/FindNullableClashes.cs
index 4c3bda3..959b54a 100644
--- a/extensions/Exporters/FacebookExport/FindNullableClashes.cs
+++ b/extensions/Exporters/FacebookExport/FindNullableClashes.cs
@@ -1,5 +1,6 @@
 using System;
 using System.Reflection;
+using Hyena;
 
 public class FindNullableClashes {
     public static void Main (string [] args) {
@@ -13,8 +14,8 @@ public class FindNullableClashes {
                         var ftype = field.FieldType;
                         bool is_nullable = ftype.IsGenericType && ftype.GetGenericTypeDefinition() == typeof(Nullable<>);
                         if (xattr.IsNullable && ftype.IsValueType && field.DeclaringType == type && !is_nullable) {
-                            Console.WriteLine ("Possible clash for {0}/{1}", type.FullName, field.Name);
-                            Console.WriteLine ("   Type: {0}", field.FieldType.FullName);
+                            Log.DebugFormat ("Possible clash for {0}/{1}", type.FullName, field.Name);
+                            Log.DebugFormat ("   Type: {0}", field.FieldType.FullName);
                         }
                     }
                 }
diff --git a/extensions/Exporters/FlickrExport/FlickrExport.cs b/extensions/Exporters/FlickrExport/FlickrExport.cs
index e82a73e..2d228fb 100644
--- a/extensions/Exporters/FlickrExport/FlickrExport.cs
+++ b/extensions/Exporters/FlickrExport/FlickrExport.cs
@@ -10,6 +10,7 @@ using FSpot.Filters;
 using FSpot.Widgets;
 using FSpot.Utils;
 using FSpot.UI.Dialog;
+using Hyena;
 
 namespace FSpotFlickrExport {
 	public class TwentyThreeHQExport : FlickrExport
@@ -368,7 +369,7 @@ namespace FSpotFlickrExport {
 										 current_service.Name,
 										 e.Message);
 					progress_dialog.ProgressText = Catalog.GetString ("Error");
-					System.Console.WriteLine (e);
+					Log.Exception (e);
 
 					if (progress_dialog.PerformRetrySkip ()) {
 						index--;
diff --git a/extensions/Exporters/FlickrExport/FlickrRemote.cs b/extensions/Exporters/FlickrExport/FlickrRemote.cs
index ca1dfc7..9c7bcfc 100644
--- a/extensions/Exporters/FlickrExport/FlickrRemote.cs
+++ b/extensions/Exporters/FlickrExport/FlickrRemote.cs
@@ -17,6 +17,7 @@ using FlickrNet;
 using FSpot;
 using FSpot.Utils;
 using FSpot.Filters;
+using Hyena;
 
 public class FlickrRemote {
 	public static Licenses    licenses;
@@ -66,7 +67,7 @@ public class FlickrRemote {
 			try {
 				licenses = flickr.PhotosLicensesGetInfo();
 			} catch (FlickrNet.FlickrApiException e ) {
-				Console.WriteLine ( e.Code + ": " + e.Verbose );
+				Log.Error ( e.Code + ": " + e.Verbose );
 				return null;
 			}
 		}
@@ -106,7 +107,7 @@ public class FlickrRemote {
 		if (frob == null) {
 			frob = flickr.AuthGetFrob ();
 			if (frob ==  null) {
-				Console.WriteLine ("ERROR: Problems login in Flickr. Don't have a frob");
+				Log.Error ("Problems login in Flickr. Don't have a frob");
 				return null;
 			}
 		}
@@ -119,7 +120,7 @@ public class FlickrRemote {
 
 				return auth;
 			} catch (FlickrNet.FlickrApiException ex) {
-				Console.WriteLine ("ERROR: Problems login in Flickr - "+ex.Verbose);
+				Log.Error ("Problems login in Flickr - "+ex.Verbose);
 
 				return null;
 			}
@@ -181,7 +182,7 @@ public class FlickrRemote {
 						flickr.UploadPicture (path, photo.Name, photo.Description, tags, is_public, is_family, is_friend);
 					return photoid;
 				} catch (FlickrNet.FlickrException ex) {
-					Console.WriteLine ("Problems uploading picture: " + ex.ToString());
+					Log.Error ("Problems uploading picture: " + ex.ToString());
 					error_verbose = ex.ToString();
 				}
 			} catch (Exception e) {
diff --git a/extensions/Exporters/FlickrExport/Makefile.am b/extensions/Exporters/FlickrExport/Makefile.am
index 7ef0ad3..436accb 100644
--- a/extensions/Exporters/FlickrExport/Makefile.am
+++ b/extensions/Exporters/FlickrExport/Makefile.am
@@ -19,7 +19,8 @@ REFS =						\
 	$(LINK_GIOSHARP)			\
 	$(LINK_GTKSHARPBEANS)			\
 	$(LINK_UNIQUESHARP)			\
-	-r:Mono.Posix
+	-r:Mono.Posix				\
+	$(LINK_HYENA)
 
 PKGS =					\
 	-pkg:flickrnet          \
diff --git a/extensions/Exporters/GalleryExport/FormClient.cs b/extensions/Exporters/GalleryExport/FormClient.cs
index 916b4b1..3595c71 100644
--- a/extensions/Exporters/GalleryExport/FormClient.cs
+++ b/extensions/Exporters/GalleryExport/FormClient.cs
@@ -5,6 +5,7 @@ using System.Text;
 using System.Collections;
 using System.Collections.Specialized;
 using System.Web;
+using Hyena;
 
 namespace FSpot {
 	public class FormClient {
diff --git a/extensions/Exporters/GalleryExport/GalleryExport.cs b/extensions/Exporters/GalleryExport/GalleryExport.cs
index dab651d..ed89907 100644
--- a/extensions/Exporters/GalleryExport/GalleryExport.cs
+++ b/extensions/Exporters/GalleryExport/GalleryExport.cs
@@ -15,6 +15,7 @@ using FSpot.UI.Dialog;
 using FSpot.Extensions;
 
 using GalleryRemote;
+using Hyena;
 
 namespace G2Export {
 	public class GalleryAccount {
@@ -52,7 +53,7 @@ namespace G2Export {
 				throw new GalleryException (Catalog.GetString("Cannot connect to a Gallery for which the version is unknown.\nPlease check that you have Remote plugin 1.0.8 or later"));
 			}
 
-			System.Console.WriteLine ("Gallery created: " + gal);
+			Log.Debug ("Gallery created: " + gal);
 
 			gal.Login (username, password);
 
@@ -79,7 +80,7 @@ namespace G2Export {
 					retVal = gallery.IsConnected ();
 				}
 				if (connected != retVal) {
-					System.Console.WriteLine ("Connected and retVal for IsConnected() don't agree");
+					Log.Warning ("Connected and retVal for IsConnected() don't agree");
 				}
 				return retVal;
 			}
@@ -267,7 +268,7 @@ namespace G2Export {
 					else if (versionString == "Version2")
 						version = GalleryVersion.Version2;
 					else
-						Console.WriteLine ("Unexpected versions string: " + versionString);
+						Log.Error ("Unexpected versions string: " + versionString);
 				}
 			}
 			return new GalleryAccount (name, url, username, password, version);
@@ -298,8 +299,7 @@ namespace G2Export {
 				}
 			} catch (System.Exception e) {
 				// FIXME do something
-				System.Console.WriteLine ("Exception loading gallery accounts");
-				System.Console.WriteLine (e);
+				Log.Exception ("Exception loading gallery accounts", e);
 			}
 
 			MarkChanged ();
@@ -402,8 +402,8 @@ namespace G2Export {
 								      Catalog.GetString ("Error while connecting to Gallery"),
 								      String.Format (Catalog.GetString ("The following error was encountered while attempting to log in: {0}"), e.Message));
 					if (e.ResponseText != null) {
-						System.Console.WriteLine (e.Message);
-						System.Console.WriteLine (e.ResponseText);
+						Log.Debug (e.Message);
+						Log.Debug (e.ResponseText);
 					}
 					md.Run ();
 					md.Destroy ();
@@ -416,7 +416,7 @@ namespace G2Export {
 								      Gtk.MessageType.Error, Gtk.ButtonsType.Ok,
 								      Catalog.GetString ("A Gallery with this name already exists"),
 								      String.Format (Catalog.GetString ("There is already a Gallery with the same name in your registered Galleries. Please choose a unique name.")));
-					System.Console.WriteLine (ae);
+					Log.Exception (ae);
 					md.Run ();
 					md.Destroy ();
 					return;
@@ -439,7 +439,7 @@ namespace G2Export {
 								      Gtk.MessageType.Error, Gtk.ButtonsType.Ok,
 								      Catalog.GetString ("Error while connecting to Gallery"),
 								      String.Format (Catalog.GetString ("The following error was encountered while attempting to log in: {0}"), se.Message));
-					Console.WriteLine (se);
+					Log.Exception (se);
 					md.Run ();
 					md.Destroy ();
 					return;
@@ -758,7 +758,7 @@ namespace G2Export {
 				account.Gallery.Progress = new ProgressItem ();
 				account.Gallery.Progress.Changed += HandleProgressChanged;
 
-				System.Console.WriteLine ("Starting upload");
+				Log.Debug ("Starting upload");
 
 				FilterSet filters = new FilterSet ();
 				if (account.Version == GalleryVersion.Version1)
@@ -772,7 +772,7 @@ namespace G2Export {
 				while (photo_index < items.Length) {
 					IBrowsableItem item = items [photo_index];
 
-					System.Console.WriteLine ("uploading {0}", photo_index);
+					Log.DebugFormat ("uploading {0}", photo_index);
 
 					progress_dialog.Message = System.String.Format (Catalog.GetString ("Uploading picture \"{0}\""), item.Name);
 					progress_dialog.Fraction = photo_index / (double) items.Length;
@@ -795,7 +795,7 @@ namespace G2Export {
 					} catch (System.Exception e) {
 						progress_dialog.Message = String.Format (Catalog.GetString ("Error uploading picture \"{0}\" to Gallery: {1}"), item.Name, e.Message);
 						progress_dialog.ProgressText = Catalog.GetString ("Error");
-						Console.WriteLine (e);
+						Log.Exception (e);
 
 						if (progress_dialog.PerformRetrySkip ()) {
 							photo_index--;
@@ -868,7 +868,7 @@ namespace G2Export {
 				if (selected != null)
 					account = selected;
 
-				System.Console.WriteLine ("{0}",ex);
+				Log.Exception (ex);
 				PopulateAlbumOptionMenu (account.Gallery);
 				album_button.Sensitive = false;
 
diff --git a/extensions/Exporters/GalleryExport/GalleryRemote.cs b/extensions/Exporters/GalleryExport/GalleryRemote.cs
index 6c35047..cc4b2ff 100644
--- a/extensions/Exporters/GalleryExport/GalleryRemote.cs
+++ b/extensions/Exporters/GalleryExport/GalleryRemote.cs
@@ -8,6 +8,7 @@ using System.Web;
 using Mono.Unix;
 using FSpot;
 using FSpot.UI.Dialog;
+using Hyena;
 
 /* These classes are based off the documentation at
  *
@@ -91,7 +92,7 @@ namespace GalleryRemote {
 		public int Add (FSpot.IBrowsableItem item, string path)
 		{
 			if (item == null)
-				Console.WriteLine ("NO PHOTO");
+				Log.Warning ("NO PHOTO");
 
 			return gallery.AddItem (this,
 					 path,
@@ -305,7 +306,7 @@ namespace GalleryRemote {
 		public static GalleryVersion DetectGalleryVersion (string url)
 		{
 			//Figure out if the url is for G1 or G2
-			Console.WriteLine ("Detecting Gallery version");
+			Log.Debug ("Detecting Gallery version");
 
 			GalleryVersion version;
 
@@ -334,7 +335,7 @@ namespace GalleryRemote {
 				}
 			}
 
-			Console.WriteLine ("Detected: " + version.ToString());
+			Log.Debug ("Detected: " + version.ToString());
 			return version;
 		}
 
@@ -423,18 +424,18 @@ namespace GalleryRemote {
 						status = (ResultCode) int.Parse (data [1]);
 					} else if (data[0].StartsWith ("status_text")) {
 						status_text = data[1];
-						Console.WriteLine ("StatusText : {0}", data[1]);
+						Log.DebugFormat ("StatusText : {0}", data[1]);
 					} else if (data[0].StartsWith ("server_version")) {
 						//FIXME we should use the to determine what capabilities the server has
 					} else if (data[0].StartsWith ("auth_token")) {
 						AuthToken = data[1];
 					} else {
-						Console.WriteLine ("Unparsed Line in ParseLogin(): {0}={1}", data[0], data[1]);
+						Log.DebugFormat ("Unparsed Line in ParseLogin(): {0}={1}", data[0], data[1]);
 					}
 				}
 				//Console.WriteLine ("Found: {0} cookies", response.Cookies.Count);
 				if (status != ResultCode.Success) {
-					Console.WriteLine (status_text);
+					Log.Debug (status_text);
 					throw new GalleryCommandException (status_text, status);
 				}
 
@@ -465,7 +466,7 @@ namespace GalleryRemote {
 						status = (ResultCode) int.Parse (data [1]);
 					} else if (data[0].StartsWith ("status_text")) {
 						status_text = data[1];
-						Console.WriteLine ("StatusText : {0}", data[1]);
+						Log.DebugFormat ("StatusText : {0}", data[1]);
 					} else if (data[0].StartsWith ("album.name")) {
 						//this is the URL name
 						int ref_num = -1;
@@ -515,16 +516,16 @@ namespace GalleryRemote {
 							current_album.Perms |= AlbumPermission.CreateSubAlbum;
 					} else if (data[0].StartsWith ("album_count")) {
 						if (Albums.Count != int.Parse (data[1]))
-							Console.WriteLine ("Parsed album count does not match album_count.  Something is amiss");
+							Log.Warning ("Parsed album count does not match album_count.  Something is amiss");
 					} else if (data[0].StartsWith ("auth_token")) {
 						AuthToken = data [1];
 					} else {
-						Console.WriteLine ("Unparsed Line in ParseFetchAlbums(): {0}={1}", data[0], data[1]);
+						Log.DebugFormat ("Unparsed Line in ParseFetchAlbums(): {0}={1}", data[0], data[1]);
 					}
 				}
 				//Console.WriteLine ("Found: {0} cookies", response.Cookies.Count);
 				if (status != ResultCode.Success) {
-					Console.WriteLine (status_text);
+					Log.Debug (status_text);
 					throw new GalleryCommandException (status_text, status);
 				}
 
@@ -553,18 +554,18 @@ namespace GalleryRemote {
 						status = (ResultCode) int.Parse (data [1]);
 					} else if (data[0].StartsWith ("status_text")) {
 						status_text = data[1];
-						Console.WriteLine ("StatusText : {0}", data[1]);
+						Log.DebugFormat ("StatusText : {0}", data[1]);
 					} else if (data[0].StartsWith ("auth_token")) {
 						AuthToken = data[1];
 					} else if (data[0].StartsWith ("item_name")) {
 						item_id = int.Parse (data [1]);
 					} else {
-						Console.WriteLine ("Unparsed Line in ParseAddItem(): {0}={1}", data[0], data[1]);
+						Log.DebugFormat ("Unparsed Line in ParseAddItem(): {0}={1}", data[0], data[1]);
 					}
 				}
 				//Console.WriteLine ("Found: {0} cookies", response.Cookies.Count);
 				if (status != ResultCode.Success) {
-					Console.WriteLine (status_text);
+					Log.Debug (status_text);
 					throw new GalleryCommandException (status_text, status);
 				}
 
@@ -601,16 +602,16 @@ namespace GalleryRemote {
 						status = (ResultCode) int.Parse (data [1]);
 					} else if (data[0].StartsWith ("status_text")) {
 						status_text = data[1];
-						Console.WriteLine ("StatusText : {0}", data[1]);
+						Log.Debug ("StatusText : {0}", data[1]);
 					} else if (data[0].StartsWith ("auto-resize")) {
 						//ignore
 					} else {
-						Console.WriteLine ("Unparsed Line in ParseBasic(): {0}={1}", data[0], data[1]);
+						Log.Debug ("Unparsed Line in ParseBasic(): {0}={1}", data[0], data[1]);
 					}
 				}
 				//Console.WriteLine ("Found: {0} cookies", response.Cookies.Count);
 				if (status != ResultCode.Success) {
-					Console.WriteLine (status_text);
+					Log.Debug (status_text);
 					throw new GalleryCommandException (status_text, status);
 				}
 
@@ -638,16 +639,16 @@ namespace GalleryRemote {
 						status = (ResultCode) int.Parse (data [1]);
 					} else if (data[0].StartsWith ("status_text")) {
 						status_text = data[1];
-						Console.WriteLine ("StatusText : {0}", data[1]);
+						Log.DebugFormat ("StatusText : {0}", data[1]);
 					} else if (data[0].StartsWith ("auth_token")) {
 						AuthToken = data[1];
 					} else {
-						Console.WriteLine ("Unparsed Line in ParseBasic(): {0}={1}", data[0], data[1]);
+						Log.DebugFormat ("Unparsed Line in ParseBasic(): {0}={1}", data[0], data[1]);
 					}
 				}
 				//Console.WriteLine ("Found: {0} cookies", response.Cookies.Count);
 				if (status != ResultCode.Success) {
-					Console.WriteLine (status_text + " Status: " + status);
+					Log.Debug (status_text + " Status: " + status);
 					throw new GalleryCommandException (status_text, status);
 				}
 
@@ -701,7 +702,7 @@ namespace GalleryRemote {
 
 		public void PopupException (GalleryCommandException e, Gtk.Dialog d)
 		{
-			System.Console.WriteLine(String.Format ("{0} : {1} ({2})", e.Message, e.ResponseText, e.Status));
+			Log.DebugFormat ("{0} : {1} ({2})", e.Message, e.ResponseText, e.Status);
 			HigMessageDialog md =
 				new HigMessageDialog (d,
 						      Gtk.DialogFlags.Modal |
@@ -850,7 +851,7 @@ namespace GalleryRemote {
 						status = (ResultCode) int.Parse (data [1]);
 					} else if (data[0].StartsWith ("status_text")) {
 						status_text = data[1];
-						Console.WriteLine ("StatusText : {0}", data[1]);
+						Log.DebugFormat ("StatusText : {0}", data[1]);
 					} else if (data[0].StartsWith ("image.name")) {
 						current_image = new Image (album, data[1]);
 						album.Images.Add (current_image);
@@ -894,14 +895,14 @@ namespace GalleryRemote {
 						album.BaseURL = data[1];
 					} else if (data[0].StartsWith ("image_count")) {
 						if (album.Images.Count != int.Parse (data[1]))
-							Console.WriteLine ("Parsed image count for " + album.Name + "(" + album.Images.Count + ") does not match image_count (" + data[1] + ").  Something is amiss");
+							Log.Warning ("Parsed image count for " + album.Name + "(" + album.Images.Count + ") does not match image_count (" + data[1] + ").  Something is amiss");
 					} else {
-						Console.WriteLine ("Unparsed Line in ParseFetchAlbumImages(): {0}={1}", data[0], data[1]);
+						Log.DebugFormat ("Unparsed Line in ParseFetchAlbumImages(): {0}={1}", data[0], data[1]);
 					}
 				}
 				//Console.WriteLine ("Found: {0} cookies", response.Cookies.Count);
 				if (status != ResultCode.Success) {
-					Console.WriteLine (status_text);
+					Log.Debug (status_text);
 					throw new GalleryCommandException (status_text, status);
 				}
 
@@ -948,7 +949,7 @@ namespace GalleryRemote {
 
 		public override void Login (string username, string passwd)
 		{
-			Console.WriteLine ("Gallery2: Attempting to login");
+			Log.Debug ("Gallery2: Attempting to login");
 			FormClient client = new FormClient (cookies);
 
 			client.Add ("g2_form[cmd]", "login");
@@ -1082,7 +1083,7 @@ namespace GalleryRemote {
 						status = (ResultCode) int.Parse (data [1]);
 					} else if (data[0].StartsWith ("status_text")) {
 						status_text = data[1];
-						Console.WriteLine ("StatusText : {0}", data[1]);
+						Log.DebugFormat ("StatusText : {0}", data[1]);
 					} else if (data[0].StartsWith ("image.name")) {
 						//for G2 this is the number used to download the image.
 						current_image = new Image (album, "awaiting 'title'");
@@ -1133,14 +1134,14 @@ namespace GalleryRemote {
 						album.BaseURL = data[1];
 					} else if (data[0].StartsWith ("image_count")) {
 						if (album.Images.Count != int.Parse (data[1]))
-							Console.WriteLine ("Parsed image count for " + album.Name + "(" + album.Images.Count + ") does not match image_count (" + data[1] + ").  Something is amiss");
+							Log.Warning ("Parsed image count for " + album.Name + "(" + album.Images.Count + ") does not match image_count (" + data[1] + ").  Something is amiss");
 					} else {
-						Console.WriteLine ("Unparsed Line in ParseFetchAlbumImages(): {0}={1}", data[0], data[1]);
+						Log.DebugFormat ("Unparsed Line in ParseFetchAlbumImages(): {0}={1}", data[0], data[1]);
 					}
 				}
-				Console.WriteLine ("Found: {0} cookies", response.Cookies.Count);
+				Log.DebugFormat ("Found: {0} cookies", response.Cookies.Count);
 				if (status != ResultCode.Success) {
-					Console.WriteLine (status_text);
+					Log.Debug (status_text);
 					throw new GalleryCommandException (status_text, status);
 				}
 
diff --git a/extensions/Exporters/GalleryExport/Makefile.am b/extensions/Exporters/GalleryExport/Makefile.am
index c5d82f9..d2e40b9 100644
--- a/extensions/Exporters/GalleryExport/Makefile.am
+++ b/extensions/Exporters/GalleryExport/Makefile.am
@@ -20,8 +20,8 @@ REFS =						\
 	$(LINK_GIOSHARP)			\
 	$(LINK_GTKSHARPBEANS)			\
 	$(LINK_UNIQUESHARP)			\
-	-r:System.Web				\
-	-r:Mono.Posix
+	-r:Mono.Posix				\
+	$(LINK_HYENA)
 
 PKGS =					\
 	-pkg:gtk-sharp-2.0		\
diff --git a/extensions/Exporters/TabbloExport/TabbloExport.cs b/extensions/Exporters/TabbloExport/TabbloExport.cs
index a6591a1..6cfdf55 100644
--- a/extensions/Exporters/TabbloExport/TabbloExport.cs
+++ b/extensions/Exporters/TabbloExport/TabbloExport.cs
@@ -319,7 +319,7 @@ namespace FSpotTabbloExport {
 						Catalog.GetString ("Error");
 				// FIXME:  Retry logic? 
 //				  progressDialog.PerformRetrySkip ();
-				Console.WriteLine (e);
+				Log.Exception (e);
 			} finally {
 				OnUploadFinished ();
 			}
diff --git a/extensions/Misc/LightTable/LightTable.cs b/extensions/Misc/LightTable/LightTable.cs
index e2e80e4..74c39db 100644
--- a/extensions/Misc/LightTable/LightTable.cs
+++ b/extensions/Misc/LightTable/LightTable.cs
@@ -31,7 +31,7 @@ namespace LightTableExtension
 	{
 		public void Run (object o, EventArgs e)
 		{
-			Console.WriteLine ("EXECUTING LIGHTTABLE EXTENSION");
+			Log.Debug ("EXECUTING LIGHTTABLE EXTENSION");
 
 			LightTableWidget light_table;
 
@@ -131,7 +131,7 @@ namespace LightTableExtension
 				foreach (MLPhoto selected in selected_photos) {
 					Children.Remove (selected);
 					photos.Remove (selected);
-					Console.WriteLine ("Children:"+Children.Count);
+					Log.Debug ("Children:"+Children.Count);
 				}
 				selected_photos = new List<MLPhoto> ();
 				ToGrid ();
diff --git a/extensions/Tools/ChangePhotoPath/ChangePhotoPathController.cs b/extensions/Tools/ChangePhotoPath/ChangePhotoPathController.cs
index 811a32d..74f1a39 100644
--- a/extensions/Tools/ChangePhotoPath/ChangePhotoPathController.cs
+++ b/extensions/Tools/ChangePhotoPath/ChangePhotoPathController.cs
@@ -203,11 +203,11 @@ namespace ChangePhotoPath
 				}
 
 				UpdateThisUri (k, old_path_array[k], ref photo);
-				System.Console.WriteLine ("R : {0} - {1}", k, old_path_array[k]);
+				Log.DebugFormat ("R : {0} - {1}", k, old_path_array[k]);
 			}
 			if (photo != null)
 				photo_store.Commit (photo);
-			System.Console.WriteLine ("Changing path failed due to above error. Have reverted any modification that took place.");
+			Log.Debug ("Changing path failed due to above error. Have reverted any modification that took place.");
 		}
 
 		public ProcessResult ChangeAllUris ( ref int  last_index)
@@ -220,7 +220,7 @@ namespace ChangePhotoPath
 				for (last_index = 0; last_index < photo_id_array.Count; last_index++) {
 
 					if (gui_controller.UpdateProgressBar ("Changing photos base path", "Changing photo", photo_id_array.Count)) {
-						Console.WriteLine("User aborted the change of paths...");
+						Log.Debug("User aborted the change of paths...");
 						return ProcessResult.Cancelled;
 					}
 
@@ -230,7 +230,7 @@ namespace ChangePhotoPath
 					}
 
 					UpdateThisUri (last_index, new_path_array[last_index], ref photo);
-					System.Console.WriteLine ("U : {0} - {1}", last_index, new_path_array[last_index]);
+					Log.DebugFormat ("U : {0} - {1}", last_index, new_path_array[last_index]);
 
 					// DEBUG ONLY
 					// Cause an TEST exception on 6'th URI to be changed.
@@ -239,7 +239,7 @@ namespace ChangePhotoPath
 				if (photo != null)
 					photo_store.Commit (photo);
 			} catch (Exception e) {
-				Console.WriteLine(e);
+				Log.Exception(e);
 				return ProcessResult.Error;
 			}
 			return ProcessResult.Ok;
@@ -262,9 +262,9 @@ namespace ChangePhotoPath
 			Photo photo = photo_store.Get ( (uint) photo_id_array[test_index]) as Photo;
 			PhotoVersion version = photo.GetVersion ( (uint) version_id_array[test_index]) as PhotoVersion;
 			if (version.Uri.AbsolutePath.ToString() == path_array[ test_index ])
-				System.Console.WriteLine ("Test URI ({0}) matches --- Should be finished", test_index);
+				Log.DebugFormat ("Test URI ({0}) matches --- Should be finished", test_index);
 			else
-				System.Console.WriteLine ("Test URI ({0}) DO NOT match --- Should NOT BE finished", test_index);
+				Log.DebugFormat ("Test URI ({0}) DO NOT match --- Should NOT BE finished", test_index);
 		}
 */
 
diff --git a/extensions/Tools/ChangePhotoPath/ChangePhotoPathGui.cs b/extensions/Tools/ChangePhotoPath/ChangePhotoPathGui.cs
index 4c797e1..351aeb3 100644
--- a/extensions/Tools/ChangePhotoPath/ChangePhotoPathGui.cs
+++ b/extensions/Tools/ChangePhotoPath/ChangePhotoPathGui.cs
@@ -12,6 +12,7 @@ using FSpot.UI.Dialog;
 using System;
 //using Gnome.Vfs;
 using Gtk;
+using Hyena;
 
 namespace ChangePhotoPath
 {
@@ -35,7 +36,7 @@ namespace ChangePhotoPath
 			try {
 				contr = new ChangePathController ( this );
 			} catch (Exception e) {
-				Console.WriteLine(e);
+				Log.Exception(e);
 				return false;
 			}
 			return true;
@@ -148,7 +149,7 @@ namespace ChangePhotoPath
 										break;
 				case ProcessResult.NoPhotosFound 	: 	DisplayNoPhotosFoundMsg();
 										break;
-				case ProcessResult.Processing 		: 	System.Console.WriteLine ("processing");
+				case ProcessResult.Processing 		: 	Log.Debug ("processing");
 										break;
 				}
 			} else
@@ -197,7 +198,7 @@ namespace ChangePhotoPath
 			try {
 				LaunchDialog( );
 			} catch (Exception e) {
-				Console.WriteLine(e);
+				Log.Exception(e);
 			}
 		}
 	}
diff --git a/extensions/Tools/MergeDb/MergeDb.cs b/extensions/Tools/MergeDb/MergeDb.cs
index 0b76fe8..0f54f17 100644
--- a/extensions/Tools/MergeDb/MergeDb.cs
+++ b/extensions/Tools/MergeDb/MergeDb.cs
@@ -223,8 +223,8 @@ namespace MergeDbExtension
 					PathMap[folder] = new_folder;
 
 				} else
-					Console.WriteLine ("point me to the file");
-				Console.WriteLine ("FNF: {0}", photo_path);
+					Log.Debug ("point me to the file");
+				Log.DebugFormat ("FNF: {0}", photo_path);
 
 			}
 
diff --git a/extensions/Tools/MergeDb/PickFolderDialog.cs b/extensions/Tools/MergeDb/PickFolderDialog.cs
index f11d563..a416ca1 100644
--- a/extensions/Tools/MergeDb/PickFolderDialog.cs
+++ b/extensions/Tools/MergeDb/PickFolderDialog.cs
@@ -11,6 +11,7 @@ using System;
 using FSpot;
 using FSpot.Query;
 using Mono.Unix;
+using Hyena;
 
 namespace MergeDbExtension
 {
@@ -24,7 +25,7 @@ namespace MergeDbExtension
 		{
 			Glade.XML xml = new Glade.XML (null, "MergeDb.glade", "pickfolder_dialog", "f-spot");
 			xml.Autoconnect (this);
-			Console.WriteLine ("new pickfolder");
+			Log.Debug ("new pickfolder");
 			pickfolder_dialog.Modal = false;
 			pickfolder_dialog.TransientFor = parent;
 
diff --git a/extensions/Tools/RawPlusJpeg/RawPlusJpeg.cs b/extensions/Tools/RawPlusJpeg/RawPlusJpeg.cs
index 6d12009..92fbb02 100644
--- a/extensions/Tools/RawPlusJpeg/RawPlusJpeg.cs
+++ b/extensions/Tools/RawPlusJpeg/RawPlusJpeg.cs
@@ -16,13 +16,15 @@ using FSpot;
 using FSpot.UI.Dialog;
 using FSpot.Extensions;
 
+using Hyena;
+
 namespace RawPlusJpegExtension
 {
 	public class RawPlusJpeg : ICommand
 	{
 		public void Run (object o, EventArgs e)
 		{
-			Console.WriteLine ("EXECUTING RAW PLUS JPEG EXTENSION");
+			Log.Debug ("EXECUTING RAW PLUS JPEG EXTENSION");
 
 			if (ResponseType.Ok != HigMessageDialog.RunHigConfirmation (
 				App.Instance.Organizer.Window,
@@ -90,7 +92,7 @@ namespace RawPlusJpegExtension
 
 			public void Merge ()
 			{
-				Console.WriteLine ("Merging {0} and {1}", raw.VersionUri (Photo.OriginalVersionId), jpeg.VersionUri (Photo.OriginalVersionId));
+				Log.DebugFormat ("Merging {0} and {1}", raw.VersionUri (Photo.OriginalVersionId), jpeg.VersionUri (Photo.OriginalVersionId));
 				foreach (uint version_id in jpeg.VersionIds) {
 					string name = jpeg.GetVersion (version_id).Name;
 					try {
@@ -100,7 +102,7 @@ namespace RawPlusJpegExtension
 						else
 							raw.RenameVersion (raw.DefaultVersionId, name);
 					} catch (Exception e) {
-						Console.WriteLine (e);
+						Log.Exception (e);
 					}
 				}
 				raw.AddTag (jpeg.Tags);
@@ -110,7 +112,7 @@ namespace RawPlusJpegExtension
 					try {
 						jpeg.DeleteVersion (version_id, true, true);
 					} catch (Exception e) {
-						Console.WriteLine (e);
+						Log.Exception (e);
 					}
 				}
 				raw.Changes.DataChanged = true;
diff --git a/extensions/Tools/RetroactiveRoll/RetroactiveRoll.cs b/extensions/Tools/RetroactiveRoll/RetroactiveRoll.cs
index e184d00..310277f 100644
--- a/extensions/Tools/RetroactiveRoll/RetroactiveRoll.cs
+++ b/extensions/Tools/RetroactiveRoll/RetroactiveRoll.cs
@@ -14,6 +14,7 @@ using Mono.Unix;
 using System;
 using Mono.Data.SqliteClient;
 using Banshee.Database;
+using Hyena;
 
 namespace RetroactiveRoll
 {
@@ -24,7 +25,7 @@ namespace RetroactiveRoll
 			Photo[] photos = App.Instance.Organizer.SelectedPhotos ();
 
 			if (photos.Length == 0) {
-				Console.WriteLine ("no photos selected, returning");
+				Log.Debug ("no photos selected, returning");
 				return;
 			}
 
@@ -43,7 +44,7 @@ namespace RetroactiveRoll
 				App.Instance.Database.Database.ExecuteNonQuery (cmd);
 				p.RollId = roll.Id;
 			}
-			Console.WriteLine ("RetroactiveRoll done: " + photos.Length + " photos in roll " + roll.Id);
+			Log.Debug ("RetroactiveRoll done: " + photos.Length + " photos in roll " + roll.Id);
 		}
 	}
 }
diff --git a/src/Accelerometer.cs b/src/Accelerometer.cs
index 26080cc..3978f12 100644
--- a/src/Accelerometer.cs
+++ b/src/Accelerometer.cs
@@ -6,6 +6,7 @@ using System;
 using System.IO;
 
 using FSpot.Utils;
+using Hyena;
 
 namespace FSpot {
 
@@ -77,7 +78,7 @@ namespace FSpot {
 				if (eh != null)
 					eh (null, EventArgs.Empty);
 
-				Console.WriteLine ("Laptop orientation changed...");
+				Log.Debug ("Laptop orientation changed...");
 			}
 
 			return true;
diff --git a/src/ColorAdjustment/AutoStretch.cs b/src/ColorAdjustment/AutoStretch.cs
index 666d979..d4dcaab 100644
--- a/src/ColorAdjustment/AutoStretch.cs
+++ b/src/ColorAdjustment/AutoStretch.cs
@@ -12,6 +12,7 @@ using Cms;
 using Gdk;
 using System;
 using System.Collections.Generic;
+using Hyena;
 
 namespace FSpot.ColorAdjustment {
 	public class AutoStretch : Adjustment {
@@ -28,7 +29,7 @@ namespace FSpot.ColorAdjustment {
 			for (int channel = 0; channel < tables.Length; channel++) {
 				int high, low;
 				hist.GetHighLow (channel, out high, out low);
-				System.Console.WriteLine ("high = {0}, low = {1}", high, low);
+				Log.DebugFormat ("high = {0}, low = {1}", high, low);
 				tables [channel] = StretchChannel (255, low / 255.0, high / 255.0); 
 			}
 			profiles.Add (new Cms.Profile (IccColorSpace.Rgb, tables));
diff --git a/src/Core/App.cs b/src/Core/App.cs
index 70757e9..8666576 100644
--- a/src/Core/App.cs
+++ b/src/Core/App.cs
@@ -314,8 +314,8 @@ namespace FSpot
 			try {
 				Register (new FSpot.SingleView (ul.ToArray ()).Window);
 			} catch (System.Exception e) {
-				System.Console.WriteLine (e.ToString ());
-				System.Console.WriteLine ("no real valid path to view from");
+				Log.Exception (e);
+				Log.Debug ("no real valid path to view from");
 			} 
 		}
 
diff --git a/src/Core/Photo.cs b/src/Core/Photo.cs
index a5a242e..c7c4613 100644
--- a/src/Core/Photo.cs
+++ b/src/Core/Photo.cs
@@ -249,7 +249,7 @@ namespace FSpot
 					FSpot.ThumbnailGenerator.Create (versionUri).Dispose ();
 					DefaultVersionId = version;
 				} catch (System.Exception e) {
-					System.Console.WriteLine (e);
+					Log.Exception (e);
 					if (create_version)
 						DeleteVersion (version);
 				
diff --git a/src/Db.cs b/src/Db.cs
index 974df55..1e7645c 100644
--- a/src/Db.cs
+++ b/src/Db.cs
@@ -315,7 +315,7 @@ public class Db : IDisposable {
 		if (upgrader_path == null)
 			throw new DbException ("Failed to upgrade the f-spot sqlite2 database to sqlite3!\n" + "Unable to find the f-spot-sqlite-upgrade script on your system");
 
-		Console.WriteLine ("Running {0}...", upgrader_path);
+		Log.DebugFormat ("Running {0}...", upgrader_path);
 		ProcessStartInfo updaterInfo = new ProcessStartInfo (upgrader_path);
 		updaterInfo.UseShellExecute = false;
 		updaterInfo.RedirectStandardError = true;
diff --git a/src/FileBrowsableItem.cs b/src/FileBrowsableItem.cs
index ee1e336..e2ab934 100644
--- a/src/FileBrowsableItem.cs
+++ b/src/FileBrowsableItem.cs
@@ -62,7 +62,7 @@ namespace FSpot {
 						return Image.Description;
 
 				} catch (System.Exception e) {
-					System.Console.WriteLine (e);
+					Log.Exception (e);
 				}
 
 				return null;
diff --git a/src/FileImportBackend.cs b/src/FileImportBackend.cs
index b1627aa..3c1cf82 100644
--- a/src/FileImportBackend.cs
+++ b/src/FileImportBackend.cs
@@ -240,7 +240,7 @@ public class FileImportBackend : ImportBackend {
                 info.PhotoId = photo.Id;
 			}
 		} catch (System.Exception e) {
-			System.Console.WriteLine ("Error importing {0}{2}{1}", info.DestinationUri.ToString (), e.ToString (), Environment.NewLine);
+			Log.ErrorFormat ("Error importing {0}{2}{1}", info.DestinationUri.ToString (), e.ToString (), Environment.NewLine);
 			photo = null;
 
 			HigMessageDialog errordialog = new HigMessageDialog (parent,
@@ -286,7 +286,7 @@ public class FileImportBackend : ImportBackend {
 				} catch (System.ArgumentNullException) {
 					// Do nothing, since if DestinationUri == null, we do not have to remove it
 				} catch (System.Exception e) {
-					System.Console.WriteLine (e);
+					Log.Exception (e);
 				}
 			}
 			
diff --git a/src/Filters/FilterRequest.cs b/src/Filters/FilterRequest.cs
index 274d2ad..c0ad7a7 100644
--- a/src/Filters/FilterRequest.cs
+++ b/src/Filters/FilterRequest.cs
@@ -55,7 +55,7 @@ namespace FSpot.Filters {
 				try {
 					System.IO.File.Delete (uri.LocalPath);
 				} catch (System.IO.IOException e) {
-					System.Console.WriteLine (e);
+					Log.Exception (e);
 				}
 			}
 			temp_uris.Clear ();
diff --git a/src/Histogram.cs b/src/Histogram.cs
index f9c6d61..66e4a2e 100644
--- a/src/Histogram.cs
+++ b/src/Histogram.cs
@@ -186,9 +186,9 @@ namespace FSpot {
 		{
 			Gtk.Application.Init ();
 			Gdk.Pixbuf pixbuf = new Gdk.Pixbuf (args [0]);
-			System.Console.WriteLine ("loaded {0}", args [0]);
+			Log.DebugFormat ("loaded {0}", args [0]);
 			Histogram hist = new Histogram ();
-			System.Console.WriteLine ("loaded histgram", args [0]);
+			Log.DebugFormat ("loaded histgram", args [0]);
 			
 			Gtk.Window win = new Gtk.Window ("display");
 			Gtk.Image image = new Gtk.Image ();
diff --git a/src/IOChannel.cs b/src/IOChannel.cs
index d7e357a..76fafd6 100644
--- a/src/IOChannel.cs
+++ b/src/IOChannel.cs
@@ -2,6 +2,7 @@ using System;
 using System.IO;
 using System.Runtime.InteropServices;
 using GLib;
+using Hyena;
 
 namespace FSpot {
 
@@ -129,7 +130,7 @@ namespace FSpot {
 			status = g_io_channel_flush (handle, out error);
 
 			if (status != IOStatus.Normal && status != IOStatus.Eof)
-				System.Console.WriteLine ("IOChannel status = {0}", status);
+				Hyena.Log.DebugFormat ("IOChannel status = {0}", status);
 
 			if (error != IntPtr.Zero)
 				throw new GException (error);
@@ -178,7 +179,7 @@ namespace FSpot {
 			}
 
 			if (status != IOStatus.Normal && status != IOStatus.Eof)
-				System.Console.WriteLine ("IOChannel status = {0}", status);
+				Hyena.Log.DebugFormat ("IOChannel status = {0}", status);
 
 			if (error != IntPtr.Zero)
 				throw new GException (error);
diff --git a/src/ImageLoaderThread.cs b/src/ImageLoaderThread.cs
index 25b1fad..6ce3f9a 100644
--- a/src/ImageLoaderThread.cs
+++ b/src/ImageLoaderThread.cs
@@ -158,7 +158,7 @@ public class ImageLoaderThread {
 				}
 			}
 		} catch (GLib.GException e){
-			System.Console.WriteLine (e.ToString ());
+			Log.Exception (e);
 			return;		
 		}
 		
diff --git a/src/Imaging/Bim.cs b/src/Imaging/Bim.cs
index e214cdf..56e5a1a 100644
--- a/src/Imaging/Bim.cs
+++ b/src/Imaging/Bim.cs
@@ -1,3 +1,5 @@
+using Hyena;
+
 namespace FSpot.Bim {
 	public enum EntryType : ushort {
 		ObsoleteImageInfo = 0x03e8,  
@@ -193,7 +195,7 @@ namespace FSpot.Bim {
 				try {
 					//System.Console.WriteLine (System.Text.Encoding.ASCII.GetString (current.Data));
 				} catch (System.Exception e) {
-					System.Console.WriteLine (e.ToString ());
+					Log.Exception (e);
 				}
 				entries.Add (current);
 			}
diff --git a/src/Imaging/Ciff.cs b/src/Imaging/Ciff.cs
index c8e2250..66425f6 100644
--- a/src/Imaging/Ciff.cs
+++ b/src/Imaging/Ciff.cs
@@ -108,7 +108,7 @@ namespace FSpot.Ciff {
 			ComponentBitDepth = BitConverter.ToUInt32 (data, 16, little);
 			ColorBitDepth = BitConverter.ToUInt32 (data, 20, little);
 			ColorBW = BitConverter.ToUInt32 (data, 24, little);
-			System.Console.WriteLine ("0x{0}", ColorBW.ToString ("x"));
+			Log.DebugFormat ("0x{0}", ColorBW.ToString ("x"));
 		}
 
 		public PixbufOrientation Orientation {
@@ -261,7 +261,7 @@ namespace FSpot.Ciff {
 			for (int i = 0; i < Count; i++)
 			{
 				stream.Read (buf, 0, 10);
-				System.Console.WriteLine ("reading {0} {1}", i, stream.Position);
+				Log.DebugFormat ("reading {0} {1}", i, stream.Position);
 				Entry entry = new Entry (buf, 0, little);
 				entry_list.Add (entry);
 			}
@@ -269,10 +269,10 @@ namespace FSpot.Ciff {
 
 		public void Dump ()
 		{
-			System.Console.WriteLine ("Dumping directory with {0} entries", entry_list.Count);
+			Log.DebugFormat ("Dumping directory with {0} entries", entry_list.Count);
 			for (int i = 0; i < entry_list.Count; i++) {
 				Entry e = (Entry) entry_list[i];
-				System.Console.WriteLine ("\tentry[{0}] = {1}.{6}.{5}({4}).{2}-{3}", 
+				Log.DebugFormat ("\tentry[{0}] = {1}.{6}.{5}({4}).{2}-{3}",
 							  i, e.Tag, e.Size, e.Offset, e.Tag.ToString ("x"), (uint)e.Tag & ~(uint)Mask.StorageFormat, e.Type); 
 			}
 		}
@@ -427,7 +427,7 @@ namespace FSpot.Ciff {
 			if (data != null)
 				orientation = new ImageSpec (data, little).Orientation;
 			else 
-				System.Console.WriteLine ("NO ORIENTATION");
+				Log.Debug ("NO ORIENTATION");
 
 			return orientation;
 		}
@@ -438,7 +438,7 @@ namespace FSpot.Ciff {
 				byte [] date = props.ReadEntry (Tag.TimeStamp);
 
 				if (date == null) {
-					System.Console.WriteLine ("NO DATE");
+					Log.Debug ("NO DATE");
 					return base.Date;
 				}
 
@@ -475,7 +475,7 @@ namespace FSpot.Ciff {
 
 			System.IO.Stream output = System.IO.File.Open (path, System.IO.FileMode.OpenOrCreate);
 			byte [] data = GetEmbeddedThumbnail ();
-			System.Console.WriteLine ("data length {0}", data != null ? data.Length : -1);
+			Log.DebugFormat ("data length {0}", data != null ? data.Length : -1);
 			output.Write (data, 0, data.Length);
 			output.Close ();
 			*/
diff --git a/src/Imaging/DCRawFile.cs b/src/Imaging/DCRawFile.cs
index 096d701..ad104e8 100644
--- a/src/Imaging/DCRawFile.cs
+++ b/src/Imaging/DCRawFile.cs
@@ -112,7 +112,7 @@ namespace FSpot {
 			// FIXME this filename quoting is super lame
 			args = System.String.Format ("-h -w -c \"{0}\"", path);
 
-			System.Console.WriteLine ("path = {0}, args = \"{1}\"", path, args);
+			Log.DebugFormat ("path = {0}, args = \"{1}\"", path, args);
 			 
 			using (System.Diagnostics.Process process = new System.Diagnostics.Process ()) {
 				process.StartInfo = new System.Diagnostics.ProcessStartInfo (dcraw_command, args);
diff --git a/src/Imaging/Exif.cs b/src/Imaging/Exif.cs
index 2a31444..55c9152 100644
--- a/src/Imaging/Exif.cs
+++ b/src/Imaging/Exif.cs
@@ -14,6 +14,7 @@ using System.Collections;
 using System.Runtime.InteropServices;
 
 using Mono.Unix;
+using Hyena;
 
 namespace Exif {
 	public enum Tag {
@@ -582,7 +583,7 @@ namespace Exif {
 			byte [] tmp = new byte [len + 1];
 			System.Text.Encoding.UTF8.GetBytes (value, 0, value.Length, tmp, 0);
 			tmp[len] = 0;
-			System.Console.WriteLine ("value = {0} len = {1}", value, len);
+			Log.DebugFormat ("value = {0} len = {1}", value, len);
 			SetData (tmp, 1);
 		}
 
@@ -802,7 +803,7 @@ namespace Exif {
 				free (data);
 			}
 				
-			System.Console.WriteLine ("Saved {0} bytes", content.Length);
+			Log.DebugFormat ("Saved {0} bytes", content.Length);
 			return content;
 		}
 		
diff --git a/src/Imaging/JpegFile.cs b/src/Imaging/JpegFile.cs
index 7ecac8c..08f879b 100644
--- a/src/Imaging/JpegFile.cs
+++ b/src/Imaging/JpegFile.cs
@@ -27,7 +27,7 @@ namespace FSpot {
 			try {
 				// Console.WriteLine ("approximate quality = {0}", Header.GuessQuality ());
 			} catch (Exception e) {
-				System.Console.WriteLine (e);
+				Log.Exception (e);
 			}
 		}
 		
@@ -61,7 +61,7 @@ namespace FSpot {
 				header = new JpegHeader (s, true);
 				s.Position = 0;
 			} else
-				Console.WriteLine ("{0} can not seek :(", s);
+				Log.DebugFormat ("{0} can not seek :(", s);
 			return s;
 		}
 
@@ -86,7 +86,7 @@ namespace FSpot {
 							return entry.ValueAsString [0];
 					}
 				} catch (System.Exception e) {
-					Console.WriteLine (e);
+					Log.Exception (e);
 				}
 				return null;
 #else
@@ -277,12 +277,12 @@ namespace FSpot {
 				DirectoryEntry e = ExifHeader.Directory.Lookup (TagId.Orientation);
 				orientation = (PixbufOrientation)e.ValueAsLong [0];
 			} catch {
-				System.Console.WriteLine ("error checking orientation");
+				Log.Warning ("error checking orientation");
 			}
 #else						     
-Console.WriteLine (">>>");
+Log.Debug (">>>");
 			Exif.ExifEntry e = this.ExifData.GetContents (Exif.Ifd.Zero).Lookup (Exif.Tag.Orientation);
-Console.WriteLine ("<<<");
+Log.Debug ("<<<");
 			
 			if (e != null) {
 				ushort [] value = e.GetDataUShort ();
@@ -349,7 +349,7 @@ Console.WriteLine ("<<<");
 					time = Exif.ExifUtil.DateTimeFromString (time_str); 
 #endif
 				} catch (System.Exception e) {
-					Console.WriteLine (e);
+					Log.Exception (e);
 					time = base.Date;
 				}
 				return time;
diff --git a/src/Imaging/JpegHeader.cs b/src/Imaging/JpegHeader.cs
index 93624b7..5db2a95 100644
--- a/src/Imaging/JpegHeader.cs
+++ b/src/Imaging/JpegHeader.cs
@@ -305,7 +305,7 @@ public class JpegHeader : SemWeb.StatementSource {
 			if (m != null)
 				return new Cms.Profile (m.Data, name.Length, m.Data.Length - name.Length); 
 		} catch (System.Exception e) {
-			System.Console.WriteLine (e);
+			Log.Exception (e);
 		}
 		
 		FSpot.Tiff.Header exif = GetExifHeader ();
@@ -500,8 +500,8 @@ public class JpegHeader : SemWeb.StatementSource {
 		try {
 			Load (stream, metadata_only);
 		} catch (System.Exception e) {
-			Console.WriteLine ("Exeption while reading jpeg headers");
-			Console.WriteLine(e);
+			Log.Warning ("Exeption while reading jpeg headers");
+			Log.Exception(e);
 		}
 	}
 
@@ -754,7 +754,7 @@ public class JpegHeader : SemWeb.StatementSource {
 
 		if (value != null) {
 			string xml = System.Text.Encoding.UTF8.GetString (value, 29, value.Length - 29);
-			System.Console.WriteLine (xml);
+			Log.Debug (xml);
 		}
 		
 		value = data.GetRaw ("ICC_PROFILE");
diff --git a/src/Imaging/MrwFile.cs b/src/Imaging/MrwFile.cs
index 309784d..df334aa 100644
--- a/src/Imaging/MrwFile.cs
+++ b/src/Imaging/MrwFile.cs
@@ -21,7 +21,7 @@ namespace FSpot.Mrw {
 			byte [] tmp = new byte [8];
 			stream.Read (tmp, 0, tmp.Length);
 			System.Array.Copy (tmp, name, name.Length);
-			System.Console.WriteLine (this.Name);
+			Log.Debug (this.Name);
 			Length = BitConverter.ToUInt32 (tmp, name.Length, false);
 			stream.Position = stream.Position + Length;
 		}
@@ -130,10 +130,10 @@ namespace FSpot.Mrw {
 				if (header == null) {
 					try {
 						System.IO.MemoryStream mem = new System.IO.MemoryStream (this.Data);
-						System.Console.WriteLine ("before header");
+						Log.Debug ("before header");
 						header = new Header (mem);
 					} catch (System.Exception e) {
-						System.Console.WriteLine (e.ToString ());
+						Log.Exception (e);
 					}
 				}
 				
@@ -240,7 +240,7 @@ namespace FSpot.Mrw {
 						}
 					}
 				} catch (System.Exception e) {
-					System.Console.WriteLine (e.ToString ());
+					Log.Exception (e);
 				}
 			}
 		}
diff --git a/src/Imaging/PngFile.cs b/src/Imaging/PngFile.cs
index dd868ea..6c4ef1b 100644
--- a/src/Imaging/PngFile.cs
+++ b/src/Imaging/PngFile.cs
@@ -98,7 +98,7 @@ namespace FSpot.Png {
 							System.DateTime time = System.DateTime.Parse (text.Text);
 							MetadataStore.AddLiteral (sink, "xmp:CreateDate", time.ToString ("yyyy-MM-ddThh:mm:ss"));
 						} catch (System.Exception e) {
-							System.Console.WriteLine (e.ToString ());
+							Log.Exception (e);
 						}
 						break;
 					}
@@ -870,7 +870,7 @@ namespace FSpot.Png {
 					
 					if (col < width) {
 						inflater.Fill ();
-						System.Console.WriteLine ("short read missing {0} {1} {2}", width - col, row, height);
+						Log.DebugFormat ("short read missing {0} {1} {2}", width - col, row, height);
 					}
 				}
 			}
@@ -1089,7 +1089,7 @@ namespace FSpot.Png {
 			}
 
 			IhdrChunk ihdr = (IhdrChunk) Chunks [0];
-			System.Console.WriteLine ("Attempting to to inflate photo {0}.{1}({2}, {3})", ihdr.Color, ihdr.Depth, ihdr.Width, ihdr.Height);
+			Log.DebugFormat ("Attempting to to inflate photo {0}.{1}({2}, {3})", ihdr.Color, ihdr.Depth, ihdr.Width, ihdr.Height);
 			ScanlineDecoder decoder = new ScanlineDecoder (ci, ihdr.GetScanlineLength (0), ihdr.Height);
 			decoder.Fill ();
 			//Gdk.Pixbuf pixbuf = decoder.GetPixbuf ();
@@ -1210,7 +1210,7 @@ namespace FSpot.Png {
 					if (time != null)
 						System.Console.Write(" Time {0}", time.Time);
 
-					System.Console.WriteLine (System.String.Empty);
+					Log.Debug (System.String.Empty);
 #endif
 					
 					if (chunk.Name == "IEND")
@@ -1325,7 +1325,7 @@ namespace FSpot.Png {
 				try {
 					return new Profile (icc.Profile);
 				} catch (System.Exception ex) {
-					System.Console.WriteLine ("Error trying to decode embedded profile" + ex.ToString ());
+					Log.Error ("Error trying to decode embedded profile" + ex.ToString ());
 				}
 			}
 
diff --git a/src/Imaging/PnmFile.cs b/src/Imaging/PnmFile.cs
index f7896b4..0d3ae16 100644
--- a/src/Imaging/PnmFile.cs
+++ b/src/Imaging/PnmFile.cs
@@ -42,7 +42,7 @@ namespace FSpot.Pnm {
 
 			public void Dump ()
 			{
-				System.Console.WriteLine ("Loading ({0} - {1},{2} - {3})", 
+				Log.DebugFormat ("Loading ({0} - {1},{2} - {3})",
 							  Magic, Width, Height, Max);
 			}
 		}
@@ -212,7 +212,7 @@ namespace FSpot.Pnm {
 					return pixbuf;
 				}
 			} catch (System.Exception e) {
-				System.Console.WriteLine (e.ToString ());
+				Log.Exception (e);
 			}
 			return null;
 		}
diff --git a/src/Imaging/RafFile.cs b/src/Imaging/RafFile.cs
index 7137855..13a191b 100644
--- a/src/Imaging/RafFile.cs
+++ b/src/Imaging/RafFile.cs
@@ -38,7 +38,7 @@ namespace FSpot.Raf {
 			get {
 				if (exif_data == null)
 					exif_data = new Exif.ExifData(uri.LocalPath);
-				System.Console.WriteLine ("loading exif data");
+				Log.Debug ("loading exif data");
 				return exif_data;
 			}
 		}
diff --git a/src/Imaging/SvgFile.cs b/src/Imaging/SvgFile.cs
index 2418823..bf51ec5 100644
--- a/src/Imaging/SvgFile.cs
+++ b/src/Imaging/SvgFile.cs
@@ -34,7 +34,7 @@ namespace FSpot.Svg {
 				store.Dump ();
 
 			} catch (System.Exception e) {
-				System.Console.WriteLine (e.ToString ());
+				Log.Error (e.ToString ());
 			}
 		}
 
diff --git a/src/Imaging/Tiff.cs b/src/Imaging/Tiff.cs
index d41cf36..85e9043 100644
--- a/src/Imaging/Tiff.cs
+++ b/src/Imaging/Tiff.cs
@@ -419,7 +419,7 @@ namespace FSpot.Tiff {
 				try {
 					enc = System.Text.Encoding.GetEncoding ("euc-jp");
 				} catch {
-					System.Console.WriteLine ("missing jis0208 encoding");
+					Log.Warning ("missing jis0208 encoding");
 					enc = System.Text.Encoding.Default;
 				}
 				break;
@@ -467,7 +467,7 @@ namespace FSpot.Tiff {
 			enc.GetBytes (Value, 0, Value.Length, data, heading.Length);
 			
 			UserComment c = new UserComment (data, is_little);
-			System.Console.WriteLine ("old = \"{0}\" new = \"{1}\" heading = \"{2}\"", c.Value, description, heading);
+			Log.DebugFormat ("old = \"{0}\" new = \"{1}\" heading = \"{2}\"", c.Value, description, heading);
 			return data;
 		}
 
@@ -844,7 +844,7 @@ namespace FSpot.Tiff {
 
 		        if (stream.Read (tmp, 0, tmp.Length) < 4) {
 #if DEBUG_LOADER
-				System.Console.WriteLine ("short read XXXXXXXXXXXXXXXXXXXXXXx");
+				Log.Debug ("short read XXXXXXXXXXXXXXXXXXXXXXx");
 #endif
 				throw new ShortReadException ();
 			}
@@ -857,7 +857,7 @@ namespace FSpot.Tiff {
 
 		        if (stream.Read (tmp, 0, tmp.Length) < 2) {
 #if DEBUG_LOADER
-				System.Console.WriteLine ("Short read");
+				Log.Debug ("Short read");
 #endif
 				throw new ShortReadException ();
 			}
@@ -893,13 +893,13 @@ namespace FSpot.Tiff {
 				//System.Console.WriteLine ("Found Standard Tiff Marker {0}", marker);
 				break;
 			case 0x4f52:
-				System.Console.WriteLine ("Found Olympus Tiff Marker {0}", marker.ToString ("x"));
+				Log.DebugFormat ("Found Olympus Tiff Marker {0}", marker.ToString ("x"));
 				break;
 			case 0x4e31:
-				System.Console.WriteLine ("Found Navy Interchange File Format Tiff Marker {0}", marker.ToString ("x")); 
+				Log.DebugFormat ("Found Navy Interchange File Format Tiff Marker {0}", marker.ToString ("x"));
 				break;
 			default:
-				System.Console.WriteLine ("Found Unknown Tiff Marker {0}", marker.ToString ("x"));
+				Log.DebugFormat ("Found Unknown Tiff Marker {0}", marker.ToString ("x"));
 				break;
 			}
 
@@ -910,7 +910,7 @@ namespace FSpot.Tiff {
 				throw new ParseException ("Invalid IFD0 Offset [" + directory_offset.ToString () + "]"); 
 			
 #if DEBUG_LOADER
-			System.Console.WriteLine ("Reading First IFD");
+			Log.Debug ("Reading First IFD");
 #endif
 			Directory = new ImageDirectory (stream, directory_offset, endian); 
 			//}
@@ -928,7 +928,7 @@ namespace FSpot.Tiff {
 		{
 			foreach (DirectoryEntry e in dir.Entries) {
 #if DEBUG_LOADER
-				System.Console.WriteLine ("{0}", e.Id);
+				Log.DebugFormat ("{0}", e.Id);
 #endif
 				switch (e.Id) {
 				case TagId.IPTCNAA:
@@ -965,8 +965,8 @@ namespace FSpot.Tiff {
 					try {
 						ImageDirectory sub = ((SubdirectoryEntry)e).Directory [0];
 						SelectDirectory (sub, sink);
-					} catch (System.Exception exc) {
-						System.Console.WriteLine (exc);
+					} catch (System.Exception ex) {
+						Log.Exception (ex);
 					}
 					break;
 				case TagId.Software:
@@ -978,7 +978,7 @@ namespace FSpot.Tiff {
 					MetadataStore.AddLiteral (sink, "xmp:ModifyDate", 
 								  e.ValueAsDate.ToString ("yyyy-MM-ddThh:mm:ss"));
 					} catch (System.Exception ex) {
-						System.Console.WriteLine (String.Format ("error parsing {0}{2}{1}", e.ValueAsString[0], ex, Environment.NewLine));
+						Log.ErrorFormat ("error parsing {0}{2}{1}", e.ValueAsString[0], ex, Environment.NewLine);
 					}
 
 					break;
@@ -990,7 +990,7 @@ namespace FSpot.Tiff {
 						MetadataStore.AddLiteral (sink, "exif:" + e.Id.ToString (), 
 									  e.ValueAsDate.ToString ("yyyy-MM-ddThh:mm:ss"));
 					} catch (System.Exception ex) {
-						System.Console.WriteLine (String.Format ("error parsing {0}{2}{1}", e.ValueAsString[0], ex, Environment.NewLine));
+						Log.ErrorFormat ("error parsing {0}{2}{1}", e.ValueAsString[0], ex, Environment.NewLine);
 					}
 					break;
 					//case TagId.SpatialFrequencyResponse
@@ -1082,7 +1082,7 @@ namespace FSpot.Tiff {
 					try {
 						MetadataStore.AddLiteral (sink, "tiff:" + e.Id.ToString (), e.ValueAsString [0]);
 					} catch (System.Exception ex) {
-						System.Console.WriteLine (String.Format ("error parsing {0}{2}{1}", e.Id, ex, Environment.NewLine));
+						Log.ErrorFormat ("error parsing {0}{2}{1}", e.Id, ex, Environment.NewLine);
 					}
 					break;
 				}
@@ -1181,7 +1181,7 @@ namespace FSpot.Tiff {
 		{
 			num_entries = Converter.ReadUShort (stream, endian);
 #if DEBUG_LOADER
-			System.Console.WriteLine ("reading {0} entries", num_entries);
+			Log.DebugFormat ("reading {0} entries", num_entries);
 #endif			
 			entries = new List<DirectoryEntry> (num_entries);
 			int entry_length = num_entries * 12;
@@ -1189,7 +1189,7 @@ namespace FSpot.Tiff {
 			
 			if (stream.Read (content, 0, content.Length) < content.Length) {
 #if DEBUG_LOADER
-				System.Console.WriteLine ("short read XXXXXXXXXXXXXXXXXXXXXXx");
+				Log.Debug ("short read XXXXXXXXXXXXXXXXXXXXXXx");
 #endif
 				throw new ShortReadException ();
 			}
@@ -1199,7 +1199,7 @@ namespace FSpot.Tiff {
 				DirectoryEntry entry = CreateEntry (this, content, pos, this.endian);
 				entries.Add (entry);		
 #if DEBUG_LOADER
-				System.Console.WriteLine ("Added Entry {0} {1} - {2} * {3}", entry.Id.ToString (), entry.Id.ToString ("x"), entry.Type, entry.Count);
+				Log.DebugFormat ("Added Entry {0} {1} - {2} * {3}", entry.Id.ToString (), entry.Id.ToString ("x"), entry.Type, entry.Count);
 #endif
 				if (entry.Id == TagId.NewSubfileType) {
 					
@@ -1222,7 +1222,7 @@ namespace FSpot.Tiff {
 		protected void LoadNextDirectory (System.IO.Stream stream)
 		{
 #if DEBUG_LOADER
-			System.Console.WriteLine ("start_position = {1} next_directory_offset = {0}",
+			Log.DebugFormat ("start_position = {1} next_directory_offset = {0}",
 						  next_directory_offset, orig_position);
 #endif
 			next_directory = null;
@@ -1330,7 +1330,7 @@ namespace FSpot.Tiff {
 					try {
 						return new Cms.Profile (e.RawData);
 					} catch (System.Exception ex) {
-						System.Console.WriteLine (ex);
+						Log.Exception (ex);
 					}
 					break;
 				case TagId.ColorSpace:
@@ -1340,7 +1340,7 @@ namespace FSpot.Tiff {
 					case ColorSpace.AdobeRGB:
 						return Cms.Profile.CreateAlternateRgb ();
 					case ColorSpace.Uncalibrated:
-						System.Console.WriteLine ("Uncalibrated colorspace");
+						Log.Debug ("Uncalibrated colorspace");
 						break;
 					}
 					break;
@@ -1368,7 +1368,7 @@ namespace FSpot.Tiff {
 					ushort [] trns = e.ShortValue;
 					ushort gamma_count = (ushort) (1 << bits_per_sample);
 					Cms.GammaTable [] tables = new Cms.GammaTable [3];
-					System.Console.WriteLine ("Parsing transfer function: count = {0}", trns.Length);
+					Log.DebugFormat ("Parsing transfer function: count = {0}", trns.Length);
 
 					// FIXME we should use the TransferRange here
 					// FIXME we should use bits per sample here
@@ -1405,10 +1405,10 @@ namespace FSpot.Tiff {
 
 		public void Dump (string name) 
 		{
-			System.Console.WriteLine ("Starting {0}", name);
+			Log.DebugFormat ("Starting {0}", name);
 			foreach (DirectoryEntry e in this.Entries)
 				e.Dump (name);
-			System.Console.WriteLine ("Ending {0}", name);
+			Log.DebugFormat ("Ending {0}", name);
 		}
 		
 		public string Dump2 ()
@@ -1455,14 +1455,14 @@ namespace FSpot.Tiff {
 		public SubdirectoryEntry (byte [] data, int offset, Endian endian) : base (data, offset, endian)
 		{
 			if (this.GetEntryCount () > 1) {
-				System.Console.WriteLine ("Count is greater than 1 ({1}) on Subdirectory {0} interesting", tagid, count);
+				Log.DebugFormat ("Count is greater than 1 ({1}) on Subdirectory {0} interesting", tagid, count);
 			}
 		}
 
 		public override uint Save (OrderedWriter writer, uint position)
 		{
 #if DEBUG_LOADER			
-			Console.WriteLine ("writing entry {0} {1} {2} - value offset = {3}", Id, Type, Count, position);
+			Log.DebugFormat ("writing entry {0} {1} {2} - value offset = {3}", Id, Type, Count, position);
 #endif
 
 			writer.Write ((ushort)Id);
@@ -1506,7 +1506,7 @@ namespace FSpot.Tiff {
 						throw new Exception ("recursive ifd");
 					Directory [i] = new ImageDirectory (stream, directory_offset, endian);
 				} catch (System.Exception e) {
-					System.Console.WriteLine ("Error loading Subdirectory {0} at {2} of {3}bytes:{4}{1}", 
+					Log.ErrorFormat ("Error loading Subdirectory {0} at {2} of {3}bytes:{4}{1}",
 								  this.Id, e, directory_offset, stream.Length, Environment.NewLine);
 				}
 					
@@ -1522,7 +1522,7 @@ namespace FSpot.Tiff {
 					if (Directory [i] != null)
 						Directory [i].Dump (subdirname);
 				} catch (System.Exception e) {
-					System.Console.WriteLine (e);
+					Log.Exception (e);
 				}
 			}
 		}
@@ -1627,7 +1627,7 @@ namespace FSpot.Tiff {
 		public virtual uint Save (OrderedWriter writer, uint position)
 		{
 #if DEBUG_LOADER			
-			Console.WriteLine ("writing entry {0} {1} {2}", Id, Type, Count);
+			Log.DebugFormat ("writing entry {0} {1} {2}", Id, Type, Count);
 #endif
 			writer.Write ((ushort)Id);
 			writer.Write ((ushort)Type);
@@ -1717,7 +1717,7 @@ namespace FSpot.Tiff {
 				byte [] data = new byte [count * GetTypeSize ()];
 				if (stream.Read (data, 0, data.Length) < data.Length) {
 #if DEBUG_LOADER
-					System.Console.WriteLine ("Short read");
+					Log.Debug ("Short read");
 #endif
 					throw new ShortReadException ();
 				}
@@ -1778,17 +1778,17 @@ namespace FSpot.Tiff {
 			case EntryType.Short:
 			case EntryType.Long:
 				uint [] vals = this.ValueAsLong;
-				System.Console.Write ("{3}{1}({2}) [{0}] (", vals.Length, this.Id, this.Type, name);
+				Log.DebugFormat ("{3}{1}({2}) [{0}] (", vals.Length, this.Id, this.Type, name);
 				for (int i = 0; i < System.Math.Min (15, vals.Length); i++) {
 					System.Console.Write (" {0}", vals [i]);
 				}
-				System.Console.WriteLine (")");
+				Log.Debug (")");
 				break;
 			case EntryType.Ascii:
-				System.Console.WriteLine ("{3}{1}({2}) (\"{0}\")", this.StringValue, this.Id, this.Type, name);
+				Log.DebugFormat ("{3}{1}({2}) (\"{0}\")", this.StringValue, this.Id, this.Type, name);
 				break;
 			default:
-				System.Console.WriteLine ("{3}{1}({2}) [{0}]", this.Count, this.Id, this.Type, name);
+				Log.DebugFormat ("{3}{1}({2}) [{0}]", this.Count, this.Id, this.Type, name);
 				break;
 			}
 		}
@@ -1815,7 +1815,7 @@ namespace FSpot.Tiff {
 			byte [] tmp = new byte [len + 1];
 			System.Text.Encoding.UTF8.GetBytes (value, 0, value.Length, tmp, 0);
 			tmp[len] = 0;
-			System.Console.WriteLine ("SetData: value = {0} len = {1}", value, len);
+			Log.DebugFormat ("SetData: value = {0} len = {1}", value, len);
 			SetData (tmp);
 		}
 	
@@ -1901,7 +1901,7 @@ namespace FSpot.Tiff {
 					case TagId.ComponentsConfiguration:
 						return ArrayToString (ValueAsLong);
 					default:
-						System.Console.WriteLine ("Cannot convert type \"{0}\" to string", Id);
+						Log.DebugFormat ("Cannot convert type \"{0}\" to string", Id);
 						break;
 					}
 					break;
@@ -2034,7 +2034,7 @@ namespace FSpot.Tiff {
 				Header.Dump (this.ToString () + ":");
 #endif
 			} catch (System.Exception e) {
-				System.Console.WriteLine (e.ToString ());
+				Log.Error (e.ToString ());
 			}
 		}
 
diff --git a/src/Imaging/XmpFile.cs b/src/Imaging/XmpFile.cs
index 7a23c6c..b28d602 100644
--- a/src/Imaging/XmpFile.cs
+++ b/src/Imaging/XmpFile.cs
@@ -92,7 +92,7 @@ namespace FSpot.Xmp {
 				text.Close ();
 				
 			} catch (System.Exception e) {
-				System.Console.WriteLine (e);
+				Log.Exception (e);
 			}
 		}
 
@@ -109,7 +109,7 @@ namespace FSpot.Xmp {
 		public void Dump ()
 		{
 			foreach (SemWeb.Statement stmt in store) {
-				System.Console.WriteLine(stmt);
+				Log.Debug(stmt.ToString());
 			}
 		}
 
diff --git a/src/ImportCommand.cs b/src/ImportCommand.cs
index 668daa8..cbd0119 100644
--- a/src/ImportCommand.cs
+++ b/src/ImportCommand.cs
@@ -89,7 +89,7 @@ public class ImportCommand : GladeDialog
 			try {
 				mount_point = mount.Root.Uri;
 			} catch (System.Exception e) {
-				System.Console.WriteLine (e);
+				Hyena.Log.Exception (e);
 			}
 
 			uri = new SafeUri (mount.Root.Uri, true);
@@ -214,7 +214,7 @@ public class ImportCommand : GladeDialog
 		public int FindItemPosition (SafeUri uri)
 		{
 			Gtk.Widget [] children = this.Children;
-			System.Console.WriteLine ("looking for {0}", uri);
+			Hyena.Log.DebugFormat ("looking for {0}", uri);
 			for (int i = 0; i < children.Length; i++) {
 				if (children [i] is SourceItem) {
 					VfsSource vfs = ((SourceItem)(children [i])).Source as VfsSource;
@@ -364,7 +364,7 @@ public class ImportCommand : GladeDialog
 			// with the recursive DoImport loops we sometimes get into
 			ongoing = importer.Step (out status_info);
 		} catch (ImportException e){
-			System.Console.WriteLine (e);
+			Hyena.Log.Exception (e);
 			return false;
 		}
 
@@ -377,7 +377,7 @@ public class ImportCommand : GladeDialog
 		if (ongoing && total > 0)
 			return true;
 		else {
-			System.Console.WriteLine ("Stopping");
+			Hyena.Log.Debug ("Stopping");
 			if (progress_bar != null)
 				progress_bar.Text = Catalog.GetString ("Done Loading");
 			
@@ -582,7 +582,7 @@ public class ImportCommand : GladeDialog
 				if (file.QueryExists (null))
 					break;
 			} catch (System.Exception e){
-				System.Console.WriteLine (e);
+				Hyena.Log.Exception (e);
 				break;
 			}
 
diff --git a/src/Jobs/SyncMetadataJob.cs b/src/Jobs/SyncMetadataJob.cs
index 409a62c..0ecda15 100644
--- a/src/Jobs/SyncMetadataJob.cs
+++ b/src/Jobs/SyncMetadataJob.cs
@@ -10,6 +10,7 @@
 using System;
 using Banshee.Kernel;
 using FSpot.Utils;
+using Hyena;
 
 namespace FSpot.Jobs {
 	public class SyncMetadataJob : Job
@@ -32,13 +33,13 @@ namespace FSpot.Jobs {
 		{
 			//this will add some more reactivity to the system
 			System.Threading.Thread.Sleep (500);
-			Console.WriteLine ("Syncing metadata to file...");
+			Log.Debug ("Syncing metadata to file...");
 			try {
 				Photo photo = FSpot.App.Instance.Database.Photos.Get (Convert.ToUInt32 (JobOptions)) as Photo;
 				WriteMetadataToImage (photo);
 				return true;
 			} catch (System.Exception e) {
-				Console.WriteLine ("Error syncing metadata to file\n{0}", e);
+				Log.ErrorFormat ("Error syncing metadata to file\n{0}", e);
 			}
 			return false;
 		}
diff --git a/src/Loupe.cs b/src/Loupe.cs
index e9231fe..fdd816b 100644
--- a/src/Loupe.cs
+++ b/src/Loupe.cs
@@ -16,6 +16,7 @@ using System;
 using System.Runtime.InteropServices;
 using Mono.Unix;
 using FSpot.Utils;
+using Hyena;
 
 namespace FSpot.Widgets {
 	public class Loupe : Gtk.Window {
@@ -204,7 +205,7 @@ namespace FSpot.Widgets {
 				try {
 					CompositeUtils.InputShapeCombineMask (this, bitmap, 0,0);
 				} catch (EntryPointNotFoundException) {
-					System.Console.WriteLine ("Warning: gtk+ version doesn't support input shapping");
+					Log.Warning ("gtk+ version doesn't support input shapping");
 				}
 			}
 			bitmap.Dispose ();
diff --git a/src/MainWindow.cs b/src/MainWindow.cs
index 7df5dd6..3a95e94 100644
--- a/src/MainWindow.cs
+++ b/src/MainWindow.cs
@@ -1747,7 +1747,7 @@ namespace FSpot
 			System.Array.Sort (tags, new TagRemoveComparer ());
 	
 			foreach (Tag tag in tags) {
-				System.Console.WriteLine ("tag: {0}", tag.Name);
+				Log.Debug ("tag: {0}", tag.Name);
 			}
 	
 			string msg = Catalog.GetString("This operation will merge the selected tags and any sub-tags into a single tag.");
@@ -2228,7 +2228,7 @@ namespace FSpot
 				try { 				
 					db.Photos.Remove (tags);
 				} catch (InvalidTagOperationException e) {
-					System.Console.WriteLine ("this is something or another");
+					Log.Debug ("this is something or another");
 	
 					// A Category is not empty. Can not delete it.
 					string error_msg = Catalog.GetString ("Tag is not empty");
@@ -2789,7 +2789,7 @@ namespace FSpot
 			if (support_xcf)
 				create_xcf = Preferences.Get<bool> (Preferences.EDIT_CREATE_XCF_VERSION);
 	
-			Console.WriteLine ("XCF ? {0}", create_xcf);
+			Log.DebugFormat ("XCF ? {0}", create_xcf);
 	
 			if (response == Gtk.ResponseType.Cancel)
 				return;
diff --git a/src/Makefile.am b/src/Makefile.am
index 38074e8..fac633c 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -372,7 +372,8 @@ WIDGETS_ASSEMBLIES =				\
 	-r:Cms.dll				\
 	-r:Mono.Posix				\
 	-r:FSpot.Core.dll			\
-	-r:FSpot.Utils.dll
+	-r:FSpot.Utils.dll			\
+	$(LINK_HYENA)
 
 GNOME_PLATFORM_ASSEMBLIES =			\
 	$(LINK_GIOSHARP)			\
diff --git a/src/MetadataStore.cs b/src/MetadataStore.cs
index 991b175..d7eaaa3 100644
--- a/src/MetadataStore.cs
+++ b/src/MetadataStore.cs
@@ -3,6 +3,7 @@ using SemWeb.Util;
 using Mono.Unix;
 using FSpot.Xmp;
 using FSpot.Utils;
+using Hyena;
 
 namespace FSpot {
         internal class Description {
@@ -146,7 +147,7 @@ namespace FSpot {
 					object o = System.Enum.Parse (type, obj.Value);
 					result = o.ToString ();
 				} catch (System.Exception e) {
-					System.Console.WriteLine ("Value \"{2}\" not found in {0}{3}{1}", type, e, result, System.Environment.NewLine);
+					Log.WarningFormat ("Value \"{2}\" not found in {0}{3}{1}", type, e, result, System.Environment.NewLine);
 				}
 			}
 			/*
@@ -208,7 +209,7 @@ namespace FSpot {
 					if (stream != null) {
 						descriptions.Import (new RdfXmlReader (stream));
 					} else {
-						System.Console.WriteLine ("Can't find resource");
+						Log.Debug ("Can't find resource");
 					}
 				}
 				
@@ -308,7 +309,7 @@ namespace FSpot {
 		public static void Add (StatementSink sink, Entity subject, string predicate, string type, string [] values)
 		{
 			if (values == null) {
-				System.Console.WriteLine ("{0} has no values; skipping", predicate);
+				Log.DebugFormat ("{0} has no values; skipping", predicate);
 				return;
 			}
 
@@ -340,7 +341,7 @@ namespace FSpot {
 				string predicate = stmt.Predicate.ToString ();
 
 				if (predicate.StartsWith (name))
-					System.Console.WriteLine ("----------- {0}", stmt);
+					Log.DebugFormat ("----------- {0}", stmt);
 
 				return true;
 			}
@@ -360,7 +361,7 @@ namespace FSpot {
 		public void DumpNode (XPathSemWebNavigator navi, int depth)
 		{
 			do { 
-				System.Console.WriteLine ("node [{0}] {1} {2}", depth, navi.Name, navi.Value);
+				Log.DebugFormat ("node [{0}] {1} {2}", depth, navi.Name, navi.Value);
 			} while (navi.MoveToNext ());
 		}
 	       
diff --git a/src/PhotoTagMenu.cs b/src/PhotoTagMenu.cs
index f8e6195..1349422 100644
--- a/src/PhotoTagMenu.cs
+++ b/src/PhotoTagMenu.cs
@@ -29,6 +29,7 @@ using System.Collections;
 using Gtk;
 
 using FSpot;
+using Hyena;
 
 public class PhotoTagMenu : Menu {
 	public delegate void TagSelectedHandler (Tag t);
@@ -81,7 +82,7 @@ public class PhotoTagMenu : Menu {
 			if (t != null)
 				TagSelected (t.Value);
 			else 
-				Console.WriteLine ("Item was not a TagMenuItem");
+				Log.Debug ("Item was not a TagMenuItem");
 		}
 	}
 }
diff --git a/src/PixbufCache.cs b/src/PixbufCache.cs
index 51f57ef..df6b7ad 100644
--- a/src/PixbufCache.cs
+++ b/src/PixbufCache.cs
@@ -174,7 +174,7 @@ namespace FSpot {
 					ProcessRequest (current);
 					QueueLast (current);
 				} catch (System.Exception e) {
-					System.Console.WriteLine (e);
+					Log.Exception (e);
 					current = null;
 				}
 			}
diff --git a/src/PixbufUtils.cs b/src/PixbufUtils.cs
index 63696b4..8651c02 100644
--- a/src/PixbufUtils.cs
+++ b/src/PixbufUtils.cs
@@ -136,7 +136,7 @@ public class PixbufUtils {
 					return Load (fs, orientation);
 				}
 			} catch (Exception) {
-				System.Console.WriteLine ("Error loading photo {0}", path);
+				Log.ErrorFormat ("Error loading photo {0}", path);
 				return null;
 			} 
 		}
diff --git a/src/Platform/Gnome/ThumbnailFactory.cs b/src/Platform/Gnome/ThumbnailFactory.cs
index 1fa40ee..d9bc92f 100644
--- a/src/Platform/Gnome/ThumbnailFactory.cs
+++ b/src/Platform/Gnome/ThumbnailFactory.cs
@@ -99,7 +99,7 @@ namespace FSpot.Platform
 				// If the original file is not on disk, the thumbnail is as valid as it's going to get
 				return true;
 			} catch (System.Exception e) {
-				System.Console.WriteLine (e);
+				Log.Exception (e);
 				return false;
 			}
 		}
diff --git a/src/Preferences.cs b/src/Preferences.cs
index 706ba47..a769000 100644
--- a/src/Preferences.cs
+++ b/src/Preferences.cs
@@ -3,6 +3,7 @@ using System;
 using System.Collections.Generic;
 using Mono.Unix;
 using FSpot.Platform;
+using Hyena;
 
 namespace FSpot
 {
@@ -215,8 +216,7 @@ namespace FSpot
 					cache [key] = value;				
 					Backend.Set (key, value);
 				} catch (Exception e){
-					Console.WriteLine (e);
-					Console.WriteLine ("Unable to set this :"+key);
+					Log.Exception ("Unable to set this :"+key, e);
 				}
 			}
 		}
diff --git a/src/SendEmail.cs b/src/SendEmail.cs
index 2d6c5e5..39f2a5e 100644
--- a/src/SendEmail.cs
+++ b/src/SendEmail.cs
@@ -284,7 +284,7 @@ namespace FSpot {
 						// Mark the path for deletion
 						tmp_paths.Add (request.Current.LocalPath);
 					} catch (Exception e) {
-						Console.WriteLine("Error preparing {0}: {1}", selection[i].Name, e.Message);
+						Hyena.Log.ErrorFormat ("Error preparing {0}: {1}", selection[i].Name, e.Message);
 						HigMessageDialog md = new HigMessageDialog (parent_window, 
 											    DialogFlags.DestroyWithParent,
 											    MessageType.Error,
diff --git a/src/SingleView.cs b/src/SingleView.cs
index edafd18..1e27ea6 100644
--- a/src/SingleView.cs
+++ b/src/SingleView.cs
@@ -188,7 +188,7 @@ namespace FSpot {
 		public void HandleCollectionChanged (IBrowsableCollection collection)
 		{
 			if (collection.Count > 0 && directory_view.Selection.Count == 0) {
-				Console.WriteLine ("Added selection");
+				Log.Debug ("Added selection");
 				directory_view.Selection.Add (0);
 			}
 
diff --git a/src/TagCommands.cs b/src/TagCommands.cs
index 6a297b5..deaf2ad 100644
--- a/src/TagCommands.cs
+++ b/src/TagCommands.cs
@@ -21,6 +21,7 @@ using FSpot;
 using FSpot.Utils;
 using FSpot.UI.Dialog;
 using FSpot.Widgets;
+using Hyena;
 
 public class TagCommands {
 
@@ -166,7 +167,7 @@ public class TagCommands {
 						new_tag = tag_store.CreateTag (parent_category, tag_name_entry.Text, autoicon);
 				} catch (Exception ex) {
 					// FIXME error dialog.
-					Console.WriteLine ("error {0}", ex);
+					Log.Exception (ex);
 				}
 			}
 
diff --git a/src/TagSelectionWidget.cs b/src/TagSelectionWidget.cs
index 0dd5ee5..108e80b 100644
--- a/src/TagSelectionWidget.cs
+++ b/src/TagSelectionWidget.cs
@@ -768,10 +768,10 @@ namespace FSpot {
 	
 			private void OnSelectionChanged ()
 			{
-				Console.WriteLine ("Selection changed:");
+				Log.Debug ("Selection changed:");
 	
 				foreach (Tag t in selection_widget.TagSelection)
-					Console.WriteLine ("\t{0}", t.Name);
+					Log.DebugFormat ("\t{0}", t.Name);
 			}
 	
 			private Test ()
diff --git a/src/TagStore.cs b/src/TagStore.cs
index 7800697..fd9fa44 100644
--- a/src/TagStore.cs
+++ b/src/TagStore.cs
@@ -166,7 +166,7 @@ public class TagStore : DbStore<Tag> {
 			else {
 				tag.Category = Get (category_id) as Category;
 				if (tag.Category == null)
-					Console.WriteLine ("Tag Without category found");
+					Log.Warning ("Tag Without category found");
 			}
 
 		}
diff --git a/src/Term.cs b/src/Term.cs
index c015ee4..d76b12f 100644
--- a/src/Term.cs
+++ b/src/Term.cs
@@ -11,6 +11,7 @@ using System.Text;
 using Mono.Unix;
 using Gtk;
 using Gdk;
+using Hyena;
 
 namespace FSpot {
 	public abstract class Term {
@@ -287,7 +288,7 @@ namespace FSpot {
 				return new OrTerm (parent, after);
 			}
 
-			Console.WriteLine ("Do not have Term for operator {0}", op);
+			Log.DebugFormat ("Do not have Term for operator {0}", op);
 			return null;
 		}
 	}
diff --git a/src/ThumbnailGenerator.cs b/src/ThumbnailGenerator.cs
index ed27d5d..b987dce 100644
--- a/src/ThumbnailGenerator.cs
+++ b/src/ThumbnailGenerator.cs
@@ -71,7 +71,7 @@ namespace FSpot {
 
 				System.Threading.Thread.Sleep (75);
 			} catch (System.Exception e) {
-				System.Console.WriteLine (e.ToString ());
+				Log.Exception (e);
 			}
 		}
 
diff --git a/src/UI.Dialog/AdjustTimeDialog.cs b/src/UI.Dialog/AdjustTimeDialog.cs
index bf34919..5bdab38 100644
--- a/src/UI.Dialog/AdjustTimeDialog.cs
+++ b/src/UI.Dialog/AdjustTimeDialog.cs
@@ -16,6 +16,7 @@ using Gtk;
 using System.Collections;
 using Mono.Unix;
 using FSpot.Widgets;
+using Hyena;
 
 namespace FSpot.UI.Dialog {
 	public class AdjustTimeDialog : BuilderDialog 
@@ -93,7 +94,7 @@ namespace FSpot.UI.Dialog {
 		TimeSpan Offset
 		{
 			get {
-				System.Console.WriteLine ("{0} - {1} = {2}", date_edit.Time, Item.Current.Time, date_edit.Time - Item.Current.Time);
+				Log.DebugFormat ("{0} - {1} = {2}", date_edit.Time, Item.Current.Time, date_edit.Time - Item.Current.Time);
 				return EditTime - Item.Current.Time;
 			}
 			set {
@@ -104,7 +105,7 @@ namespace FSpot.UI.Dialog {
 		void HandleTimeChanged (object sender, EventArgs args)
 		{
 			TimeSpan span = Offset;
-			System.Console.WriteLine ("time changed {0}", span);
+			Log.DebugFormat ("time changed {0}", span);
 			if (! offset_entry.HasFocus)
 				offset_entry.Text = span.ToString ();
 
@@ -152,7 +153,7 @@ namespace FSpot.UI.Dialog {
 				DateTime time = p.Time;
 				p.Time = time + span;
 				photos [i] = p;
-				System.Console.WriteLine ("XXXXX old: {0} new: {1} span: {2}", time, p.Time, span);
+				Log.DebugFormat ("XXXXX old: {0} new: {1} span: {2}", time, p.Time, span);
 			}
 			
 			db.Photos.Commit (photos);
@@ -205,14 +206,14 @@ namespace FSpot.UI.Dialog {
 
 		void HandleOffsetChanged (object sender, EventArgs args)
 		{
-			System.Console.WriteLine ("offset = {0}", Offset);
+			Log.DebugFormat ("offset = {0}", Offset);
 			TimeSpan current = Offset;
 			try {
 				TimeSpan span = TimeSpan.Parse (offset_entry.Text);
 				if (span != current)
 					Offset = span;
 			} catch (System.Exception) {
-				System.Console.WriteLine ("unparsable span {0}", offset_entry.Text);
+				Log.WarningFormat ("unparsable span {0}", offset_entry.Text);
 			}
 		}
 
diff --git a/src/UI.Dialog/EditExceptionDialog.cs b/src/UI.Dialog/EditExceptionDialog.cs
index 84c0227..6c79e01 100644
--- a/src/UI.Dialog/EditExceptionDialog.cs
+++ b/src/UI.Dialog/EditExceptionDialog.cs
@@ -10,6 +10,7 @@
 using System;
 using Mono.Unix;
 using Gtk;
+using Hyena;
 
 namespace FSpot.UI.Dialog
 {
@@ -39,7 +40,7 @@ namespace FSpot.UI.Dialog
 											    GenerateMessage (errors))
 		{
 			foreach (Exception e in errors)
-				Console.WriteLine (e);
+				Log.Exception (e);
 		}
 
 		public EditExceptionDialog (Gtk.Window parent, Exception e, IBrowsableItem item) : this (parent, new EditException (item, e))
diff --git a/src/UI.Dialog/RepairDbDialog.cs b/src/UI.Dialog/RepairDbDialog.cs
index 80c14fe..c4ed9b7 100644
--- a/src/UI.Dialog/RepairDbDialog.cs
+++ b/src/UI.Dialog/RepairDbDialog.cs
@@ -10,6 +10,7 @@
 using System;
 using Gtk;
 using Mono.Unix;
+using Hyena;
 
 namespace FSpot.UI.Dialog
 {
@@ -21,7 +22,7 @@ namespace FSpot.UI.Dialog
 				String.Format (Catalog.GetString ("F-Spot encountered an error while loading the photo database. " +
 		                		"The old database has be moved to {0} and a new database has been created."), backup_path))
 		{
-			Console.WriteLine (e);
+			Log.Exception (e);
 			Run ();
 			Destroy ();
 		}
diff --git a/src/UI.Dialog/SelectionRatioDialog.cs b/src/UI.Dialog/SelectionRatioDialog.cs
index 2d276f5..21a72c0 100644
--- a/src/UI.Dialog/SelectionRatioDialog.cs
+++ b/src/UI.Dialog/SelectionRatioDialog.cs
@@ -15,6 +15,7 @@ using System.Collections.Generic;
 using Gtk;
 
 using Mono.Unix;
+using Hyena;
 
 namespace FSpot.UI.Dialog {
 	public class SelectionRatioDialog : GladeDialog
@@ -139,7 +140,7 @@ namespace FSpot.UI.Dialog {
 			try {
 				ratio = ParseRatio (args.NewText);
 			} catch (FormatException fe) {
-				Console.WriteLine (fe);
+				Log.Exception (fe);
 				return;
 			}
 			if (ratio < 1.0)
diff --git a/src/UriCollection.cs b/src/UriCollection.cs
index 2666eb9..73cf483 100644
--- a/src/UriCollection.cs
+++ b/src/UriCollection.cs
@@ -80,7 +80,7 @@ namespace FSpot {
 				XmlNodeList list = doc.SelectNodes ("/rss/channel/item/media:content", ns);
 				foreach (XmlNode item in list) {
 					SafeUri image_uri = new SafeUri (item.Attributes ["url"].Value);
-					System.Console.WriteLine ("flickr uri = {0}", image_uri.ToString ());
+					Hyena.Log.DebugFormat ("flickr uri = {0}", image_uri.ToString ());
 					items.Add (new FileBrowsableItem (image_uri));
 				}
 
@@ -88,7 +88,7 @@ namespace FSpot {
 					list = doc.SelectNodes ("/rss/channel/item/pheed:imgsrc", ns);
 					foreach (XmlNode item in list) {
 						SafeUri image_uri = new SafeUri (item.InnerText.Trim ());
-						System.Console.WriteLine ("pheed uri = {0}", uri);
+						Hyena.Log.DebugFormat ("pheed uri = {0}", uri);
 						items.Add (new FileBrowsableItem (image_uri));
 					}
 				}
@@ -97,7 +97,7 @@ namespace FSpot {
 					list = doc.SelectNodes ("/rss/channel/item/apple:image", ns);
 					foreach (XmlNode item in list) {
 						SafeUri image_uri = new SafeUri (item.InnerText.Trim ());
-						System.Console.WriteLine ("apple uri = {0}", uri);
+						Hyena.Log.DebugFormat ("apple uri = {0}", uri);
 						items.Add (new FileBrowsableItem (image_uri));
 					}
 				}
@@ -144,7 +144,7 @@ namespace FSpot {
 			List<IBrowsableItem> items = new List<IBrowsableItem> ();
 			foreach (var f in files) {
 				if (FSpot.ImageFile.HasLoader (f.FullName)) {
-					Console.WriteLine (f.FullName);
+					Hyena.Log.Debug (f.FullName);
 					items.Add (new FileBrowsableItem (new SafeUri (f.FullName)));
 				}
 			}
diff --git a/src/Util.cs b/src/Util.cs
index 99e85a1..38425b7 100644
--- a/src/Util.cs
+++ b/src/Util.cs
@@ -47,7 +47,7 @@ namespace FSpot.Utils
 	
 					if (i.EndsWith ("\r")) {
 						s = i.Substring (0, i.Length - 1);
-						Console.WriteLine ("uri = {0}", s);
+						Log.DebugFormat ("uri = {0}", s);
 					}
 					
 					try {
@@ -58,7 +58,7 @@ namespace FSpot.Utils
 							try {
 								s = "file:///" + s.Substring(6);
 								uri = new SafeUri (s);
-								Console.WriteLine ("Converted uri from file:/ to >>{0}<<", s);
+								Log.DebugFormat ("Converted uri from file:/ to >>{0}<<", s);
 							} catch {
 								continue;
 							}
diff --git a/src/Widgets/CompositeUtils.cs b/src/Widgets/CompositeUtils.cs
index ed471df..e9fed84 100644
--- a/src/Widgets/CompositeUtils.cs
+++ b/src/Widgets/CompositeUtils.cs
@@ -3,6 +3,7 @@ using System.Runtime.InteropServices;
 using Gdk;
 using Gtk;
 using FSpot.Utils;
+using Hyena;
 
 namespace FSpot.Widgets {
 	public class CompositeUtils {
@@ -41,7 +42,7 @@ namespace FSpot.Widgets {
 				Gdk.Visual visual = Gdk.Visual.GetBestWithDepth (32);
 				if (visual != null) {
 					Gdk.Colormap cmap = new Gdk.Colormap (visual, false);
-					System.Console.WriteLine ("fallback");
+					Log.Debug ("fallback");
 					return cmap;
 				}
 			}
@@ -102,7 +103,7 @@ namespace FSpot.Widgets {
 			try {
 				composited = gdk_screen_is_composited (screen.Handle);
 			} catch (EntryPointNotFoundException) {
-				System.Console.WriteLine ("query composite manager locally");
+				Log.Debug ("query composite manager locally");
 				Atom atom = Atom.Intern (String.Format ("_NET_WM_CM_S{0}", screen.Number), false);
 				composited = Gdk.Selection.OwnerGetForDisplay (screen.Display, atom) != null;
 			}
@@ -131,7 +132,7 @@ namespace FSpot.Widgets {
 		public static void RedirectDrawable (Drawable d)
 		{
 			uint xid = GdkUtils.GetXid (d);
-			Console.WriteLine ("xid = {0} d.handle = {1}, d.Display.Handle = {2}", xid, d.Handle, d.Display.Handle);
+			Log.DebugFormat ("xid = {0} d.handle = {1}, d.Display.Handle = {2}", xid, d.Handle, d.Display.Handle);
 			XCompositeRedirectWindow (GdkUtils.GetXDisplay (d.Display), GdkUtils.GetXid (d), CompositeRedirect.Manual);
 		}
 
diff --git a/src/Widgets/ImageDisplay.cs b/src/Widgets/ImageDisplay.cs
index 27fc5fa..f6ca7c4 100644
--- a/src/Widgets/ImageDisplay.cs
+++ b/src/Widgets/ImageDisplay.cs
@@ -16,6 +16,7 @@ using System;
 using Cairo;
 using FSpot;
 using FSpot.Utils;
+using Hyena;
 
 namespace FSpot.Widgets {
 	[Binding(Gdk.Key.Up, "Up")]
@@ -78,35 +79,35 @@ namespace FSpot.Widgets {
 	
 		public bool Up ()
 		{
-			Console.WriteLine ("Up");
+			Log.Debug ("Up");
 			Transition = new Dissolve (current, next);
 			return true;
 		}
 
 		public bool Down ()
 		{
-			Console.WriteLine ("down");
+			Log.Debug ("down");
 			Transition = new Dissolve (next, current);
 			return true;
 		}
 
 		public bool Pan ()
 		{
-			Console.WriteLine ("space");
+			Log.Debug ("space");
 			Transition = new Wipe (current, next);
 			return true;
 		}
 		
 		public bool RevealImage ()
 		{
-			Console.WriteLine ("r");
+			Log.Debug ("r");
 			Transition = new Reveal (current, next);
 			return true;
 		}
 
 		public bool PushImage ()
 		{
-			Console.WriteLine ("p");
+			Log.Debug ("p");
 			Transition = new Push (current, next);
 			return true;
 		}
@@ -160,7 +161,7 @@ namespace FSpot.Widgets {
 					}
 				}
 				if (done) {
-					System.Console.WriteLine ("frames = {0}", Transition.Frames);
+					Log.DebugFormat ("frames = {0}", Transition.Frames);
 					Transition = null;
 				}
 			} else {
diff --git a/src/Widgets/ImageInfo.cs b/src/Widgets/ImageInfo.cs
index 77e0cbd..6ca6ccb 100644
--- a/src/Widgets/ImageInfo.cs
+++ b/src/Widgets/ImageInfo.cs
@@ -59,12 +59,12 @@ namespace FSpot.Widgets {
 						    allocation.Height);
 			Context ctx = new Context (Surface);
 			#else
-			Console.WriteLine ("source status = {0}", info.Surface.Status);
+			Log.DebugFormat ("source status = {0}", info.Surface.Status);
 			Surface = info.Surface.CreateSimilar (Content.Color,
 							      allocation.Width,
 							      allocation.Height);
 			
-			System.Console.WriteLine ("status = {1} pointer = {0}", Surface.Handle.ToString (), Surface.Status);
+			Log.DebugFormat ("status = {1} pointer = {0}", Surface.Handle.ToString (), Surface.Status);
 			Context ctx = new Context (Surface);
 			#endif
 			Bounds = allocation;
diff --git a/src/Widgets/Layout.cs b/src/Widgets/Layout.cs
index 051ff76..adf80b3 100644
--- a/src/Widgets/Layout.cs
+++ b/src/Widgets/Layout.cs
@@ -11,6 +11,7 @@
 
 using System;
 using System.Collections.Generic;
+using Hyena;
 
 namespace FSpot.Widgets
 {
@@ -232,7 +233,7 @@ namespace FSpot.Widgets
 
 		protected override void OnSetScrollAdjustments (Gtk.Adjustment hadjustment, Gtk.Adjustment vadjustment)
 		{
-Console.WriteLine ("\n\nLayout.OnSetScrollAdjustments");
+			Log.Debug ("\n\nLayout.OnSetScrollAdjustments");
 			if (hadjustment == null)
 				hadjustment = new Gtk.Adjustment (0, 0, 0, 0, 0, 0);
 			if (vadjustment == null)
diff --git a/src/XScreenSaverSlide.cs b/src/XScreenSaverSlide.cs
index 815c055..0e26169 100644
--- a/src/XScreenSaverSlide.cs
+++ b/src/XScreenSaverSlide.cs
@@ -5,6 +5,7 @@ using GLib;
 using System.Runtime.InteropServices;
 using FSpot;
 using FSpot.Utils;
+using Hyena;
 
 namespace FSpot {
 	public class XScreenSaverSlide : Gtk.Window {
@@ -47,10 +48,10 @@ namespace FSpot {
 					Resize (geom.Width, geom.Height);
 					return;
 				} catch (System.Exception e) {
-					System.Console.WriteLine (e);
+					Hyena.Log.Exception (e);
 				}
 			} else {
-				System.Console.WriteLine ("{0} not set, falling back to window", ScreenSaverEnviroment);
+				Hyena.Log.DebugFormat ("{0} not set, falling back to window", ScreenSaverEnviroment);
 			}
 
 			SetSizeRequest (640, 480);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]