[Rel] ConScribe

Post » Wed Mar 09, 2011 6:05 am

ConScribe
Console Logging and Log Functions for the Masses
version 9.0

Requires http://obse.silverlock.org/



Download : http://www.tesnexus.com/downloads/file.php?id=26510



Description

Bah ! These useless mod authors are always asking for something or the other when it comes to bug reports. Load order, OBSE version, bashed patch status, sixual orientation, Oblivion version and non-existent error logs to name a few. Bah !

May your head fall off at an awkward moment if such a thought were to ever pass through it, verbatim or otherwise.

Until then, consider using ConScribe ?



Fine Print

ConScribe is an OBSE plugin that supersedes speedo's long-since-gone Console Logger. It logs all console output to text files for later reviewing, including those typed in by the player. It removes the need for modders to adopt independent logging functions.

ConScribe supports 3 logging modes:
  • Per Game Load; and
  • Per Game Session
  • Static Logging
Per Game Load creates a new log every time a game is loaded. Per Game Session creates a single log file on game start and appends all logged output to it, for the length of the session. Subsequent game loads are delimited by their instance (nth game load) and time of loading. Static logging behaves like Per Game session but uses a static log ( Static Log.log ).

Console logs are saved to a folder named "ConScribe Logs" in your Oblivion root directory and each log is named in accordance to the time of its creation.

ConScribe also adds, as contradictory in terms as it may seem, independent log functions that allow mods to log output to text files. Output is primarily segregated into 2 types:
  • Logs made per script – Output is grouped by the parent script
  • Logs made per mod – Output is grouped by the parent mod
The primary output function Scribe is used to log all output. Mods may register logs using the RegisterLog function and then use Scribe to write to it. Registered logs can be unregistered using UnregisterLog. GetRegisteredLogNames returns the names of the calling mod's registered logs. The contents of registered logs may be read using the ReadFromLog function.

An INI file of the same name is created in the same directory as the plugin, on first run. Logging modes can be switched by changing the ScribeMode INI key's value. Usable Modes/Values:
  • PerLoad - Per Game Load
  • PerSession - Per Game Session
  • Static – Static Logging

String INI values are case-insensitive. The plugin needs a valid logging mode to work. The other INI options include:
  • TimeFormat – The format string used to generate log headers.
  • Includes/Excludes - Message filtering strings. Includes-keywords must be present in a console message to be logged. Similarly, Excludes-keywords mustn’t be present in the console message if it has to be logged. Multiple keywords should be separated by a semi-colon. [ Example – osr;piiip;error; ]
  • LogBackups – Number of log file ( only those in the Per-Mod and Per-Script folders ) backups kept by the plugin. A value of -1 will enable append mode for the logs, similar to the Static Log. A maximum of 5 backups are allowed.
  • RootDirectory – The path to the directory in which ConScribe stores its logs. A value of Default is equivalent to the path of Oblivion’s Data directory.




Command List

Scribe - Primary output function. Prints output to a log file and, optionally, to the console.
(nothing) Scribe formatString:string var1 var2 ... var20 printToConsole:bool

RegisterLog - Registers a log name with the calling mod.
(nothing) RegisterLog formatString:string var1 var2 ... var20 defaultFlag:bool

UnregisterLog - Unregisters the calling mod's log, if any.
(nothing) UnregisterLog formatString:string var1 var2 ... var20 defaultFlag:bool deleteLog:bool

GetRegisteredLogName - Retrieves the calling mod's registered log. Returns "null" if there isn't any.
(logName:string) GetRegisteredLogName

ReadFromLog – Retrieves the log's contents.
(logContents:array) ReadFromLog formatString:string var1 var2 ... var20

DeleteSliceFromLog – Deletes a slice of lines for a registered log.
(result:int) DeleteLinesFromLog formatString:string var1 var2 ... var20 lowerLimit:int upperLimit:int

GetLogLineCount - Returns the number of lines of text in the registered log.
(lineCount:int) GetLogLineCount formatString:string var1 var2 ... var20


Detailed command list - http://cs.elderscrolls.com/constwiki/index.php/Category:ConScribe



Compatibility

This plugin is compatible with every other OBSE plugin with the exception of ConLog (Console Logger). Using both at once will create duplicate logs.



Credits

Special thanks to :
  • Ian Patterson, Stephen Abel and Paul Connelly (The OBSE Team) – For keeping up the Oblivion Modding spirit and providing the modding community with TES4 Oblivion's Elixir of Immortality. And for the API.
  • LHammonds – For his Readme generator
  • Speedo – For releasing the first console logger
  • Scruggsywuggsy the ferret – For lots of stuff
  • Kyoma - For spamming in the discussion thread
The Entire Community around the TES Construction Set Wiki – For making such an exhaustive resource catering to ES Modding.
The Folks at the Construction Set Forums – For all their help, rum and fish.
The Rest of the Modding Community – For the inspiration I needed to start modding and all the wonderful mods which I use.
Bethesda – For providing a great game, with enough flaws to keep us busy.



Change Log

Spoiler
9.0 -
  • New Commands : GetLogLineCount, DeleteLinesFromLog
  • RegisterLog returns -1 when it fails
  • Fixed a bug that prevented UnRegisterLog from deleting the default log when log name was passed as '*.*'
  • Fixed a memory leak in the ReadFromLog handler
  • Moved default log directory inside the Data folder to increase compatibility with installers. Existing logs need to be moved manually.
  • Rewrote the INI manager as a new library
  • Optimised ReadFromLog handler
  • Temporarily removed support for CSE’s IntelliSense
8.0c - Fixed the bug thought fixed in 8.0b
8.0b - Fixed a bug introduced in the last update that prevented scribe from working
8.0a -
  • Fixed a bug in serialization code
  • Added missing console printing code to Scribe’s handler
8.0 –
  • Rewrote plugin internals
  • Removed the alternate INI path added in 7.0.0.5
  • Fixed up INI format (forthelasttimedammit)
  • Removed the 24 hour clock INI setting in lieu of a format string
  • Made the log directory changable through an INI setting
  • Added interop support for the OBSE plugin Construction Set Extender
  • Standardized serialization record format to allow expansion and backward compatibility in later builds;
    Records saved by previous builds are automatically converted
  • Released source code
  • Log headers are no longer appended on unregistered logs during load callbacks
7.0a –
  • Scribe allows the pipe character in its string argument as long as one is appended as the log name delimiter
  • Log directory is accepted as an alternate parent directory to the INI file
7.0 –
  • The static log is also backed up now
  • Support for multiple logs
  • Ability to read from logs
  • Can optionally delete logs while unregistering them
  • Changed the INI format (for the last time … hopefully)
  • Fixed a potential bug in the plugin load callback.
  • Fixed a bug that kept script logs from being appended with headers
6.0 - Added append mode to scribed logs
5.0 - Some code moved around, modified and rewritten; Changes to the INI; New log functions
4.0 - Decided to have ice cream for dessert
3.0a - Fixed a null pointer crash
3.0 - Replaced Prefix notation with an INI file; Option to use 24 Hour time notation in log names
2.0 - Renamed prefix PerGame to PerSession ; Added new prefix PerSessionEx
1.0 - Initial Release


Mods that use ConScribe

  • http://www.gamesas.com/index.php?/topic/1088059-relz-refscope-20/
  • http://www.gamesas.com/index.php?showtopic=1068205

User avatar
Robert DeLarosa
 
Posts: 3415
Joined: Tue Sep 04, 2007 3:43 pm

Post » Wed Mar 09, 2011 3:17 am

http://github.com/shadeMe/ConScribe
User avatar
Big mike
 
Posts: 3423
Joined: Fri Sep 21, 2007 6:38 pm

Post » Wed Mar 09, 2011 8:07 am

Oh god, it's like a flood of useful mods and utilities! D:

This should prove useful whenever... things go... drastically wrong.
User avatar
Ana Torrecilla Cabeza
 
Posts: 3427
Joined: Wed Jun 28, 2006 6:15 pm

Post » Wed Mar 09, 2011 1:20 am

IMMEDIATE add on. without much thought.

May be why i NEED this addon, but meh....
User avatar
teeny
 
Posts: 3423
Joined: Sun Feb 25, 2007 1:51 am

Post » Wed Mar 09, 2011 5:20 am

Ahem, the omod conversion data doesn't work. I do have OBSE 18beta3, but somehow OBMM doesn't accept it.

1. Extract this archive to any folder and then copy the contents to Oblivion's Data folder. You can delete the "omod conversion data" folder.

2. Configure the INI file

3. Start Oblivion Launcher, click Data Files, and enable ESP added by the mod.


Err, there's no ini nor esp on the package only 1 dll file.
User avatar
Max Van Morrison
 
Posts: 3503
Joined: Sat Jul 07, 2007 4:48 pm

Post » Wed Mar 09, 2011 12:50 am

Congratulations ShadeMe, this sounds Fantastic!

Downloading now!

a

Edit: Just tried it and I love it. What I missed with Console Logger was the ability to see what I typed into the console. This utility even logs that which I type. Fantastic Utitily ShadeMe!

a
User avatar
Luis Longoria
 
Posts: 3323
Joined: Fri Sep 07, 2007 1:21 am

Post » Wed Mar 09, 2011 10:13 am

Ahem, the omod conversion data doesn't work. I do have OBSE 18beta3, but somehow OBMM doesn't accept it.
There was an extra period in the script. Fixed now.

1. Extract this archive to any folder and then copy the contents to Oblivion's Data folder. You can delete the "omod conversion data" folder.

2. Configure the INI file

3. Start Oblivion Launcher, click Data Files, and enable ESP added by the mod.


Err, there's no ini nor esp on the package only 1 dll file.
I'm sorry - I copied the readMe from another mod of mine :D Ignore the INI bit and the Launcher bit. Fixed.
User avatar
Amanda Furtado
 
Posts: 3454
Joined: Fri Dec 15, 2006 4:22 pm

Post » Tue Mar 08, 2011 9:35 pm

Edit: Just tried it and I love it. What I missed with Console Logger was the ability to see what I typed into the console. This utility even logs that which I type. Fantastic Utitily ShadeMe!
Thanks to scruggs :)
User avatar
Emilie M
 
Posts: 3419
Joined: Fri Mar 16, 2007 9:08 am

Post » Wed Mar 09, 2011 1:58 am

Hi ShadeMe,

for my mod, FormID Finder, an consistent request is to write out the results to a log. Since my mod already writes everything out to the console, would you mind if I recommended your mod on my thread so that people know that they can use the ConScribe utility to save off the results of any FormID Finder results?

thanks
a
User avatar
CYCO JO-NATE
 
Posts: 3431
Joined: Fri Sep 21, 2007 12:41 pm

Post » Wed Mar 09, 2011 4:06 am

excellent work, shadeMe!
thanks!
User avatar
ZANEY82
 
Posts: 3314
Joined: Mon Dec 18, 2006 3:10 am

Post » Wed Mar 09, 2011 9:44 am

:woot:
User avatar
Daniel Lozano
 
Posts: 3452
Joined: Fri Aug 24, 2007 7:42 am

Post » Tue Mar 08, 2011 11:34 pm

..We folks at craftybits appreciate this... very much.. you have.. no idea.
..
..
...I love you.. :hug:
User avatar
marie breen
 
Posts: 3388
Joined: Thu Aug 03, 2006 4:50 am

Post » Wed Mar 09, 2011 12:40 pm

I just realized something, with this plugin it is no longer required to make a screenshot of the console text. Now....we can make a screenshot of the log file..... :P
User avatar
Elina
 
Posts: 3411
Joined: Wed Jun 21, 2006 10:09 pm

Post » Wed Mar 09, 2011 1:07 pm

for my mod, FormID Finder, an consistent request is to write out the results to a log. Since my mod already writes everything out to the console, would you mind if I recommended your mod on my thread so that people know that they can use the ConScribe utility to save off the results of any FormID Finder results?
Not at all.

I just realized something, with this plugin it is no longer required to make a screenshot of the console text. Now....we can make a screenshot of the log file..... :P
No ! I've heard of this radical new method that poses to supersede that technique. It's called the Copy/Paste technique ( yeah, silly name, I know ) and it lets you replicate the text to any compatible destination. Fascinating, isn't it ? :o

Well, you folks got any ideas/functions I can add to the plugin ?
User avatar
Adriana Lenzo
 
Posts: 3446
Joined: Tue Apr 03, 2007 1:32 am

Post » Wed Mar 09, 2011 6:38 am

Could make it record console messages from specific mods. Like if your running DR and UV...and only record console messages from UV
User avatar
Charlotte Buckley
 
Posts: 3532
Joined: Fri Oct 27, 2006 11:29 am

Post » Wed Mar 09, 2011 7:16 am

Could make it record console messages from specific mods. Like if your running DR and UV...and only record console messages from UV
Not yet. The hook's a direct one to the game code, so there isn't a way to get that info from it. I'll need a link to the console output functions to get the calling script. Nevertheless, OBSE 19 should allow creating logs specific to mods intrinsically.
User avatar
Guinevere Wood
 
Posts: 3368
Joined: Mon Dec 04, 2006 3:06 pm

Post » Wed Mar 09, 2011 4:06 am

Not at all.


Thanks ShadeMe, i've updated my OP!

thanks again for this tool, it is wonderful!
a
User avatar
Connie Thomas
 
Posts: 3362
Joined: Sun Nov 19, 2006 9:58 am

Post » Wed Mar 09, 2011 11:11 am

No ! I've heard of this radical new method that poses to supersede that technique. It's called the Copy/Paste technique ( yeah, silly name, I know ) and it lets you replicate the text to any compatible destination. Fascinating, isn't it ? :o
Wow, that's amazing. I never even heard of such a technology. :P
User avatar
Christina Trayler
 
Posts: 3434
Joined: Tue Nov 07, 2006 3:27 am

Post » Wed Mar 09, 2011 12:55 am

Awesome!

I missed downloading Console Logger for a day or two and, recently, I started using the OBSE log during my tests. But this would still need A LOT of converting.

ConScribe works like a charm and will save me some/a lot of debugging time.

But I have a request for you (pestering users . . . never satisfied!!): any chance of a (third) mode that keeps the same filename?
Reason is: Notepad++ has a handy feature of updating the file contents on the fly. While using the OBSE log for the last week or two, I kept it open in Notepad++ and when I exit the game (or even without exiting) I just alt-tab to Notepad++ and the new log is already there.
Quite handy when you do this every 5-10 minutes.
But not a big deal, anyway. ConScribe is great as is.

Thanks . Things will go faster, now.
User avatar
BRAD MONTGOMERY
 
Posts: 3354
Joined: Mon Nov 19, 2007 10:43 pm

Post » Wed Mar 09, 2011 4:02 am

But I have a request for you (pestering users . . . never satisfied!!): any chance of a (third) mode that keeps the same filename?
Done !
User avatar
lauren cleaves
 
Posts: 3307
Joined: Tue Aug 15, 2006 8:35 am

Post » Wed Mar 09, 2011 9:36 am

http://www.tesnexus.com/downloads/file.php?id=26510

Version 2.0 is out !


Change Log

2.0 - Renamed prefix PerGame to PerSession ; Added new prefix PerSessionEx
1.0 - Initial Release

User avatar
Ian White
 
Posts: 3476
Joined: Thu Jul 19, 2007 8:08 pm

Post » Tue Mar 08, 2011 10:19 pm

Done !

Hey, thanks! Even better, now.
User avatar
Steven Nicholson
 
Posts: 3468
Joined: Mon Jun 18, 2007 1:24 pm

Post » Wed Mar 09, 2011 9:17 am

To grab and wreck a big company's slogan --> Sense in simplicity , this will help tracing potential bugs.

Thanks for the tool!
User avatar
Dagan Wilkin
 
Posts: 3352
Joined: Fri Apr 27, 2007 4:20 am

Post » Wed Mar 09, 2011 6:32 am

I understand you are looking for new features to add? :hehe: How about the option to use 24-hour clock instead of the current AM/PM stuff? It makes finding the most recent file rather annoying.
User avatar
kat no x
 
Posts: 3247
Joined: Mon Apr 16, 2007 5:39 pm

Post » Wed Mar 09, 2011 12:29 pm

I understand you are looking for new features to add? :hehe: How about the option to use 24-hour clock instead of the current AM/PM stuff? It makes finding the most recent file rather annoying.
:icecream:
User avatar
Laura
 
Posts: 3456
Joined: Sun Sep 10, 2006 7:11 am

Next

Return to IV - Oblivion