Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 1C50A200BA5 for ; Wed, 19 Oct 2016 09:45:50 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 1ACD1160AFB; Wed, 19 Oct 2016 07:45:50 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id DF060160ADE for ; Wed, 19 Oct 2016 09:45:48 +0200 (CEST) Received: (qmail 52898 invoked by uid 500); 19 Oct 2016 07:45:47 -0000 Mailing-List: contact log4j-user-help@logging.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Help: List-Post: List-Id: "Log4J Users List" Reply-To: "Log4J Users List" Delivered-To: mailing list log4j-user@logging.apache.org Received: (qmail 52887 invoked by uid 99); 19 Oct 2016 07:45:47 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd3-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 19 Oct 2016 07:45:47 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd3-us-west.apache.org (ASF Mail Server at spamd3-us-west.apache.org) with ESMTP id 25F36180993 for ; Wed, 19 Oct 2016 07:45:47 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd3-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 1.279 X-Spam-Level: * X-Spam-Status: No, score=1.279 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=2, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001] autolearn=disabled Authentication-Results: spamd3-us-west.apache.org (amavisd-new); dkim=pass (2048-bit key) header.d=magine-com.20150623.gappssmtp.com Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd3-us-west.apache.org [10.40.0.10]) (amavisd-new, port 10024) with ESMTP id kkRjIpEtNdIN for ; Wed, 19 Oct 2016 07:45:40 +0000 (UTC) Received: from mail-qk0-f174.google.com (mail-qk0-f174.google.com [209.85.220.174]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTPS id 253965F24B for ; Wed, 19 Oct 2016 07:45:39 +0000 (UTC) Received: by mail-qk0-f174.google.com with SMTP id f128so21412649qkb.1 for ; Wed, 19 Oct 2016 00:45:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=magine-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=p3gSKNa8Uf2lxAMJ47ffh4tSEKa2ms9PoG4L+C37OeU=; b=F1KaGDPS8/+OAfgSOS3iNFJnaIJUC3DXvDXNewRUNl31+pxn6kvdPlF3wLFl0jEeKl zF9JieaqYUMquD6inhhXCGgW1g38Q5SSNjKmvLBsXHlL6Uq06AAX9fmRllY8Q1LQKqcN oie49L3wmrN+tpAuziDKlx5It/QNMZlTUzCEhkNNBcKX+zXTyzv7DcXHXiUatTWpLsUy eUeoO1Q8gpUVeuOWUyifj9o26O2OpebFQLISWJ6S77vZ9miUOOt82kFmnITR0gf4oKbK 0U0jZ0p2Bb9RuSmYDJSJxB52spVrRMPy8XlHYdgi08HaWG+TsUitKzr7o3LIdPzTqLYz PAFA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=p3gSKNa8Uf2lxAMJ47ffh4tSEKa2ms9PoG4L+C37OeU=; b=Oarwvu9YRPeIpgZg9YYoGLiEJd5SwQKIcxzb6wFsVNBLas3Fy12CGFfR24WQDJy0dm NC3KesO6F+qRhNdKoZipoUit9h0PO0NqtUlBztjeDU/ND2s1Sp1wweSkqVMmEHJnNAq/ 8bGXh3UOhkQCzHpANSCOfovBqLvGU0pWPYAGigjpYCwRCNBhXgui/8mqhNTQEXs9oaK6 ZPhkJdFJ4CaobStbIgpSr6q8bm/BdowWKFwT1GCGIWCNmIlZgzfsMsPZyT2OruEjW9/C 6S+kzvet6T/KPjZID9B7SiGE8NWt0a6EWvS4GVvvY8TgWUqtBqkA6eaJmJqwqayqAjiE Z3Kw== X-Gm-Message-State: AA6/9RngFJ+Uk5f2AZ5KQyDN52ikHpRqqkYfejF94AOLc/8IPg8xbndU3HPqoNg8UbwvU4i082jjdDlwNS89ul/u X-Received: by 10.55.94.5 with SMTP id s5mr5357366qkb.102.1476863138004; Wed, 19 Oct 2016 00:45:38 -0700 (PDT) MIME-Version: 1.0 Received: by 10.12.136.217 with HTTP; Wed, 19 Oct 2016 00:45:37 -0700 (PDT) In-Reply-To: References: From: =?UTF-8?Q?Mikael_St=C3=A5ldal?= Date: Wed, 19 Oct 2016 09:45:37 +0200 Message-ID: Subject: Re: porting log4j2 to .NET To: Log4J Users List Content-Type: multipart/alternative; boundary=001a114e7152b933de053f32fe0c archived-at: Wed, 19 Oct 2016 07:45:50 -0000 --001a114e7152b933de053f32fe0c Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable It seems to me that a (conceptually) simple and constructive way forward would be to improve or redo (depending on the current state of it) Log4Net to be on par with with Log4j 2.x in terms of architecture and features (such as support for markers). Log4j is currently the most advanced and comprehensive logging framework, so let's model the others after it. On Wed, Oct 19, 2016 at 3:36 AM, Nicholas Duane wrote: > But I'm not suggesting a code base that will run everywhere. As I said, > I'm not talking about a single source code base. What I'm suggesting is = a > single design/architecture which is then implemented across a set of > runtimes/OS's. As opposed to what seems to be the case now where log4j i= s > its own team with it's own design and log4net, I guess, was originally a > port of log4j but might be moving in its own direction. > > > I suggested the same to the log4net team. And while it could be the case > that I could help with the log4net effort, I would not be interested in i= t > going off in its own direction as I see a big benefit in having similar > logging frameworks across Java and .NET. > > > Thanks, > > Nick > > ________________________________ > From: Ralph Goers > Sent: Tuesday, October 18, 2016 8:08 PM > To: Log4J Users List > Subject: Re: porting log4j2 to .NET > > I feel lost because I don=E2=80=99t understand the concept of a code base= that > will run everywhere in any language. The run everywhere part is called > =E2=80=9CJava=E2=80=9D. The run in any language part doesn=E2=80=99t exis= t as far as I know, let > alone when combined with =E2=80=9Crun everywhere=E2=80=9D. So I don=E2=80= =99t know where that part > of the discussion is coming from. > > It would be possible to create implementations of the Log4j design in > multiple languages, but we would need many more committers with skills in > those various languages to do it. To be sure, I would love to see that > happen, but it isn=E2=80=99t possible with the set of committers who acti= vely > contribute to the logging project today. If you are volunteering to kick > that off we won=E2=80=99t get in your way. > > Ralph > > > > > On Oct 18, 2016, at 1:53 PM, Nicholas Duane wrote: > > > > Doesn't sound like you're too lost. Yes, plug-ins certainly is an area > where the implementation will cause variations, in the config for > instance. And with respect to asynchronous appenders, that might even be= a > feature missing in some implementations if support for it would be too > difficult. > > > > > > By the way, thanks to everyone for putting up with my questions as I tr= y > to work though the issues I have with our implementation. > > > > > > Thanks, > > > > Nick > > > > ________________________________ > > From: Ralph Goers dslextreme.com>> > > Sent: Tuesday, October 18, 2016 4:25 PM > > To: Log4J Users List > > Subject: Re: porting log4j2 to .NET > > > > I=E2=80=99ve gotten completely lost in this conversation. > > > > The design certainly doesn=E2=80=99t need to know about the language, b= ut > certain design features have to be implementable. > > > > For example, to use the same configuration each implementation would > have to support the plugin concept. The Java implementation relies upon > annotations to do this. .NET has something similar but other languages ma= y > not. Asynchronous Loggers take advantage of a highly optimized concurren= t > queue. Although you might be able to create something equivalent in othe= r > languages it might not scale as well. Then again, some languages don=E2= =80=99t > support multi-threading so either might require all loggers to be > synchronous. > > > > Ralph > > > >> On Oct 18, 2016, at 10:22 AM, Nicholas Duane wrote: > >> > >> I guess I don't agree. And just to be clear, I'm not talking about > trying to have a huge percentage, or any at all really, of single source > and then glue code around it for the various runtimes/OS's you're targeti= ng. > >> > >> > >> I'm not that familiar with log4j2 but I would assume you have: > >> > >> > >> * a core engine with accepts events and then runs them through some > checks before throwing them out or sending them along their way. > >> > >> > >> * seems the major abstraction is the appender. > >> > >> > >> * some other abstractions like filters and layouts. > >> > >> > >> * configuration > >> > >> > >> * an object model such that most, if not all, can be configured > programmatically > >> > >> > >> I'm sure there's some stuff I'm missing. Still not sure why most of > the design for this has to know what runtime/language it's targeting. > >> > >> > >> Thanks, > >> > >> Nick > >> > >> ________________________________ > >> From: Matt Sicker boards@gmail.com >> > >> Sent: Tuesday, October 18, 2016 12:22 PM > >> To: Log4J Users List > >> Subject: Re: porting log4j2 to .NET > >> > >> Really, the only portable-ish way to make a common framework would be = to > >> write them in C or Rust or something and make glue code for every > runtime > >> out there. JVM users tend to prefer Java-native libraries over > >> JNI/JNA/whatever type libraries, and I'm sure that's not uncommon in > some > >> other runtimes. > >> > >> On 18 October 2016 at 10:11, Mikael St=C3=A5ldal > > >> wrote: > >> > >>> In my opinion, one of the major benefits of Log4j is its comprehensiv= e > >>> ecosystem of plugins (appenders, layouts, etc), both bundled and 3rd > party. > >>> This will automatically benefit all users of Log4j, regardless of > language > >>> (on the JVM) and OS (that you can run the JVM on). But this does not > extend > >>> to other runtimes (e.g. .Net). > >>> > >>> Another benefit is that your application and 3rd party > frameworks/libraries > >>> you use can log via the same framework and you can collect the logs > >>> together. This does not extend to other runtimes either, since you > won't > >>> use the same libraries. > >>> > >>> On Tue, Oct 18, 2016 at 5:03 PM, Matt Sicker > wrote: > >>> > >>>> I'm saying the architecture of the code depends on the language you'= re > >>>> using. Different design patterns apply to different languages, for > >>>> instance. A logging framework in Java and C# might be very similar, > but > >>>> they'd look quite different from one written entirely in Clojure or > F#. > >>> The > >>>> general concept of appenders, loggers, filters, etc., would all > probably > >>>> apply, but the APIs would probably differ a lot. This would affect > plugin > >>>> authors more than users of the library, but the only common things I > >>> could > >>>> see happening between different languages might be a similar API in = a > >>>> Logger class or module. > >>>> > >>>> On 18 October 2016 at 09:45, Nicholas Duane nickdu@msn.com>> wrote: > >>>> > >>>>> I just mentioned the config as one piece where I think it would be > very > >>>>> useful to have similar, if not exactly the same, configs across > >>>>> implementations. I also realize that it might not be possible. > >>>>> > >>>>> > >>>>> So are you saying that when you get to designing a logging framewor= k > >>> you > >>>>> first have to know what language/runtime you're designing it for? = I > >>>> would > >>>>> think not. Hopefully most, if not all, can be designed OS/runtime > >>>> agnostic > >>>>> and without having to design to a lowest common denominator. > >>>>> > >>>>> > >>>>> Also not sure about the OOP thing. As far as I can tell, OOP is > just a > >>>>> convenience thing, syntactic sugar. I believe you can do the same > in a > >>>>> procedural language. > >>>>> > >>>>> > >>>>> Thanks, > >>>>> > >>>>> Nick > >>>>> > >>>>> ________________________________ > >>>>> From: Matt Sicker > > >>>>> Sent: Tuesday, October 18, 2016 10:37 AM > >>>>> To: Log4J Users List > >>>>> Subject: Re: porting log4j2 to .NET > >>>>> > >>>>> Every programming language has its own idioms, and that even goes f= or > >>> all > >>>>> the various JVM languages as demonstrated by the log4j-scala API. > >>> Unless > >>>>> you mean more of an architectural thing with a similar config forma= t, > >>>> then > >>>>> that might be more possible, but even that relies on a language bei= ng > >>>>> mostly OOP or mostly procedural or mostly functional or some other > >>> exotic > >>>>> thing. > >>>>> > >>>>> On 18 October 2016 at 09:23, Nicholas Duane nickdu@msn.com>> wrote: > >>>>> > >>>>>> I agree. I'm also one for not coding to the lowest common > >>> denominator. > >>>>>> That's one reason we're not using a logging facade as I assume wit= h > a > >>>>>> facade you get only the features that are common across the set of > >>>>> logging > >>>>>> frameworks the facade supports. > >>>>>> > >>>>>> > >>>>>> What I'm suggesting is to come up with a design and architecture > >>> which > >>>> is > >>>>>> language/runtime/OS agnostic. While it's easy for me to say that = I > >>>>>> wouldn't be surprised if it's more difficult to achieve. When it > >>> comes > >>>>> to > >>>>>> implementation I would assume the features might manifest themselv= es > >>> in > >>>>>> different ways across the different languages/runtimes/OS's. For > >>>>> instance, > >>>>>> .NET has extension methods and Java doesn't. You might decide to > >>>>> implement > >>>>>> some features in .NET using extension methods and in Java you'll > have > >>>> to > >>>>>> pick a different way to implement. Configuration might be another > >>> area > >>>>>> where there are differences among the different runtimes and thus > the > >>>>>> implementation might be a bit different. Maybe there's even a > >>> feature > >>>>> that > >>>>>> one implementation has that others don't just because there is no > >>> way, > >>>> or > >>>>>> no easy enough way to implement. > >>>>>> > >>>>>> > >>>>>> Thanks, > >>>>>> > >>>>>> Nick > >>>>>> > >>>>>> ________________________________ > >>>>>> From: Mikael St=C3=A5ldal mikael.staldal@magine.com>> > >>>>>> Sent: Tuesday, October 18, 2016 10:04 AM > >>>>>> To: Log4J Users List > >>>>>> Subject: Re: porting log4j2 to .NET > >>>>>> > >>>>>> Maybe I am nitpicking, but Log4j is also (mostly) agnostic to what > >>>>> language > >>>>>> you run on the JVM (Java, Scala, Groovy, Clojure, etc). > >>>>>> > >>>>>> I guess it would be nice to have similar logging framework for oth= er > >>>>>> runtimes (such as .Net). However, I would not like to constrain > Log4j > >>>> to > >>>>>> only use features available on both JVM and .Net. > >>>>>> > >>>>>> On Tue, Oct 18, 2016 at 3:53 PM, Nicholas Duane > > >>>> wrote: > >>>>>> > >>>>>>> I guess platform is vague. Maybe I should have said language > >>>> agnostic. > >>>>>>> It would be nice to have a single logging architecture/design run > >>> on > >>>>>> C/C++, > >>>>>>> .NET, Java, etc. Or at least it seems like a nice feature to me. > >>> I > >>>>>> would > >>>>>>> assume there are many enterprises out there that have application= s > >>>>>> running > >>>>>>> on different OS's and languages. If I'm trying to pick a logging > >>>>>> framework > >>>>>>> to use and I find a popular one which is capable and runs similar= ly > >>>>>> across > >>>>>>> the OS's and languages then that's a big plus in my mind. > >>>>>>> > >>>>>>> > >>>>>>> Thanks, > >>>>>>> > >>>>>>> Nick > >>>>>>> > >>>>>>> ________________________________ > >>>>>>> From: Mikael St=C3=A5ldal mikael.staldal@magine.com>> > >>>>>>> Sent: Tuesday, October 18, 2016 2:52 AM > >>>>>>> To: Log4J Users List > >>>>>>> Subject: Re: porting log4j2 to .NET > >>>>>>> > >>>>>>> Just to make things clear, Log4j is a logging framework for the J= VM > >>>>>>> platform, and it is agnostic to the underlying OS. It it well > >>> tested > >>>> on > >>>>>> (at > >>>>>>> least) both Linux and Windows. > >>>>>>> > >>>>>>> On Tue, Oct 18, 2016 at 2:33 AM, Nicholas Duane > > >>>>> wrote: > >>>>>>> > >>>>>>>> Figured I would send this question out to the log4j side. I hav= e > >>>>>> already > >>>>>>>> had some email exchanges with the log4net mailing list regarding > >>>>>> porting > >>>>>>>> log4j2 to .NET. My suggestion was that the apache logging > >>>> framework > >>>>>> be a > >>>>>>>> single architecture design which is platform agnostic and then > >>>> teams > >>>>>>> which > >>>>>>>> port to the different platforms. It seems log4net was a port of > >>>>> log4j > >>>>>>> and > >>>>>>>> may be going off in its own direction from that initial port. M= y > >>>>>>> viewpoint > >>>>>>>> is that's a bad idea as one of the benefits I saw was that > >>> log4net > >>>>> was > >>>>>>>> similar to log4j2 and we're looking for logging frameworks for > >>> our > >>>>>>>> enterprise. We have applications on both Windows/.NET and > >>>> Linux/Java > >>>>>> so > >>>>>>>> having a logging framework for Windows/.NET which is similar to = a > >>>>>> logging > >>>>>>>> framework for Linux/Java was a big plus. > >>>>>>>> > >>>>>>>> > >>>>>>>> While I have no doubt the effort to port log4j2 to .NET is > >>>>>> considerable, > >>>>>>>> it would be a port and thus I'm not spending time figuring out > >>>> design > >>>>>> and > >>>>>>>> algorithms. Would anyone want to venture a guess at what that > >>>> effort > >>>>>>> might > >>>>>>>> be? > >>>>>>>> > >>>>>>>> > >>>>>>>> Thanks, > >>>>>>>> > >>>>>>>> Nick > >>>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> -- > >>>>>>> [image: MagineTV] > >>>>>>> > >>>>>>> *Mikael St=C3=A5ldal* > >>>>>>> Senior software developer > >>>>>>> > >>>>>>> *Magine TV* > >>>>>>> mikael.staldal@magine.com > >>>>>>> Grev Turegatan 3 | 114 46 Stockholm, Sweden | www.magine.com< > http://www.magine.com> http://www.magine.com/>> > >> [https://de.magine.com/content/uploads/2016/09/magine_global_social.pn= g > ] magine_global_social.png]%3Chttp://www.magine.com/%3E> < > https://de.magine.com/content/uploads/2016/09/magine_global_social.png]% > 3Chttp://www.magine.com/%3E content/uploads/2016/09/magine_global_social.png]% > 3Chttp://www.magine.com/%3E>> > >> > >> TV online with Magine TV > >> > >> www.magine.com //www.magine.com > http://www.magine.com/>> > >> Watch the TV you love, on any device, anywhere in Germany and Sweden > and find out more about our global OTT B2B solutions. Get started today. > >> > >> > >>> <<< > >>>>> http://www.magine.com<<> > < > http://www.magine.com<<> >> > >>>>>> http://www.magine.com<> > < > http://www.magine.com<> >> > >>>>>>> http://www.magine.com < > http://www.magine.com/ >> > >>>>>>> [https://de.magine.com/content/uploads/2016/09/ < > https://de.magine.com/content/uploads/2016/09/> content/uploads/2016/09/ = > > >>>>> magine_global_social.png > >>>>>> ]< > >>>>>>> http://www.magine.com/ > > >>>>>>> > >>>>>>> TV online with Magine TV http://www.magine.com/>> > >>>>>>> www.magine.com < > http://www.magine.com > > >>>>>>> Watch the TV you love, on any device, anywhere in Germany and > >>> Sweden > >>>>> and > >>>>>>> find out more about our global OTT B2B solutions. Get started > >>> today. > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> Privileged and/or Confidential Information may be contained in th= is > >>>>>>> message. If you are not the addressee indicated in this message > >>>>>>> (or responsible for delivery of the message to such a person), yo= u > >>>> may > >>>>>> not > >>>>>>> copy or deliver this message to anyone. In such case, > >>>>>>> you should destroy this message and kindly notify the sender by > >>> reply > >>>>>>> email. > >>>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> -- > >>>>>> [image: MagineTV] > >>>>>> > >>>>>> *Mikael St=C3=A5ldal* > >>>>>> Senior software developer > >>>>>> > >>>>>> *Magine TV* > >>>>>> mikael.staldal@magine.com > >>>>>> Grev Turegatan 3 | 114 46 Stockholm, Sweden | www.magine.com< > http://www.magine.com> << > > > >>>>> http://www.magine.com<> > > >>>>>> http://www.magine.com < > http://www.magine.com/ >> > >>>>>> > >>>>>> Privileged and/or Confidential Information may be contained in thi= s > >>>>>> message. If you are not the addressee indicated in this message > >>>>>> (or responsible for delivery of the message to such a person), you > >>> may > >>>>> not > >>>>>> copy or deliver this message to anyone. In such case, > >>>>>> you should destroy this message and kindly notify the sender by > reply > >>>>>> email. > >>>>>> > >>>>> > >>>>> > >>>>> > >>>>> -- > >>>>> Matt Sicker > >>>>> > >>>> > >>>> > >>>> > >>>> -- > >>>> Matt Sicker > > >>>> > >>> > >>> > >>> > >>> -- > >>> [image: MagineTV] > >>> > >>> *Mikael St=C3=A5ldal* > >>> Senior software developer > >>> > >>> *Magine TV* > >>> mikael.staldal@magine.com > >>> Grev Turegatan 3 | 114 46 Stockholm, Sweden | www.magine.com< > http://www.magine.com> http://www.magine.com/>> >> >> > >>> > >>> Privileged and/or Confidential Information may be contained in this > >>> message. If you are not the addressee indicated in this message > >>> (or responsible for delivery of the message to such a person), you ma= y > not > >>> copy or deliver this message to anyone. In such case, > >>> you should destroy this message and kindly notify the sender by reply > >>> email. > >>> > >> > >> > >> > >> -- > >> Matt Sicker > > > --=20 [image: MagineTV] *Mikael St=C3=A5ldal* Senior software developer *Magine TV* mikael.staldal@magine.com Grev Turegatan 3 | 114 46 Stockholm, Sweden | www.magine.com Privileged and/or Confidential Information may be contained in this message. If you are not the addressee indicated in this message (or responsible for delivery of the message to such a person), you may not copy or deliver this message to anyone. In such case, you should destroy this message and kindly notify the sender by reply email. --001a114e7152b933de053f32fe0c--