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>


Reply via email to