二开案例.表单插件.写文件日志(log4net)

【应用场景】写文件日志(log4net)
【案例演示】采购订单,主菜单新增菜单项,点击该菜单后将文件日志写入指定文件夹。
【实现步骤】
<1>编写表单插件,代码如下。
using Kingdee.BOS;
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Log;
using Kingdee.BOS.Util;
using log4net;
using System;
using System.Collections.Concurrent;
using System.ComponentModel;
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
namespace Jac.XkDemo.BOS.Business.PlugIn
{
/// <summary>
/// 【表单插件】写文件日志
/// </summary>
[Description("【表单插件】写文件日志"), HotUpdate]
public class WriteFileLogFormPlugIn : AbstractDynamicFormPlugIn
{
/// <summary>
/// 主菜单点击事件
/// </summary>
/// <param name="e"></param>
public override void BarItemClick(BarItemClickEventArgs e)
{
base.BarItemClick(e);
if (e.BarItemKey.EqualsIgnoreCase("tbWriteFileLog"))
{
var log = LogHelper.GetLogger("EventLogger");
log.Info("我是一条测试日志数据:)");
log.Error("我是一条测试日志数据:)", new KDException("?", "操作异常......"));
var logFilePath = AppDomain.CurrentDomain.BaseDirectory + "App_Data\\EventLog\\" + DateTime.Now.ToString("yyyy-MM-dd") + "\\Cloud.log";
this.View.ShowMessage(string.Format("文件日志已保存至应用服务器的以下路径:{0}", logFilePath));
return;
}
}
}
#region 日志管理器
public static class LogHelper
{
private static readonly ConcurrentDictionary<string, log4net.ILog> loggers = new ConcurrentDictionary<string, log4net.ILog>();
/// <summary>
/// 获取日志管理器
/// </summary>
/// <param name="name"></param>
/// <returns></returns>
public static log4net.ILog GetLogger(string name)
{
if (loggers.ContainsKey(name))
{
return loggers[name];
二开案例.表单插件.写文件日志(log4net)
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



