Я использую NHibernate и log4net. Это снимок моего журнала ошибок в файл, используя версию выпуска моей программы:Вставить информацию об ошибке и информацию об ошибке в два разных файла журнала (Log4net)
INFO 2009-04-28 03:07:06 - processing cascade NHibernate.Engine.CascadingAction+SaveUpdateCascadingAction for: bpojob.Generated.BusinessObjects.Job
INFO 2009-04-28 03:07:06 - cascade NHibernate.Engine.CascadingAction+SaveUpdateCascadingAction for collection: bpojob.Generated.BusinessObjects.Job.JobItems
DEBUG2009-04-28 03:07:06 - cascading to saveOrUpdate: bpojob.Generated.BusinessObjects.JobItem
DEBUG2009-04-28 03:07:06 - unsaved-value: 0
DEBUG2009-04-28 03:07:06 - transient instance of: bpojob.Generated.BusinessObjects.JobItem
DEBUG2009-04-28 03:07:06 - saving transient instance
DEBUG2009-04-28 03:07:06 - saving [bpojob.Generated.BusinessObjects.JobItem#<null>]
DEBUG2009-04-28 03:07:06 - executing insertions
DEBUG2009-04-28 03:07:06 - executing identity-insert immediately
DEBUG2009-04-28 03:07:06 - Inserting entity: bpojob.Generated.BusinessObjects.JobItem (native id)
DEBUG2009-04-28 03:07:06 - Opened new IDbCommand, open IDbCommands: 1
DEBUG2009-04-28 03:07:06 - Building an IDbCommand object for the SqlString: INSERT INTO job_items (FileName, Job_Id, Status) VALUES (?, ?, ?)
DEBUG2009-04-28 03:07:06 - Dehydrating entity: [bpojob.Generated.BusinessObjects.JobItem#<null>]
DEBUG2009-04-28 03:07:06 - binding 'Blue hills.jpg' to parameter: 0
DEBUG2009-04-28 03:07:06 - binding '8' to parameter: 1
DEBUG2009-04-28 03:07:06 - binding '1' to parameter: 2
DEBUG2009-04-28 03:07:06 - INSERT INTO job_items (FileName, Job_Id, Status) VALUES (?p0, ?p1, ?p2); ?p0 = 'Blue hills.jpg', ?p1 = '8', ?p2 = '1'
DEBUG2009-04-28 03:07:06 - Obtaining IDbConnection from Driver
DEBUG2009-04-28 03:07:06 - Closed IDbCommand, open IDbCommands: 0
DEBUG2009-04-28 03:07:06 - aggressively releasing database connection
DEBUG2009-04-28 03:07:06 - Closing connection
DEBUG2009-04-28 03:07:06 - could not insert: [bpojob.Generated.BusinessObjects.JobItem]
[ INSERT INTO job_items (FileName, Job_Id, Status) VALUES (?p0, ?p1, ?p2) ]
MySql.Data.MySqlClient.MySqlException: Duplicate entry 'Blue hills.jpg' for key 'Unique'
at MySql.Data.MySqlClient.MySqlStream.ReadPacket()
at MySql.Data.MySqlClient.NativeDriver.ReadResult(UInt64& affectedRows, Int64& lastInsertId)
at MySql.Data.MySqlClient.MySqlDataReader.GetResultSet()
at MySql.Data.MySqlClient.MySqlDataReader.NextResult()
at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)
at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader()
at MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuery()
at NHibernate.AdoNet.AbstractBatcher.ExecuteNonQuery(IDbCommand cmd)
at NHibernate.Id.Insert.AbstractSelectingDelegate.PerformInsert(SqlCommandInfo insertSQL, ISessionImplementor session, IBinder binder)
Как вы можете видеть, все info
, debug
и exception
являются починились, что делает его чрезвычайно трудно просеять через файл и искать информацию, как только появляются ошибки.
Я хочу поместить всю информацию об исключениях в файл и поместить другую информацию в другой файл. И я хочу исключить отладочную информацию: режим освобождения. Как это сделать?
Много информации в этой ссылке, было бы выше, если бы вы разместили соответствующий раздел здесь. – Matt
Мы пишем для SO для быстрого фрагмента кода/конфигурации, а не для ссылки на официальную документацию. Минус 1. – menkow
Согласовано - это было написано задолго до того, как это была политика. Я обновлю его. –