Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

write to IIS log from an ASP.NET application

I want to have my ASP.NET application write lines to a log somewhere. Does IIS provide any built-in way to log ASP.NET log messages? I was thinking there might be a way to capture calls to System.Diagnostics.Debug.WriteLine(), but I can't find any way to do it.

like image 249
McGarnagle Avatar asked Apr 13 '12 03:04

McGarnagle


People also ask

How do I extract IIS logs?

Go to Windows Start and run “inetmgr”. Alternatively, you can go to Administrative Tools → Internet Information Services (IIS) Manager. Click on “Sites” in the left-hand tree menu to display a list of sites on the right of the screen. Note your site ID number, which is what IIS saves logs based on.

How often does IIS write to LogFiles?

Optional enum attribute. Specifies how often IIS creates a new log file. The period attribute can be one of the following possible values. The default value is Daily .


3 Answers

Try Response.AppendToLog(), this writes to the IIS log file. It's good because it doesn't require any additional software. The only downside is that your log file is likely to be huge. I mainly use it for identifying content logged in the IIS log. Eg. Write the user-name when they login, and you can track their session.

like image 170
Mr Rios Avatar answered Oct 13 '22 22:10

Mr Rios


To capture the Debug.Write and Debug.WriteLine use the DebugView from sysinternals.

http://technet.microsoft.com/en-us/sysinternals/bb896647

Of course you have to compile with Debug=true or else the functions is not called at all. So the Debug.Write is a good way only for test in real time and debug your application and not a solution to keep log on the errors in general. For the case that you like to save the errors I think that you need to ether use one library of the other user suggestions, or write direct on event viewer your errors.

ps: For some reason the version 4.78 is not working on my windows xp and I switch back to 4.77

like image 41
Aristos Avatar answered Oct 13 '22 22:10

Aristos


What I usually do is to use a 3rd-party logging framework and configure the framework through configuration files (i.e. no need to recompile).

The frameworks I have used are:

  • log4net – Which has a lot of so called "appenders" to write to different targets like Windows Event Log or a database or a log file.
  • NLog – A logging framework that is a bit easier to use than log4net.

You have to insert the appropriate log function calls in your application to actually trigger a log entry being created.

Since your question title states that you want to write to the same log (file) as IIS does; I have no idea how to solve this requirement (left alone that I cannot imagine a reason why you would do this)

like image 32
Uwe Keim Avatar answered Oct 13 '22 23:10

Uwe Keim