I have to agree with Remko. My ratio of lines-of-your-messages-read to being-convinced-you-have-a-valid-point is exceedingly high. Also, truly perceptive people judge the effectiveness of their communications based on the feedback of others.

Cheers,

Eric

On 08/14/2015 02:19 PM, Xen wrote:
Well actually that is non-negotiable to me. I can't make my emails (or whatever, I don't /NEED/ to be emailing here, that's not really the point I am making...) shorter because then they'd miss the point and have no effect. My emails are perfectly to the point, it is just that the point needs more explaining ;-).

But if you think I should not write any emails at all, you'd be welcome, then I would go spend my time on something else again.

The time spent on 'making them shorter' (even when it destroys the purpose of the emails) would probably also vastly outweight the time saved by those who would read them, etc ;-). You'd be rewriting your email and losing all the juice and all the good stuff and in the end nobody cares about it anyway.

Because you've sacrificed your own feeling of what is right and lost your happiness and joy in doing it, and that doesn't inspire anyway in the least. Anyway.

I do agree with your point that it is unfortunate timing that the next
release of log4j 2 requires java 7, at the same time that we announce we
are not supporting log4j 1.2 any more. It means that some people who want
to migrate may not be able to (or will have to use version 2.3 which was
still built with java 6). I agree this is not ideal.

I'd say that given current conditions you have no choice but to go on, but that's why I am writing the emails; to change current conditions ;-).

Regards ;-).



Op 14-8-2015 om 20:07 schreef Remko Popma:
Bart,

In reality we haven't been fixing issues in log4j 1.2 for a while, so the announcement doesn't really change anything. We are all volunteers working on this in our spare time, and we choose to spend our time working on log4j 2. We thought it was better for everyone if we make our intentions clear,
hence the announcement.

I do agree with your point that it is unfortunate timing that the next
release of log4j 2 requires java 7, at the same time that we announce we
are not supporting log4j 1.2 any more. It means that some people who want
to migrate may not be able to (or will have to use version 2.3 which was
still built with java 6). I agree this is not ideal.

Best regards,
Remko

P.S.
Some constructive criticism: your emails are a bit long. I hope you won't be offended by this, but could I ask you to spend a bit more time on making
them shorter and more to the point (same functionality in fewer lines of
code is better, no)?


On Sat, Aug 15, 2015 at 1:17 AM, Xen <x...@dds.nl> wrote:

In response to Jinhong Lu:

"but all my projects, including spark, hadoop, kafka, they all use
log4j1.x "




I came across a project as well, it was /TeamPostgreSQL, /using 1.2 or
whatever, it is the only jar on its classpath.

I must say though:

"We are so happy with the quality and stability of Log4j 2, we are
convinced it is a fantastic replacement for Log4j 1."

That's clearly a lie. You wouldn't say these things if you were really
happy and really convinced it'd be a replacement. That is make believe. In
that case you'd say something like

"There's not much to be said. The thing works and it works well. I think people will be quite content with it, but there might be a few that will
hold on to version 1.x."

In this case you are belying the fact that many users are going to want to hold on to 1.x, and you are not acknowledging or referencing that in your words, but they are embedded within it regardless. So the lie is visible anyway; anyone who reads it can sense it. Because you know this and they
know you know this. You know there are many people who are going to be
discontent with such an end of support and of development, perhaps not
both, perhaps not any. But you're taking the jump anyway with a bit of
"forcing this upon everyone, unwilling as they are" cause to it......

And I guess, it's just a choice you make, in a sense it is not good or bad and not something to judge, just a personal choice I guess with its flock
of repercussions.

But I think you should be aware of the fact that not everyone is going to agree with it. Log4J is a pretty commonly used component and that means it should have a broad installable base. Although Java 7 is now the default on most current systems, I suspect there are still going to be many that run 1.6 (or even 1.5!!) and you're even already thinking of installing 1.8 or
requiring 1.8 for your newer versions.

$ apt list openjdk*
Listing... Done
openjdk-7-dbg/stable 7u79-2.5.6-1~deb8u1 amd64
openjdk-7-demo/stable 7u79-2.5.6-1~deb8u1 amd64
openjdk-7-doc/stable 7u79-2.5.6-1~deb8u1 all
openjdk-7-jdk/stable,now 7u79-2.5.6-1~deb8u1 amd64 [installed,automatic] openjdk-7-jre/stable,now 7u79-2.5.6-1~deb8u1 amd64 [installed,automatic]
openjdk-7-jre-dcevm/stable 7u60-3 amd64
openjdk-7-jre-headless/stable,now 7u79-2.5.6-1~deb8u1 amd64
[installed,automatic]
openjdk-7-jre-lib/stable 7u79-2.5.6-1~deb8u1 all
openjdk-7-jre-zero/stable 7u79-2.5.6-1~deb8u1 amd64
openjdk-7-source/stable 7u79-2.5.6-1~deb8u1 all

That's the default installable base on debian 8. If I were to deploy my
application (any application, really) on systems that are not under my
control... it is pretty common for shell hosts for instance to not have
java or javac at all for 'security reasons'. The stupidity yeah, but it
happens. So I don't know but you can't push these limits too much.

I'm kinda wondering what kind of personal goals of interests you have in pushing this version evolution so much? When you see that half the world,
so to speak, still uses version 1.x. But it's like you have an ulterior
motive, such as e.g. an employer that wants it, or a certain subsection of what you work with who would want that. Or some bragging rights, I don't
know.

You see a LOT of mismatched versioning attempts these days. I mean a newer major version comes out, something jumps from 2 to 3 or from 1 to 2. And in *most* cases the new version seem to be worse than the old one. Python 3 seems not better or more self-congruent than Python 2. SQLite 2 seems to have a lot of adherents still, including myself perhaps. GTK 3 has seen a
change in how you use it that is just way less attractive than GTK2, at
least for the python wrapper that existed for GTK2. PyGTK2 was reasonably easy to use compared to the convoluted way of calling and using the library
that exists now.

In general I just sense that "newer versions" are done for bad reasons. I don't know why this seems to be such a common case. I can see things, if I study them, for instance in Python 3, or whatever, if I study it I come up
with reasons for saying that the design has gone bad.

And you can sense it right away, because of how the maintainers or
developers go about it. And then when they see uptake is below what they want, they start to "persuade" people who don't feel like using the thing at all. That's what happened or is happening with Python 3. They are trying to "push" and to entice and give REASONS for using the thing when it isn't self evident. Still a lot of people use 2.7 or they use that wrapper-bridge
thing that exists.

I just jumped on Log4J 2 because from a developing perspective it makes no
sense to go to 1.2 when there is no interest for that anymore from the
developer point of view.

No interest, no communication, no aliveness.

Personally I would make it a goal to further develop 1.x up to a certain point, make it a subgoal, and one that agrees with 2.x such that you have a
bit of a convergence; you might port something back from 2 to 1 for
instance, or whatever. Inspire the old project with the new or / and vice
versa.

I would ensure that the old java versions still have a place. It would be a rotten place if some old server that can't be upgraded by you or anyone wouldn't be able to run Log4j and you are also closing the gap between the existing user base that is maybe 80-90% version 1, and the ever widening or departing version 2 that gets further and further away from that old Java 1.5. And what reasons do you have to go for java 7 and 8? Probably not all
that important except that it is a selling point of some thing for some
people. A library must be conservative.

And it's moving too fast. Maybe you like it to move fast but the problem exacerbates. People start to lose the connection and fall in the gap. They can't really leave 1.x behind. They fancy 2.x. But the further away it gets (from e.g. java requirements) the harder it is to tag along. For whom are
you doing it? For yourselves only?....

Yourselfes only?.

I think it is a problem for this. You seem to focus on introducing new
features at the cost, the vast cost, of support for older systems. And
those features are not vital, just flashy. Lambda support? Come on. It
can't be essential. I've never used it and never wanted to use it yet. I don't even think it has a real place in Java the way it is, not that I have looked at it extensively. Maybe it just doesn't have a place here, whatever.

I condider java having gone in bad directions anyway starting with 1.5.
All of the designs are ugly in my mind and to my perception and opinion.

I love the old java but all of the new things continuously make the code
more hideous and I believe harder to maintain. Just look at all the
annotations for the plugins and all. It is very hard to read and quite
complex or complicated the way I see it.

Generics are hard and hardly readable. @Override annotations hardly have any use. And become 'invalid' once the code compiles correctly the first times. Superfluous. I don't know much about it, much else. I just think the
code is getting uglier and uglier that I see around.

Enums are also not that great and suffer from some serious design flaws. The move from arrays to Collection classes is too great and you are often left to choose completely between two competing paradigms in the same code. Do I use enums and collections? Or do I use indexes and arrays? Do I use enums with fields to index arrays? . How much slower is my code going to be if a switch statement requires a method call and an array lookup? . Where is the pristine quality of using bitsets or even java BitSets?. (We still don't have "struct" types, e.g. pascal had "record" type structures that caused you to accurately design a form of memory structure that could be
instantiated). Java code is becoming and has become convoluted because
programming essentials are left behind and everything becomes Expensive.
Because of memory alignment there is hardly any use for
non-default-bitwidth integers and the smaller types that exist have no
purpose because they are signed. And everyone must be feeling this, all of this. You can't program this shit for longer periods if you don't feel what
it does to you. Where's the fun in all of this? There are not even good
(generic) binary tree or whatever tree implementations that you can really
use to store objects in. At least in the default collections.

Oh well, just my way of seeing things I guess. I have Java 8 on the
windows machine, 7 on my new debian VPS, but I was seriously planning to
develop and deploy for java 5.

Seeing as that, whatever. Anyway I'll go and send that email I guess.



Op 14-8-2015 om 8:05 schreef Jinhong Lu:

you mean upgrade to log4j2?

but all my projects, including spark, hadoop, kafka, they all use log4j1.x

2015-08-14 13:25 GMT+08:00 Ralph Goers<ralph.go...@dslextreme.com>:

Please see -
https://blogs.apache.org/foundation/entry/apache_logging_services_project_announces
<

https://blogs.apache.org/foundation/entry/apache_logging_services_project_announces

.

Ralph

On Aug 13, 2015, at 10:08 PM, Jinhong Lu<lujinho...@gmail.com> wrote:
I met this exception when using syslogappender.

my log4j version is 1.2.16.

Any idea?  thanks.




java.lang.NoSuchFieldError: errorHandler
        at

org.apache.log4j.net
.SyslogAppender.setSyslogHost(SyslogAppender.java:391)

~[log4j-1.2.16.jar:na]
        at

com.netease.sytopology.util.MySysLogger.<init>(MySysLogger.java:39)

~[stormjar.jar:na]
        at

com.netease.sytopology.util.MySysLogger.getInstance(MySysLogger.java:28)

~[stormjar.jar:na]
        at

com.netease.sytopology.bolt.FilterFunction.prepare(FilterFunction.java:65)

~[stormjar.jar:na]
        at

storm.trident.planner.processor.EachProcessor.prepare(EachProcessor.java:54)

~[storm-core-0.9.4.jar:0.9.4]
        at

storm.trident.planner.SubtopologyBolt.prepare(SubtopologyBolt.java:121)

~[storm-core-0.9.4.jar:0.9.4]
        at

storm.trident.topology.TridentBoltExecutor.prepare(TridentBoltExecutor.java:231)

~[storm-core-0.9.4.jar:0.9.4]
        at

backtype.storm.daemon.executor$fn__4722$fn__4734.invoke(executor.clj:692)

~[storm-core-0.9.4.jar:0.9.4]
at backtype.storm.util$async_loop$fn__458.invoke(util.clj:461)
~[storm-core-0.9.4.jar:0.9.4]
        at clojure.lang.AFn.run(AFn.java:24) [clojure-1.5.1.jar:na]
        at java.lang.Thread.run(Thread.java:745) [na:1.7.0_67]


And here is my code:


import org.apache.log4j.Level;

import org.apache.log4j.Logger;

import org.apache.log4j.PatternLayout;

import org.apache.log4j.helpers.OnlyOnceErrorHandler;

import org.apache.log4j.net.SyslogAppender;

import org.apache.log4j.varia.FallbackErrorHandler;


public class MySysLogger {

//ä»¥ä¸‹å ‚æ•°å ‡å ¯æ ¹æ ®éœ€è¦ æ”¾åˆ°é… ç½®æ–‡ä»¶ä¸­ã€‚

//默认日志级别

private static Level level = Level.INFO;

//æ—¥å¿—æŽ¥æ”¶æœ åŠ¡å™¨

private static String syslogHost = "172.16.1.18";

//设置facility

private static String facility = "local7";

private static String  loggerName = "";


public static void setLoggerName(String loggerName2) {

MySysLogger.loggerName = loggerName2;

}


private static Logger LOG = null;


public static synchronized Logger getInstance() {

if (LOG == null) {

new MySysLogger(loggerName);

}

return LOG;

}


private  MySysLogger(String loggerName) {


LOG = Logger.getRootLogger();

LOG.setLevel(level);

SyslogAppender appender = new SyslogAppender();

appender.setErrorHandler(new FallbackErrorHandler());


appender.setSyslogHost(syslogHost);

appender.setLayout(new PatternLayout(

"%r " + loggerName +" [%t] %-5p %C%x - %m"));

appender.setHeader(true);

appender.setFacility(facility);

LOG.addAppender(appender);

}


}



---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-user-h...@logging.apache.org




---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-user-h...@logging.apache.org

Reply via email to