For The Love Of God, Please Let Me Override Your Method
-
I've received hundred of enterprise libraries directly depending on other third-parties. Do I have to include log4net just because I need to use your library? Do I have to register an unknown unmanaged DLL as a part of my project output just because your code needs to access a system setting? For the love of god, and world peace, please do not make your library directly depend on third-party components. Do let your users override them.
Quote:
Do I have to include log4net just because I need to use your library?
Do as the spec says.
Wonde Tadesse
-
Exception.GirlsNotFound
-
I've received hundred of enterprise libraries directly depending on other third-parties. Do I have to include log4net just because I need to use your library? Do I have to register an unknown unmanaged DLL as a part of my project output just because your code needs to access a system setting? For the love of god, and world peace, please do not make your library directly depend on third-party components. Do let your users override them.
Oh wait, but .NET was supposed to end DLL hell.
Jeremy Falcon
-
Oh wait, but .NET was supposed to end DLL hell.
Jeremy Falcon
GAC!
-
Use of third-party libraries is a cry for help. Plus, libraries shouldn't log. They should just throw Exceptions and the application can log or otherwise do what it likes with them. Another possibility would be for the library to provide an Event that it calls when it encounters something interesting but not fatal.
Good points. Good you point these out. We just want the functionality the library provides not all the overhead.
-
Fun Fun Fun![^] :laugh:
That is a great tune. Thanks for sharing. Amazing singer and an amazing song. No one else like her.
-
That is a great tune. Thanks for sharing. Amazing singer and an amazing song. No one else like her.
Its seen 80 million times, and has 1,6 million downvotes, and 600 thousand upvotes :laugh:
-
Its seen 80 million times, and has 1,6 million downvotes, and 600 thousand upvotes :laugh:
Those numbers only prove that the song is True Art. Everyone loves pop music, which we all know isn't art. But, this has been viewed 80 million times. That forces it to the top of True Art. Everyone else is just a poser & hopeful copier of this great artist. :)
-
Use of third-party libraries is a cry for help. Plus, libraries shouldn't log. They should just throw Exceptions and the application can log or otherwise do what it likes with them. Another possibility would be for the library to provide an Event that it calls when it encounters something interesting but not fatal.
"plus, libraries shouldn't log" I don't think this is a realistic assumption. Libraries can have bugs too. In case a bug happens, they would want to know what led to it -> thus, logging. And more to the point, when an error happens in your application - libraries can have huge APIs, complex usage scenarios - in such a case, you + the lib's authors would probably want to know: is there an error in the lib, in your code, both? Without logging, this would be much more complicated. Best, John -- LogWizard - Log viewing can be a joy!
-
Those numbers only prove that the song is True Art. Everyone loves pop music, which we all know isn't art. But, this has been viewed 80 million times. That forces it to the top of True Art. Everyone else is just a poser & hopeful copier of this great artist. :)
-
I've received hundred of enterprise libraries directly depending on other third-parties. Do I have to include log4net just because I need to use your library? Do I have to register an unknown unmanaged DLL as a part of my project output just because your code needs to access a system setting? For the love of god, and world peace, please do not make your library directly depend on third-party components. Do let your users override them.
https://mail.python.org/pipermail/tutor/2003-October/025932.html Nothing is really private in python. No class or class instance can keep you away from all what's inside (this makes introspection possible and powerful). Python trusts you. It says "hey, if you want to go poking around in dark places, I'm gonna trust that you've got a good reason and you're not making trouble." After all, we're all consenting adults here.
-
I've received hundred of enterprise libraries directly depending on other third-parties. Do I have to include log4net just because I need to use your library? Do I have to register an unknown unmanaged DLL as a part of my project output just because your code needs to access a system setting? For the love of god, and world peace, please do not make your library directly depend on third-party components. Do let your users override them.
-
"plus, libraries shouldn't log" I don't think this is a realistic assumption. Libraries can have bugs too. In case a bug happens, they would want to know what led to it -> thus, logging. And more to the point, when an error happens in your application - libraries can have huge APIs, complex usage scenarios - in such a case, you + the lib's authors would probably want to know: is there an error in the lib, in your code, both? Without logging, this would be much more complicated. Best, John -- LogWizard - Log viewing can be a joy!
That's what Exceptions are for. Logging should be done only at the highest levels of an application. Would you want each library to log to a different place? And then have to read them all and try to figure what order they happended in? I wouldn't. Additionally, logging itself can be error-prone. If a disk fills up, and a library tries to log that, but can't because the disk is full -- that's a very bad situation. The application may log to a different disk, or a database, or a Web Service, or send messages across a socket to a monitoring system. With an Exception, the calling routine can add detail and context to the Exception's Data collection, or possibly wrap the Exception in a more meaningful Exception. The library developer also doesn't know what format the application developer wants to use. I like XML, not everyone does. Libraries should only raise Exceptions, never try to log -- you don't know what the application developer wants to do with it.
-
That's what Exceptions are for. Logging should be done only at the highest levels of an application. Would you want each library to log to a different place? And then have to read them all and try to figure what order they happended in? I wouldn't. Additionally, logging itself can be error-prone. If a disk fills up, and a library tries to log that, but can't because the disk is full -- that's a very bad situation. The application may log to a different disk, or a database, or a Web Service, or send messages across a socket to a monitoring system. With an Exception, the calling routine can add detail and context to the Exception's Data collection, or possibly wrap the Exception in a more meaningful Exception. The library developer also doesn't know what format the application developer wants to use. I like XML, not everyone does. Libraries should only raise Exceptions, never try to log -- you don't know what the application developer wants to do with it.
Let me reiterate - what if the library has some bugs? You do logging in order to catch possible bugs, especially when the app is run somewhere else. From the library's standpoint - that will always be the case (it will be run somewhere else).
-- LogWizard - Log Viewing can be a joy!
-
Let me reiterate - what if the library has some bugs? You do logging in order to catch possible bugs, especially when the app is run somewhere else. From the library's standpoint - that will always be the case (it will be run somewhere else).
-- LogWizard - Log Viewing can be a joy!
That makes no sense. If it has bugs, how will it know to log them? If it wants to allow the caller to review the internal state, it can have appropriate methods, or perhaps events, to do that. It should not log.
-
Fun Fun Fun![^] :laugh:
Someone gorge my eyes out
-
That makes no sense. If it has bugs, how will it know to log them? If it wants to allow the caller to review the internal state, it can have appropriate methods, or perhaps events, to do that. It should not log.
The idea is - when a bug happens, to look at the log, and see if you can infer enough information to reproduce/fix the issue. Apparently, we're talking two different languages. So lets just agree to disagree. Best, John
-- LogWizard - Log Viewing can be a joy!
-
I've received hundred of enterprise libraries directly depending on other third-parties. Do I have to include log4net just because I need to use your library? Do I have to register an unknown unmanaged DLL as a part of my project output just because your code needs to access a system setting? For the love of god, and world peace, please do not make your library directly depend on third-party components. Do let your users override them.
I always try to discourage third party products. My argument is, you buy them for their solutions, but you also get their problems. Their priority on fixing those problems do not necessarily match yours. Earlier in my career we encountered an intractable problem with a third party product. We called them and told them of the problem. They said, yeah, that will get fixed in the next release. Great! When's the next release? In six months. We had a six week delivery deadline. My solution was simple, throw it away and write our own. Ours was smaller, faster, did just what we needed, and was under our control for bugs and future enhancements.
Psychosis at 10 Film at 11 Those who do not remember the past, are doomed to repeat it. Those who do not remember the past, cannot build upon it.