OBLIVION
ConScribe by shadeMe
Oblivion » Utilities
Added: 15/08/2009 - 10:28PM
Updated: 09/05/2013 - 11:37AM

988 Endorsements

FiNAL Latest version

12,548 Unique D/Ls

20,607 Total D/Ls

60,971 Total Views

Uploaded by shademe

Description

Last updated at 11:37, 9 May 2013 Uploaded at 22:28, 15 Aug 2009

ConScribe
Console Logging for the Masses
version 10.0

Requires Oblivion Script Extender



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, sexual 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.



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
  • LHammonds - For his Readme generator
  • Speedo - For releasing the first console logger
  • Scruggsywuggsy the ferret - For the console hook code
  • 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.
[/list]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

10.0 -
Added CSE inter-op support
Misc. fixes

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