用NLog从数据库中返回一个id?
在将异常记录到SQL Server数据库中的表格时,ID随每行都会增加.我需要在使用NLOG登录时将此ID返回给用户,这可能吗?如果是这样,如何? 注意:我只有一个NLOG Logger类的一个实例,并且确实有一个可以处理数据库通信的自定义目标(targetWithLayout). 解决方案 通过执行登录数据库的自定义目标,然后将ID设置为通过NLOG发送到目标的参数.然后可以使用此对象从调用方法获取日志ID(对象是参考).
14 2024-04-26
编程技术问答社区
nlog不写入Oracle数据库.NET 6 Web应用程序(后续问题)
我在.NET 6应用程序中配置了NLOG,并且它可以正确记录文件和控制台,但是当我尝试写入oracle数据库时,它会抛出表或视图的错误(当我的表格中存在于我的表中数据库)在NLOG内部日志文件中. 以下是我的nlog.config文件.我使用github上的示例对其进行了配置,并更改了Oracle的必要DBProvider.
16 2024-04-26
编程技术问答社区
如何防止NLOG使用配置文件?
nlog的行为可以配置通过配置文件和程序上的 . 似乎当我设置程序化规则时,存在的任何配置文件仍在处理中,因此这两种机制都在同一时间播放.这是准确的吗? 是否可以设置NLOG仅使用程序化规则并防止其读取任何配置文件? 解决方案 LogManager.Configuration = new LoggingConfiguration(); // Assigns configuration from code Logger Log = LogManager.GetCurrentClassLogger(); // Only loads configuration from xml file, when no configuration assigned 如果您分别使用这些方法之一,并且它将起作用 更多信息:其他解决方案 要在Sergey的答案上展开,假设您有一个logFactory: var factory = new LogFactory() 当访问f
26 2024-04-26
编程技术问答社区
让JSNLog与NLog一起记录
我目前正在尝试为我的ASP.NET应用程序实施一个登录系统" rel =" nofollow noreferrer"> this 使用Elmah来捕获发生的所有.NET未接收的例外,并将其记录到SQL数据库中,其中NLOG用于更轻巧的调试()和信息()和信息( )也将记录到SQL Server的调用.除此之外用于存储在SQL数据库中. 我已经通过Nuget软件包安装了Elmah,并对我的Web.config 进行了必要的更改.
8 2024-04-26
编程技术问答社区
NLog不创建日志文件,通过代码配置
使用nlog v4.6.8. 它通过代码配置如下: public class Logger { public static void ConfigureLogger() { var config = new NLog.Config.LoggingConfiguration(); // target where to log to string logFileName = @"\log.txt"; string path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); var logfile = new NLog.Targets.FileTarget("logfile") { FileName = path + logFileName, KeepFileOpen = true, OpenFileC
28 2024-04-26
编程技术问答社区
我的NLog记录无法保存。我在哪里可以看到我的NLog的保存失败?
我有2个NLOG数据库目标.第一个一直在工作.当我检查数据库中的表时,我刚刚添加的第二个似乎无法保存.但是,我没有例外来查看调试..我可以打开东西吗?还是我需要看的地方? 也许如果有任何NLOG专家,他们可以看到我可能犯了一个简单的错误?这是我用于创建NLOG配置的代码: // nlog config (ExceptionTracking) LogManager.ThrowExceptions = true; // Using NLog.Common InternalLogger.LogLevel = LogLevel.Warn; InternalLogger.LogFile = @"c:\log.txt"; var config = new LoggingConfiguration(); var dbTarget = new D
14 2024-04-26
编程技术问答社区
如何使.NET 6 Azure函数V4与NLOG一起使用依赖注入?
我整天都在研究NLOG文档,Stackoverflow和Nlog GitHub问题.但是,没有真正的示例关于如何使Azure函数V4与NLOG一起使用并正确写入解决方案文件夹中的数据库和.txt文件.我只能在本地运行时将其登录控制台. 我已经注意到appSettings.json似乎不使用nlog和azure函数,您必须创建一个nlog.config file或nlog.json文件. 我尝试使用这两种参考文献,但实际上都没有使我的代码正常工作. nlog in azure函数中使用nlog.config 有人是否有一个代码的示例,可以实际上与启动中必须放置的内容一起使用. 解决方案 我最终弄清楚了. 我使用了Nuget软件包... NLog NLog.Database NLog.Extensions.Logging NLog.Web.AspNetCore 我的azure函数的启动方法的配置方法中的代码v4 var _logger = L
16 2024-04-26
编程技术问答社区
为什么我的日志从不同线程的不同记录器写到同一个日志文件?
嗨,我想从不同线程写入不同的日志文件.每个线程都应该具有自己的日志文件.我已经研究了这个主题下的一些解决方案,但还没有找到对我有用的东西.特别是因为我是NLOG的新手,并且不知道如何制作NLOG配置文件.相反,我以编程方式配置我的nlog. 我的问题,我为主班和程序设置了以下设置: namespace TDXXMLParser { class Program { static void Main(string[] args) { var funcName = nameof(Main); //Logger details try { LaunchFolderMode(); } catch (Exception ex) {
12 2024-04-25
编程技术问答社区
(SEH)初始化Nlog的异常情况
当我尝试从Visual Studio启动我正在从事的项目时,我会在结尾处出现错误.直到几个小时前,它都很好.经过一些较小的无关更改后,从Visual Studio开始时,它停止工作.从Explorer运行时,它可以正常工作.即使是旧版本的VOM修订控制(代码的这一部分完全相同并且没有任何问题,也可以使用任何问题)的行为相同,因此在我的代码中似乎并不是问题. program.cs:第14行的代码如下: private static NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger(); 关于如何解决这个问题的想法? System.TypeInitializationException was unhandled Message=The type initializer for ...' threw an exception. Source=... TypeName=... StackTrace: a
12 2024-04-25
编程技术问答社区
在NLog中,是否可以使用布局来定义日志级别?
我想使用布局在nlog中可以更改最小日志使用外部变量的级别: 启动nlog后,所有日志级别(例如:跟踪,调试,信息等)都设置为false,该>> false表明nlog无法正确解析minlevel属性. NLOG布局功能似乎仅适用于target属性. 我想实现的目标:在我的真实应用中,loglevel不是一个常数,而是一种自定义 bleatout渲染器. 我也尝试将value="Debug"替换为value="LogLevel.Debug"而没有成功. 解决方案 **
30 2024-04-25
编程技术问答社区
在一个解决方案上为多个项目使用NLog c#.
我在一个解决方案中有8个控制台项目(我打算将来将它们转换为服务)相互引用.我计划创建一个Ilogger接口和Logger类,以封装NLOG方法,因为我不想在每个项目中引用NLOG.并将此界面从核心项目传递到其他每个构建参数.像 using Core ... ILogger logger = new Logger(); 问题是: 1)我可以为每个记录器使用一个配置吗?我使用在这里.主要是获取汇编名称等的呼叫者信息属性.因此,我不需要不同的日志文件或设置来确定日志的origin. 2),我应该这样做并创建8个Ilogger实例,而不是在核心汇编中创建静态类,并在每次需要时调用它的方法.我已经在其他每个组件中引用了核心,因此不会进行新的参考.我对8个ilogger的关注是并发写入一个文件/dB. 解决方案 1)我可以为每个记录器使用一个配置吗?我从这里使用想法.主要是呼叫者信息属性以获取汇编名称,等等.因此,我不需要不同的日志文件或设置来确定日志的origin
16 2024-04-25
编程技术问答社区
在C#中,NLog获取消息
我最近在ASP.NET项目中使用NLOG,为一个成功的客户使用.我需要连接到具有自己的事件日志管理的现有应用程序,并为它们提供我的日志信息的副本. 有什么方法可以使用任何日志功能将我提供给NLOG的字符串? 示例: logger.Info("My info"); logger.Debug("My debug"); logger.Error("My error"); logger.Warn("My warn"); List messages = logger.getStrings()
10 2024-04-25
编程技术问答社区
对有不同版本的同一dll的引用的项目的引用
在我的C#类lib中,我引用了不同的项目,这些项目对同一DLL具有不同版本. 两者都引用了nlog.dll,但一个项目版本2.1和另一个4.2. 引用的项目也是类Libs.其中大多数是.NET 2.0和一些4.5. 解决方案 如果需要,只需制作一个库文件夹,然后创建一个版本文件夹结构并向每个项目"添加参考"即可.如果这些是Nuget软件包,那么您就不需要这样做. 其他解决方案 您需要在GAC中安装,因为您的应用程序只有一个bin文件夹. 您也可以尝试使用A 安装NLOG 4,但由于NLOG 2和NLOG 4不完全兼容,因此不能保证. (因此,主要版本更改)
18 2024-04-25
编程技术问答社区
在.NetCore控制台应用程序中使用Nlog和ILoggerFactory时,无法打印调试和跟踪日志
debug和跟踪日志未打印,尽管Minlevel设置为在AppSettings.json上进行跟踪. 实际输出: FATAL|ConsoleAppLogging.Program|LogCritical ERROR|ConsoleAppLogging.Program|LogError INFO|ConsoleAppLogging.Program|LogInformation WARN|ConsoleAppLogging.Program|LogWarning 我创建了一个可以在此处找到的示例项目存储库 使用.netcore 3.1和软件包: microsoft.extensions.configuration.json 3.1.5 nlog 4.7.2 nlog.extensions.logging版本= 1.6.4 appsettings.json: { "NLog": { "targets": { "logConsole": {
16 2024-04-25
编程技术问答社区
城堡和NLog在运行时改变连接字符串
我正在使用为Castle提供支持的NLOG,并试图找到一种在运行时更改连接字符串的方法. 这是我的最新摇摆和错过,我确信在这一点上必须完成生命周期,因为所有配置都是无效的,所以我猜想城堡尚未将NLOG上的胆量连接起来. private const string NLogConnectionString = "NLogConnection"; public void Install(IWindsorContainer container, IConfigurationStore store) { container.AddFacility(l => l.UseNLog()); var config = new NLog.Config.LoggingConfiguration(); var dbtarget = config.FindTargetByName("datab
24 2024-04-25
编程技术问答社区
NLog-清理具有动态文件名的日志文件
我有一个将通过排队系统接收消息的应用程序,我想将每个消息记录到其自己的文件中,文件名是消息ID.我想出了如何使用文件名中的事件字母来完成此操作. 尽管MaxarchiveFiles设置没有任何影响,可能是因为我没有归档任何文件.使用此配置,我有什么方法可以利用NLOG限制按日期或计数限制文件数? NLog.Logger oLogger = NLog.LogManager.G
12 2024-04-24
编程技术问答社区
在应用程序的发布版本中记录日志(C#)。
我很难在外部研究和StackOverflow/Progammers.StackExchange上找到有关此主题的信息,所以我想我在这里问.这主要是"最佳实践" 问题,但我也对性能的影响感兴趣. 背景: 我目前正在使用支持Windows Service组件的A WinForms应用程序中的NLOG记录框架.在整个应用程序中,我通过UDP输出监视了整个应用程序中有很多跟踪日志语句.错误/警告也转到事件日志和滚动日志文件,其中还包括信息级别. 问题: 在编译应用程序的发行版本时,处理所有记录代码的最佳实践是什么?是否应该从应用程序中删除所有跟踪/调试代码,因为它可能会对性能产生负面影响?由于NLOG记录由XML配置文件控制,因此删除听众以进行跟踪/调试日志记录会消除潜在的性能陷阱吗?我是否应该在预处理器指令中放置跟踪/调试记录元素,以防止将其编译为可发布的生产代码? 解决方案 当处理所有记录代码的最佳实践是什么 编译应用程序的发行版? 您可以像以前的级别一样留
16 2024-04-24
编程技术问答社区
使用Func()参数的ASP.NET Core日志管理
我将其与nlog一起使用ASP.NET Core,将其用作nlog.web.apnetcore nugget软件包的原始ASP.NET核心记录器的替代. nlog包含一个有用的func()委托签名,仅在启用相应的记录级别时才能执行参数评估: static readonly Logger log = LogManager.GetCurrentClassLogger(); log.Trace(() => request.JsonSerializer.Serialize(body)); 我正在使用nlog使用ASP.NET,但听起来此功能不可用: private ILogger log; log.Trace(() => request.JsonSerializer.Serialize(body)); 在为自己写出一种方法之前,我想知道我是否错过了一些东西,我没有找到有关使用NLOG的ASP.NET Core的代表参数的有关记录方法的任何内容
12 2024-04-24
编程技术问答社区
如何在没有事件属性的情况下记录消息
我正在使用NLOG v4.6.7,并使用以下布局渲染消息(在nlog.config中). 典型的记录是_logger.Info("Start {job} with {@data}", job, new {a,b,c}); 我使用includeAllProperties选项,因为每个消息可能会定义不同的属性,并且我不能一
24 2024-04-24
编程技术问答社区