00:08
3 hours later…
2 hours later…
05:13
6 hours later…
11:01
How do fit advise doing logging? In vbInvoke I have used your logging granaries @MathieuGuindon for VBA I think I tidied it up a bit maybe and made a tB package. But I've got all this logging everywhere which is very useful to debug. I thought I could add a LogManager that implements the right interfaces but all the methods are NOOP. That would remove pretty much any performance overhead I imagine. But I'm wondering about your (plural) advice on when to include logging in a release of a package
Let's assume you have a great logging framework so any payment app that references your package can inject its own logger to configure behaviour of the logging (e.g. direct it to a file)
1 hour later…
2 hours later…
14:52
@MathieuGuindon Thanks I'll definitely take a look. Although the framework isn't too important to me, the functionality I would imagine is pretty similar whatever the framework (please correct me). I'm asking what your advice is on when to Log. E.g. if a theoretical RD3 VBE addin written in tB were to depend on my code (directly or forked or copy-paste I have grand ambitions), how would it like the logging interface to look? Should it even have logs?
e.g. It looks like RD often uses a lightweight wrapper class to add logging to the forwarded methods of some wrapped class. So the functional code is not polluted with log messages, and it is easy to remove the logging layer entirely. However I cannot tell the logic of when a class has a log wrapper vs when no logs are needed. Also for trace logs of internal implementation details of a class, I can't see how a wrapper would capture this, so maybe those log calls are less OOP more procedural
15:17
@Greedo logging is a special concern in an application, because it is "cross-cutting" - we went with DI so we're typically injecting the logger into some base class that invokes a templated abstract method that derived classes can implement without needing to care much about trace logging, ...
there are other approaches to cross-cutting concerns; we could have used an AOP (aspect-oriented) framework to generate that logging code at compile-time for example
a tB add-in would probably have to reference at least some of the RD3 assemblies, and thus would have to be a consumer of the logging API, I think.
there's a piece missing between the add-in and the LSP server though: the Rubberduck.Client library will expose everything the add-in needs to communicate with the LSP server, so it won't need to deal with RPC and proxies at all.
8 hours later…
23:53
« first day (3171 days earlier) ← previous day next day → last day (9 days later) »
Transcript for
Feb9
Feb '2310
Feb11
VBA Rubberducking
This chat has moved to Discord: discord.gg/MYX9RECenJ