see inline

Am Di., 23. Juli 2019 um 14:39 Uhr schrieb Ahmed Essam <
theartful...@gmail.com>:

> Hi Fernando,
>
> I think Heiko's point was regarding the global Shogun object you mentioned
>> in the first e-mail.
>
>
> Any logging function in SGIO will be thread safe and non-blocking.
> Changing the way message is printed and any other options won't be (it can
> be easily fixed, but I don't think this is needed).
>

Great! All good with the singleton then!


>
> I think source location is actually quite important for logging. There
>> should be some alternative keeping it, while allowing us to get rid of
>> macro's if that's worth.
>>
>
> I agree. There is "std::expermintal::source_location" but that's not
> implemented yet. And there are GCC's extension methods that can do the
> same, but that's compiler dependent. If source location is needed, then
> it's best to keep the macros.
>

How do other libs do this?
While I intuitively agree that line location is useful for logging, I in
practice mostly use gdb if I wanna know what is going on. Logging to me
seems more useful for higher level of infos...
So long story short. I am OK with dropping them. (I was the one pushing for
adding them back 10 years ago with Sören ;) ... but I didnt know how to
handle gdb back then :D


>
> About using fmtlib for "python-like syntax instead of or in addition to
>> printf's", what do you think?
>
>
> I like fmtlib, and it's going to be part of C++20, so I don't see why not
> :"D.
>

I think we can go for it in that case :)


>
> On Tue, Jul 23, 2019 at 2:59 PM Fernando J. Iglesias García <
> fernando.iglesi...@gmail.com> wrote:
>
>> Hey Ahmed,
>>
>> On Mon, 22 Jul 2019 at 23:33, Ahmed Essam <theartful...@gmail.com> wrote:
>>
>>> Thanks for the feedback!
>>>
>>> spdlog is friendly with multi threaded code. In fact, I currently use in
>>> the PR (as viktor suggested) an async logger, which does the logging in a
>>> different thread altogether.
>>>
>>
>> I think Heiko's point was regarding the global Shogun object you
>> mentioned in the first e-mail.
>>
>>
>>> Regarding the exposure of spdlog, I can add the functionality for
>>> directing streams to files, and we might discuss what other functionality
>>> is expected. However, exposing spdlog would give a huge amount of
>>> flexibility, as you can easily do whatever you want, thanks to their
>>> amazing interface and built-in sinks.
>>>
>>> Note that getting rid of macros means getting rid of source location
>>> (line, function, and file name).
>>>
>>
>> I think source location is actually quite important for logging. There
>> should be some alternative keeping it, while allowing us to get rid of
>> macro's if that's worth.
>>
>> About using fmtlib for "python-like syntax instead of or in addition to
>> printf's", what do you think?
>>
>>
>>>
>>>
>>> On Mon, Jul 22, 2019 at 11:24 PM Heiko Strathmann <
>>> heiko.strathm...@gmail.com> wrote:
>>>
>>>> Hi!
>>>>
>>>> Great initiative! See below
>>>>
>>>> Am Mo., 22. Juli 2019 um 19:49 Uhr schrieb Ahmed Essam <
>>>> theartful...@gmail.com>:
>>>>
>>>>> Regarding using spdlog, here are the assumptions:
>>>>> 1. There will be only one global SGIO object for logging.
>>>>>
>>>> Similar problems as for random: This means that multithreaded code will
>>>> also use this for logging, and we will need some sort of critical around
>>>> the log output. I wonder how that would affect performance. Also I wonder
>>>> how other (multithreaded) libs do this? Some minimal research might be good
>>>> here.
>>>>
>>>>
>>>>> 2. Two streams are used: stdout (for all log levels except for
>>>>> MSG_ERROR) and stderr, and the user can direct any of them.
>>>>>
>>>> That sounds very reasonable
>>>>
>>>> 3. spdlog will be exposed. That is the user will use spdlog sinks to
>>>>> redirect streams. I don't see a reason to wrap around them or add options
>>>>> to manipulate them further. Exposing spdlog is more flexible. So we can 
>>>>> use
>>>>> "dist_sink" for example to redirect to multiple sinks.
>>>>>
>>>> I am not too sure about this. Backend libraries tend to change over the
>>>> years and explicitly adding those into the codebase usually causes
>>>> headaches later on. So I'd actually prefer some plugin like thing, but I
>>>> can probably be convinced ;)
>>>>
>>>>
>>>>>
>>>>> Some questions:
>>>>> 1. Are these assumptions reasonable?
>>>>> 2. Should we use fmtlib? I currently format using sprintf, but fmtlib
>>>>> is supposedly similar in runtime speed, and adds a little overhead in
>>>>> compile time (header library with compile time format checking!). The
>>>>> downside (for us) is that it uses python-like formatting.
>>>>>
>>>> Seems fine to me
>>>>
>>>>
>>>>> 3. Should we get rid of macros?
>>>>>
>>>> I think that would be nice. I guess they were used to switch off things
>>>> at compile time. We don't really do that anymore.
>>>>
>>>>
>>>

Reply via email to