Re: Getter method for retrieving the attributes of an appender from the LoggerContext

2016-01-27 Thread Remko Popma
I agree. It seems like we're preparing to do a lot of work to essentially enable users to duplicate our unit tests... Sent from my iPhone > On 2016/01/28, at 0:44, Mikael Ståldal wrote: > > OK, then the keeping config nodes approach might not be a good idea. > > However, I still don't think

Re: Getter method for retrieving the attributes of an appender from the LoggerContext

2016-01-27 Thread Mikael Ståldal
OK, then the keeping config nodes approach might not be a good idea. However, I still don't think that the benefit of being able to inspect appender's config justifies the cost of increasing the complexity of every appender (including future ones and 3rd party plugins). On Wed, Jan 27, 2016 at 4:

Re: Getter method for retrieving the attributes of an appender from the LoggerContext

2016-01-27 Thread Apostolis Giannakidis
One use case that I have at hand at the moment is that I want to be able to verify that my appenders have the expected configuration attributes. For example, I would like to be able to verify that my syslog appender is connecting to the expected host,port,protocol, etc. On Wed, Jan 27, 2016 at 3:1

Re: Getter method for retrieving the attributes of an appender from the LoggerContext

2016-01-27 Thread Mikael Ståldal
It would be useful if Apostolis Giannakidis can explain the use case behind this request, now it is a bit abstract to me. On Wed, Jan 27, 2016 at 4:13 PM, Matt Sicker wrote: > I mean keeping the Node tree to get attributes. It would only work from > config files (and the config builder classes).

Re: Getter method for retrieving the attributes of an appender from the LoggerContext

2016-01-27 Thread Matt Sicker
I mean keeping the Node tree to get attributes. It would only work from config files (and the config builder classes). We get questions every so often about modifying the config programmatically which would either need to maintain more Nodes or just be unsupported. On 27 January 2016 at 09:09, Mik

Re: Getter method for retrieving the attributes of an appender from the LoggerContext

2016-01-27 Thread Mikael Ståldal
I don't quite understand what you mean. On Wed, Jan 27, 2016 at 4:02 PM, Matt Sicker wrote: > That sounds a little fragile as some people either create or modify their > creation directly from the plugin factories. > > On 27 January 2016 at 07:05, Mikael Ståldal > wrote: > > > Then perhaps we s

Re: Getter method for retrieving the attributes of an appender from the LoggerContext

2016-01-27 Thread Matt Sicker
That sounds a little fragile as some people either create or modify their creation directly from the plugin factories. On 27 January 2016 at 07:05, Mikael Ståldal wrote: > Then perhaps we should keep the node tree and expose it for this kind of > queries, something like this: > > String hostname

Re: Getter method for retrieving the attributes of an appender from the LoggerContext

2016-01-27 Thread Mikael Ståldal
Then perhaps we should keep the node tree and expose it for this kind of queries, something like this: String hostname = loggerContext.getConfiguration(). getAttributesForAppender("syslogAppender").get("host"); This would require a new method in org.apache.logging.log4j.core.config.Configuration:

Re: Getter method for retrieving the attributes of an appender from the LoggerContext

2016-01-27 Thread Ralph Goers
While I understand your point, the node tree is discarded after the plugins are created. We would have to keep it around for this to work. Furthermore, each component would need to have a reference to its corresponding node, which we obviously don't currently do. Ralph > On Jan 27, 2016, at 2:

Re: Getter method for retrieving the attributes of an appender from the LoggerContext

2016-01-27 Thread Mikael Ståldal
To me it does not seems good to force all Appender implementations to implement this. Especially not since the next logical step would then be to do the same with other components such as Layouts. That would be a lot of work in total, and also add more work for all future components, including 3rd

Re: Getter method for retrieving the attributes of an appender from the LoggerContext

2016-01-26 Thread Gary Gregory
Apostolis, You are warmly welcome to contribute to Log4j. You can create a JIRA and attach a patch in unified diff file format. Unit tests as part of the patch are a must IMO. Feel free to flush out any design or implementation here on the dev ML. Thank you! Gary On Tue, Jan 26, 2016 at 5:02 PM,

Re: Getter method for retrieving the attributes of an appender from the LoggerContext

2016-01-26 Thread Ralph Goers
All the attributes have to have String representations to be usable in the XML, JSON & Properties configurations. Yes, the Map could contain Objects but then every one of them has to be cast to its real object to be usable. The map should be read-only because modifying its contents would have n

Re: Getter method for retrieving the attributes of an appender from the LoggerContext

2016-01-26 Thread Gary Gregory
Sure, Object makes sense. Gary On Tue, Jan 26, 2016 at 4:24 PM, Apostolis Giannakidis < ap.giannaki...@gmail.com> wrote: > One thing to note here. Correct me if I am wrong, but the map should > be Map Object> because not all attributes are Strings. From the top of my head, I > know that an attri

Re: Getter method for retrieving the attributes of an appender from the LoggerContext

2016-01-26 Thread Apostolis Giannakidis
One thing to note here. Correct me if I am wrong, but the map should be Map because not all attributes are Strings. From the top of my head, I know that an attribute could also be a boolean. On Wed, Jan 27, 2016 at 12:06 AM, Gary Gregory wrote: > I could see AbstractAppender implementing a getAt

Re: Getter method for retrieving the attributes of an appender from the LoggerContext

2016-01-26 Thread Gary Gregory
I could see AbstractAppender implementing a getAttributes() method like this: public Map getAttributes() { Map map = new HashMap<>(); fillAttributeMap(map); // (1) should the map be read-only? why? // (2) if the map is cached in an ivar, the it must be updated b

Re: Getter method for retrieving the attributes of an appender from the LoggerContext

2016-01-26 Thread Apostolis Giannakidis
Well, since the idea is to add it to the Appender interface, it means that all concrete Appenders need to be modified as well. So, yes, I can give it a try to implement it for all the Appenders. One other simple way would be to implement it once in the AbstractAppender so that all its subclasses wi

Re: Getter method for retrieving the attributes of an appender from the LoggerContext

2016-01-26 Thread Gary Gregory
On Tue, Jan 26, 2016 at 1:06 PM, Apostolis Giannakidis < ap.giannaki...@gmail.com> wrote: > Actually, since this seems to be a useful feature, I would love to do the > patch myself and contribute it to the project, if you don't mind. > Do you plan on implementing this for all Appenders? Gary >

Re: Getter method for retrieving the attributes of an appender from the LoggerContext

2016-01-26 Thread Apostolis Giannakidis
Actually, since this seems to be a useful feature, I would love to do the patch myself and contribute it to the project, if you don't mind. On Tue, Jan 26, 2016 at 8:56 PM, Ralph Goers wrote: > Actually, I kind of like the idea of adding a getAttributes() method to > the Appender interface. Then

Re: Getter method for retrieving the attributes of an appender from the LoggerContext

2016-01-26 Thread Ralph Goers
Actually, I kind of like the idea of adding a getAttributes() method to the Appender interface. Then each concrete Appender would do: public void getAttributes() { Map attributes = new HashMap<>(); super.getAttributes(attributes): attributes.put(“myAttribute1”, “value1”); return C

Re: Getter method for retrieving the attributes of an appender from the LoggerContext

2016-01-26 Thread Gary Gregory
How about adding getters for the fields in org.apache.logging.log4j.core.net.AbstractSocketManager? Gary On Tue, Jan 26, 2016 at 12:20 PM, Matt Sicker wrote: > You could always use reflection to access it for now. > > On 26 January 2016 at 14:17, Apostolis Giannakidis < > ap.giannaki...@gmail.c

Re: Getter method for retrieving the attributes of an appender from the LoggerContext

2016-01-26 Thread Matt Sicker
You could always use reflection to access it for now. On 26 January 2016 at 14:17, Apostolis Giannakidis wrote: > Thank you very much for the prompt reply Ralph. > > As far as I can see, the SyslogAppender class does not expose a way to > access these attributes. So, if there is no other way of

Re: Getter method for retrieving the attributes of an appender from the LoggerContext

2016-01-26 Thread Apostolis Giannakidis
Thank you very much for the prompt reply Ralph. As far as I can see, the SyslogAppender class does not expose a way to access these attributes. So, if there is no other way of accessing these attributes, then I am not able to retrieve the attributes that I want from the existing SyslogAppender imp

Re: Getter method for retrieving the attributes of an appender from the LoggerContext

2016-01-26 Thread Ralph Goers
Not exactly. You can do: Appender appender = ctx.getConfiguration().getAppender(“syslogAppender”); then you would have to do SyslogAppender syslogAppender = (SyslogAppender) appender; normally you would probably use instanceof to verify it is actually a SyslogAppender. Once you have that you

Getter method for retrieving the attributes of an appender from the LoggerContext

2016-01-26 Thread Apostolis Giannakidis
Hello team, I have created a logger with an appender using the ConfigurationBuilder and the AppenderComponentBuilder. Let's say that this is how I create my appender: AppenderComponentBuilder appenderBuilder = builder.newAppender( "syslogAppender", "Syslog" ) .add