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? Gary > -Rob > > > > > Gary > > > > > >> > >>> > >>> Gary > >>> > >>> On Thu, Jul 19, 2018, 07:15 Rob Tompkins <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 > >> > >> > >