Author Topic: Log Filtering  (Read 5590 times)

novacadian

  • Hydlaa Notable
  • *
  • Posts: 962
    • View Profile
Log Filtering
« on: August 10, 2010, 07:14:04 pm »
Hopefully this is not already something that is installed and has simply been overlooked by me....

So my guild and Alliance tabs are no longer showing and the chat bubbles have been removed yet all that goes on in those channels is still flooding my logs. This would not be a problem for me if it was IC yet it is not.

It would be wonderful if one could choose the tabs that they wish logged to the log file. Perhaps it could coincide with the Enable/Disable choice in the Chat Bubble Options; by just adding another one called Save to Log.

Without this feature my logs are becoming pretty useless and my participation in Guilds shall have to be reconsidered.

- Nova

Akkaido Kivikar

  • Hydlaa Notable
  • *
  • Posts: 726
    • View Profile
Re: Log Filtering
« Reply #1 on: August 11, 2010, 04:53:04 am »
Dare I ask what the point is in being a member of a Guild but not participating in Guild channel conversations? You might as well be an unofficial (not in the guild via mechanics) member.

Sen

  • Hydlaa Notable
  • *
  • Posts: 746
    • View Profile
Re: Log Filtering
« Reply #2 on: August 11, 2010, 08:41:50 am »
You might not always want to have that chat in the logs.
* Sen remembers a guildie simply muting the guild channel when there was a lot of nonsense and she in a rp  ;D
.....also a saddle that won't pinch the tail. One day!

Bonifarzia

  • Hydlaa Notable
  • *
  • Posts: 718
    • View Profile
Re: Log Filtering
« Reply #3 on: August 11, 2010, 10:32:02 am »
This would not be a problem for me if it was IC yet it is not.

I do not really get the idea of your argument. Would you consider logfiles to be "in character" at all?

Or is it a technical issue with the size of the logs and the difficulty to find things you would like to look up? In that case, just split, filter and/or compress the logs. This should be straight forward with plain text files.

novacadian

  • Hydlaa Notable
  • *
  • Posts: 962
    • View Profile
Re: Log Filtering
« Reply #4 on: August 11, 2010, 11:33:16 am »
This would not be a problem for me if it was IC yet it is not.

I do not really get the idea of your argument. Would you consider logfiles to be "in character" at all?

Or is it a technical issue with the size of the logs and the difficulty to find things you would like to look up? In that case, just split, filter and/or compress the logs. This should be straight forward with plain text files.

Its not meant as an argument, Boni. It is mostly with difficulty finding things and when they are found to then extract them from the flle. It is not how I use the logs. When I have an interesting session with a character I make a sub-directoy and cut and past that encounter to its own file and place it in that character's sub-directory. The spam in my logs makes this a very time consuming job to cut out the actual encounter.

Dare I ask what the point is in being a member of a Guild but not participating in Guild channel conversations? You might as well be an unofficial (not in the guild via mechanics) member.

Did medieval guilds have guild channels that they could talk across the continent to one another? Modern ones do. Its called a cell phone. The present situation would be ok to me if the chatter was at least IC. It it not. Or if the ooc chatter used brackets. It is not. My logs are showing more non square bracket marked chatter than RP. I cannot even run a grep excluding all lines of the log which have a square bracket. My logs could easily be purged of the ooc stuff that way; yet alas square brackets are not used in the Guild or Alliance channels which are being logged.

Presently my character's participation in her guild is to further the word and teachings of Talad. For that reason she had turned down invites to DoX and the Rangers. She is presently trying to organize a ceremony for Talad at the Gug Temple followed by a wine and cheese party to be followed by a full banquet at the Stonehead with a free flea market of donations of previously enjoyed items. Tonight she took out a less developed guild member on a hunt to tank for them on Eagle Gobbles which they would have been all day with on their own. They leveled up nicely on the hunt. Things like that is what being a member of a guild means to me.
 
If you consider being a good guild member as following ooc chatter on the guild channel then we have different opinions of what a guild should be used for. That is just my personal opinion and meant as not disrespect to yours.

- Nova

Akkaido Kivikar

  • Hydlaa Notable
  • *
  • Posts: 726
    • View Profile
Re: Log Filtering
« Reply #5 on: August 11, 2010, 11:39:55 am »
Can't you filter out any lines with "Guild" and "Alliance" in it. Though occasionally you'd get IC lines ripped out by such a filter, but it's a start.

The channels are there for OOC co-ordination mostly.... believe it or not most guilds cannot function completely and organize events without OOC planning and on-the-moment OOC decision making... ie: at such and such an event (a Taladian religious ceremony, for example) such and such does not work as planned due to an OOC factor (someone crashes perhaps, and they are a 'torch carrier' or something important, and they cannot relog, perhaps). Guild channel is used to come up with a quick workaround to this OOC problem.

Perhaps, you could ask the other members of the Guild to cut OOC chatter to a minimum. If it's that bad of a problem.

Phage

  • Hydlaa Resident
  • *
  • Posts: 63
    • View Profile
Re: Log Filtering
« Reply #6 on: August 11, 2010, 01:20:25 pm »
Here is a thread about a short python-script "logcleaner", which provides with easy and simple means to clean logs from defined junk. As it is now guildchat, tells and groupchat is removed from logs processed (also the timecode and OOC-stuff defined by "[", but its really easy to modify everything to your need].
Over there, lurking from safe distance.

Aiwendil

  • Hydlaa Citizen
  • *
  • Posts: 463
    • View Profile
Re: Log Filtering
« Reply #7 on: August 11, 2010, 03:15:06 pm »
 
Code: [Select]
grep -v "\[Guild\]\|\[NPC\]\|\[Tell\]\|\[Group\]" <charname>_chat.txt

novacadian

  • Hydlaa Notable
  • *
  • Posts: 962
    • View Profile
Re: Log Filtering
« Reply #8 on: August 11, 2010, 06:07:57 pm »
Can't you filter out any lines with "Guild" and "Alliance" in it. Though occasionally you'd get IC lines ripped out by such a filter, but it's a start.

Is that not what the wish is asking of the game mechanics?



The channels are there for OOC co-ordination mostly.... believe it or not most guilds cannot function completely and organize events without OOC planning and on-the-moment OOC decision making... ie: at such and such an event (a Taladian religious ceremony, for example) such and such does not work as planned due to an OOC factor (someone crashes perhaps, and they are a 'torch carrier' or something important, and they cannot relog, perhaps). Guild channel is used to come up with a quick workaround to this OOC problem.

During such times the tab could be turned back on through game mechanics; yet it would still not be wanted in the logs; so having both separately configurable would allow that.

Perhaps, you could ask the other members of the Guild to cut OOC chatter to a minimum. If it's that bad of a problem.

It has been requested and turned down. After making the request it became clear to me that decision was a valid one for two reasons.

1) Without that release valve we would probably see a lot more ooc in tells and main.

2) That aspect of player to player communication is important to many and should not be taken away from their enjoyment. Perhaps without that player to player communication many would find it hard to develop IC bonds between characters; bonding being an important aspect to guilds.

Here is a thread about a short python-script "logcleaner", which provides with easy and simple means to clean logs from defined junk. As it is now guildchat, tells and groupchat is removed from logs processed (also the timecode and OOC-stuff defined by "[", but its really easy to modify everything to your need].

Thanks, but is that not what the wish is asking of the game mechanics? If someone would go to such lengths as to code a stript to do it, does that not justify the wish? What about players that support the wish yet have no technical abilities?

Code: [Select]
grep -v "\[Guild\]\|\[NPC\]\|\[Tell\]\|\[Group\]" <charname>_chat.txt

The -v options is known to me. That would not allow the option of turning the logging on and off but simply clean out all incidences of Guild and Alliance entries. A guild war, for example, may want to be logged for IC reasons.

The strong reaction to my request makes me wonder if it is a technical issue or a political one.

- Nova

[Edit - Just out of interest this is what my logs look like. The last one dated 081110 is since the guild was joined. IT should be clear to those familiar with the ls output the relation of ooc to ic entries that is going on. My estimate is 3:1.

-rw-rw-r--. 1 booner booner  187276 Jun 29 15:57 Venorel_Weruno_chat_062910.txt
-rw-rw-r--. 1 booner booner  270092 Jul  3 07:55 Venorel_Weruno_chat_070310.txt
-rw-rw-r--. 1 booner booner  310981 Jul  5 16:26 Venorel_Weruno_chat_070510.txt
-rw-rw-r--. 1 booner booner  302442 Jul  9 14:23 Venorel_Weruno_chat_070910.txt
-rw-rw-r--. 1 booner booner       0 Jul 13 11:52 Venorel_Weruno_chat_071310.txt
-rw-rw-r--. 1 booner booner  702881 Jul 18 01:11 Venorel_Weruno_chat_071810.txt
-rw-rw-r--. 1 booner booner  363914 Jul 23 05:19 Venorel_Weruno_chat_072310.txt
-rw-rw-r--. 1 booner booner  478140 Jul 28 03:51 Venorel_Weruno_chat_072810.txt
-rw-rw-r--. 1 booner booner  308519 Aug  1 04:16 Venorel_Weruno_chat_080110.txt
-rw-rw-r--. 1 booner booner  316987 Aug  5 03:48 Venorel_Weruno_chat_080510.txt
-rw-rw-r--. 1 booner booner 1042164 Aug 11 05:57 Venorel_Weruno_chat_081110.txt

P.S. In case you are wondering the log of 071310 was hit with 'echo -n > Venorel_Weruno_chat_071310.txt' by mistake.  :(
]

« Last Edit: August 11, 2010, 06:46:23 pm by novacadian »

verden

  • Hydlaa Notable
  • *
  • Posts: 716
    • View Profile
Re: Log Filtering
« Reply #9 on: August 11, 2010, 06:56:11 pm »
Are you asking that the Guild and Alliance channels have toggle buttons in the UI that prevent those messages from going to the logs? Or are you asking for the client to filter OOC comments out of the logfiles?

Technically speaking, this is not game mechanics, it is client functionality. You are asking that on-the-fly GREP and text-editing capability be added to the client to come into play when the log information is getting processed and dumped to the disk, toggles for different channels, and that interface objects be added to allow control of that in the UI.

The issue of post-processing text is something that is really best handled outside of the client. I have written scripts or used BBedit to do this, as has everyone else. And, I mean, why stop with just these functions? Wouldn't it be even better if it used an exist CSS and formatted the log entries in a visually pleasing manner as well?

Thats what the script I wrote did. But I didn't consider a lack of these features to be a detraction to PlaneShift itself. And the fact that many people have coded these workarounds may justify the wish, but its not going to magically free up the resources/people and the time that would have to go into making it.

Better yet would be to add GREP strings to a program like Text Wrangler and just process the files afterwards and retain copies of your originals. Anyone who has been playing this game for a while has tons of logfiles with all kinds of extra stuff in them. We all spend a lot of time editing logs, but I would rather that the team concentrated on game functionality and mechanics, rather than making a text editor.

novacadian

  • Hydlaa Notable
  • *
  • Posts: 962
    • View Profile
Re: Log Filtering
« Reply #10 on: August 11, 2010, 07:14:50 pm »
Are you asking that the Guild and Alliance channels have toggle buttons in the UI that prevent those messages from going to the logs? Or are you asking for the client to filter OOC comments out of the logfiles?

The former.

Technically speaking, this is not game mechanics, it is client functionality. You are asking that on-the-fly GREP and text-editing capability be added to the client to come into play when the log information is getting processed and dumped to the disk, toggles for different channels, and that interface objects be added to allow control of that in the UI.

The code still sits unexplored by me on my disk; with all my PS time being dedicated to game play at the moment. That being said allow me to make the leap to assume that as the channels are already being handled individually (able to turn many aspects of them on and off) that adding the non-logging feature would not be a huge leap.

Instead of calling it game mechanics or client functionality let's just call it a wish.

The issue of post-processing text is something that is really best handled outside of the client.

At the moment it is the only way. How nice to not have to ever leave the client and know what you want to be saved is being saved and what you don't want saved is not being saved.

I have written scripts or used BBedit to do this, as has everyone else.

That seems to reinforce the need for those who feel the same as me yet have no technical know how.

And, I mean, why stop with just these functions? Wouldn't it be even better if it used an exist CSS and formatted the log entries in a visually pleasing manner as well?

Sarcasm? Otherwise.... sure.

Thats what the script I wrote did. But I didn't consider a lack of these features to be a detraction to PlaneShift itself. And the fact that many people have coded these workarounds may justify the wish, but its not going to magically free up the resources/people and the time that would have to go into making it.

Guess, to me, it does not appear to be the coding nightmare which you suggesting. Allow me the option of being corrected on that.

Better yet would be to add GREP strings to a program like Text Wrangler and just process the files afterwards and retain copies of your originals. Anyone who has been playing this game for a while has tons of logfiles with all kinds of extra stuff in them. We all spend a lot of time editing logs, but I would rather that the team concentrated on game functionality and mechanics, rather than making a text editor.

Again, to me, you seem to only be reinforcing the need for the wish

- Nova

Phage

  • Hydlaa Resident
  • *
  • Posts: 63
    • View Profile
Re: Log Filtering
« Reply #11 on: August 11, 2010, 09:00:54 pm »
Here is a thread about a short python-script "logcleaner", which provides with easy and simple means to clean logs from defined junk. As it is now guildchat, tells and groupchat is removed from logs processed (also the timecode and OOC-stuff defined by "[", but its really easy to modify everything to your need].
Thanks, but is that not what the wish is asking of the game mechanics? If someone would go to such lengths as to code a stript to do it, does that not justify the wish? What about players that support the wish yet have no technical abilities?
Hm, I am not really agreeing. Those days I had to process loads of logs to extract the story played only, and neither I think that could work automatedly nor I do think things like the timecode should be left out.

Aiw, you make me aware of the meanwhile altered format of that log-content. Those prefixes to indicate the originated channels make filtering much more easy - even though I consider your command more advanced and not something everybody would think of themselves, let alone its a linux command.
Over there, lurking from safe distance.

Aiwendil

  • Hydlaa Citizen
  • *
  • Posts: 463
    • View Profile
Re: Log Filtering
« Reply #12 on: August 11, 2010, 09:59:54 pm »
Code: [Select]
grep -v "\[Guild\]\|\[NPC\]\|\[Tell\]\|\[Group\]" <charname>_chat.txt

The -v options is known to me. That would not allow the option of turning the logging on and off but simply clean out all incidences of Guild and Alliance entries. A guild war, for example, may want to be logged for IC reasons.

The strong reaction to my request makes me wonder if it is a technical issue or a political one.

Sorry, was really only a suggestion how to deal with it. I usually like it better to have all available information in my logs (an that includes even stupid OOC crap) and choose afterwards what I want to look at. That's why I prefer the grep method  which doesn't touch my original logs at all and keeps all infos in them. Who knows what funny flame tells I may get that are worth posting in the OL forums for the enjoyment of others if I have my logging for tells turned off. ;)

Oh..and just because I am too stupid to get it...how can anything in guildchat or alliancechat be IC at all?

But I agree that sometimes an option to choose more precisely what to log would be nice. Not really hard to do at all. It would only need a few additions in the src/client/gui/chatwindow.cpp file. In the pawsChatWindow::LoadChatSettings() it could be loaded from the chat.xml file what channels should be logged. Something like this would do the trick:
Code: [Select]
...
            else if (nodeName == "LogNPCChat")
                settings.logNPCChat = option->GetAttributeValueAsBool("value", true);
            else if (nodeName == "LogGuildChat")
                settings.logGuildChat = option->GetAttributeValueAsBool("value", true);
            else if (nodeName == "LogGroupChat")
                settings.logGroupChat = option->GetAttributeValueAsBool("value", true);
            else if (nodeName == "LogTellChat")
                settings.logTellChat = option->GetAttributeValueAsBool("value", true);
            else if (nodeName == "LogAllianceChat")
                settings.logAllianceChat = option->GetAttributeValueAsBool("value", true);
            else if (nodeName == "LogHelpChat")
                settings.logHelpChat = option->GetAttributeValueAsBool("value", true);
            else if (nodeName == "LogChannelChat")
                settings.logChannelChat = option->GetAttributeValueAsBool("value", true);
...

The pawsChatWindow::SaveChatSettings() would of course also need some adjusting to write back the values in the xml file:
Code: [Select]
...
npcChatLogNode = optionNode->CreateNodeBefore(CS_NODE_ELEMENT,0);
npcChatLogNode->SetValue("LogNPCChat");
npcChatLogNode->SetAttributeAsInt("value",(int)settings.logNPCChat);
guildChatLogNode = optionNode->CreateNodeBefore(CS_NODE_ELEMENT,0);
guildChatLogNode->SetValue("LogGuildChat");
guildChatLogNode->SetAttributeAsInt("value",(int)settings.logGuildChat);
groupChatLogNode = optionNode->CreateNodeBefore(CS_NODE_ELEMENT,0);
groupChatLogNode->SetValue("LogGroupChat");
groupChatLogNode->SetAttributeAsInt("value",(int)settings.logGroupChat);
tellChatLogNode = optionNode->CreateNodeBefore(CS_NODE_ELEMENT,0);
tellChatLogNode->SetValue("LogTellChat");
tellChatLogNode->SetAttributeAsInt("value",(int)settings.logTellChat);
allianceChatLogNode = optionNode->CreateNodeBefore(CS_NODE_ELEMENT,0);
allianceChatLogNode->SetValue("LogAllianceChat");
allianceChatLogNode->SetAttributeAsInt("value",(int)settings.logAllianceChat);
helpChatLogNode = optionNode->CreateNodeBefore(CS_NODE_ELEMENT,0);
helpChatLogNode->SetValue("LogHelpChat");
helpChatLogNode->SetAttributeAsInt("value",(int)settings.logHelpChat);
channelChatLogNode = optionNode->CreateNodeBefore(CS_NODE_ELEMENT,0);
channelChatLogNode->SetValue("LogChannelChat");
channelChatLogNode->SetAttributeAsInt("value",(int)settings.logChannelChat);
...

The struct ChatSettings in the chatwindow.h file had to be expanded:
Code: [Select]
...
bool logNPCChat;
bool logGuildChat;
bool logGroupChat;
bool logTellChat;
bool logAllianceChat;
bool logChannelChat;
...

The pawsChatWindow::LogMessage method would need some logic to detemine if this message should be logged at all:
Code: [Select]
...
        if ((((type == CHAT_NPC) || (type == CHAT_NPC_ME) || (type == CHAT_NPC_MY)) && !settings.logNPCChat) ||
            ((type == CHAT_GUILD) && !settings.logGuildChat) || ((type == CHAT_GROUP) && !settings.logGroupChat) ||
            ((type == CHAT_TELL) && !settings.logTellChat) || ((type == CHAT_ALLIANCE) && !settings.logAllianceChat) ||
            (((type == CHAT_ADVISOR) || (type == CHAT_ADVICE)) && !settings.logHelpChat) ||
            ((type == CHAT_CHANNEL) && !settings.logChannelChat)) return;
...

With this you could already change the logging behaviour when editing the text files and restarting the game. But I guess not what you wanted so pawsconfigchat.h and pawsconfigchat.cpp had to be edited also to enable some check boxes for what to log.
pawsconfigchat.h:
Code: [Select]
...
pawsCheckBox* logNPCChat;
pawsCheckBox* logGuildChat;
pawsCheckBox* logGroupChat;
pawsCheckBox* logTellChat;
pawsCheckBox* logAllianceChat;
pawsCheckBox* logChannelChat;
...
pawsconfigchat.cpp / pawsConfigChat::pawsConfigChat():
Code: [Select]
...
logNPCChat = NULL;
logGuildChat = NULL;
logGroupChat = NULL;
logTellChat = NULL;
logAllianceChat = NULL;
logChannelChat = NULL;
...
pawsconfigchat.cpp / pawsConfigChat::PostSetup():
Code: [Select]
...
logNPCChat = (pawsCheckBox*)FindWidget("lognpcchat");
logGuildChat = (pawsCheckBox*)FindWidget("logguildchat");
logGroupChat = (pawsCheckBox*)FindWidget("loggroupchat");
logTellChat = (pawsCheckBox*)FindWidget("logtellchat");
logAllianceChat = (pawsCheckBox*)FindWidget("logalliancechat");
logChannelChat = (pawsCheckBox*)FindWidget("logchannelchat");
...
pawsconfigchat.cpp / bool pawsConfigChat::LoadConfig()
Code: [Select]
...
logNPCChat->SetState(settings.logNPCChat);
logGuildChat->SetState(settings.logGuildChat);
logGroupChat->SetState(settings.logGroupChat);
logTellChat->SetState(settings.logTellChat);
logAllianceChat->SetState(settings.logAllianceChat);
logChannelChat->SetState(settings.logChannelChat);
...
pawsconfigchat.cpp / bool pawsConfigChat::SaveConfig()
Code: [Select]
...
settings.logNPCChat = logNPCChat->GetState();
settings.logGuildChat = logGuildChat->GetState();
settings.logGroupChat = logGroupChat->GetState();
settings.logTellChat = logTellChat->GetState();
settings.logAllianceChat = logAllianceChat->GetState();
settings.logChannelChat = logChannelChat->GetState();
...

and at last you had to put the checkboxes, their positions and text in "data/gui/configchat.xml"
adding some lines like:
Code: [Select]
            <widget name="lognpcchat" factory="pawsCheckBox">
                <frame x="xxxx" y="yyyy" width="wwww" height="20" />
                <text string="Log NPC-chat to file" />   
            </widget>
            <widget name="logguildchat" factory="pawsCheckBox">
                <frame x="xxxx" y="yyyy" width="wwww" height="20" />
                <text string="Log Guild-chat to file" />   
            </widget>
            <widget name="loggroupchat" factory="pawsCheckBox">
                <frame x="xxxx" y="yyyy" width="wwww" height="20" />
                <text string="Log Group-chat to file" />   
            </widget>
            <widget name="logtellchat" factory="pawsCheckBox">
                <frame x="xxxx" y="yyyy" width="wwww" height="20" />
                <text string="Log tells to file" />   
            </widget>
            <widget name="logalliancechat" factory="pawsCheckBox">
                <frame x="xxxx" y="yyyy" width="wwww" height="20" />
                <text string="Log Alliance-chat to file" />   
            </widget>
            <widget name="logchannelchat" factory="pawsCheckBox">
                <frame x="xxxx" y="yyyy" width="wwww" height="20" />
                <text string="Log Channel-chat to file" />   
            </widget>
The xxxx, yyyy, wwww had to be replaced with useful value of course...

So, no it's no problem to include this in game at all..also not in a way that doesn't annoy anyone as they can keep exactly the behavior they have right now and only get some more options. But of course you won't get this..some dev will come up with a stupid reason why there is no time to do this and that there are more important things that need to be done. Next time better ask for a change that adds some colorful effect or something else that attracts more noobs to the game..you have a much higher chance to get something like this implemented than asking for something that actually could be useful. But stay for some time and you will find this out on your own. And don't listen to people like Akkaido...almost every post of him is just about telling others why they don't need what they ask for instead of giving it any thought at all. But that attitude makes him a prefect candidate for the PS team.

Edit:
- Added one line
- Typos
« Last Edit: August 11, 2010, 10:09:20 pm by Aiwendil »

Phage

  • Hydlaa Resident
  • *
  • Posts: 63
    • View Profile
Re: Log Filtering
« Reply #13 on: August 11, 2010, 10:02:21 pm »
On a sidenote:
Dont discourage Akkaido/ Xoel to post whatever stuff, I love it! :P
Over there, lurking from safe distance.

RlyDontKnow

  • Associate Developer
  • Hydlaa Citizen
  • *
  • Posts: 403
    • View Profile
Re: Log Filtering
« Reply #14 on: August 11, 2010, 10:21:00 pm »
not sure whether it helps you, but there used to be a log viewer which worked quite well for sorting stuff - maybe it could be revived?
I suppose that'd be a lot more useful than being able to just enable/disable logging of certain tabs (which can easily be removed via regex, anyway)