joaofarias / csl-traffic

A WIP mod for Cities: Skylines to improve traffic.
91 stars 30 forks source link

Logging improvements #59

Open originalfoo opened 9 years ago

originalfoo commented 9 years ago

When updating vehicle AIs the log output currently contains this sort of thing...

(##### = asset id, ***\ = asset name)

before replace AI:

Traffic++: Replacing #####.*****_Data's AI.

if success:

Traffic++: Successfully replaced #####.*****_Data's AI.

and if failed:

Traffic++: Replacing #####.*****_Data's AI failed.

Would it be possible to make the following changes...?

before replacing AI (show name of current AI in the log output):

Traffic++: Replacing #####.*****_Data's AI (currently {AI_NAME}).

...that will help work out which assets are using non-standard AI - in particular there are quite a lot of problems caused by vehicle creators who have the No Despawn mod installed (it changes AI in asset editor just like T++ used to before being fixed).

if failed (put "Failed" text at start to make it easier to spot):

Traffic++: Failed to replace #####.*****_Data's AI.

Also, it might be useful to state somewhere what type of vehicle is being processed (sometimes it's not clear if it's car, train, etc) which in turn makes it more difficult to refer to earlier log messages where the core AIs were replaced.

joaofarias commented 9 years ago

Sure. I'll also remove unnecessary logs, such as trains and ships, to have a liitle less spam.

Would it be better if I put the start and result in the same line? Something like:

Traffic++: Replacing #####.*****_Data's {currentAI} for {myAI}... Success!

or

Traffic++: Replacing #####.*****_Data's {currentAI} for {myAI}... Failed!

originalfoo commented 9 years ago

Yes, that would be even cleaner; but maybe put the Success/Failed at the start so like:

Traffic++: Failed to update AI of #####.*****_Data from {currentAI} to {myAI}

Traffic++: Successfully updated AI of #####.*****_Data from {currentAI} to {myAI}

Just faster to visually skim the start of lines looking for "Failed" than having to read whole line to end.

As for trains and stuff, if T++ isn't changing the AIs for those then yes it's prolly better to remove those log entries.

originalfoo commented 9 years ago

...on further thought, it would probably be useful to retain log entries for trains and stuff; even though T++ doesn't alter them it will still be useful to see if they are using broken AIs... if someone reports error with their trains, it means I can more quickly rule out T++ as a culprit. Log entry for stuff T++ doesn't alter could be something like:

Traffic++: Skipping AI update for #.*_Data which uses {currentAI}

Same applies for the main AI (that subsequent spawns will use) as well; as it will allow me to see if some other mod is replacing main train AI for example and thus quickly point user at that mod as source of their problems.

joaofarias commented 9 years ago

Noted ;)

originalfoo commented 9 years ago

Can we also get a version number output in the log (and ideally title shown in Content Manager and title of Workshop page)?

Reason: I've had a few cases where people had manually installed old versions of the mod, sometimes in the wrong place (texture errors a plenty!), on pirated versions of the game -- it took me fecking ages to work out what was happening; a version number will massively reduce amount of time wasted on pirate blunders.

joaofarias commented 9 years ago

IIRC, @Nefarion added something like that in his pull request. I'd rather keep the mod title clean, though. It wouldn't make a difference when helping people since you'd have to ask them to check it for you. If it's in the log already, problem solved ;)

originalfoo commented 9 years ago

Won't that ver info only update when the pathfinder is updated, or will any change to the project update it?

joaofarias commented 9 years ago

It prints the assembly version which means that each time the project is built it will have a different number, regardless of the changes. :) Edit: this also allows us to know if the version is not from the workshop at all, which might indicate pirates ;)

originalfoo commented 9 years ago

Could this...

Traffic++: Replacing Path Manager

Traffic++: Path Manager successfully replaced.

Be condensed to:

Traffic++: Successfully replaced Path Manager

Traffic++: Failed to replace Path Manager

And similar for Transport Manager.

originalfoo commented 9 years ago

Also...

Traffic++: Queueing prefabs for loading...

Traffic++: Prefabs queued for loading.

To:

Traffic++: Successfully queued prefabs

Traffic++: Failed to queue prefabs

originalfoo commented 9 years ago

Could you change...

Traffic++:

...at the start of each log entry to...

[Traffic++]

Several mods are adopting this notation and it makes the log file significantly easier to scan through because mod logging stands out much more from general log file cruft.