首页 > 编程语言 >C#窗体应用中打开控制输出内容

C#窗体应用中打开控制输出内容

时间:2024-09-14 13:51:00浏览次数:8  
标签:输出 C# System InteropServices 窗体 控制台 Runtime public

窗体程序中打开控制台输出内容

namespace WinForms中打开控制台
{
     
    public partial class Form1 : Form
    {
        /////////////以下控制台调用相关代码///////////////////////////
        [System.Runtime.InteropServices.DllImport("kernel32.dll", SetLastError = true)]
        [return: System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.Bool)]
        static extern bool AllocConsole();

        [System.Runtime.InteropServices.DllImport("Kernel32")]
        public static extern void FreeConsole();
        /////////////以上控制台调用相关代码///////////////////////////
        int i = 0;
        public Form1()
        {
            InitializeComponent();
        }
        
        private void button1_Click(object sender, EventArgs e)
        {
            i++;
            AllocConsole();   //开启控制台
            Console.WriteLine("这是个测试"+i);
            
        }
    }
}

Nlog方式打印日志

参照 https://www.cnblogs.com/Can-daydayup/p/11182958.html

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

  <targets>
    <!--此部分中的所有目标将自动异步-->
    <target name="asyncFile" xsi:type="AsyncWrapper">
      <!--项目日志保存文件路径说明fileName="${basedir}/保存目录,以年月日的格式创建/${shortdate}/${记录器名称}-${单级记录}-${shortdate}.txt"-->
      <target name="log_file" xsi:type="File"
              fileName="${basedir}/ProjectLogs/${shortdate}/${logger}-${level}-${shortdate}.txt"
              layout="${longdate} | ${message} ${onexception:${exception:format=message} ${newline} ${stacktrace} ${newline}"
              archiveFileName="${basedir}/archives/${logger}-${level}-${shortdate}-{#####}.txt"
              archiveAboveSize="102400"
              archiveNumbering="Sequence"
              concurrentWrites="true"
              keepFileOpen="false" />
    </target>
    <!--使用可自定义的着色将日志消息写入控制台-->
    <target name="colorConsole" xsi:type="ColoredConsole" layout="[${date:format=HH\:mm\:ss}]:${message} ${exception:format=message}" />
  </targets>

  <!--规则配置,final - 最终规则匹配后不处理任何规则-->
  <rules>
    <logger name="Microsoft.*" minlevel="Info" writeTo="" final="true" />
    <logger name="*" minlevel="Info" writeTo="asyncFile" />
    <logger name="*" minlevel="Warn" writeTo="colorConsole" />
  </rules>
</nlog>

配置配置文件,放在debug目录下
需打印日志的地方添加如下代码

            //声明对象
            var logger = NLog.LogManager.GetCurrentClassLogger();
            // 记录信息级别消息
            logger.Info("Greetings from NLog World!"+i);

日志如下
img

标签:输出,C#,System,InteropServices,窗体,控制台,Runtime,public
From: https://www.cnblogs.com/wanglllin/p/18413822

相关文章

  • commit@push 与 commit@sysc 有什么区别和联系
    commit@push和commit@sync是Git操作中的两种不同命令组合或工作流,虽然两者都涉及commit操作,但它们的目标和执行操作有些不同。下面解释它们的区别和联系:1.commit@push含义:指的是先进行gitcommit提交,然后使用gitpush将本地的提交推送到远程仓库。流程:commit......
  • 什么是 stash uncommited change
    stashuncommittedchanges是Git中的一个操作,用于临时保存工作目录中的修改(包括未提交的更改),而不将它们提交到当前的分支。当你想切换到其他分支或进行其他操作,但又不想将当前的更改提交或丢失时,gitstash可以帮助你临时“藏起”这些更改,稍后可以再恢复。详细解释未提交的......
  • C++——类与对象(三)
    目录引言类型转换1.类型转换2.explicit关键字static成员1.static静态成员变量2.static静态成员函数3.访问静态成员变量的方法3.1 静态成员变量为公有3.2静态成员变量为私有友元1.友元函数2.友元类内部类匿名对象对象拷贝时的编译器优化1.类型转换2.传值......
  • 无数据备份和无归档文件时,使用bbed修改数据文件头的SCN,强制打开数据库的方法
    在数据库运维中经常会遇到某个数据文件的SCN与其他文件的SCN不一致(如offline后或者异常断电),如果归档日志被删除了,导致datafile不能recover,数据库不能打开情况,这时候我们需要借助bbed修改datafileheader的scn与其他datafile的headerscn一致,然后recoverdatafile。一、问题产生......
  • K8s利用etcd定时备份集群结合钉钉机器人通知
    如何通过脚本的方式进行K8s集群的备份查看K8s中master节点中etcd集群的状态kubectlgetpods-nkube-system|grepetcd由于使用的etcd服务是K8s搭建时自身携带的,并不是独立搭建的etcd集群信息。使用K8s搭建集群时,etcd是Kubernetes集成的一个重要组件因此需要查看此K8s中etc......
  • 企业架构系列(二)TOGAF和ArchiMate
    接上一篇文章,想要突破产品经理的困境,我们需要理解企业架构。企业架构方法有多种,目前最具有吸引力的是TOGAF标准指南,以及其配套建模语言ArchiMate。什么是TOGAF?TOGAF(TheOpenGroupArchitectureFramework)是由TheOpenGroup组织定义的一种开放标准化的企业架构框架。......
  • 《 C++ 修炼全景指南:九 》打破编程瓶颈!掌握二叉搜索树的高效实现与技巧
    摘要本文详细探讨了二叉搜索树(BinarySearchTree,BST)的核心概念和技术细节,包括插入、查找、删除、遍历等基本操作,并结合实际代码演示了如何实现这些功能。文章深入分析了二叉搜索树的性能优势及其时间复杂度,同时介绍了前驱、后继的查找方法等高级功能。通过自定义实现的......
  • 「ComfyUI」Flux.1:太赞了,亚洲人脸,胶片质感,更真实的人像,更细腻的光影体验!
    今天我们来分享一个专门用来给Flux.1模型增强胶片质感的Lora,使用以后,人像更真实,光影更细腻,也对亚洲人脸更友好。好了,话不多说,我们直接开整。直接来看效果,模型听雨会放在文末的网盘里,需要的小伙伴自取。提示词:Asimpleandunforgettableportraitdepictsalonelygir......
  • centos8 搭建NFS、Samba 和 FTP 共享服务
    centos8搭建NFS、Samba和FTP共享服务1.搭建NFS共享服务1:安装NFS服务器2:启动并设置NFS服务3:配置NFS共享4:创建并设置共享目录的权限5:重新导出文件系统6:配置防火墙7:测试NFS共享2.搭建Samba共享服务1:安装Samba2:启动并设置Samba服务3......
  • 【LeetCode Hot 100】3. 无重复字符的最长子串
    题目描述本题我最开始的想法就是使用双指针与滑动窗口,滑动过程中维护一个集合,集合内保存滑动窗口内部的所有字符,右边的指针每指向一个新的元素,就判断该元素(字符)是否在集合内,如果已经存在,就说明此时将要出现重复字符,以及无重复字符的子串已经达到了最长的长度,之后我们需要移动左边......