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/

[user@host ~]$ cd ~/.purple/logs/

See whether the protocols you want to be logged have a directory named for them:

[user@host logs]$ ls

[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

[user@host logs]$ rm -rf msn

Change directory permissions to stop new protocols from getting logged:

[user@host logs]$ chmod500 .

[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 ~]$ chmod600 ~/.purple/logs/

[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

[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]$ rm -rf ignorantmoron@live.com

[user@host msn]$ chmod500 .

[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: