Ok, thanks for the clarification. It sounded far more advanced, and I’m
getting a better picture here. I’ve never worked in a domain that requires
auditing before.

On Mon, Jun 11, 2018 at 08:03, Apache <ralph.go...@dslextreme.com> wrote:

> No. It implements that feature through the request context but I wouldn’t
> use a catalog for simple trace logging.
>
> Ralph
>
> > On Jun 11, 2018, at 4:29 AM, Matt Sicker <boa...@gmail.com> wrote:
> >
> > One thing I didn’t notice until now is that this is a superset of
> > distributed trace logging. Would you say that’s accurate?
> >
> >> On Mon, Jun 11, 2018 at 00:54, Apache <ralph.go...@dslextreme.com>
> wrote:
> >>
> >> One thing I forgot to mention. Although Log4J audit doesn’t make use of
> >> the product or category the catalog’s usefulness really comes into play
> >> when you want to create a UI to query and display the audit events. In
> that
> >> case associating events with products and/or categories can be quite
> >> helpful.
> >>
> >> Ralph
> >>
> >>> On Jun 10, 2018, at 1:36 AM, Apache <ralph.go...@dslextreme.com>
> wrote:
> >>>
> >>> Oh. You don’t have the maven plugin. Since it hasn’t been released yet
> >> you will have to build the Log4J audit project.
> >>>
> >>> Sent from my iPad
> >>>
> >>>> On Jun 10, 2018, at 12:23 AM, Remko Popma <remko.po...@gmail.com>
> >> wrote:
> >>>>
> >>>> That is with
> >>>> C:\Users\remko\IdeaProjects\logging-log4j-audit-sample>mvn --version
> >>>> Apache Maven 3.5.2 (138edd61fd100ec658bfa2d307c43b76940a5d7d;
> >>>> 2017-10-18T16:58:13+09:00)
> >>>> Maven home: C:\apps\apache-maven-3.5.2\bin\..
> >>>> Java version: 1.8.0_161, vendor: Oracle Corporation
> >>>> Java home: C:\apps\jdk1.8.0_161\jre
> >>>> Default locale: en_GB, platform encoding: MS932
> >>>> OS name: "windows 10", version: "10.0", arch: "amd64", family:
> "windows"
> >>>>
> >>>>
> >>>>> On Sun, Jun 10, 2018 at 4:21 PM, Remko Popma <remko.po...@gmail.com>
> >> wrote:
> >>>>>
> >>>>> getting this now
> >>>>>
> >>>>> [INFO] Reactor Summary:
> >>>>> [INFO]
> >>>>> [INFO] Audit Sample Parent ................................ SUCCESS [
> >>>>> 0.839 s]
> >>>>> [INFO] audit-service-api .................................. FAILURE [
> >>>>> 0.006 s]
> >>>>> [INFO] audit-service-war .................................. SKIPPED
> >>>>> [INFO] audit-service ...................................... SKIPPED
> >>>>> [INFO] sample-app ......................................... SKIPPED
> >>>>> [INFO] ------------------------------------------------------------
> >>>>> ------------
> >>>>> [INFO] BUILD FAILURE
> >>>>> [INFO] ------------------------------------------------------------
> >>>>> ------------
> >>>>> [INFO] Total time: 1.116 s
> >>>>> [INFO] Finished at: 2018-06-10T16:11:08+09:00
> >>>>> [INFO] Final Memory: 12M/245M
> >>>>> [INFO] ------------------------------------------------------------
> >>>>> ------------
> >>>>> [ERROR] Plugin
> >> org.apache.logging.log4j:log4j-audit-maven-plugin:1.0.0-SNAPSHOT
> >>>>> or one of its dependencies could not be resolved: Could not find
> >> artifact
> >>>>> org.apache.logging.log4j:log4j-audit-maven-plugin:jar:1.0.0-SNAPSHOT
> ->
> >>>>> [Help 1]
> >>>>> [ERROR]
> >>>>>
> >>>>>
> >>>>> On Sun, Jun 10, 2018 at 2:53 PM, Ralph Goers <
> >> ralph.go...@dslextreme.com>
> >>>>> wrote:
> >>>>>
> >>>>>> I finally have had time to take a breath and do something with
> this. I
> >>>>>> have tried to incorporate many of your comments in the
> documentation.
> >> I
> >>>>>> have updated my web site accordingly. Some comments are below.
> >>>>>>
> >>>>>> I really would like feedback on more than just the site as I need to
> >>>>>> release this.
> >>>>>>
> >>>>>>> On May 7, 2018, at 5:42 PM, Remko Popma <remko.po...@gmail.com>
> >> wrote:
> >>>>>>>
> >>>>>>> I had time to look at this during the flight, here it is:
> >>>>>>>
> >>>>>>> ----
> >>>>>>> index.html
> >>>>>>>
> >>>>>>> typo: Diagnostic logs are critical in aiding in maintaining the
> >>>>>>> servicability -> critical in maintaining?
> >>>>>>>
> >>>>>>> Overall, the first three sections, "What is Audit Logging", What is
> >> the
> >>>>>>> difference between audit logging and normal logging?" and "What is
> >> Log4j
> >>>>>>> Audit?" are very good: give good overview of the purpose and don't
> >>>>>> assume
> >>>>>>> prior knowledge.
> >>>>>>>
> >>>>>>> From the "Features" section, the narrative changes perspective from
> >> what
> >>>>>>> users would want to what Log4j Audit provides.
> >>>>>>> I would add a few sentences to that transition, something like:
> >>>>>>>
> >>>>>>> {quote}
> >>>>>>> (after Features)
> >>>>>>> Each application has its own audit events. Before using Log4j
> Audit,
> >>>>>>> applications need to define AuditMessages that capture the exact
> >>>>>> attributes
> >>>>>>> of its audit events. The [Getting Started](link) page provides a
> >>>>>> tutorial
> >>>>>>> that explains how to define audit events for an application.
> >>>>>>>
> >>>>>>> (after Audit Event Catalog header)
> >>>>>>> Once audit events are defined, they need to be maintained: as the
> >>>>>>> application evolves, developers will inevitably discover they need
> to
> >>>>>> add,
> >>>>>>> remove or change attributes of the audit events. Log4j Audit can
> >> persist
> >>>>>>> the audit event definitions in a JSON file. This file becomes the
> >> Audit
> >>>>>>> Event Catalog for the application. Log4j Audit is designed to store
> >> the
> >>>>>>> event definition file in a Git repository so that the evolution of
> >> the
> >>>>>>> audit events themselves have an audit trail in the Git history of
> the
> >>>>>> file.
> >>>>>>> Log4j Audit provides a web interface for editing the events.
> >>>>>>>
> >>>>>>> Log4j Audit uses the catalog of events to determine ... (continue
> >> with
> >>>>>>> current text of Audit Event Catalog)
> >>>>>>> {quote}
> >>>>>>>
> >>>>>>> Question about the Requirements section: it isn't clear to me (and
> >>>>>> likely
> >>>>>>> to other readers) why Dynamic Event Catalogs would require a
> database
> >>>>>>> instead of one or more JSON files. Is that explained somewhere?
> >> Perhaps
> >>>>>>> Dynamic Audit Events need a separate page or dedicated section
> >>>>>> somewhere.
> >>>>>>> The Getting Started page mentions "manage dynamic catalogs" in the
> >>>>>>> paragraph under "What you will build" but I couldn't find anything
> on
> >>>>>> the
> >>>>>>> topic of dynamic catalogs.
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>> ----
> >>>>>>> catalog.html
> >>>>>>>
> >>>>>>> From the first paragraph, I would remove "The events may be grouped
> >> by
> >>>>>>> Products and/or Categories, but at this time nothing in Log4j Audit
> >>>>>> makes
> >>>>>>> use of the product or catalog definitions". The same sentences is
> >>>>>> repeated
> >>>>>>> at the bottom of the page and since this feature is not used it is
> >>>>>>> confusing to me that the feature is so prominently mentioned in the
> >>>>>> first
> >>>>>>> paragraph of the page. I would consider removing this feature
> >>>>>> altogether.
> >>>>>>>
> >>>>>>> Overall this is a very good page. Succinct but complete. Consider
> >>>>>> moving it
> >>>>>>> above RequestContext in the left-hand navigation menu.
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>> ----
> >>>>>>> gettingStarted.html
> >>>>>>>
> >>>>>>> Overall, this page is only effective for people who actually
> perform
> >> the
> >>>>>>> steps and execute the commands mentioned in the page.
> >>>>>>>
> >>>>>>> It would be good if the page would also be useful for people who
> only
> >>>>>> read
> >>>>>>> the page but don't actually perform the steps:
> >>>>>>>
> >>>>>>> * Can the page also show an example of an audit event in JSON
> format.
> >>>>>> This
> >>>>>>> could be a simple event with few attributes (maybe a login event?)
> or
> >>>>>> the
> >>>>>>> transfer event that is used later in the page.
> >>>>>>> * I would also like to see the Java interface that is generated
> from
> >>>>>> this
> >>>>>>> JSON audit event.
> >>>>>>> * Finally, I would like to see how my application would use this
> >>>>>> generated
> >>>>>>> Java interface. How do I get an instance, how do I populate the
> >>>>>> attributes,
> >>>>>>> and what do I do with the instance after I populated it?
> >>>>>>>
> >>>>>>> I'm sure the above is available in the source code of the sample
> >>>>>>> application, but this page is a good place to show some of the
> >>>>>> highlights
> >>>>>>> of that source code with some explanatory text.
> >>>>>>>
> >>>>>>> Secondly, the page mentions remote audit logging and how the war
> file
> >>>>>>> provides endpoints for remove audit logging. Is it worth
> dedicating a
> >>>>>>> separate page to show how to configure end points for remote audit
> >>>>>> logging?
> >>>>>>>
> >>>>>>> Finally, about the catalog screenshots: I understand that
> attributes
> >> are
> >>>>>>> managed separately so they can be reused. The second screenshot
> shows
> >>>>>> the
> >>>>>>> billPay and deposit events. Are these events related to the
> transfer
> >>>>>> event
> >>>>>>> that is mentioned in the curl example in this page?
> >>>>>>
> >>>>>> These are events that take place in banking. billPay is paying a
> bill,
> >>>>>> deposit is depositing money into an account, transfer moves money
> >> from one
> >>>>>> account to another. I used these because many people understand
> these
> >>>>>> concepts.
> >>>>>>
> >>>>>>
> >>>>>>> I was trying to see how
> >>>>>>> they could be related but couldn't figure it out.
> >>>>>>> Also, what are the attributes for the billPay and deposit events?
> >>>>>>
> >>>>>> The attributes for these events are those shown in the “Assigned
> >>>>>> Attributes” column. The request context attributes are available for
> >> all
> >>>>>> events.
> >>>>>>
> >>>>>>> If the
> >>>>>>> Catalog Editor has a screen to show the attributes that are part of
> >> an
> >>>>>>> event then it may be good to add a screenshot for this (I guess
> this
> >>>>>> would
> >>>>>>> be the Edit Event screen) as well. That would tie all these
> concepts
> >>>>>>> together.
> >>>>>>
> >>>>>> As I said, the attributes are on the screen that is shown. I would
> >>>>>> suggest you perform the steps in the getting started so you can see
> >> for
> >>>>>> yourself.
> >>>>>>>
> >>>>>>>
> >>>>>>> ----
> >>>>>>> requestContext.html
> >>>>>>>
> >>>>>>> typo: typcial -> typical
> >>>>>>> typo: acrossall -> across all
> >>>>>>> typo: datbase -> database
> >>>>>>>
> >>>>>>> About Mapping Annotations:
> >>>>>>> This is still a bit abstract to me. Would it be possible to provide
> >> some
> >>>>>>> more explanation on when applications should use ClientServer, when
> >>>>>> Local,
> >>>>>>> and when Chained annotations? Perhaps some example use cases? Or,
> if
> >>>>>>> possible, tie this to the use case presented in the sample
> >> application
> >>>>>> (if
> >>>>>>> that makes sense)?
> >>>>>>
> >>>>>> I am not sure what more there is to say.  Local means a value in the
> >>>>>> request context is local to that server and should not be passed to
> >> called
> >>>>>> services. ClientServer means that a value is passed from the current
> >>>>>> application to services it calls. Chained means the value is
> >> associated
> >>>>>> with one request context field on the current server but will be in
> a
> >>>>>> different field in the called service. The example for chained is
> the
> >>>>>> current hostname. The hostname request context field always contains
> >> the
> >>>>>> host name of the current server. When calling a service the current
> >> host
> >>>>>> name moves to the callingHost field so that the called service knows
> >> what
> >>>>>> server called it.
> >>>>>>
> >>>>>>>
> >>>>>>> About Transporting the RequestContext:
> >>>>>>> Until now, the information was generically useful for all
> >> applications,
> >>>>>> but
> >>>>>>> this section is specifically useful for web applications.
> >>>>>>> For people who don't work on web applications this transition may
> be
> >> a
> >>>>>> bit
> >>>>>>> jarring.
> >>>>>>> Would it make sense for this section and the following two sections
> >> to
> >>>>>> be
> >>>>>>> moved to a separate page? Something like "Web Applications" or
> >> "Remote
> >>>>>>> Audit Logging”?
> >>>>>>
> >>>>>> This concept applies to any kind of distributed application. For
> >> example,
> >>>>>> with AMQP we do the exact same thing by copying the RequestContext
> >> fields
> >>>>>> into AMQP headers and then repopulating the RequestContext when the
> >> message
> >>>>>> is processed in the consumer. I have added text to describe this. I
> >> have
> >>>>>> components that do this for my day job but I have not added them to
> >>>>>> log4j-audi.
> >>>>>>
> >>>>>>>
> >>>>>>> ----
> >>>>>>> Remko
> >>>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>
> >>>
> >>>
> >>>
> >>
> >>
> >> --
> > Matt Sicker <boa...@gmail.com>
>
>
> --
Matt Sicker <boa...@gmail.com>

Reply via email to