Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
ulog_file
seek
littlefs
用ulog_file输出日志文件生成的第一份ulog.log.x文件内容有问题
发布于 2021-11-11 15:38:53 浏览:1817
订阅该版
![image.png](https://oss-club.rt-thread.org/uploads/20211111/89e6533a35a169fec4df6fc7e2481c50.png) ``` int main(void) { // LOG_D("Hello RT-Thread!"); set_date(2018, 12, 11); set_time(11, 15, 50); fal_init(); struct rt_device *flash_dev = fal_mtd_nor_device_create(FS_PARTITION_NAME); if (flash_dev == NULL) { LOG_E("Can't create a mtd device on '%s' partition.\n", FS_PARTITION_NAME); } else { LOG_I("Create a mtd device on the %s partition of flash successful.\n", FS_PARTITION_NAME); } if(rt_device_find(FS_PARTITION_NAME) != RT_NULL) { /* 挂载 littlefs */ if (dfs_mount(FS_PARTITION_NAME, "/", "lfs", 0, 0) == 0) { ulog_file_backend_init(); LOG_I("Filesystem initialized!"); LOG_D("Hello RT-Thread!"); LOG_I("Filesystem initialized!"); LOG_D("Hello RT-Thread!"); } else { /* 格式化文件系统 */ dfs_mkfs("lfs", FS_PARTITION_NAME); /* 挂载 littlefs */ if (dfs_mount(FS_PARTITION_NAME, "/", "lfs", 0, 0) == 0) { ulog_file_backend_init(); LOG_I("Filesystem initialized!"); } else { LOG_E("Failed to initialize filesystem!"); } } } else { LOG_E("find filesystem portion failed\r\n"); } rt_uint8_t i=0; while(i++<25) { LOG_D("Hello RT-Thread!"); LOG_I("Filesystem initialized!"); } return RT_EOK; } ``` 只有上电后输出的第一份文件是这样,之后的文件内容都是正常的 ![image.png](https://oss-club.rt-thread.org/uploads/20211111/9f12082bc880e1ea4ea2ee6ce9b42fae.png) 控制台打印的信息都是对的
查看更多
4
个回答
默认排序
按发布时间排序
Joy_Lu
2021-11-11
EL・PSY・KONGROO
一通乱找也没找到原因,然后就只是在ulog_file_backend_output ``` static void ulog_file_backend_output(struct ulog_backend *backend, rt_uint32_t level, const char *tag, rt_bool_t is_raw, const char *log, size_t len) { size_t file_size = 0; /* check log file directory */ if (access(ULOG_FILE_ROOT_PATH, 0) < 0) { mkdir(ULOG_FILE_ROOT_PATH, 0); } if (g_file_fd < 0) { rt_snprintf(g_file_path, ULOG_FILE_PATH_LEN, "%s/%s", ULOG_FILE_ROOT_PATH, ULOG_FILE_NAME_BASE); g_file_fd = open(g_file_path, O_CREAT | O_RDWR | O_APPEND); // g_file_fd = open(g_file_path, O_CREAT | O_RDWR); if (g_file_fd < 0) { rt_kprintf("ulog file(%s) open failed.", g_file_path); return; } } file_size = lseek(g_file_fd, 0, SEEK_END); if (file_size > ULOG_FILE_MAX_SIZE) { if (!ulog_file_rotate()) { return; } } write(g_file_fd, log, len); /* flush file cache */ fsync(g_file_fd); } ``` 这个函数的open里加上了O_APPEND,然后就好了,不知道可不可以这样改?
用户名由3_15位
2022-09-13
这家伙很懒,什么也没写!
😄多谢兄弟的方法,一样的问题解决了
出出啊
2021-11-11
恃人不如自恃,人之为己者不如己之自为也
写日志,不需要总 seek 吧。文本文件不支持seek,没处理好会出问题的。 写文本文件默认要么擦了写,要么 append。 这个,可能去掉 seek 也就好了。
changzehai
2022-06-14
卧槽无情
请问使用ulog_file是否只能使用ulog的异步模式呢
撰写答案
登录
注册新账号
关注者
0
被浏览
1.8k
关于作者
Joy_Lu
EL・PSY・KONGROO
提问
2
回答
5
被采纳
0
关注TA
发私信
相关问题
1
dfs_mount挂载文件系统路径的路径必须为‘/’才能成功
2
romfs无法执行df命令
3
w25q128挂载littlefs出现assert failed?
4
使用littlefs出现Corrupted dir pair at 1 0
5
使用片上flash的 littlefs 无法创建多个目录
6
littlefs挂载总是在lfs.c文件中 LFS_ASSERT
7
littlefs文件系统卡顿问题
8
需要littlefs 挂载在片上flash
9
日志存储是使用fat如何做磨损平衡?
10
挂载littlefs文件系统的flash寿命计算方式?
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
【NXP-MCXA153】 定时器驱动移植
2
GD32F450 看门狗驱动适配
3
【NXP-MCXA153】看门狗驱动移植
4
RT-Thread Studio V2.2.9 Release Note
5
CherryUSB的bootuf2配置
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
UART
WIZnet_W5500
ota在线升级
PWM
freemodbus
flash
cubemx
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
编译报错
Debug
rt_mq_消息队列_msg_queue
SFUD
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
踩姑娘的小蘑菇
7
个答案
2
次被采纳
a1012112796
15
个答案
1
次被采纳
Ryan_CW
5
个答案
1
次被采纳
红枫
4
个答案
1
次被采纳
张世争
4
个答案
1
次被采纳
本月文章贡献
YZRD
3
篇文章
6
次点赞
catcatbing
3
篇文章
6
次点赞
lizimu
2
篇文章
8
次点赞
qq1078249029
2
篇文章
2
次点赞
xnosky
2
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部