You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改DevExpress自定义LoggerService代码将异常记录到文件

修改方案

你原代码中使用的System.Diagnostics.Debug.WriteLine仅在Debug编译模式下生效,Release发布后不会输出内容,只需将输出逻辑替换为文件写入即可,同时要处理并发写入冲突问题,修改后的代码如下:

using System;
using System.Collections.Generic;
using System.Configuration;
using System.IO;
using System.Linq;
using System.Web;

namespace ServerSide
{
    public class MyLoggerService : DevExpress.XtraReports.Web.ClientControls.LoggerService
    {
        // 加锁避免多线程同时写入文件导致冲突
        private static readonly object _lockObj = new object();
        // 日志文件存放路径,这里默认存在项目的App_Data目录下,按天生成日志文件
        private readonly string _logPath = Path.Combine(HttpRuntime.AppDomainAppPath, "App_Data", $"ReportLogs_{DateTime.Now:yyyyMMdd}.txt");

        public override void Info(string message)
        {
            string logContent = $"[{DateTime.Now:yyyy-MM-dd HH:mm:ss}]: Info: '{message}'{Environment.NewLine}";
            WriteLogToFile(logContent);
        }
        public override void Error(Exception exception, string message)
        {
            string logContent = $"[{DateTime.Now:yyyy-MM-dd HH:mm:ss}]: Exception occurred. Message: '{message}'. Exception Details:{Environment.NewLine}{exception}{Environment.NewLine}{new string('-',50)}{Environment.NewLine}";
            WriteLogToFile(logContent);
        }

        private void WriteLogToFile(string content)
        {
            lock (_lockObj)
            {
                // 确保目录存在
                var directory = Path.GetDirectoryName(_logPath);
                if (!Directory.Exists(directory))
                {
                    Directory.CreateDirectory(directory);
                }
                // 追加写入日志
                File.AppendAllText(_logPath, content);
            }
        }
    }
}

注意事项

  • 日志路径可自行调整,优先选择App_Data目录:该目录默认不允许外部直接访问,避免日志内容泄露,同时ASP.NET应用默认对该目录有读写权限
  • 如果部署到IIS后出现日志无法写入的情况,检查日志存放目录的权限:给对应应用程序池的运行身份授予目录的「读取/写入」权限即可
  • 代码默认按天生成独立的日志文件,避免单文件过大不便排查问题,可以根据自己的需求调整日志文件名生成规则

内容的提问来源于stack exchange,提问作者Ionut

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 08:24:11