HOWTO: Log Pidgin conversations selectively
Pidgin is a multi-protocol instant-messaging client which I use for all my MSN/Google Talk/IRC communication. Apart from offering adept support for all of these protocols (and plenty others as well), Pidgin also provides decent logging support. However, I’m not at all interested in having my daily MSN conversations recorded. On the other hand, I prefer having my previous IRC chats with me for reference. Right now, Pidgin does not support any options in the Preferences which would allow me to selectively turn on logging based on the protocols I’m using. If I turn it on for chat windows, it also starts producing logs for every MSN chat I participate in.
Most of the people wouldn’t/don’t see any issue with this behavior. For those who do want to keep a history of their conversations only for particular protocols, here’s a quick workaround for doing it:
- Check the appropriate options under the “Logging” tab in Preferences window.
- Have a few chats the likes of which you’d prefer being logged.
- Go to the directory containing Pidgin logs (default is
~/.purple/logs
):[user@host ~]$ cd ~/.purple/logs/
- See whether the protocols you want to be logged have a directory named for them:
[user@host logs]$ ls
irc msn
- Remove the protocols you do not want to have logs for (in my case, MSN):
[user@host logs]$ rm -rf msn
- Change directory permissions to stop new protocols from getting logged:
[user@host logs]$ chmod 500 .
And you’re done. Now, whenever you start a conversation in a protocol which does not have a respective directory in ~/.purple/logs
, you’ll see a “Logging failed” error message in the conversation window. For other (allowed) protocols, logging will work as expected. To turn off selective logging, reset directory permissions with:
[user@host ~]$ chmod 600 ~/.purple/logs/ |
It is also possible to apply the same workaround on contacts. For example … :
-
[user@host ~]$ cd ~/.purple/logs/msn/ [user@host msn]$ ls
bestbuddy@live.com ignorantmoron@live.com
-
[user@host msn]$ rm -rf ignorantmoron@live.com
-
[user@host msn]$ chmod 500 .
… will disable logging for all MSN contacts including ignorantmoron@live.com, but will record everything communicated with bestbuddy@live.com. Like the previous example, you just have to reset directory permissions to re-enable nondiscriminatory logging:
[user@host ~]$ chmod 600 ~/.purple/logs/msn/ |
Um…… it would be good to test solutions before releasing them. The “fix” of permissions to re-enable logging is obviously wrong. The chmod should be back to 700, not 600. Unless permissions are somehow granted another way (facls or something) setting 600 on a directory effectively keeps the user-owner from creating anything in that directory because, lacking x/execute, they cannot get into the directory to create anything. Please test in the future.
Comment by DJ — April 16, 2013 @ 10:09 am