On Sat, Apr 28, 2012 at 10:31 PM, Ralph Goers <[email protected]> wrote:
> Are you getting confused as to when the type element is required? If so,
> reread the section on the configuration page.
No, thats not what bugs me. I understand that.
I am fighting with this log4j2.json configuration and can't find the
error. Its only outputting the error messages. A similar log4j2.xml
file works as expected, it is just the json file. If you can explain
me my error, I would be glad.
{
"configuration": {
"status": "trace"
},
"appenders": {
"appender": [
{
"type": "Console",
"name": "Console",
"PatternLayout": {
"pattern": "%m%n"
}
}
]},
"loggers": {
"logger": [
{
"name": "Sub",
"level": "TRACE",
"appender-ref": {
"ref": "Console"
}
}
],
"root": {
"level": "error",
"appender-ref": {
"ref": "Console"
}
}
}
}
>
> Ralph
>
> On Apr 28, 2012, at 1:08 PM, Christian Grobmeier <[email protected]> wrote:
>
>> the first example uses an object as "logger" value,
>> the second one an array with objects.
>>
>> I understood it so that only the array option should work?
>>
>> On Sat, Apr 28, 2012 at 10:05 PM, Ralph Goers
>> <[email protected]> wrote:
>>> What is the problem?
>>>
>>> Ralph
>>>
>>> On Apr 28, 2012, at 1:03 PM, Christian Grobmeier <[email protected]>
>>> wrote:
>>>
>>>> On Sat, Apr 28, 2012 at 4:33 PM, Ralph Goers <[email protected]>
>>>> wrote:
>>>>> OK - I could swear that I copied the examples straight from unit tests.
>>>>> See log4j-routing.json and log4j-routing2.json.
>>>>
>>>> Actually you did. Something is wrong here...
>>>>
>>>> log4j-routing.json:
>>>>
>>>> "loggers": {
>>>> "logger": { "name": "EventLogger", "level": "info",
>>>> "additivity": "false", "appender-ref": { "ref": "Routing" }},
>>>> "root": { "level": "error", "appender-ref": { "ref": "STDOUT" }}
>>>> }
>>>>
>>>> log4j-routing2.json:
>>>>
>>>> "loggers": {
>>>> "logger": [
>>>> { "name": "EventLogger", "level": "info", "additivity":
>>>> "false", "appender-ref": { "ref": "Routing" }},
>>>> { "name": "com.foo.bar", "level": "error", "additivity":
>>>> "false", "appender-ref": { "ref": "STDOUT" }}
>>>> ],
>>>> "root": { "level": "error", "appender-ref": { "ref": "STDOUT" }}
>>>> }
>>>>
>>>> Same case in the appenders section.
>>>> Probably there is a problem in the unit test too
>>>> Cheers
>>>>
>>>>>
>>>>
>>>>> Ralph
>>>>>
>>>>> On Apr 28, 2012, at 7:15 AM, Christian Grobmeier wrote:
>>>>>
>>>>>> hey ralph,
>>>>>>
>>>>>> its a pleasure. I like that code and it is impressive that you wrote i
>>>>>> mostly alone
>>>>>>
>>>>>> I have found an error on this page. There is a sample like that:
>>>>>>
>>>>>> "loggers": {
>>>>>> "logger": { "name": "EventLogger", "level": "info",
>>>>>> "additivity": "false", "appender-ref": { "ref": "Routing" }},
>>>>>> "root": { "level": "error", "appender-ref": { "ref": "STDOUT" }}
>>>>>> }
>>>>>>
>>>>>> On the same page, above the example you mentioned below.
>>>>>>
>>>>>> When i have time, I will try this further and correct it
>>>>>> Probably tomorrow or this night.
>>>>>>
>>>>>> Cheers
>>>>>>
>>>>>> On Sat, Apr 28, 2012 at 4:00 PM, Ralph Goers
>>>>>> <[email protected]> wrote:
>>>>>>> Wow - it is really great to have you digging into this.
>>>>>>>
>>>>>>> Did you look
>>>>>>> at http://people.apache.org/~rgoers/log4j2/manual/configuration.html?
>>>>>>> It has
>>>>>>> two sample json configuration files and talks about what you need to do
>>>>>>> to
>>>>>>> use arrays. In particular, the loggers section looks like
>>>>>>>
>>>>>>> "loggers": {
>>>>>>> "logger": [
>>>>>>> { "name": "EventLogger", "level": "info", "additivity": "false",
>>>>>>> "appender-ref": { "ref": "Routing" }},
>>>>>>> { "name": "com.foo.bar", "level": "error", "additivity": "false",
>>>>>>> "appender-ref": { "ref": "Console" }}
>>>>>>> ],
>>>>>>> "root": { "level": "error", "appender-ref": { "ref": "STDOUT" }}
>>>>>>> }
>>>>>>>
>>>>>>> Ralph
>>>>>>>
>>>>>>>
>>>>>>> On Apr 28, 2012, at 6:09 AM, Christian Grobmeier wrote:
>>>>>>>
>>>>>>> Hei folks,
>>>>>>>
>>>>>>> i created a simple json configuration. I could not load it for unknown
>>>>>>> reasons, but I want to address something else with this message.
>>>>>>>
>>>>>>> Given this:
>>>>>>>
>>>>>>> {
>>>>>>> "configuration": {
>>>>>>> "appenders": {
>>>>>>> "Console": {
>>>>>>> "name": "Console",
>>>>>>> "PatternLayout": {
>>>>>>> "pattern": "%m%n"
>>>>>>> }
>>>>>>> }
>>>>>>> },
>>>>>>> "loggers": {
>>>>>>> "logger": {
>>>>>>> "name": "Sub",
>>>>>>> "level": "TRACE",
>>>>>>> "appender-ref": {
>>>>>>> "ref": "Console"
>>>>>>> }
>>>>>>> },
>>>>>>> "root": {
>>>>>>> "level": "error",
>>>>>>> "appender-ref": {
>>>>>>> "ref": "Console"
>>>>>>> }
>>>>>>> }
>>>>>>> }
>>>>>>> }
>>>>>>> }
>>>>>>>
>>>>>>> Why don't we use JSON arrays? For example in the "loggers" Objekt we
>>>>>>> define a "logger" and "root". It seems to me that I would need another
>>>>>>> "logger" pretty soon. It is more or less a type of what I want. But
>>>>>>> having the same keys in one single object feels strange. It is not
>>>>>>> permitted form the json format (to my knowledge), but what I somebody
>>>>>>> wants to create a gui to create these files? In case of for example JS
>>>>>>> he might have a problem with duplicated keys.
>>>>>>>
>>>>>>> We could rewrite it to:
>>>>>>>
>>>>>>> "loggers": [
>>>>>>> {
>>>>>>> "type" : "logger",
>>>>>>> "name": "Sub",
>>>>>>> "level": "TRACE",
>>>>>>> "appender-ref": { "ref": "Console" }
>>>>>>> },
>>>>>>> {
>>>>>>> "type" : "root",
>>>>>>> "name": "App",
>>>>>>> "level": "TRACE",
>>>>>>> "appender-ref": { "ref": "Console" }
>>>>>>> }
>>>>>>> ],
>>>>>>>
>>>>>>>
>>>>>>> This feels more intuitive to me and might avoid problems when others
>>>>>>> want ot use that file. At the moment I am not educated on the impacts
>>>>>>> of this change yet. I would say the same should happen with appenders
>>>>>>> or any other key, which holds a list of objects.
>>>>>>>
>>>>>>> Cheers
>>>>>>> Christian
>>>>>>>
>>>>>>> ---------------------------------------------------------------------
>>>>>>> To unsubscribe, e-mail: [email protected]
>>>>>>> For additional commands, e-mail: [email protected]
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> http://www.grobmeier.de
>>>>>> https://www.timeandbill.de
>>>>>>
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: [email protected]
>>>>>> For additional commands, e-mail: [email protected]
>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: [email protected]
>>>>> For additional commands, e-mail: [email protected]
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> http://www.grobmeier.de
>>>> https://www.timeandbill.de
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: [email protected]
>>>> For additional commands, e-mail: [email protected]
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [email protected]
>>> For additional commands, e-mail: [email protected]
>>>
>>
>>
>>
>> --
>> http://www.grobmeier.de
>> https://www.timeandbill.de
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
--
http://www.grobmeier.de
https://www.timeandbill.de
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]