> On Jul 19, 2018, at 1:41 PM, Ralph Goers <ralph.go...@dslextreme.com> wrote:
> 
> To be clear, Log4j-core should have no required dependencies other than 
> Log4j-API. And we would like to keep optional dependencies to a minimum.

Right that makes sense to me. Hence it being an after thought, and I like 
Gary’s suggestion of a compile time dependency for the sake of weaving.

> 
> Ralph
> 
>> On Jul 19, 2018, at 10:36 AM, Gary Gregory <garydgreg...@gmail.com> wrote:
>> 
>> eOn Thu, Jul 19, 2018 at 10:19 AM Rob Tompkins <chtom...@gmail.com 
>> <mailto:chtom...@gmail.com>> wrote:
>> 
>>> 
>>> 
>>>> On Jul 19, 2018, at 11:48 AM, Gary Gregory <garydgreg...@gmail.com>
>>> wrote:
>>>> 
>>>> FTR: https://projectlombok.org/features/log
>>>> 
>>>> On Thu, Jul 19, 2018 at 8:48 AM Gary Gregory <garydgreg...@gmail.com>
>>> wrote:
>>>> 
>>>>> 
>>>>> 
>>>>> On Thu, Jul 19, 2018 at 8:26 AM Rob Tompkins <chtom...@gmail.com>
>>> wrote:
>>>>> 
>>>>>> 
>>>>>> 
>>>>>>> On Jul 19, 2018, at 10:17 AM, Gary Gregory <garydgreg...@gmail.com>
>>>>>> wrote:
>>>>>>> 
>>>>>>> On Thu, Jul 19, 2018 at 8:07 AM Rob Tompkins <chtom...@gmail.com>
>>>>>> wrote:
>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>>> On Jul 19, 2018, at 9:29 AM, Gary Gregory <garydgreg...@gmail.com>
>>>>>>>> wrote:
>>>>>>>>> 
>>>>>>>>> Annotation-based logging comes up once in a while here but we have
>>> not
>>>>>>>>> implemented it. Project Lombok does that IIRC.
>>>>>>>> 
>>>>>>>> Any reason for having not yet implemented it, or just the standard
>>>>>> “time”?
>>>>>>>> 
>>>>>>> 
>>>>>>> It's just more "stuff" and yes, time. And also, no one's wanted to put
>>>>>> the
>>>>>>> time in.
>>>>>>> 
>>>>>>> But then there are design issues and adding more "stuff" to the API
>>> jar.
>>>>>>> 
>>>>>>> - Would you allow @Log(level=Level.TRACE) (should be the default?) and
>>>>>>> @Log(level=Level.DEBUG)
>>>>>>> - What happens if you say both?
>>>>>>> - Should you be able to break it up and only say @LogEntry() or
>>>>>> @LogExit().
>>>>>>> - What about @Log(file="${user.home}\foo.log")
>>>>>>> - and on and on ;-)
>>>>>> 
>>>>>> Definitely fair points, I think I would try to go as simple as possible
>>>>>> in a first pass…right?
>>>>>> 
>>>>>> @Log
>>>>>> @Log(level=X)
>>>>>> 
>>>>> 
>>>>> Well, yes. But we need to think about the scope of the annotation. The
>>>>> name @Log is as broad as you can think of making the name. So if we
>>> want to
>>>>> put more in there later, then we need to make sure that's the best name.
>>>>> 
>>>>> Do you think
>>>>> 
>>>>> @Log()
>>>>> 
>>>>> could be the default for (for example)
>>>>> 
>>>>> @Log(level=Level.TRACE, entry=true, entryParameters=ALL, exit=true,
>>>>> exitValue=true)
>>>>> 
>>>>> Where entryParameters (if on a method) would let me list which params
>>> for
>>>>> that methods to log)
>>>>> 
>>>>> How do I avoid logging a password argument for example? Sounds like we
>>> can
>>>>> do away with entryParameters if we have a @LogHide to annotate a
>>>>> parameter.
>>>>> 
>>>>> I could see that as step one but we need to think about all that we
>>> would
>>>>> want to do to make sure @Log is the right name. What's a name that says
>>> log
>>>>> all entries and exits?  @LogEntryExit?
>>>>> 
>>>>> Overall I would think that this kind of annotated class would change
>>> that
>>>>> class' byte codes after compilation so that there are no runtime
>>>>> requirements even for annotations. I certainly would not want to leave
>>>>> behind clues like @LogHide to would be attackers....
>>>>> 
>>>>> Thoughts?
>>> 
>>> I think that @Log is the wrong name because it’s quite vague. Maybe
>>> @LogMethodCalls, or as you suggest @LogEntryExit.
>>> 
>>> I like the signature you suggested @Gary.
>>> 
>>> @Matt - As for mechanics, I would think we would want to do compile time
>>> byte code weaving. (Is there any appetite for using aspectJ? Feels like a
>>> large ask to add a dependency to log4j2 though.)
>>> 
>> 
>> I've not lloked at AspectJ for a long time, not sure it requires a runtime;
>> I think we want a compile time only dep, Apache Commson Weaver or Apache
>> Commons BCEL come to mind.
>> 
>> Gary
>> 
>> 
>>> 
>>>>> 
>>>>> Gary
>>>>> 
>>>>> 
>>>>>> -Rob
>>>>>> 
>>>>>>> 
>>>>>>> Gary
>>>>>>> 
>>>>>>> 
>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> Gary
>>>>>>>>> 
>>>>>>>>> On Thu, Jul 19, 2018, 07:15 Rob Tompkins <chtom...@gmail.com 
>>>>>>>>> <mailto:chtom...@gmail.com>>
>>> wrote:
>>>>>>>>> 
>>>>>>>>>> Hey folks,
>>>>>>>>>> 
>>>>>>>>>> I’m curious if anyone has thought about adding a class level @Log
>>>>>>>>>> annotation such that upon debug or trace configuration, method
>>> entry
>>>>>> and
>>>>>>>>>> exit gets automatically logged?
>>>>>>>>>> 
>>>>>>>>>> -Rob
> 

Reply via email to