--
Has recibido este mensaje porque estás suscrito al grupo "AltNet-Hispano" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a altnet-hispan...@googlegroups.com.
Para publicar una entrada en este grupo, envía un correo electrónico a altnet-...@googlegroups.com.
Visita este grupo en http://groups.google.com/group/altnet-hispano?hl=es.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.
--
Has recibido este mensaje porque estás suscrito al grupo "AltNet-Hispano" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a altnet-hispan...@googlegroups.com.
Para publicar una entrada en este grupo, envía un correo electrónico a altnet-...@googlegroups.com.
Visita este grupo en http://groups.google.com/group/altnet-hispano?hl=es.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.
Gracias. Vincenç. No he visto el webcast (pone algo de Reactive Extensions), pero permite Diagnostics de una manera flexible escribir trazas a fichero? Saludos.PD: lástima SecondNug no continué, parece que muchas grabaciones de eventos se perdieron.
--
Has recibido este mensaje porque estás suscrito al grupo "AltNet-Hispano" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a altnet-hispan...@googlegroups.com.
Para publicar una entrada en este grupo, envía un correo electrónico a altnet-...@googlegroups.com.
Visita este grupo en http://groups.google.com/group/altnet-hispano?hl=es.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.
--
Has recibido este mensaje porque estás suscrito al grupo "AltNet-Hispano" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a altnet-hispan...@googlegroups.com.
Para publicar una entrada en este grupo, envía un correo electrónico a altnet-...@googlegroups.com.
Visita este grupo en http://groups.google.com/group/altnet-hispano?hl=es.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.
--
Has recibido este mensaje porque estás suscrito al grupo "AltNet-Hispano" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a altnet-hispan...@googlegroups.com.
Para publicar una entrada en este grupo, envía un correo electrónico a altnet-...@googlegroups.com.
Visita este grupo en http://groups.google.com/group/altnet-hispano?hl=es.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.
--
public static class Logger { public static void Error(string message, string module) { WriteError(message, module); } public static void Error(Exception ex, string module) { WriteError(ex.Message, module); } public static void Warning(string message, string module) { WriteWarning(message, module); } public static void Info(string message, string module) { WriteInfo(message, module); }
public interface ILogger
{
void LogInformation(string msg);
void LogError(string error);
}
Si querés utilizar algo como un logging wrapper, entonces la clase EventSource no es tu mejor opción, ya que by design te fuerza a crear una clase tipada para tu aplicación con un método diferente para cada log entry.
A simple vista parece más overhead, pero hay una razón por la que ese approach (en MI opinión) es superior y una vez que se entiende, el overhead definitivamente no es superior. Lo intenté explicar todo acá (en inglés) por si les interesa: http://channel9.msdn.com/Events/Build/2013/3-336
Si lo mirás, me interesa tu opinión.
Saludos!
Julian
--
Has recibido este mensaje porque estás suscrito al grupo "AltNet-Hispano" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a altnet-hispan...@googlegroups.com.
Para publicar una entrada en este grupo, envía un correo electrónico a altnet-...@googlegroups.com.
Visita este grupo en http://groups.google.com/group/altnet-hispano.
For what we do the UI is just the tip of the iceberg. Serilog has enrichers to gather all the data ELMAH gives us and enough sinks to get the data in the right spot in the same way ELMAH does. Throw in Seq as the log aggregator (or splunk, exceptionless, elmah.io or any number of other sinks) and you have a nice way of consuming it. The real improvement is we can use the same logging from all our backend services, libraries, etc that aren't tied to ASP.NET.
Combined with structured logging makes for a very powerful library that's very easy to consume.
edit: very short version of structured logging - instead of logging text it logs the message format and the variables that build it. e.g. log("The account {accountId} failed to bill", account.Id) would log exactly that format and the variable. Then you can use something like Seq to query maybe all the log statements related to a specific account id if you suspect you are having problems with it. Or we include the username and referring url in our logs. So I can quickly get a list of all the requests made from a specific html page to our api filtered by the username.
Thirded.
Serilog + Logg.ly has revolutionized our operations.
We log everything, and then we can write real time queries like "message X for this event hasn't occured in 30 seconds, somethings probably messed up, send a message to our operations alerts HipChat room pronto!"
Then we get a nice link in our HipChat room that links us to the exact error in navigable JSON format. It's so easy. I know exactly what my systems are doing at any given time.
We are actually using https://github.com/samirahmed/serlog.logglybulksink
Looks a bit sketch, but it works perfectly. If you're pumping LOTS of events in from any one machine or process, it's definitely the way to go. I put 20GB through it in the past few hours.
I'm using NLog. I wrote a HTTPModule that catches the ambient request exception and on startup binds the appdomain UnhandledException event to a log statement. The HTTPModule extracts the request's principal, URL, HTTP verb, remote address, browser from headers, stack and generates an error ID. The error ID is shown to the client on the error page. The error ID is the last 8 characters of a random guid.
This is then forwarded to an rsyslogd server and into splunk. You don't have to do that though. Event log or file is fine too.
It's very helpful when a user says "I got error ed54db51" and you can trace the exact request that blew.
Saludos Gente!