MYSQL或mliteWriteCommandExtensions

MYSQL或mliteWriteCommandExtensions,mysql,.net,mono,Mysql,.net,Mono,我的日志中的OrmLiteWriteCommandExtensions出现错误,我似乎找不到发生这种情况的地方。我没有数据丢失;当我将logfactory设置为null时,它会在没有错误的情况下中断;我已将其设置为允许零日期,但这没有帮助。我不知道如何调试或绕过它。它用我无法追踪的语句堵塞了我的日志 这在linux和windows上都会发生 有人知道怎么做吗 更新: 日志记录发生在nlog配置文件中的正确文件集中,但对于此异常,它不符合nlog布局集中的格式(所有其他异常都符合!) 布局字符串:

我的日志中的OrmLiteWriteCommandExtensions出现错误,我似乎找不到发生这种情况的地方。我没有数据丢失;当我将logfactory设置为null时,它会在没有错误的情况下中断;我已将其设置为允许零日期,但这没有帮助。我不知道如何调试或绕过它。它用我无法追踪的语句堵塞了我的日志

这在linux和windows上都会发生

有人知道怎么做吗

更新:

日志记录发生在nlog配置文件中的正确文件集中,但对于此异常,它不符合nlog布局集中的格式(所有其他异常都符合!)

布局字符串: ${longdate}${machinename}${logger}${level}${message}${OneException:发生异常:${EXCEPTION:format=type,message,method:maxInnerExceptionLevel=5:innerFormat=shortType,message,method}

更新2已解决:

所以这很有趣。。。在我开始解释我是如何解决它之前,我必须说我不知道为什么它会写入正确的日志文件,但是忽略所有记录错误的格式-这将是下一次要杀死的另一条龙


所以问题是mysql数据库中的varchar字段将birthdate作为字符串,而dotnet中的DateTime与字符串之间的隐式转换是错误的

在数据库中将字段更改为datetime后,错误消失了


有趣的是,我将minlevel设置为trace,以便在调用数据库的上下文中获取错误-但它仍然忽略了所有错误格式,没有stacktrace,没有sql语句,也没有与日志中的错误相关联的行号

所以问题在于mysql数据库中的varchar字段将birthdate作为字符串,而dotnet中的DateTime与字符串之间的隐式转换是错误的

在数据库中将字段更改为datetime后,错误消失了


有趣的是,我必须将minlevel设置为trace,才能在调用数据库的上下文中获取错误-但它仍然忽略了所有错误格式,没有stacktrace,没有sql语句,并且没有与日志中的错误相关联的行号。

似乎您有一个来自查询结果的值,该值预期为日期时间,但无法进行解析。您可能不仅需要记录异常的详细信息,还需要(递归地)记录内部异常。我有stacktrace的格式,但这就是我所得到的全部-这就是为什么我被难倒的原因。我的nlog布局:${machinename}${logger}${message}${OneException:发生异常\:${EXCEPTION:format=type,message,method:maxInnerExceptionLevel=5:innerFormat=shortType,message,method}
OrmLiteWriteCommandExtensions System.FormatException: String was not recognized as a valid DateTime. 
at System.DateTimeParse.ParseExact(String s, String format, DateTimeFormatInfo dtfi, DateTimeStyles style) 
at System.DateTime.ParseExact(String s, String format, IFormatProvider provider, DateTimeStyles style) 
at ServiceStack.Text.Common.DateTimeSerializer.ParseShortestXsdDateTime(String dateTimeStr) 
at ServiceStack.OrmLite.Converters.DateTimeConverter.FromDbValue(Type fieldType, Object value) 
at ServiceStack.OrmLite.OrmLiteWriteCommandExtensions.PopulateWithSqlReader[T](T objWithProperties, IOrmLiteDialectProvider dialectProvider, IDataReader reader, Tuple`3[] indexCache, Object[] values)