Discussions

News: LimpidLog released

  1. LimpidLog released (29 messages)

    LimpidLog, an open source logging system, has been released. LimpidLog allows all information about the execution of a class to be logged at runtime when the class is registered. LimpidLog uses java.lang.instrument.Instrumentation of Java to log as a Java Agent. When you register a class for logging, LimpidLog uses bytecode sidenoting to add logging information to the class. Then LimpidLog calls Java JVM to redefine the class with added log information. JVM will reload the class. Then, when the class is executed, added logging will be performed. When you unregister the class, LimpidLog will redefine the class using the original class bytecode and all log information will be gone. LimpidLog is for J2EE, Java EE and standalone Java application logging and supports J2EE, Java EE and standalone Java applications. LimpidLog also supports Netbeans with GUI management as a Netbeans plug-in. LimpidLog is an open source project with an LGPL license at http://www.acelet.com/limpidlog/. The project is hosted at sourceforge.net. What do you think of LimpidLog?

    Threaded Messages (29)

  2. Needs a new name![ Go to top ]

    I know what 'limpid' means, but a lot of people probably don't, and will read this name and go "LimpLog? hahaha!" Just saying!
  3. Re: Needs a new name![ Go to top ]

    I know what 'limpid' means, but a lot of people probably don't, and will read this name and go "LimpLog? hahaha!"

    Just saying!
    I checked "Longman Dictionary of contemporary English". It is a dictionary for people who are learning English. It contains only the most used words. It does contain Limpid: "clear, transparent". By the way, the dictionary is the first English-English dictionary for me. You can see, English is not my first language.
  4. JUnit, TestNG or LimpidLog?[ Go to top ]

    Actually, now I use JUnit for log and i wonder their pros and cons. Any post will be appreciated.
  5. Re: JUnit, TestNG or LimpidLog?[ Go to top ]

    Actually, now I use JUnit for log and i wonder their pros and cons. Any post will be appreciated.
    You use a testing framework for logging? That's plane weird.
  6. Re: JUnit, TestNG or LimpidLog?[ Go to top ]

    Actually, now I use JUnit for log and i wonder their pros and cons. Any post will be appreciated.

    You use a testing framework for logging? That's plane weird.
    Yes - using JUnit for logging is weird! Also, I have to agree with the first comment about the name - you should change it - you'll probably have to defend that name choice quite a bit if you don't. Now be vewy vewy quiet, I'm hunting wabbits! You wascal you!
  7. Log4J vs LimpidLog[ Go to top ]

    Actually, now I use JUnit for log and i wonder their pros and cons. Any post will be appreciated.
    How can you could possibly use JUnit for logging? The question here should be: why should we starting using LimpidLog instead of Log4J? Is it better?
  8. Just In Time ![ Go to top ]

    Wow ! Thanks for releasing another Java logging framework. The 31,917 frameworks curently available don't offer enough choice. You know, I was just saying to my friend the other day that we really do not have enough Java logging frameworks. "Why," I said to him, "it's been three days since I read about a new logging framework on TSS ! Is the pace of innovation slowing in the Java world ? Are we that far along the road to obsolescence ? Can death be far away ?" But now I feel better. And with THIS framework, according to the TSS blurb, I get the benefit of loading and reloading every single one of my classes multiple times. Hah, and my classes are even altered, at runtime, allowing me to trust that everything in YOUR code works out OK ! I'm gonna go out on a crazy limb here and guess that reflection is involved ! I figure that would improve the performance of a frequently used utility. You are some wild and crazy guys, and I, for one, am going to nominate LimpLog for the Logging Framework of the Week. No, I mean it ! You deserve it.
  9. Re: Just In Time ![ Go to top ]

    loading and reloading every single one of my classes multiple times.
    Only the class you explicitly register will be reloaded once at register time (when you click), if it has been already loaded. If the class has not been loaded, there will be no reloading. The class will be reloaded at deregister time when you are done.
  10. Re: Just In Time ![ Go to top ]

    Wow ! Thanks for releasing another Java logging framework. The 31,917 frameworks curently available don't offer enough choice.

    You know, I was just saying to my friend the other day that we really do not have enough Java logging frameworks. "Why," I said to him, "it's been three days since I read about a new logging framework on TSS ! Is the pace of innovation slowing in the Java world ? Are we that far along the road to obsolescence ? Can death be far away ?"

    But now I feel better. And with THIS framework, according to the TSS blurb, I get the benefit of loading and reloading every single one of my classes multiple times. Hah, and my classes are even altered, at runtime, allowing me to trust that everything in YOUR code works out OK ! I'm gonna go out on a crazy limb here and guess that reflection is involved ! I figure that would improve the performance of a frequently used utility.

    You are some wild and crazy guys, and I, for one, am going to nominate LimpLog for the Logging Framework of the Week. No, I mean it ! You deserve it.
    Such a harsh criticism for someone trying to give away his hard work and effort :-( I actually like it. This will be very useful in debugging problems once you have shipped your code and need to find some info in a production environment without relesing patches. All companies with real products face that problem. Log4j is not the solution there. How can you log what you don't know? The cavieat however is that, the server should be started with the agent in place. Is there a way, we can add agents into running JVM instance using JMX or some other mechanism? I think it should properly be classified as a debugging tool, instead of logging framework. Especialy because I have no control over what is logged. Peace, (Sorry Purdy, I had to stell your tag line)
  11. Re: Just In Time ![ Go to top ]

    The cavieat however is that, the server should be started with the agent in place. Is there a way, we can add agents into running JVM instance using JMX or some other mechanism?
    The current implementation of Java requires to load javaagent at start time. But, if you do not register any class, the price for the idle agent is: 1. Each time a class is loaded, a method will be called and returned quickly. Not much time wasted, because most of classes are loaded when the system starts. After that, loading will not happen very often. 2. LimpidLog keeps all loaded class names in memory. This piece of memory is relatively small compare to your program. The reason to keep this piece of memory is for performance. 3. The memory for LimpidLog itself is about 50K. Very small. In later releases, I will make idle agent 100% idle. If you do not use it, JVM will not call it. Only the 50K memory will be "wasted". At the time you want log, you can activate it from the GUI manager.
  12. Re: Just In Time ![ Go to top ]

    This will be very useful in debugging problems once you have shipped your code and need to find some info in a production environment without relesing patches. All companies with real products face that problem.
    You are right ! All products do face that problem ... and nobody has ever solved that problem. Nope, it's never been done. No companies with real products have ever solved this problem. Can't do that. Too tough. Now that LimpLog has been released, though, we can all breath a collective sigh of relief, because it is possible to log useful debugging information in the field. For the first time. Ever. No, really. I don't know why we never did that before.
  13. Re: Just In Time ![ Go to top ]

    Please give me one more example of a framework that is doing the same or similar thing. I agree with you for log4j, commons logging, JDK 1.4 logging, clog and thousand other logging frameworks. I was laughing out loud when the architect in my previous company is touting about the logging framework he created for our product. At least for me, this is the first time I have seen something like this.
  14. Logging without code[ Go to top ]

    This is definitely useful for those who try to find out some thing is wrong in prod. Thanks for the excellent work. Can you mpls make the chnage (loaded but not affect to JVM running time nromally). Then a lot of people will give it a try.. When you are done that, pls info this group.. I will try by my self... Also: if we have many many classes load, how can you find whihc class(es) should be tracked? Any smart idea or just guess work with the developers?
  15. Re: Logging without code[ Go to top ]

    Can you mpls make the chnage (loaded but not affect to JVM running time nromally). Then a lot of people will give it a try..
    That is a low preority task. It is more for "peace of mind". As I mentioned, the performance price for idle LimpidLog is very low. I am trying to make LimpidLog a fully working product. Trying to fix important bugs.
    When you are done that, pls info this group.. I will try by my self...
    I will. Probably in days. A month would be too long.
    Also: if we have many many classes load, how can you find whihc class(es) should be tracked?
    It is you to tell LimpidLog which class(es) to register using GUI manager and which class(es) to deregister.
  16. Re: Logging without code[ Go to top ]

    This is definitely useful for those who try to find out some thing is wrong in prod.
    Really? Forcing a reload of an already loaded class? In production? Let me guess...you are not building banking systems are you?
  17. Re: Logging without code[ Go to top ]


    Really? Forcing a reload of an already loaded class? In production?

    Let me guess...you are not building banking systems are you?
    Reload a class is not expensive. Especially if it is a J2EE application running in a cluster: you can activate LimpidLog on one server only for most of cases. Of course, if your issue is among different servers, you have to reload the class in question for all servers. Why LimpidLog needs to reload? Because, by default, application classes do not need many many log statements (otherwise the log would be too expensive). So, from the point of view of LimpidLog, you have two options: Log everything always without reloading, or do not log anything and use LimpidLog to reload when needed. You do not like to reload (no one wants reload for nothing). What is your alternative to LimpidLog?
  18. Re: Logging without code[ Go to top ]

    We are OK, with frameworks like JBOSS AOP, Spring AOP and others creating byte code around your code, but not with using a tool like this in a pre-production environment to get more insight into the problem without the need to give additional patches? We are also OK with Agents coming out of Mercury and other vendors trying to collect statistics and correlate DB Transactions with J2EE transactions, which are also doing some kind of byte code manipulation inside the JVM. Why because it is from Mercury?
  19. Re: Logging without code[ Go to top ]

    Hi All, How do you this with an standalone application ? Is the port= optional one ? Regards SRK
  20. Re: Logging without code[ Go to top ]

    Hi All,
    How do you this with an standalone application ? Is the port= optional one ?

    Regards
    SRK
    The same. The port is optional. The default port is 1234.
  21. Re: Logging without code[ Go to top ]

    The default port is 1234.
    search-agent 1234/tcp Infoseek Search Agent search-agent 1234/udp Infoseek Search Agent # Jackie Wu =)
  22. Re: Logging without code[ Go to top ]

    The default port is 1234.


    search-agent 1234/tcp Infoseek Search Agent
    search-agent 1234/udp Infoseek Search Agent
    # Jackie Wu

    =)
    The default port is for your testing. You can use any available port. If you have many things running, you need different port for each application on the same machine. The default is just for your convenient.
  23. Re: Just In Time ![ Go to top ]

    I guess I am missing what you think is special about this one ? I've used log4j for tracking in production quite successfully.
  24. Re: Just In Time ![ Go to top ]

    It must be awesome being you. After all, how many people are so brilliant that they log everything they will possibly ever need and never ever ever forget to log it all? Even better, all the other programmers on the team are just as brilliant as you!?! Honestly, I don't know how useful this tool is in reality since I've never used it to diagnose a problem but you're a dick, regardless.
  25. Re: LimpidLog released[ Go to top ]

    Let me add another logging tool to the list :-) You might want to check out http://www.venkatesans.com The idea is pretty similar...
  26. Hi.... This is suneel... I need information abt Log4j... I want to store the log messages in DataBase... I want to use DBAppender... Plz send me reply.... Thanks & Rgds, Suneel
  27. How LimpidLog is different of a logging aspect? Do you have a reference to an article or documentation on this subject? Robin
  28. How LimpidLog is different of a logging aspect?
    Do you have a reference to an article or documentation on this subject?
    Robin
    "logging aspect"? You a logging based on AspectJ? LimpidLog does not need AspectJ to do the same thing, maybe more. For example, does AspectJ allow dynamiclly register and deregister a arbitray use defined class?
  29. Ok, so it's the same functionnality than an AspectJ logging aspect but you can register/deregister dynamically? Am I right? I think AspectJ can do that also do but I am not an expert in that area. Does LimpidLog uses Log4J for the real production of the log file? Or its own logger classes?
  30. Does LimpidLog uses Log4J for the real production of the log file? Or its own logger classes?
    The next release will give you options to use any logging "device".