Log4Net

简介: Log4Net

YFLog.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
class YFLog
{
    private static readonly log4net.ILog logger = log4net.LogManager.GetLogger("WebLogger");
    public static void logInfo(string logstr)
    {
        Console.WriteLine(logstr);
        initLog4net();
        logger.Info(logstr);
    }
    public static void logInfo(string format, params object[] args)
    {
        Console.WriteLine(format, args);
        initLog4net();
        logger.InfoFormat(format, args);
    }
    public static void logError(string logstr)
    {
        Console.WriteLine(logstr);
        initLog4net();
        logger.Error(logstr);
    }
    public static void logError(string format, params object[] args)
    {
        Console.WriteLine(format, args);
        initLog4net();
        logger.ErrorFormat(format, args);
    }
    private static void initLog4net()
    {
        if (!logger.IsInfoEnabled)
        {
            var logCfg = new System.IO.FileInfo(AppDomain.CurrentDomain.BaseDirectory + "log4net.config");
            log4net.Config.XmlConfigurator.ConfigureAndWatch(logCfg);
        }
    }
}

log4net.config

<?xml version="1.0" encoding="utf-8" ?>  
<log4net>  
  <appender name="infoAppender" type="log4net.Appender.RollingFileAppender">  
    <filter type="log4net.Filter.LevelMatchFilter">  
      <levelToMatch value="INFO" />  
    </filter>  
    <filter type="log4net.Filter.DenyAllFilter" />  
    <encoding value="utf-8"/>  
    <preserveLogFileNameExtension value="true" />  
    <appendToFile value="true" />  
    <rollingStyle value="Date" />  
    <file value="Logs\\" />  
    <StaticLogFileName value="false"/>  
    <datePattern value="yyyyMMdd'-info.log'" />  
    <layout type="log4net.Layout.PatternLayout">  
      <conversionPattern value="%date - %message%newline" />  
    </layout>  
  </appender>  
  <appender name="errorAppender" type="log4net.Appender.RollingFileAppender">  
    <filter type="log4net.Filter.LevelMatchFilter">  
      <levelToMatch value="ERROR" />  
    </filter>  
    <filter type="log4net.Filter.DenyAllFilter" />  
    <encoding value="utf-8"/>  
    <preserveLogFileNameExtension value="true" />  
    <appendToFile value="true" />  
    <rollingStyle value="Date" />  
    <file value="Logs\\" />  
    <StaticLogFileName value="false"/>  
    <datePattern value="yyyyMMdd'-err.log'" />  
    <layout type="log4net.Layout.PatternLayout">  
      <conversionPattern value="%date - %message%newline" />  
    </layout>  
  </appender>  
  <root>  
    <level value="ALL" />  
    <appender-ref ref="infoAppender" />  
    <appender-ref ref="errorAppender" />  
  </root>  
  <logger name="Performance" additivity="false">  
    <level value="ALL" />  
  </logger>  
</log4net>  
相关文章
|
12月前
|
人工智能 JSON 自然语言处理
基于阿里云通义千问的AI模型应用开发指南
阿里云通义千问是阿里巴巴集团推出的多模态大语言模型平台,提供了丰富的API和接口,支持多种AI应用场景,如文本生成、图像生成和对话交互等。本文将详细介绍阿里云通义千问的产品功能,并展示如何使用其API来构建一个简单的AI应用,包括程序代码和具体操作流程,以帮助开发者快速上手。
2440 3
|
12月前
|
并行计算 Ubuntu Linux
Ubuntu学习笔记(五):18.04安装多版本CUDA
这篇博客文章介绍了在Ubuntu 18.04系统上如何安装和切换不同版本的CUDA,以及如何安装不同版本的cuDNN。
532 2
|
算法 测试技术 开发工具
编写高效技术文档的艺术:C++项目实践指南
编写高效技术文档的艺术:C++项目实践指南
306 0
|
机器学习/深度学习 并行计算 PyTorch
PyTorch安装教程
PyTorch是学习深度学习时常用的Python神经网络框架,本文将介绍其部分版本的安装方式。Windows和Linux通用。 作者使用anaconda作为管理虚拟环境的工具。以下工作都在虚拟环境中进行,对Python和Aanaconda的安装及对虚拟环境的管理本文不作赘述,后期可能会撰写相关的博文。
PyTorch安装教程
|
资源调度 调度 Apache
Apache Flink 进阶(六):Flink 作业执行深度解析
主要分享内容为 Flink Job 执行作业的流程,文章将从两个方面进行分享:一是如何从 Program 到物理执行计划,二是生成物理执行计划后该如何调度和执行。
Apache Flink 进阶(六):Flink 作业执行深度解析
|
7月前
|
NoSQL Java 关系型数据库
微服务——SpringBoot使用归纳——Spring Boot 中集成Redis——Redis 介绍
本文介绍在 Spring Boot 中集成 Redis 的方法。Redis 是一种支持多种数据结构的非关系型数据库(NoSQL),具备高并发、高性能和灵活扩展的特点,适用于缓存、实时数据分析等场景。其数据以键值对形式存储,支持字符串、哈希、列表、集合等类型。通过将 Redis 与 Mysql 集群结合使用,可实现数据同步,提升系统稳定性。例如,在网站架构中优先从 Redis 获取数据,故障时回退至 Mysql,确保服务不中断。
285 0
微服务——SpringBoot使用归纳——Spring Boot 中集成Redis——Redis 介绍
|
7月前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 云原生 API 网关 2025 年 2 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要
642 11
阿里云微服务引擎 MSE 及 云原生 API 网关 2025 年 2 月产品动态
|
9月前
|
搜索推荐 NoSQL Java
微服务架构设计与实践:用Spring Cloud实现抖音的推荐系统
本文基于Spring Cloud实现了一个简化的抖音推荐系统,涵盖用户行为管理、视频资源管理、个性化推荐和实时数据处理四大核心功能。通过Eureka进行服务注册与发现,使用Feign实现服务间调用,并借助Redis缓存用户画像,Kafka传递用户行为数据。文章详细介绍了项目搭建、服务创建及配置过程,包括用户服务、视频服务、推荐服务和数据处理服务的开发步骤。最后,通过业务测试验证了系统的功能,并引入Resilience4j实现服务降级,确保系统在部分服务故障时仍能正常运行。此示例旨在帮助读者理解微服务架构的设计思路与实践方法。
441 17
|
Linux 持续交付 Docker
掌握Docker:从入门到实践
Docker 是一个开源容器引擎,允许开发者将应用及其依赖打包成可移植的容器,在任意 Linux 机器上运行。本文从基本概念入手,详细介绍 Docker 的安装、基本操作、镜像构建及 Docker Compose 的使用,并通过实战案例展示如何部署 Web 应用、构建微服务架构及实现 CI/CD。通过学习,你将掌握 Docker 的核心功能,提升应用开发和部署效率。
|
11月前
|
存储 缓存 监控
后端开发中的缓存机制:深度解析与最佳实践####
本文深入探讨了后端开发中不可或缺的一环——缓存机制,旨在为读者提供一份详尽的指南,涵盖缓存的基本原理、常见类型(如内存缓存、磁盘缓存、分布式缓存等)、主流技术选型(Redis、Memcached、Ehcache等),以及在实际项目中如何根据业务需求设计并实施高效的缓存策略。不同于常规摘要的概述性质,本摘要直接点明文章将围绕“深度解析”与“最佳实践”两大核心展开,既适合初学者构建基础认知框架,也为有经验的开发者提供优化建议与实战技巧。 ####