问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

linux怎么在程序中用自定义日志文件输出信息?

发布网友 发布时间:2022-04-22 20:22

我来回答

2个回答

懂视网 时间:2022-05-19 22:03

代码如下:

using System;
using System.IO;
using System.Text;
public class LogInfo
{
private string ErrorInfo_User = ""; // 记录用户自定义错误信息
private string ErrorPosition = ""; // 记录错误的位置信息,可包括类、函数等
private string ErrorInfo_Sys = ""; // 记录系统产生的异常错误信息
// 记录日志信息
public void RecordErrorInfo(string Position, string Error_Sys, string Error_User)
{
ErrorPosition = Position;
ErrorInfo_Sys = Error_Sys;
ErrorInfo_User = Error_User;
}
// 自定义日志信息格式
private string GetLogContent()
{
string LogContent = " -------------------------------------------------------------------------- ";
LogContent += "[自定义异常日志][" + DateTime.Now.ToString() + "] ";
LogContent += "=>[Position]=>[" + ErrorPosition + "] ";
LogContent += "=>[UserInfo]=>[" + ErrorInfo_User + "] ";
LogContent += "=>[SysInfo]=>[" + ErrorInfo_Sys + "] ";
LogContent += "-------------------------------------------------------------------------- ";
return LogContent;
}
// 保存日志信息到文件
public void SaveLogToFile()
{
try
{
// get the file path of the log.
string FileName = @"log/LogInfo_" + DateTime.Now.ToString("yyyy-MM-dd") + ".txt";
// get the content of the log.
string LogContent = GetLogContent();
// create the stream of the log file and save the log.
FileStream smLog = new FileStream(FileName, FileMode.Append, FileAccess.Write);
// if the stream is correct.
if (smLog != null)
{
long lFileContentLen = smLog.Length;
smLog.Lock(0, lFileContentLen);
byte[] buffer = Encoding.GetEncoding("gb2312").GetBytes(LogContent);
smLog.Write(buffer, 0, buffer.Length);
smLog.Unlock(0, lFileContentLen);
smLog.Flush();
smLog.Close();
}
}
catch
{ }
}
}
public class LogExample
{
private LogInfo _Log = new LogInfo();
// 某处理函数一
public void Function_First()
    {
try
{
// do something which could be occur exception.
}
catch (Exception error)
{
_Log.RecordErrorInfo("函数Function_First", error.Message.ToString(), "执行函数Function_First时,发生异常!");
_Log.SaveLogToFile();
}
    }
// 某处理函数二
public void Function_Second()
{
try
{
// do something which could be occur exception.
}
catch (Exception error)
{
_Log.RecordErrorInfo("函数Function_Second", error.Message.ToString(), "执行函数Function_Second时,发生异常!");
_Log.SaveLogToFile();
}
}
}
class Program
{
static void Main(string[] args)
{
// 创建内建了日志的对象
LogExample Le = new LogExample();
// 执行处理操作一
Le.Function_First();
// 执行处理操作二
Le.Function_Second();
}
}

热心网友 时间:2022-05-19 19:11

很简单, 打开文件/写入文件.

bash脚本: echo "message" >> /path/to/yourlogfile

c: 这个就不用说了吧, fopen("/path/to/yourlogfile", "a"); 然后调用fwrite
如果希望printf/fprintf(stderr,等标准输出/标准错误输出直接输出到日志, 用p2:
#include <stdio.h>
#include <unistd.h>
int main()
{
FILE *fp = fopen("log.txt", "a");
if(fp){
int no = fileno(fp);
p2(no, 1);
p2(no, 2);
printf("stdout log\n");
fprintf(stderr, "stderr log\n");
fclose(fp);
}
return 0;
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
如何查被录取到的专业 怎样查被录取的专业 录取后怎样查询录取的专业 录取专业怎么查 已被录取怎么查专业 ghs网络语什么意思_ghs网络语意思出处含义介绍 纸箱企业管理软件 ghs什么意思网络(ghs什么意思网络用语) 《喜羊羊与灰太狼》大结局 0与任何数相加都得原数吗? linux系统中, top命令 打印cpu日志 要到哪个文件里能找到 在linux中,怎么实现日志文件的自动化循环 linux 日志查看 有新的自动输出 请问哪里可以下载通信原理(樊昌信版),还有数字电路与逻辑设计视频教程。多谢了。 推荐模拟电路和数字电路教程,最好是视频教程能下载的,书籍也可以一定要很好的,谢谢 有《数字电子技术基础》阎石 第五版 视频教程可以下载么?? 哪有高清的电子电路基础视频教程 最好能带有数字万用表检测电子元器件的 谁有张肃文主编的第四版《高频电子线路》视频教程和阎石主编的第五版《数字电子技术基础》的视频教程 请问哪里可以下载到《大学物理实验》和《数字电路实验》视频教程或者Flash动画教程? 东南大学 数字逻辑电路视频教程下地址 求资源 vicissitude.鍙 互鍜岄偅璇嶈 缁勮瘝 北京交通大学侯建军 数字电路教程全套视频下载地址 请问一下电脑高手们,虚拟内存的数值应该怎么调呢? 麻烦前辈推荐一些好的电路分析,模拟电路,数字电路的视频教程!! 求完整数字电路和模拟电路教程? 请问接收彩信需要付出电话费吗? 哪里可以下载到好的csf格式的教程 哪里有数字电路和模拟电路的视频教程下载 我还注意到课文中欧阳老师说话的语气是由改变改变的由此我想到了什么 求华中科技大学康华光教授《数字电路》第五版视频教程 Linux系统,如何知道哪个进程在打印log? 如何查看linux系统下的各种日志文件 linux 系统日志的分析大全_百度知 ... linux中,有一个日志文件,我要统计所有用户消耗的银币数,并打印(print... linux 怎么将一个会更新的日志不停输出到另一个文件? linux的日志监控程序默认开启吗?那开启的命令是啥 linux下怎么用syslog记录日志文件 中国著名四大煤矿分别是? 山西长治有哪些煤矿? 运动鞋网面变黑了,怎么清洗 新买的运动鞋网面为什么老发白,我该也么办 民生银行近几年发展怎么样? 乒乓球鞋网面变黄了怎么洗? 民生银行好不好,待遇怎么样 白色网面的鞋子该怎么护理? 中国民生银行怎么样? 请问我的白色运动鞋网面变脏了,洗不干净,怎么办呢? 民生银行怎么查开户行 具体有哪些方法 民生银行手机银行(企业版)怎么开通 运动鞋网面内怎么才能洗干净啊?上次用力一刷,扯破了个小洞,心疼死人啦 中国煤矿最多的省是哪个?