GNOME Bugzilla – Bug 567858
Logging should be optional
Last modified: 2011-08-29 10:12:37 UTC
There should be an option to turn off logging entirely. Leaving it turned on by default is fine, IMO. I imagine this isn't a particularly difficult or controversial request, so I'll spare a pedantic list of reasons why someone would (and I do) need logging turned off :)
please give your list of reasons :)
Ha. Well the main reason facing me at the moment is wanting to use empathy on my computers at work as I use it on computers at home. For policy reasons I'm comfortable saving things like account information on the computers, and I'm even comfortable sending conversations over the network even if they're not strongly encrypted, but having an actual record of conversations saved on work computers becomes problematic. I work in a government installation at the moment, so I'm subject to that style of nonsensical bureaucratic regulation, but these days that stuff is coming even to fully private organizations through data discovery regulations and other internal policy decisions made as the orgs try not to get sued. With non-optional logging, it might be trouble to run empathy in many non-personal settings. In the past I've had trouble with logging from many technical directions, mainly involving disk access. For example, one of the other jabber clients implemented mandatory logging, which caused my laptop harddrive to spin up and my system to churn for a full second every time a message was received... even though I knew I'd never use the logs. Others complained about this behavior in their bugtracker as well, so I know I'm not the only person who would give up logging for the sake of performance. And in the end, as I say, I'll never use the log here. I prefer my logging to take place server-side so I have a complete record instead of the record of only what individual clients happen to catch when they're logged in. Even for chat protocols without server-side logging, I'd prefer to leave a single instance connected and logging all the time, disabling logging everywhere else, for the sake of having one complete log. So that was long-winded, which is why I didn't include it before. In the end is it that much trouble to not log? My uninformed assumption is that there's a "log this message" instruction to trivially bypass if the preference was there.
Right, that should be an option. I was not expecting such a big reply, just wanted to know the uses cases because nobody complained about that yet :) Thanks.
*** Bug 582384 has been marked as a duplicate of this bug. ***
Created attachment 135284 [details] [review] add gconf key to enable/disable chat logs
FWIW, I couldn't test the patch since master doesn't build at the moment.
(also, ideally, this should work from libempathy-gtk too, for other apps using this library -- but I couldn't find a good place to integrate this)
I've not tested it, but the patch looks alright. Regarding working from libempathy-gtk too, I'm not quite sure what you mean? In the log window or something?
(In reply to comment #8) > Regarding working from libempathy-gtk too, I'm not quite sure what you mean? In > the log window or something? Imagine an app that uses the chat windows from libempathy-gtk. Since the code calling empathy_log_manager_set_enabled() is in the empathy app, and not the library, the setting will be ignored by this app -- it will only be used by empathy itself.
I think we didn't polished such question yet. To be honest libempathy-gtk should not contain chat widgets yet. IMO ideally if we want to expose widgets, they should not have settings policy on them. Probably libempathy-gtk should not depend on gconf. Widgets should have properties for such options but it's up to the library user to set those properties using gconf keys, etc.
About the patch, I don't think it should prevent reading logs. Only adding more messages should be disabled. There is no point in pretending there is no logs for a contact if there are in fact logged messages.
This patch should also avoid showing the last N messages received/sent when opening a new conversation window.
*** Bug 587217 has been marked as a duplicate of this bug. ***
*** Bug 591675 has been marked as a duplicate of this bug. ***
I seriously do not think that adding a gConf key to turn off logging is enough. When I'm using instant messaging, I want to be able to reassure my friends that I am not keeping records of what they say. I don't think that people would react very well if I told them I kept a dictaphone in my pocket and left it on constantly so that my conversations with everyone were recorded. For some users, me included, the same should apply to instant messaging. We shouldn't be forced to look under the hood to find options that are this important. It would also be good to be able to turn logging on and off for individual conversations too, from the conversation window itself.
^^+1 This really should be given higher priority.
I agree with Chris Carlin. I don't work in government, but in some clinical counseling setting, where privacy is important. At least an option to clear the conversation history, or let us know where it is stored and how to delete it would be great at the mean time. I think it deserves a higher priority, not just a "nice to have" enhancement.
(In reply to comment #17) > At least an option to clear the conversation history, or let us know where it > is stored and how to delete it would be great at the mean time. > It's stored in .local/share/Empathy/logs/ If you don't want to store logs at all, you could $ cd ~/.local/share/Empathy $ rm -rf logs $ ln -s /dev/null logs ;)
(In reply to comment #18) > If you don't want to store logs at all, you could > > $ cd ~/.local/share/Empathy > $ rm -rf logs > $ ln -s /dev/null logs > > ;) PS Honestly I haven't yet tried if this works.
BTW, 'cause chat logging "stores" files on disk, should we also disable logging in order to honour /desktop/gnome/lockdown/disable_save_to_disk GConf key?
Created attachment 147445 [details] [review] Patch providing option to disable logging via GConf I'm not sure how clean/useful this is, but this is the patch I've been using to create Ubuntu packages of Empathy 2.28.1.1. It's based on the other patch provided in this bug report, but does not prevent accessing existing logs. I've just started trying to contribute to OSS when I can, so I may not have things exactly right, but I thought I'd attach this here in case it's usable for anyone.
Created attachment 147633 [details] [review] Patch adding option to disable logging via GConf This is one of two patches to add the option to disable logging in Empathy. It applies to current code in git. These implement the empathy/conversation/enable_logging GConf key, and also add a checkbutton in the preferences dialog. They will prevent logging conversations if logging is disabled, but still allow reviewing previously-logged conversations. These should really be a single patch, but for some reason I created them over 2 commits and haven't figured out how to combine them into one patch file. Still learning Git as I go. These changes are also implemented in my Git clone at http://github.com/smcgrath/empathy-smcgrath/tree/optional-logging. I haven't had much of a change to test these against HEAD, but the patches apply and work as advertised on Empathy 2.28.1.1.
Created attachment 147634 [details] [review] Patch adding preferences checkbox to enable/disable logging
Review of attachment 147633 [details] [review]: Hi Steve. Thanks a lot for your patch. Here is my review. ::: data/empathy.schemas.in @@ +458,3 @@ + <short>Keep logs of conversations</short> + <long> + Whether or not Empathy should keep log of conversations with your contacts. This affect chatrooms as well. ::: libempathy/empathy-log-manager.c @@ +462,3 @@ +void +empathy_log_manager_set_enabled (EmpathyLogManager *log_manager, + gboolean enabled) new style would be: empathy_log_manager_set_enabled (EmpathyLogManager *log_manager, gboolean enabled) ::: src/empathy.c @@ +340,3 @@ +{ + EmpathyLogManager *log_manager = user_data; + gboolean enable_logging; No need to align this arg. @@ +342,3 @@ + gboolean enable_logging; + + if (empathy_conf_get_bool (conf, key, &enable_logging)) { Problem with this function is that it will return FALSE if the schema are not installed (thanks gconf_client_get_bool...). That means that people running master from the source will have logs disabled. :\ We should check if the schema of the key is present and if it's not, enable logging. @@ +1029,3 @@ + enable_logging_notify_cb (empathy_conf_get (), EMPATHY_PREFS_CHAT_ENABLE_LOGGING, log_manager); + empathy_conf_notify_add (empathy_conf_get (), EMPATHY_PREFS_CHAT_ENABLE_LOGGING, enable_logging_notify_cb, log_manager); Those 2 lignes are too long. Please wrap them.
Review of attachment 147634 [details] [review]: This patch looks good.
*** Bug 608207 has been marked as a duplicate of this bug. ***
Logging is about to be done by a separated component (bug #518414). Let's reconsider this bug once it's done.
I would really like to be able to change my logging status on per-contact (or maybe per-group?) basis. Reason: while at work, I only want/need to log conversations with co-workers. I'd rather not save what I say to my friends while at work. It would be nice if there were a sub-menu under "Conversation" to change logging status. There would be three radio buttons: X Use global logging setting (currently (en|dis)abled) _ [Do not] log this conversation _ (Never|Always) log for this contact Obviously each of the three messages changes slightly depending on the state of the global logging preference. It would also be nice (assuming you implement per-contact/per-convo logging settings) to indicate on the conversation window what the current logging status is for this particular conversation. Example strings: "Logging is (en|dis)abled globally." "This conversation will [not] be logged." "This contact is [never] logged."
@Guillaume Desmottes It's seem that #518414 is done now. What about this one? I think it's realy important to have this feature. Logging all conversations by default is really most worse, you can do, when thinking about privacy. Especialy the privacy of the conversation partners is trampled under foot! So I think you should realy work on this feature. And is is not "a nice to have" in my opinion, it's "a must have"! And because of this, im realy not happy with your desition to use Empathy as default IM client in gnome!
I agree that's an useful thing to have, we'll do that in 2.31.x Also, it's not that much of a privacy issue. Linux is a multi-user system and each user is supposed to have his own account...
@ Guillaume Desmottes: I agree that an own user account helps to keep the logs private. But this does help nothing against a "bad super user", or physical access to the machnine. That's why i think, data that is not stored, can not be abused. I don't want discuss this here, that much. I'm happy that you will implement that feature soon, and hope that it will work fine.
The reason it's a privacy issue is because it leaves a record of private conversations regardless of the wishes of the person being recorded. Saying that the record is "supposed to be" stored in a person's own account does little to make up for the simple notion that, again, this creates a record of private data. And that's not even getting into the myriad reasons why can't assume users have their own locked down accounts. In the end the multi-user nature of linux is a feature available for use, but nothing more.
*** Bug 614690 has been marked as a duplicate of this bug. ***
How has this taken a year to become added as a feature? I just tried to symlink my logs directory to /dev/null and then chmod -w the logs directory to prevent logging but this results in a crash when an IM is sent/received. So not only is logging enabled by default with no ability to change it, it's apparently considered a requirement for proper Empathy execution. This means I can't use Empathy at work at all for security purposes. Ubuntu 10.04 / Empathy 2.30.1
For anyone in journalism, legal, or medical fields, the inability to turn off logging in Empathy makes it not only unusable but quite possibly illegal. I am a doctor. I have confidential discussions with patients and patients' attorneys. Sometimes, such discussions will be by necessity confidential and off the record. The fact that this bug has been brushed off for over a year is, to my mind, unfathomable. While Ubuntu's historical user base may have once been computer geeks and x-gens chatting with their peeps, increasingly these days, Ubuntu is the core operating system for corporations such as mine. Core Ubuntu applications need to grow up as well and recognize that fact.
Created attachment 168045 [details] [review] http://git.Collabora.co.uk/?p=user/cassidy/empathy;a=shortlog;h=refs/heads/disable-logging-567858 libempathy/empathy-gsettings.h | 3 +++ src/empathy-preferences.c | 11 +++++++++++ src/empathy-preferences.ui | 14 ++++++++++++++ 3 files changed, 28 insertions(+), 0 deletions(-)
This problem has been fixed in the development version. The fix will be available in the next major software release. Thank you for your bug report.