• 【MineBBS社区发展意见征集】

    欢迎参与MineBBS社区调查,助力打造更好Minecraft社区!完成问卷可获赠200金粒,优质回答可额外获得200金粒(限5名),快来参与吧!【点击参与】

社区新闻 BDS+梦故行为监控+启动文件-用8个字符实现最简易的日志流输出成文件!

doupoa

【Lv:4】

新闻组
注册
2020/04/18
消息
77
金粒
12,143金粒
在此之前请确认您是否成功安装并运行梦故面板及梦故行为监控插件
--------
使用过由梦之故里开发的行为监控插件的各位腐竹应该都知道,行为监控插件输出的日志只能输出于控制台,不会输出成文件。如果需要实现该功能需要十分麻烦的去找输出插件或控件。那么我们该如何最简单的用一行实现该功能?
我们先来看看启动文件的代码和实现的功能。1593149156688.png

MCDllInject ..\MCPE\bedrock_server.exe ..\MCModDll
是的没错,就一行十分简洁。并且可以看出,日志输出不是在那黑黑的控制台,而是在文本文档中。那它是如何工作的?
该启动器为微软windows系统中的命令脚本,它的名字叫做批处理。顾名思义,批处理意思就是批量处理事件脚本,它的作用就是用于处理一些繁琐而又单一的事件。我们知道了这是批处理文件,那就可以加入一些windows系统中的一些指令实现日志输出。
那它就可以变成这样

代码:
MCDllInject ..\MCPE\bedrock_server.exe ..\MCModDll> log.txt
插入的字符实现的功能便是将日志流全部输出到启动器目录的log.txt文件中,但最显著的缺点就是在控制台中无法看到面向管理员的反馈,以及每次开服时的日志流全部会输出到存放log的文本文档中。
若需要输出到指定目录,那可以给log.txt文件添加绝对地址,例如

MCDllInject ..\MCPE\bedrock_server.exe ..\MCModDll > C:\Users\Administrator\Desktop\log\生存\%str_date_time%log.txt
什么?你问我log文件上为什么会有奇怪字符?
噢我的老天鹅,那是为了让我们更加方便的分辨日志文件,它输出的log文件将会按时间命名。
那我们就可以给它添加时间计算相关的指令。

代码:
set str_time_first_bit="%time:~0,1%"

if %str_time_first_bit%==" " (
   
set str_date_time=%date:~0,4%%date:~5,2%%date:~8,2%_0%time:~1,1%%time:~3,2%%time:~6,2%

)else (

    set str_date_time=%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2%
)
这样当前的时间就被存储到了%str_date_time%这个变量中(精确至秒!)。
把这段时间计算指令添加到上面那段代码之上,实际效果便是这样的:
P@2X4UE2ZNO2NWI]ZM[N(XH.png
在之后不修改文本的前提下,左侧文件便是开始记录时间,右侧就是结束记录时间。
我们也可以用echo指令打印提示文字,color指令修改控制台颜色。
于是目前我正在使用的启动器便是这样的:
2$M%6V%SOG~9FG19QZV8EY5.png

---------------------------------------
全部代码:(可按个人需求进行修改)
代码:
@echo off
::所有(..)都要修改成绝对地址!
title BDS日志输出

echo Lodging...

set str_time_first_bit="%time:~0,1%"

if %str_time_first_bit%==" " (
   
set str_date_time=%date:~0,4%%date:~5,2%%date:~8,2%_0%time:~1,1%%time:~3,2%%time:~6,2%

)else (

    set str_date_time=%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2%
)

cls
echo     服务器已启动!
echo     日志文件地址:
echo             (..)\log\生存
echo     服务器相关指令仍在此处输入!
echo     服务器信息:
echo ----------------------------------------------
MCDllInject ..\MCPE\bedrock_server.exe ..\MCModDll > (..)\log\生存\%str_date_time%log.txt
日志文件需要等到服务器完全启动才能手动打开。
使用NotePad++之类的文本编辑器可以实时刷新log文本文档。
感谢阅读!
 
最后编辑:

在线管理成员

在线会员

  • Jigsaw
  • yidoor
  • kukemc
  • MoLanMC
  • 13213123123123124124
  • 张松严
  • Shi_Ku
  • 二白
  • CKY
  • Sh1roCu
  • 我来诠释手法
  • 璀星海
  • Inter
  • humataddiyar
  • 魔王llx
  • YUN6613
  • xuantianzhilin
  • hongyu666
  • SK-1
  • 张志明
  • Taoisa
  • HiTech0926
...和 41 更多。
后退
顶部 底部